12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * Copyright (c) 2018-2024, STMicroelectronics - All Rights Reserved
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #ifndef STM32MP_RESET_H
- #define STM32MP_RESET_H
- #include <stdint.h>
- /*
- * Assert target reset, if @to_us non null, wait until reset is asserted
- *
- * @reset_id: Reset controller ID
- * @to_us: Timeout in microsecond, or 0 if not waiting
- * Return 0 on success and -ETIMEDOUT if waiting and timeout expired
- */
- int stm32mp_reset_assert(uint32_t reset_id, unsigned int to_us);
- /*
- * Enable reset control for target resource
- *
- * @reset_id: Reset controller ID
- */
- static inline void stm32mp_reset_set(uint32_t reset_id)
- {
- (void)stm32mp_reset_assert(reset_id, 0U);
- }
- /*
- * Deassert target reset, if @to_us non null, wait until reset is deasserted
- *
- * @reset_id: Reset controller ID
- * @to_us: Timeout in microsecond, or 0 if not waiting
- * Return 0 on success and -ETIMEDOUT if waiting and timeout expired
- */
- int stm32mp_reset_deassert(uint32_t reset_id, unsigned int to_us);
- /*
- * Release reset control for target resource
- *
- * @reset_id: Reset controller ID
- */
- static inline void stm32mp_reset_release(uint32_t reset_id)
- {
- (void)stm32mp_reset_deassert(reset_id, 0U);
- }
- /*
- * Manage system reset control
- */
- void __dead2 stm32mp_system_reset(void);
- #endif /* STM32MP_RESET_H */
|