LCOV - code coverage report
Current view: top level - zephyr/dt-bindings/clock - stm32mp13_clock.h Coverage Total Hit
Test: new.info Lines: 4.0 % 124 5
Test Date: 2025-09-05 20:47:19

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2025 STMicroelectronics
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_STM32MP13_CLOCK_H_
       7              : #define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_STM32MP13_CLOCK_H_
       8              : 
       9              : #include "stm32_common_clocks.h"
      10              : 
      11              : /** System clock */
      12              : /* defined in stm32_common_clocks.h */
      13              : /** Fixed clocks  */
      14            1 : #define STM32_SRC_HSE           (STM32_SRC_LSI + 1)
      15            0 : #define STM32_SRC_HSI           (STM32_SRC_HSE + 1)
      16              : 
      17              : /** PLL outputs */
      18            1 : #define STM32_SRC_PLL1_P        (STM32_SRC_HSI + 1)
      19            0 : #define STM32_SRC_PLL2_P        (STM32_SRC_PLL1_P + 1)
      20            0 : #define STM32_SRC_PLL2_Q        (STM32_SRC_PLL2_P + 1)
      21            0 : #define STM32_SRC_PLL2_R        (STM32_SRC_PLL2_Q + 1)
      22            0 : #define STM32_SRC_PLL3_P        (STM32_SRC_PLL2_R + 1)
      23            0 : #define STM32_SRC_PLL3_Q        (STM32_SRC_PLL3_P + 1)
      24            0 : #define STM32_SRC_PLL3_R        (STM32_SRC_PLL3_Q + 1)
      25            0 : #define STM32_SRC_PLL4_P        (STM32_SRC_PLL3_R + 1)
      26            0 : #define STM32_SRC_PLL4_Q        (STM32_SRC_PLL4_P + 1)
      27            0 : #define STM32_SRC_PLL4_R        (STM32_SRC_PLL4_Q + 1)
      28              : 
      29              : /** Bus clocks */
      30            1 : #define STM32_CLOCK_BUS_APB1    0x700
      31            0 : #define STM32_CLOCK_BUS_APB2    0x708
      32            0 : #define STM32_CLOCK_BUS_APB3    0x710
      33            0 : #define STM32_CLOCK_BUS_APB3_S  0x718
      34            0 : #define STM32_CLOCK_BUS_APB4    0x728
      35            0 : #define STM32_CLOCK_BUS_APB4_NS 0x738
      36            0 : #define STM32_CLOCK_BUS_APB5    0x740
      37            0 : #define STM32_CLOCK_BUS_APB6    0x748
      38            0 : #define STM32_CLOCK_BUS_AHB2    0x750
      39            0 : #define STM32_CLOCK_BUS_AHB4    0x768
      40            0 : #define STM32_CLOCK_BUS_AHB5    0x778
      41            0 : #define STM32_CLOCK_BUS_AHB6    0x780
      42              : 
      43            0 : #define STM32_PERIPH_BUS_MIN    STM32_CLOCK_BUS_APB1
      44            0 : #define STM32_PERIPH_BUS_MAX    STM32_CLOCK_BUS_AHB6
      45              : 
      46              : /** @brief Device domain clocks selection helpers */
      47            1 : #define MCO1CFGR_REG            0x460
      48            0 : #define MCO2CFGR_REG            0x464
      49            0 : #define I2C12CKSELR_REG         0x600
      50            0 : #define I2C345CKSELR_REG        0x604
      51            0 : #define SPI2S1CKSELR_REG        0x608
      52            0 : #define SPI2S23CKSELR_REG       0x60c
      53            0 : #define SPI45CKSELR_REG         0x610
      54            0 : #define UART12CKSELR_REG        0x614
      55            0 : #define UART35CKSELR_REG        0x618
      56            0 : #define UART4CKSELR_REG         0x61c
      57            0 : #define UART6CKSELR_REG         0x620
      58            0 : #define UART78CKSELR_REG        0x624
      59            0 : #define LPTIM1CKSELR_REG        0x628
      60            0 : #define LPTIM23CKSELR_REG       0x62c
      61            0 : #define LPTIM45CKSELR_REG       0x630
      62            0 : #define SAI1CKSELR_REG          0x634
      63            0 : #define SAI2CKSELR_REG          0x638
      64            0 : #define FDCANCKSELR_REG         0x63c
      65            0 : #define SPDIFCKSELR_REG         0x640
      66            0 : #define ADC12CKSELR_REG         0x644
      67            0 : #define SDMMC12CKSELR_REG       0x648
      68            0 : #define ETH12CKSELR_REG         0x64c
      69            0 : #define USBCKSELR_REG           0x650
      70            0 : #define QSPICKSELR_REG          0x654
      71            0 : #define FMCCKSELR_REG           0x658
      72            0 : #define RNG1CKSELR_REG          0x65c
      73            0 : #define STGENCKSELR_REG         0x660
      74            0 : #define DCMIPPCKSELR_REG        0x664
      75            0 : #define SAESCKSELR_REG          0x668
      76              : 
      77              : /** MCO1CFGR / MCO2CFGR devices */
      78            1 : #define MCO1_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 0, MCO1CFGR_REG)
      79            0 : #define MCO1_PRE(val)           STM32_DT_CLOCK_SELECT((val), 0xf, 4, MCO1CFGR_REG)
      80            0 : #define MCO2_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 0, MCO2CFGR_REG)
      81            0 : #define MCO2_PRE(val)           STM32_DT_CLOCK_SELECT((val), 0xf, 4, MCO2CFGR_REG)
      82              : 
      83            0 : #define MCOX_ON BIT(12)
      84              : 
      85              : /* MCO1 source */
      86            0 : #define MCO1_SEL_HSI    0
      87            0 : #define MCO1_SEL_HSE    1
      88            0 : #define MCO1_SEL_CSI    2
      89            0 : #define MCO1_SEL_LSI    3
      90            0 : #define MCO1_SEL_LSE    4
      91              : 
      92              : /* MCO2 source */
      93            0 : #define MCO2_SEL_MPU    0
      94            0 : #define MCO2_SEL_AXI    1
      95            0 : #define MCO2_SEL_MLAHB  2
      96            0 : #define MCO2_SEL_PLL4   3
      97            0 : #define MCO2_SEL_HSE    4
      98            0 : #define MCO2_SEL_HSI    5
      99              : 
     100              : /* MCO prescaler : division factor */
     101            0 : #define MCO_PRE_DIV_1   0
     102            0 : #define MCO_PRE_DIV_2   1
     103            0 : #define MCO_PRE_DIV_3   2
     104            0 : #define MCO_PRE_DIV_4   3
     105            0 : #define MCO_PRE_DIV_5   4
     106            0 : #define MCO_PRE_DIV_6   5
     107            0 : #define MCO_PRE_DIV_7   6
     108            0 : #define MCO_PRE_DIV_8   7
     109            0 : #define MCO_PRE_DIV_9   8
     110            0 : #define MCO_PRE_DIV_10  9
     111            0 : #define MCO_PRE_DIV_11  10
     112            0 : #define MCO_PRE_DIV_12  11
     113            0 : #define MCO_PRE_DIV_13  12
     114            0 : #define MCO_PRE_DIV_14  13
     115            0 : #define MCO_PRE_DIV_15  14
     116            0 : #define MCO_PRE_DIV_16  15
     117              : 
     118            0 : #define I2C12_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x7, 0, I2C12CKSELR_REG)
     119            0 : #define I2C3_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 0, I2C345CKSELR_REG)
     120            0 : #define I2C4_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 3, I2C345CKSELR_REG)
     121            0 : #define I2C5_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 6, I2C345CKSELR_REG)
     122            0 : #define SPI1_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 0, SPI2S1CKSELR_REG)
     123            0 : #define SPI23_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x7, 0, SPI2S23CKSELR_REG)
     124            0 : #define SPI4_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 0, SPI45CKSELR_REG)
     125            0 : #define SPI5_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 3, SPI45CKSELR_REG)
     126            0 : #define UART1_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x7, 0, UART12CKSELR_REG)
     127            0 : #define UART2_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x7, 3, UART12CKSELR_REG)
     128            0 : #define UART35_SEL(val)         STM32_DT_CLOCK_SELECT((val), 0x7, 0, UART35CKSELR_REG)
     129            0 : #define UART4_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x7, 0, UART4CKSELR_REG)
     130            0 : #define UART6_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x7, 0, UART6CKSELR_REG)
     131            0 : #define UART78_SEL(val)         STM32_DT_CLOCK_SELECT((val), 0x7, 0, UART78CKSELR_REG)
     132            0 : #define LPTIME1_SEL(val)        STM32_DT_CLOCK_SELECT((val), 0x7, 0, LPTIM1CKSELR_REG)
     133            0 : #define LPTIME2_SEL(val)        STM32_DT_CLOCK_SELECT((val), 0x7, 0, LPTIM23CKSELR_REG)
     134            0 : #define LPTIME3_SEL(val)        STM32_DT_CLOCK_SELECT((val), 0x7, 3, LPTIM23CKSELR_REG)
     135            0 : #define LPTIME45_SEL(val)       STM32_DT_CLOCK_SELECT((val), 0x7, 0, LPTIM45CKSELR_REG)
     136            0 : #define SAI1_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 0, SAI1CKSELR_REG)
     137            0 : #define SAI2_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x7, 0, SAI2CKSELR_REG)
     138            0 : #define FDCAN_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x3, 0, FDCANCKSELR_REG)
     139            0 : #define SPDIF_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x3, 0, SPDIFCKSELR_REG)
     140            0 : #define ADC1_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x3, 0, ADC12CKSELR_REG)
     141            0 : #define ADC2_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x3, 2, ADC12CKSELR_REG)
     142            0 : #define SDMMC1_SEL(val)         STM32_DT_CLOCK_SELECT((val), 0x7, 0, SDMMC12CKSELR_REG)
     143            0 : #define SDMMC2_SEL(val)         STM32_DT_CLOCK_SELECT((val), 0x7, 3, SDMMC12CKSELR_REG)
     144            0 : #define ETH1_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x3, 0, ETH12CKSELR_REG)
     145            0 : #define ETH2_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x3, 8, ETH12CKSELR_REG)
     146            0 : #define USBPHY_SEL(val)         STM32_DT_CLOCK_SELECT((val), 0x3, 0, USBCKSELR_REG)
     147            0 : #define USBOTG_SEL(val)         STM32_DT_CLOCK_SELECT((val), 0x1, 4, USBCKSELR_REG)
     148            0 : #define QSPI_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x3, 0, QSPICKSELR_REG)
     149            0 : #define FMC_SEL(val)            STM32_DT_CLOCK_SELECT((val), 0x3, 0, FMCCKSELR_REG)
     150            0 : #define RNG1_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x3, 0, RNG1CKSELR_REG)
     151            0 : #define STGEN_SEL(val)          STM32_DT_CLOCK_SELECT((val), 0x3, 0, STGENCKSELR_REG)
     152            0 : #define DCMIPP_SEL(val)         STM32_DT_CLOCK_SELECT((val), 0x3, 0, DCMIPPCKSELR_REG)
     153            0 : #define SAES_SEL(val)           STM32_DT_CLOCK_SELECT((val), 0x3, 0, SAESCKSELR_REG)
     154              : 
     155              : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_STM32MP13_CLOCK_H_ */
        

Generated by: LCOV version 2.0-1