blob: e817ea07c14965cd392caf74142c481d74b07104 [file] [log] [blame]
/*
* Copyright (c) 2022 Google Inc
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_RESET_STM32MP1_RESET_H_
#define ZEPHYR_INCLUDE_DT_BINDINGS_RESET_STM32MP1_RESET_H_
/**
* Pack RCC register offset and bit in one 32-bit value.
*
* 5 LSBs are used to keep bit number in 32-bit RCC register.
* Next 12 bits are used to keep reset set register offset.
* Next 12 bits are used to keep reset clear register offset.
*
* @param bus STM32 bus name
* @param bit Reset bit
*/
#define STM32_RESET(bus, bit) \
(((STM32_RESET_BUS_##bus##_CLR) << 17U) | ((STM32_RESET_BUS_##bus##_SET) << 5U) | (bit))
/* RCC bus reset register offset */
#define STM32_RESET_BUS_AHB2_SET 0x998
#define STM32_RESET_BUS_AHB2_CLR 0x99C
#define STM32_RESET_BUS_AHB3_SET 0x9A0
#define STM32_RESET_BUS_AHB3_CLR 0x9A4
#define STM32_RESET_BUS_AHB4_SET 0x9A8
#define STM32_RESET_BUS_AHB4_CLR 0x9AC
#define STM32_RESET_BUS_AHB5_SET 0x190
#define STM32_RESET_BUS_AHB5_CLR 0x194
#define STM32_RESET_BUS_AHB6_SET 0x198
#define STM32_RESET_BUS_AHB6_CLR 0x19C
#define STM32_RESET_BUS_TZAHB6_SET 0x1A0
#define STM32_RESET_BUS_TZAHB6_CLR 0x1A4
#define STM32_RESET_BUS_APB1_SET 0x980
#define STM32_RESET_BUS_APB1_CLR 0x984
#define STM32_RESET_BUS_APB2_SET 0x988
#define STM32_RESET_BUS_APB2_CLR 0x98C
#define STM32_RESET_BUS_APB3_SET 0x990
#define STM32_RESET_BUS_APB3_CLR 0x994
#define STM32_RESET_BUS_APB4_SET 0x180
#define STM32_RESET_BUS_APB4_CLR 0x184
#define STM32_RESET_BUS_APB5_SET 0x188
#define STM32_RESET_BUS_APB5_CLR 0x18C
#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_RESET_STM32MP1_RESET_H_ */