u-boot/drivers/clk/stm32/stm32mp13_rcc.h
Gabriel Fernandez c8df960c8d clk: stm32mp13: introduce STM32MP13 RCC driver
STM32MP13 RCC driver uses Common Clock Framework and also a
'clk-stm32-core' API. Then STM32MPx RCC driver will contain only data
configuration (gates, mux, dividers and the way to check security)
or some specific clocks.
This API will be used by all new other generations of ST Socs.

Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Tested-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2022-12-07 16:49:35 +01:00

289 lines
8.8 KiB
C

/* SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause */
/*
* Copyright (C) 2022, STMicroelectronics - All Rights Reserved
*
* Configuration settings for the STM32MP13x CPU
*/
#ifndef STM32MP13_RCC_H
#define STM32MP13_RCC_H
/* RCC registers */
#define RCC_SECCFGR 0x0
#define RCC_MP_SREQSETR 0x100
#define RCC_MP_SREQCLRR 0x104
#define RCC_MP_APRSTCR 0x108
#define RCC_MP_APRSTSR 0x10c
#define RCC_PWRLPDLYCR 0x110
#define RCC_MP_GRSTCSETR 0x114
#define RCC_BR_RSTSCLRR 0x118
#define RCC_MP_RSTSSETR 0x11c
#define RCC_MP_RSTSCLRR 0x120
#define RCC_MP_IWDGFZSETR 0x124
#define RCC_MP_IWDGFZCLRR 0x128
#define RCC_MP_CIER 0x200
#define RCC_MP_CIFR 0x204
#define RCC_BDCR 0x400
#define RCC_RDLSICR 0x404
#define RCC_OCENSETR 0x420
#define RCC_OCENCLRR 0x424
#define RCC_OCRDYR 0x428
#define RCC_HSICFGR 0x440
#define RCC_CSICFGR 0x444
#define RCC_MCO1CFGR 0x460
#define RCC_MCO2CFGR 0x464
#define RCC_DBGCFGR 0x468
#define RCC_RCK12SELR 0x480
#define RCC_RCK3SELR 0x484
#define RCC_RCK4SELR 0x488
#define RCC_PLL1CR 0x4a0
#define RCC_PLL1CFGR1 0x4a4
#define RCC_PLL1CFGR2 0x4a8
#define RCC_PLL1FRACR 0x4ac
#define RCC_PLL1CSGR 0x4b0
#define RCC_PLL2CR 0x4d0
#define RCC_PLL2CFGR1 0x4d4
#define RCC_PLL2CFGR2 0x4d8
#define RCC_PLL2FRACR 0x4dc
#define RCC_PLL2CSGR 0x4e0
#define RCC_PLL3CR 0x500
#define RCC_PLL3CFGR1 0x504
#define RCC_PLL3CFGR2 0x508
#define RCC_PLL3FRACR 0x50c
#define RCC_PLL3CSGR 0x510
#define RCC_PLL4CR 0x520
#define RCC_PLL4CFGR1 0x524
#define RCC_PLL4CFGR2 0x528
#define RCC_PLL4FRACR 0x52c
#define RCC_PLL4CSGR 0x530
#define RCC_MPCKSELR 0x540
#define RCC_ASSCKSELR 0x544
#define RCC_MSSCKSELR 0x548
#define RCC_CPERCKSELR 0x54c
#define RCC_RTCDIVR 0x560
#define RCC_MPCKDIVR 0x564
#define RCC_AXIDIVR 0x568
#define RCC_MLAHBDIVR 0x56c
#define RCC_APB1DIVR 0x570
#define RCC_APB2DIVR 0x574
#define RCC_APB3DIVR 0x578
#define RCC_APB4DIVR 0x57c
#define RCC_APB5DIVR 0x580
#define RCC_APB6DIVR 0x584
#define RCC_TIMG1PRER 0x5a0
#define RCC_TIMG2PRER 0x5a4
#define RCC_TIMG3PRER 0x5a8
#define RCC_DDRITFCR 0x5c0
#define RCC_I2C12CKSELR 0x600
#define RCC_I2C345CKSELR 0x604
#define RCC_SPI2S1CKSELR 0x608
#define RCC_SPI2S23CKSELR 0x60c
#define RCC_SPI45CKSELR 0x610
#define RCC_UART12CKSELR 0x614
#define RCC_UART35CKSELR 0x618
#define RCC_UART4CKSELR 0x61c
#define RCC_UART6CKSELR 0x620
#define RCC_UART78CKSELR 0x624
#define RCC_LPTIM1CKSELR 0x628
#define RCC_LPTIM23CKSELR 0x62c
#define RCC_LPTIM45CKSELR 0x630
#define RCC_SAI1CKSELR 0x634
#define RCC_SAI2CKSELR 0x638
#define RCC_FDCANCKSELR 0x63c
#define RCC_SPDIFCKSELR 0x640
#define RCC_ADC12CKSELR 0x644
#define RCC_SDMMC12CKSELR 0x648
#define RCC_ETH12CKSELR 0x64c
#define RCC_USBCKSELR 0x650
#define RCC_QSPICKSELR 0x654
#define RCC_FMCCKSELR 0x658
#define RCC_RNG1CKSELR 0x65c
#define RCC_STGENCKSELR 0x660
#define RCC_DCMIPPCKSELR 0x664
#define RCC_SAESCKSELR 0x668
#define RCC_APB1RSTSETR 0x6a0
#define RCC_APB1RSTCLRR 0x6a4
#define RCC_APB2RSTSETR 0x6a8
#define RCC_APB2RSTCLRR 0x6ac
#define RCC_APB3RSTSETR 0x6b0
#define RCC_APB3RSTCLRR 0x6b4
#define RCC_APB4RSTSETR 0x6b8
#define RCC_APB4RSTCLRR 0x6bc
#define RCC_APB5RSTSETR 0x6c0
#define RCC_APB5RSTCLRR 0x6c4
#define RCC_APB6RSTSETR 0x6c8
#define RCC_APB6RSTCLRR 0x6cc
#define RCC_AHB2RSTSETR 0x6d0
#define RCC_AHB2RSTCLRR 0x6d4
#define RCC_AHB4RSTSETR 0x6e0
#define RCC_AHB4RSTCLRR 0x6e4
#define RCC_AHB5RSTSETR 0x6e8
#define RCC_AHB5RSTCLRR 0x6ec
#define RCC_AHB6RSTSETR 0x6f0
#define RCC_AHB6RSTCLRR 0x6f4
#define RCC_MP_APB1ENSETR 0x700
#define RCC_MP_APB1ENCLRR 0x704
#define RCC_MP_APB2ENSETR 0x708
#define RCC_MP_APB2ENCLRR 0x70c
#define RCC_MP_APB3ENSETR 0x710
#define RCC_MP_APB3ENCLRR 0x714
#define RCC_MP_S_APB3ENSETR 0x718
#define RCC_MP_S_APB3ENCLRR 0x71c
#define RCC_MP_NS_APB3ENSETR 0x720
#define RCC_MP_NS_APB3ENCLRR 0x724
#define RCC_MP_APB4ENSETR 0x728
#define RCC_MP_APB4ENCLRR 0x72c
#define RCC_MP_S_APB4ENSETR 0x730
#define RCC_MP_S_APB4ENCLRR 0x734
#define RCC_MP_NS_APB4ENSETR 0x738
#define RCC_MP_NS_APB4ENCLRR 0x73c
#define RCC_MP_APB5ENSETR 0x740
#define RCC_MP_APB5ENCLRR 0x744
#define RCC_MP_APB6ENSETR 0x748
#define RCC_MP_APB6ENCLRR 0x74c
#define RCC_MP_AHB2ENSETR 0x750
#define RCC_MP_AHB2ENCLRR 0x754
#define RCC_MP_AHB4ENSETR 0x760
#define RCC_MP_AHB4ENCLRR 0x764
#define RCC_MP_S_AHB4ENSETR 0x768
#define RCC_MP_S_AHB4ENCLRR 0x76c
#define RCC_MP_NS_AHB4ENSETR 0x770
#define RCC_MP_NS_AHB4ENCLRR 0x774
#define RCC_MP_AHB5ENSETR 0x778
#define RCC_MP_AHB5ENCLRR 0x77c
#define RCC_MP_AHB6ENSETR 0x780
#define RCC_MP_AHB6ENCLRR 0x784
#define RCC_MP_S_AHB6ENSETR 0x788
#define RCC_MP_S_AHB6ENCLRR 0x78c
#define RCC_MP_NS_AHB6ENSETR 0x790
#define RCC_MP_NS_AHB6ENCLRR 0x794
#define RCC_MP_APB1LPENSETR 0x800
#define RCC_MP_APB1LPENCLRR 0x804
#define RCC_MP_APB2LPENSETR 0x808
#define RCC_MP_APB2LPENCLRR 0x80c
#define RCC_MP_APB3LPENSETR 0x810
#define RCC_MP_APB3LPENCLRR 0x814
#define RCC_MP_S_APB3LPENSETR 0x818
#define RCC_MP_S_APB3LPENCLRR 0x81c
#define RCC_MP_NS_APB3LPENSETR 0x820
#define RCC_MP_NS_APB3LPENCLRR 0x824
#define RCC_MP_APB4LPENSETR 0x828
#define RCC_MP_APB4LPENCLRR 0x82c
#define RCC_MP_S_APB4LPENSETR 0x830
#define RCC_MP_S_APB4LPENCLRR 0x834
#define RCC_MP_NS_APB4LPENSETR 0x838
#define RCC_MP_NS_APB4LPENCLRR 0x83c
#define RCC_MP_APB5LPENSETR 0x840
#define RCC_MP_APB5LPENCLRR 0x844
#define RCC_MP_APB6LPENSETR 0x848
#define RCC_MP_APB6LPENCLRR 0x84c
#define RCC_MP_AHB2LPENSETR 0x850
#define RCC_MP_AHB2LPENCLRR 0x854
#define RCC_MP_AHB4LPENSETR 0x858
#define RCC_MP_AHB4LPENCLRR 0x85c
#define RCC_MP_S_AHB4LPENSETR 0x868
#define RCC_MP_S_AHB4LPENCLRR 0x86c
#define RCC_MP_NS_AHB4LPENSETR 0x870
#define RCC_MP_NS_AHB4LPENCLRR 0x874
#define RCC_MP_AHB5LPENSETR 0x878
#define RCC_MP_AHB5LPENCLRR 0x87c
#define RCC_MP_AHB6LPENSETR 0x880
#define RCC_MP_AHB6LPENCLRR 0x884
#define RCC_MP_S_AHB6LPENSETR 0x888
#define RCC_MP_S_AHB6LPENCLRR 0x88c
#define RCC_MP_NS_AHB6LPENSETR 0x890
#define RCC_MP_NS_AHB6LPENCLRR 0x894
#define RCC_MP_S_AXIMLPENSETR 0x898
#define RCC_MP_S_AXIMLPENCLRR 0x89c
#define RCC_MP_NS_AXIMLPENSETR 0x8a0
#define RCC_MP_NS_AXIMLPENCLRR 0x8a4
#define RCC_MP_MLAHBLPENSETR 0x8a8
#define RCC_MP_MLAHBLPENCLRR 0x8ac
#define RCC_APB3SECSR 0x8c0
#define RCC_APB4SECSR 0x8c4
#define RCC_APB5SECSR 0x8c8
#define RCC_APB6SECSR 0x8cc
#define RCC_AHB2SECSR 0x8d0
#define RCC_AHB4SECSR 0x8d4
#define RCC_AHB5SECSR 0x8d8
#define RCC_AHB6SECSR 0x8dc
#define RCC_VERR 0xff4
#define RCC_IDR 0xff8
#define RCC_SIDR 0xffc
/* RCC_SECCFGR register fields */
#define RCC_SECCFGR_MCO1SECF 22
#define RCC_SECCFGR_MCO2SECF 23
/* RCC_APB3SECSR register fields */
#define RCC_APB3SECSR_LPTIM2SECF 0
#define RCC_APB3SECSR_LPTIM3SECF 1
#define RCC_APB3SECSR_VREFSECF 13
/* RCC_APB4SECSR register fields */
#define RCC_APB4SECSR_DCMIPPSECF 1
#define RCC_APB4SECSR_USBPHYSECF 16
/* RCC_APB5SECSR register fields */
#define RCC_APB5SECSR_RTCSECF 8
#define RCC_APB5SECSR_TZCSECF 11
#define RCC_APB5SECSR_ETZPCSECF 13
#define RCC_APB5SECSR_IWDG1SECF 15
#define RCC_APB5SECSR_BSECSECF 16
#define RCC_APB5SECSR_STGENCSECF 20
#define RCC_APB5SECSR_STGENROSECF 21
/* RCC_APB6SECSR register fields */
#define RCC_APB6SECSR_USART1SECF 0
#define RCC_APB6SECSR_USART2SECF 1
#define RCC_APB6SECSR_SPI4SECF 2
#define RCC_APB6SECSR_SPI5SECF 3
#define RCC_APB6SECSR_I2C3SECF 4
#define RCC_APB6SECSR_I2C4SECF 5
#define RCC_APB6SECSR_I2C5SECF 6
#define RCC_APB6SECSR_TIM12SECF 7
#define RCC_APB6SECSR_TIM13SECF 8
#define RCC_APB6SECSR_TIM14SECF 9
#define RCC_APB6SECSR_TIM15SECF 10
#define RCC_APB6SECSR_TIM16SECF 11
#define RCC_APB6SECSR_TIM17SECF 12
/* RCC_AHB2SECSR register fields */
#define RCC_AHB2SECSR_DMA3SECF 3
#define RCC_AHB2SECSR_DMAMUX2SECF 4
#define RCC_AHB2SECSR_ADC1SECF 5
#define RCC_AHB2SECSR_ADC2SECF 6
#define RCC_AHB2SECSR_USBOSECF 8
/* RCC_AHB4SECSR register fields */
#define RCC_AHB4SECSR_TSCSECF 15
/* RCC_AHB5SECSR register fields */
#define RCC_AHB5SECSR_PKASECF 2
#define RCC_AHB5SECSR_SAESSECF 3
#define RCC_AHB5SECSR_CRYP1SECF 4
#define RCC_AHB5SECSR_HASH1SECF 5
#define RCC_AHB5SECSR_RNG1SECF 6
#define RCC_AHB5SECSR_BKPSRAMSECF 8
/* RCC_AHB6SECSR register fields */
#define RCC_AHB6SECSR_MCESECF 1
#define RCC_AHB6SECSR_FMCSECF 12
#define RCC_AHB6SECSR_QSPISECF 14
#define RCC_AHB6SECSR_SDMMC1SECF 16
#define RCC_AHB6SECSR_SDMMC2SECF 17
#define RCC_AHB6SECSR_ETH1CKSECF 7
#define RCC_AHB6SECSR_ETH1TXSECF 8
#define RCC_AHB6SECSR_ETH1RXSECF 9
#define RCC_AHB6SECSR_ETH1MACSECF 10
#define RCC_AHB6SECSR_ETH1STPSECF 11
#define RCC_AHB6SECSR_ETH2CKSECF 27
#define RCC_AHB6SECSR_ETH2TXSECF 28
#define RCC_AHB6SECSR_ETH2RXSECF 29
#define RCC_AHB6SECSR_ETH2MACSECF 30
#define RCC_AHB6SECSR_ETH2STPSECF 31
#endif /* STM32MP13_RCC_H */