Zephyr Project API 4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
stm32_common_clocks.h File Reference

Go to the source code of this file.

Macros

#define STM32_SRC_SYSCLK   0x001
 System clock.
 
#define STM32_SRC_LSE   0x002
 Fixed clocks

 
#define STM32_SRC_LSI   0x003
 
#define NO_SEL   0xFF
 Dummy: Add a specifier when no selection is possible.
 
#define STM32_CLOCK_DIV_SHIFT   12
 
#define STM32_CLOCK_DIV(div)   (((div) - 1) << STM32_CLOCK_DIV_SHIFT)
 Clock divider.
 
#define STM32_DT_CLKSEL_REG_MASK   0xFFFFU
 Helper macros to pack RCC clock source selection register info in the DT.
 
#define STM32_DT_CLKSEL_REG_SHIFT   0U
 
#define STM32_DT_CLKSEL_SHIFT_MASK   0x1FU
 
#define STM32_DT_CLKSEL_SHIFT_SHIFT   16U
 
#define STM32_DT_CLKSEL_WIDTH_MASK   0x3U
 
#define STM32_DT_CLKSEL_WIDTH_SHIFT   21U
 
#define STM32_DT_CLKSEL_VAL_MASK   0xFFU
 
#define STM32_DT_CLKSEL_VAL_SHIFT   24U
 
#define STM32_DT_CLOCK_SELECT(val, msb, lsb, reg)
 Pack STM32 source clock selection RCC register bit fields for the DT.
 
#define STM32_CLOCK(bus, bit)   (STM32_CLOCK_BUS_##bus) (1 << bit)
 Pack RCC clock register offset and bit in two 32-bit values as expected for the Device Tree clocks property on STM32.
 

Macro Definition Documentation

◆ NO_SEL

#define NO_SEL   0xFF

Dummy: Add a specifier when no selection is possible.

◆ STM32_CLOCK

#define STM32_CLOCK (   bus,
  bit 
)    (STM32_CLOCK_BUS_##bus) (1 << bit)

Pack RCC clock register offset and bit in two 32-bit values as expected for the Device Tree clocks property on STM32.

Parameters
busSTM32 bus name (expands to STM32_CLOCK_BUS_{bus})
bitClock bit

◆ STM32_CLOCK_DIV

#define STM32_CLOCK_DIV (   div)    (((div) - 1) << STM32_CLOCK_DIV_SHIFT)

Clock divider.

◆ STM32_CLOCK_DIV_SHIFT

#define STM32_CLOCK_DIV_SHIFT   12

◆ STM32_DT_CLKSEL_REG_MASK

#define STM32_DT_CLKSEL_REG_MASK   0xFFFFU

Helper macros to pack RCC clock source selection register info in the DT.

◆ STM32_DT_CLKSEL_REG_SHIFT

#define STM32_DT_CLKSEL_REG_SHIFT   0U

◆ STM32_DT_CLKSEL_SHIFT_MASK

#define STM32_DT_CLKSEL_SHIFT_MASK   0x1FU

◆ STM32_DT_CLKSEL_SHIFT_SHIFT

#define STM32_DT_CLKSEL_SHIFT_SHIFT   16U

◆ STM32_DT_CLKSEL_VAL_MASK

#define STM32_DT_CLKSEL_VAL_MASK   0xFFU

◆ STM32_DT_CLKSEL_VAL_SHIFT

#define STM32_DT_CLKSEL_VAL_SHIFT   24U

◆ STM32_DT_CLKSEL_WIDTH_MASK

#define STM32_DT_CLKSEL_WIDTH_MASK   0x3U

◆ STM32_DT_CLKSEL_WIDTH_SHIFT

#define STM32_DT_CLKSEL_WIDTH_SHIFT   21U

◆ STM32_DT_CLOCK_SELECT

#define STM32_DT_CLOCK_SELECT (   val,
  msb,
  lsb,
  reg 
)
Value:
#define STM32_DT_CLKSEL_REG_SHIFT
Definition stm32_common_clocks.h:25
#define STM32_DT_CLKSEL_SHIFT_MASK
Definition stm32_common_clocks.h:26
#define STM32_DT_CLKSEL_SHIFT_SHIFT
Definition stm32_common_clocks.h:27
#define STM32_DT_CLKSEL_VAL_SHIFT
Definition stm32_common_clocks.h:31
#define STM32_DT_CLKSEL_VAL_MASK
Definition stm32_common_clocks.h:30
#define STM32_DT_CLKSEL_REG_MASK
Helper macros to pack RCC clock source selection register info in the DT.
Definition stm32_common_clocks.h:24
#define STM32_DT_CLKSEL_WIDTH_MASK
Definition stm32_common_clocks.h:28
#define STM32_DT_CLKSEL_WIDTH_SHIFT
Definition stm32_common_clocks.h:29

Pack STM32 source clock selection RCC register bit fields for the DT.

Parameters
valClock configuration field value
msbField MSB's index
lsbField LSB's index
regOffset to target clock configuration register in RCC
Note
Internally, the data are stored as follows
'reg' range: 0x0~0xFFFF [ 00 : 15 ]
'shift' range: 0~31 [ 16 : 20 ]
'width' range: 0~7 [ 21 : 23 ] Value encodes bit fields width minus 1
'val' range: 0x00~0xFF [ 24 : 31 ]

◆ STM32_SRC_LSE

#define STM32_SRC_LSE   0x002

Fixed clocks

◆ STM32_SRC_LSI

#define STM32_SRC_LSI   0x003

◆ STM32_SRC_SYSCLK

#define STM32_SRC_SYSCLK   0x001

System clock.