|
11 | 11 | /** Domain clocks */ |
12 | 12 |
|
13 | 13 | /** Bus clocks */ |
14 | | -#define STM32_CLOCK_BUS_AHB1 0x030 |
15 | | -#define STM32_CLOCK_BUS_AHB2 0x034 |
16 | | -#define STM32_CLOCK_BUS_AHB3 0x038 |
17 | | -#define STM32_CLOCK_BUS_APB1 0x040 |
18 | | -#define STM32_CLOCK_BUS_APB2 0x044 |
19 | | -#define STM32_CLOCK_BUS_APB3 0x0A8 |
| 14 | +#define STM32_CLOCK_BUS_AHB1 0x030 |
| 15 | +#define STM32_CLOCK_BUS_AHB2 0x034 |
| 16 | +#define STM32_CLOCK_BUS_AHB3 0x038 |
| 17 | +#define STM32_CLOCK_BUS_APB1 0x040 |
| 18 | +#define STM32_CLOCK_BUS_APB2 0x044 |
| 19 | +#define STM32_CLOCK_BUS_APB3 0x0A8 |
20 | 20 |
|
21 | | -#define STM32_PERIPH_BUS_MIN STM32_CLOCK_BUS_AHB1 |
22 | | -#define STM32_PERIPH_BUS_MAX STM32_CLOCK_BUS_APB3 |
| 21 | +#define STM32_PERIPH_BUS_MIN STM32_CLOCK_BUS_AHB1 |
| 22 | +#define STM32_PERIPH_BUS_MAX STM32_CLOCK_BUS_APB3 |
23 | 23 |
|
24 | 24 | /** Domain clocks */ |
25 | 25 | /* RM0386, 0390, 0402, 0430 § Dedicated Clock configuration register (RCC_DCKCFGRx) */ |
|
31 | 31 | #define STM32_SRC_HSI (STM32_SRC_LSI + 1) |
32 | 32 | #define STM32_SRC_HSE (STM32_SRC_HSI + 1) |
33 | 33 | /** PLL clock outputs */ |
34 | | -#define STM32_SRC_PLL_P (STM32_SRC_HSE + 1) |
35 | | -#define STM32_SRC_PLL_Q (STM32_SRC_PLL_P + 1) |
36 | | -#define STM32_SRC_PLL_R (STM32_SRC_PLL_Q + 1) |
| 34 | +#define STM32_SRC_PLL_P (STM32_SRC_HSE + 1) |
| 35 | +#define STM32_SRC_PLL_Q (STM32_SRC_PLL_P + 1) |
| 36 | +#define STM32_SRC_PLL_R (STM32_SRC_PLL_Q + 1) |
37 | 37 | /** I2S sources */ |
38 | | -#define STM32_SRC_PLLI2S_R (STM32_SRC_PLL_R + 1) |
| 38 | +#define STM32_SRC_PLLI2S_R (STM32_SRC_PLL_R + 1) |
39 | 39 | /* I2S_CKIN not supported yet */ |
40 | 40 | /* #define STM32_SRC_I2S_CKIN TBD */ |
41 | 41 |
|
42 | | - |
43 | 42 | #define STM32_CLOCK_REG_MASK 0xFFU |
44 | 43 | #define STM32_CLOCK_REG_SHIFT 0U |
45 | 44 | #define STM32_CLOCK_SHIFT_MASK 0x1FU |
|
62 | 61 | * @param mask Mask for the RCC_CFGRx field. |
63 | 62 | * @param val Clock value (0, 1, ... 7). |
64 | 63 | */ |
65 | | -#define STM32_DOMAIN_CLOCK(val, mask, shift, reg) \ |
66 | | - ((((reg) & STM32_CLOCK_REG_MASK) << STM32_CLOCK_REG_SHIFT) | \ |
67 | | - (((shift) & STM32_CLOCK_SHIFT_MASK) << STM32_CLOCK_SHIFT_SHIFT) | \ |
68 | | - (((mask) & STM32_CLOCK_MASK_MASK) << STM32_CLOCK_MASK_SHIFT) | \ |
| 64 | +#define STM32_DOMAIN_CLOCK(val, mask, shift, reg) \ |
| 65 | + ((((reg) & STM32_CLOCK_REG_MASK) << STM32_CLOCK_REG_SHIFT) | \ |
| 66 | + (((shift) & STM32_CLOCK_SHIFT_MASK) << STM32_CLOCK_SHIFT_SHIFT) | \ |
| 67 | + (((mask) & STM32_CLOCK_MASK_MASK) << STM32_CLOCK_MASK_SHIFT) | \ |
69 | 68 | (((val) & STM32_CLOCK_VAL_MASK) << STM32_CLOCK_VAL_SHIFT)) |
70 | 69 |
|
71 | 70 | /** @brief RCC_CFGRx register offset */ |
72 | | -#define CFGR_REG 0x08 |
| 71 | +#define CFGR_REG 0x08 |
73 | 72 | /** @brief RCC_BDCR register offset */ |
74 | | -#define BDCR_REG 0x70 |
| 73 | +#define BDCR_REG 0x70 |
75 | 74 |
|
76 | 75 | /** @brief Device domain clocks selection helpers */ |
77 | 76 | /** CFGR devices */ |
78 | | -#define I2S_SEL(val) STM32_DOMAIN_CLOCK(val, 1, 23, CFGR_REG) |
79 | | -#define MCO1_SEL(val) STM32_MCO_CFGR(val, 0x3, 21, CFGR_REG) |
80 | | -#define MCO1_PRE(val) STM32_MCO_CFGR(val, 0x7, 24, CFGR_REG) |
81 | | -#define MCO2_SEL(val) STM32_MCO_CFGR(val, 0x3, 30, CFGR_REG) |
82 | | -#define MCO2_PRE(val) STM32_MCO_CFGR(val, 0x7, 27, CFGR_REG) |
| 77 | +#define I2S_SEL(val) STM32_DOMAIN_CLOCK(val, 1, 23, CFGR_REG) |
| 78 | +#define MCO1_SEL(val) STM32_MCO_CFGR(val, 0x3, 21, CFGR_REG) |
| 79 | +#define MCO1_PRE(val) STM32_MCO_CFGR(val, 0x7, 24, CFGR_REG) |
| 80 | +#define MCO2_SEL(val) STM32_MCO_CFGR(val, 0x3, 30, CFGR_REG) |
| 81 | +#define MCO2_PRE(val) STM32_MCO_CFGR(val, 0x7, 27, CFGR_REG) |
83 | 82 | /** BDCR devices */ |
84 | | -#define RTC_SEL(val) STM32_DOMAIN_CLOCK(val, 3, 8, BDCR_REG) |
| 83 | +#define RTC_SEL(val) STM32_DOMAIN_CLOCK(val, 3, 8, BDCR_REG) |
85 | 84 |
|
86 | 85 | #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_STM32F4_CLOCK_H_ */ |
0 commit comments