1*1b8898ebSYann Gautier /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */ 2*1b8898ebSYann Gautier /* 3*1b8898ebSYann Gautier * Copyright (C) 2017-2022, STMicroelectronics - All Rights Reserved 4*1b8898ebSYann Gautier */ 5*1b8898ebSYann Gautier 6*1b8898ebSYann Gautier #ifndef _DT_BINDINGS_CLOCK_STM32MP15_CLKSRC_H_ 7*1b8898ebSYann Gautier #define _DT_BINDINGS_CLOCK_STM32MP15_CLKSRC_H_ 8*1b8898ebSYann Gautier 9*1b8898ebSYann Gautier /* PLL output is enable when x=1, with x=p,q or r */ 10*1b8898ebSYann Gautier #define PQR(p, q, r) (((p) & 1) | (((q) & 1) << 1) | (((r) & 1) << 2)) 11*1b8898ebSYann Gautier 12*1b8898ebSYann Gautier /* st,clksrc: mandatory clock source */ 13*1b8898ebSYann Gautier #define CLK_MPU_HSI 0x00000200 14*1b8898ebSYann Gautier #define CLK_MPU_HSE 0x00000201 15*1b8898ebSYann Gautier #define CLK_MPU_PLL1P 0x00000202 16*1b8898ebSYann Gautier #define CLK_MPU_PLL1P_DIV 0x00000203 17*1b8898ebSYann Gautier 18*1b8898ebSYann Gautier #define CLK_AXI_HSI 0x00000240 19*1b8898ebSYann Gautier #define CLK_AXI_HSE 0x00000241 20*1b8898ebSYann Gautier #define CLK_AXI_PLL2P 0x00000242 21*1b8898ebSYann Gautier 22*1b8898ebSYann Gautier #define CLK_MCU_HSI 0x00000480 23*1b8898ebSYann Gautier #define CLK_MCU_HSE 0x00000481 24*1b8898ebSYann Gautier #define CLK_MCU_CSI 0x00000482 25*1b8898ebSYann Gautier #define CLK_MCU_PLL3P 0x00000483 26*1b8898ebSYann Gautier 27*1b8898ebSYann Gautier #define CLK_PLL12_HSI 0x00000280 28*1b8898ebSYann Gautier #define CLK_PLL12_HSE 0x00000281 29*1b8898ebSYann Gautier 30*1b8898ebSYann Gautier #define CLK_PLL3_HSI 0x00008200 31*1b8898ebSYann Gautier #define CLK_PLL3_HSE 0x00008201 32*1b8898ebSYann Gautier #define CLK_PLL3_CSI 0x00008202 33*1b8898ebSYann Gautier 34*1b8898ebSYann Gautier #define CLK_PLL4_HSI 0x00008240 35*1b8898ebSYann Gautier #define CLK_PLL4_HSE 0x00008241 36*1b8898ebSYann Gautier #define CLK_PLL4_CSI 0x00008242 37*1b8898ebSYann Gautier #define CLK_PLL4_I2SCKIN 0x00008243 38*1b8898ebSYann Gautier 39*1b8898ebSYann Gautier #define CLK_RTC_DISABLED 0x00001400 40*1b8898ebSYann Gautier #define CLK_RTC_LSE 0x00001401 41*1b8898ebSYann Gautier #define CLK_RTC_LSI 0x00001402 42*1b8898ebSYann Gautier #define CLK_RTC_HSE 0x00001403 43*1b8898ebSYann Gautier 44*1b8898ebSYann Gautier #define CLK_MCO1_HSI 0x00008000 45*1b8898ebSYann Gautier #define CLK_MCO1_HSE 0x00008001 46*1b8898ebSYann Gautier #define CLK_MCO1_CSI 0x00008002 47*1b8898ebSYann Gautier #define CLK_MCO1_LSI 0x00008003 48*1b8898ebSYann Gautier #define CLK_MCO1_LSE 0x00008004 49*1b8898ebSYann Gautier #define CLK_MCO1_DISABLED 0x0000800F 50*1b8898ebSYann Gautier 51*1b8898ebSYann Gautier #define CLK_MCO2_MPU 0x00008040 52*1b8898ebSYann Gautier #define CLK_MCO2_AXI 0x00008041 53*1b8898ebSYann Gautier #define CLK_MCO2_MCU 0x00008042 54*1b8898ebSYann Gautier #define CLK_MCO2_PLL4P 0x00008043 55*1b8898ebSYann Gautier #define CLK_MCO2_HSE 0x00008044 56*1b8898ebSYann Gautier #define CLK_MCO2_HSI 0x00008045 57*1b8898ebSYann Gautier #define CLK_MCO2_DISABLED 0x0000804F 58*1b8898ebSYann Gautier 59*1b8898ebSYann Gautier /* st,pkcs: peripheral kernel clock source */ 60*1b8898ebSYann Gautier 61*1b8898ebSYann Gautier #define CLK_I2C12_PCLK1 0x00008C00 62*1b8898ebSYann Gautier #define CLK_I2C12_PLL4R 0x00008C01 63*1b8898ebSYann Gautier #define CLK_I2C12_HSI 0x00008C02 64*1b8898ebSYann Gautier #define CLK_I2C12_CSI 0x00008C03 65*1b8898ebSYann Gautier #define CLK_I2C12_DISABLED 0x00008C07 66*1b8898ebSYann Gautier 67*1b8898ebSYann Gautier #define CLK_I2C35_PCLK1 0x00008C40 68*1b8898ebSYann Gautier #define CLK_I2C35_PLL4R 0x00008C41 69*1b8898ebSYann Gautier #define CLK_I2C35_HSI 0x00008C42 70*1b8898ebSYann Gautier #define CLK_I2C35_CSI 0x00008C43 71*1b8898ebSYann Gautier #define CLK_I2C35_DISABLED 0x00008C47 72*1b8898ebSYann Gautier 73*1b8898ebSYann Gautier #define CLK_I2C46_PCLK5 0x00000C00 74*1b8898ebSYann Gautier #define CLK_I2C46_PLL3Q 0x00000C01 75*1b8898ebSYann Gautier #define CLK_I2C46_HSI 0x00000C02 76*1b8898ebSYann Gautier #define CLK_I2C46_CSI 0x00000C03 77*1b8898ebSYann Gautier #define CLK_I2C46_DISABLED 0x00000C07 78*1b8898ebSYann Gautier 79*1b8898ebSYann Gautier #define CLK_SAI1_PLL4Q 0x00008C80 80*1b8898ebSYann Gautier #define CLK_SAI1_PLL3Q 0x00008C81 81*1b8898ebSYann Gautier #define CLK_SAI1_I2SCKIN 0x00008C82 82*1b8898ebSYann Gautier #define CLK_SAI1_CKPER 0x00008C83 83*1b8898ebSYann Gautier #define CLK_SAI1_PLL3R 0x00008C84 84*1b8898ebSYann Gautier #define CLK_SAI1_DISABLED 0x00008C87 85*1b8898ebSYann Gautier 86*1b8898ebSYann Gautier #define CLK_SAI2_PLL4Q 0x00008CC0 87*1b8898ebSYann Gautier #define CLK_SAI2_PLL3Q 0x00008CC1 88*1b8898ebSYann Gautier #define CLK_SAI2_I2SCKIN 0x00008CC2 89*1b8898ebSYann Gautier #define CLK_SAI2_CKPER 0x00008CC3 90*1b8898ebSYann Gautier #define CLK_SAI2_SPDIF 0x00008CC4 91*1b8898ebSYann Gautier #define CLK_SAI2_PLL3R 0x00008CC5 92*1b8898ebSYann Gautier #define CLK_SAI2_DISABLED 0x00008CC7 93*1b8898ebSYann Gautier 94*1b8898ebSYann Gautier #define CLK_SAI3_PLL4Q 0x00008D00 95*1b8898ebSYann Gautier #define CLK_SAI3_PLL3Q 0x00008D01 96*1b8898ebSYann Gautier #define CLK_SAI3_I2SCKIN 0x00008D02 97*1b8898ebSYann Gautier #define CLK_SAI3_CKPER 0x00008D03 98*1b8898ebSYann Gautier #define CLK_SAI3_PLL3R 0x00008D04 99*1b8898ebSYann Gautier #define CLK_SAI3_DISABLED 0x00008D07 100*1b8898ebSYann Gautier 101*1b8898ebSYann Gautier #define CLK_SAI4_PLL4Q 0x00008D40 102*1b8898ebSYann Gautier #define CLK_SAI4_PLL3Q 0x00008D41 103*1b8898ebSYann Gautier #define CLK_SAI4_I2SCKIN 0x00008D42 104*1b8898ebSYann Gautier #define CLK_SAI4_CKPER 0x00008D43 105*1b8898ebSYann Gautier #define CLK_SAI4_PLL3R 0x00008D44 106*1b8898ebSYann Gautier #define CLK_SAI4_DISABLED 0x00008D47 107*1b8898ebSYann Gautier 108*1b8898ebSYann Gautier #define CLK_SPI2S1_PLL4P 0x00008D80 109*1b8898ebSYann Gautier #define CLK_SPI2S1_PLL3Q 0x00008D81 110*1b8898ebSYann Gautier #define CLK_SPI2S1_I2SCKIN 0x00008D82 111*1b8898ebSYann Gautier #define CLK_SPI2S1_CKPER 0x00008D83 112*1b8898ebSYann Gautier #define CLK_SPI2S1_PLL3R 0x00008D84 113*1b8898ebSYann Gautier #define CLK_SPI2S1_DISABLED 0x00008D87 114*1b8898ebSYann Gautier 115*1b8898ebSYann Gautier #define CLK_SPI2S23_PLL4P 0x00008DC0 116*1b8898ebSYann Gautier #define CLK_SPI2S23_PLL3Q 0x00008DC1 117*1b8898ebSYann Gautier #define CLK_SPI2S23_I2SCKIN 0x00008DC2 118*1b8898ebSYann Gautier #define CLK_SPI2S23_CKPER 0x00008DC3 119*1b8898ebSYann Gautier #define CLK_SPI2S23_PLL3R 0x00008DC4 120*1b8898ebSYann Gautier #define CLK_SPI2S23_DISABLED 0x00008DC7 121*1b8898ebSYann Gautier 122*1b8898ebSYann Gautier #define CLK_SPI45_PCLK2 0x00008E00 123*1b8898ebSYann Gautier #define CLK_SPI45_PLL4Q 0x00008E01 124*1b8898ebSYann Gautier #define CLK_SPI45_HSI 0x00008E02 125*1b8898ebSYann Gautier #define CLK_SPI45_CSI 0x00008E03 126*1b8898ebSYann Gautier #define CLK_SPI45_HSE 0x00008E04 127*1b8898ebSYann Gautier #define CLK_SPI45_DISABLED 0x00008E07 128*1b8898ebSYann Gautier 129*1b8898ebSYann Gautier #define CLK_SPI6_PCLK5 0x00000C40 130*1b8898ebSYann Gautier #define CLK_SPI6_PLL4Q 0x00000C41 131*1b8898ebSYann Gautier #define CLK_SPI6_HSI 0x00000C42 132*1b8898ebSYann Gautier #define CLK_SPI6_CSI 0x00000C43 133*1b8898ebSYann Gautier #define CLK_SPI6_HSE 0x00000C44 134*1b8898ebSYann Gautier #define CLK_SPI6_PLL3Q 0x00000C45 135*1b8898ebSYann Gautier #define CLK_SPI6_DISABLED 0x00000C47 136*1b8898ebSYann Gautier 137*1b8898ebSYann Gautier #define CLK_UART6_PCLK2 0x00008E40 138*1b8898ebSYann Gautier #define CLK_UART6_PLL4Q 0x00008E41 139*1b8898ebSYann Gautier #define CLK_UART6_HSI 0x00008E42 140*1b8898ebSYann Gautier #define CLK_UART6_CSI 0x00008E43 141*1b8898ebSYann Gautier #define CLK_UART6_HSE 0x00008E44 142*1b8898ebSYann Gautier #define CLK_UART6_DISABLED 0x00008E47 143*1b8898ebSYann Gautier 144*1b8898ebSYann Gautier #define CLK_UART24_PCLK1 0x00008E80 145*1b8898ebSYann Gautier #define CLK_UART24_PLL4Q 0x00008E81 146*1b8898ebSYann Gautier #define CLK_UART24_HSI 0x00008E82 147*1b8898ebSYann Gautier #define CLK_UART24_CSI 0x00008E83 148*1b8898ebSYann Gautier #define CLK_UART24_HSE 0x00008E84 149*1b8898ebSYann Gautier #define CLK_UART24_DISABLED 0x00008E87 150*1b8898ebSYann Gautier 151*1b8898ebSYann Gautier #define CLK_UART35_PCLK1 0x00008EC0 152*1b8898ebSYann Gautier #define CLK_UART35_PLL4Q 0x00008EC1 153*1b8898ebSYann Gautier #define CLK_UART35_HSI 0x00008EC2 154*1b8898ebSYann Gautier #define CLK_UART35_CSI 0x00008EC3 155*1b8898ebSYann Gautier #define CLK_UART35_HSE 0x00008EC4 156*1b8898ebSYann Gautier #define CLK_UART35_DISABLED 0x00008EC7 157*1b8898ebSYann Gautier 158*1b8898ebSYann Gautier #define CLK_UART78_PCLK1 0x00008F00 159*1b8898ebSYann Gautier #define CLK_UART78_PLL4Q 0x00008F01 160*1b8898ebSYann Gautier #define CLK_UART78_HSI 0x00008F02 161*1b8898ebSYann Gautier #define CLK_UART78_CSI 0x00008F03 162*1b8898ebSYann Gautier #define CLK_UART78_HSE 0x00008F04 163*1b8898ebSYann Gautier #define CLK_UART78_DISABLED 0x00008F07 164*1b8898ebSYann Gautier 165*1b8898ebSYann Gautier #define CLK_UART1_PCLK5 0x00000C80 166*1b8898ebSYann Gautier #define CLK_UART1_PLL3Q 0x00000C81 167*1b8898ebSYann Gautier #define CLK_UART1_HSI 0x00000C82 168*1b8898ebSYann Gautier #define CLK_UART1_CSI 0x00000C83 169*1b8898ebSYann Gautier #define CLK_UART1_PLL4Q 0x00000C84 170*1b8898ebSYann Gautier #define CLK_UART1_HSE 0x00000C85 171*1b8898ebSYann Gautier #define CLK_UART1_DISABLED 0x00000C87 172*1b8898ebSYann Gautier 173*1b8898ebSYann Gautier #define CLK_SDMMC12_HCLK6 0x00008F40 174*1b8898ebSYann Gautier #define CLK_SDMMC12_PLL3R 0x00008F41 175*1b8898ebSYann Gautier #define CLK_SDMMC12_PLL4P 0x00008F42 176*1b8898ebSYann Gautier #define CLK_SDMMC12_HSI 0x00008F43 177*1b8898ebSYann Gautier #define CLK_SDMMC12_DISABLED 0x00008F47 178*1b8898ebSYann Gautier 179*1b8898ebSYann Gautier #define CLK_SDMMC3_HCLK2 0x00008F80 180*1b8898ebSYann Gautier #define CLK_SDMMC3_PLL3R 0x00008F81 181*1b8898ebSYann Gautier #define CLK_SDMMC3_PLL4P 0x00008F82 182*1b8898ebSYann Gautier #define CLK_SDMMC3_HSI 0x00008F83 183*1b8898ebSYann Gautier #define CLK_SDMMC3_DISABLED 0x00008F87 184*1b8898ebSYann Gautier 185*1b8898ebSYann Gautier #define CLK_ETH_PLL4P 0x00008FC0 186*1b8898ebSYann Gautier #define CLK_ETH_PLL3Q 0x00008FC1 187*1b8898ebSYann Gautier #define CLK_ETH_DISABLED 0x00008FC3 188*1b8898ebSYann Gautier 189*1b8898ebSYann Gautier #define CLK_QSPI_ACLK 0x00009000 190*1b8898ebSYann Gautier #define CLK_QSPI_PLL3R 0x00009001 191*1b8898ebSYann Gautier #define CLK_QSPI_PLL4P 0x00009002 192*1b8898ebSYann Gautier #define CLK_QSPI_CKPER 0x00009003 193*1b8898ebSYann Gautier 194*1b8898ebSYann Gautier #define CLK_FMC_ACLK 0x00009040 195*1b8898ebSYann Gautier #define CLK_FMC_PLL3R 0x00009041 196*1b8898ebSYann Gautier #define CLK_FMC_PLL4P 0x00009042 197*1b8898ebSYann Gautier #define CLK_FMC_CKPER 0x00009043 198*1b8898ebSYann Gautier 199*1b8898ebSYann Gautier #define CLK_FDCAN_HSE 0x000090C0 200*1b8898ebSYann Gautier #define CLK_FDCAN_PLL3Q 0x000090C1 201*1b8898ebSYann Gautier #define CLK_FDCAN_PLL4Q 0x000090C2 202*1b8898ebSYann Gautier #define CLK_FDCAN_PLL4R 0x000090C3 203*1b8898ebSYann Gautier 204*1b8898ebSYann Gautier #define CLK_SPDIF_PLL4P 0x00009140 205*1b8898ebSYann Gautier #define CLK_SPDIF_PLL3Q 0x00009141 206*1b8898ebSYann Gautier #define CLK_SPDIF_HSI 0x00009142 207*1b8898ebSYann Gautier #define CLK_SPDIF_DISABLED 0x00009143 208*1b8898ebSYann Gautier 209*1b8898ebSYann Gautier #define CLK_CEC_LSE 0x00009180 210*1b8898ebSYann Gautier #define CLK_CEC_LSI 0x00009181 211*1b8898ebSYann Gautier #define CLK_CEC_CSI_DIV122 0x00009182 212*1b8898ebSYann Gautier #define CLK_CEC_DISABLED 0x00009183 213*1b8898ebSYann Gautier 214*1b8898ebSYann Gautier #define CLK_USBPHY_HSE 0x000091C0 215*1b8898ebSYann Gautier #define CLK_USBPHY_PLL4R 0x000091C1 216*1b8898ebSYann Gautier #define CLK_USBPHY_HSE_DIV2 0x000091C2 217*1b8898ebSYann Gautier #define CLK_USBPHY_DISABLED 0x000091C3 218*1b8898ebSYann Gautier 219*1b8898ebSYann Gautier #define CLK_USBO_PLL4R 0x800091C0 220*1b8898ebSYann Gautier #define CLK_USBO_USBPHY 0x800091C1 221*1b8898ebSYann Gautier 222*1b8898ebSYann Gautier #define CLK_RNG1_CSI 0x00000CC0 223*1b8898ebSYann Gautier #define CLK_RNG1_PLL4R 0x00000CC1 224*1b8898ebSYann Gautier #define CLK_RNG1_LSE 0x00000CC2 225*1b8898ebSYann Gautier #define CLK_RNG1_LSI 0x00000CC3 226*1b8898ebSYann Gautier 227*1b8898ebSYann Gautier #define CLK_RNG2_CSI 0x00009200 228*1b8898ebSYann Gautier #define CLK_RNG2_PLL4R 0x00009201 229*1b8898ebSYann Gautier #define CLK_RNG2_LSE 0x00009202 230*1b8898ebSYann Gautier #define CLK_RNG2_LSI 0x00009203 231*1b8898ebSYann Gautier 232*1b8898ebSYann Gautier #define CLK_CKPER_HSI 0x00000D00 233*1b8898ebSYann Gautier #define CLK_CKPER_CSI 0x00000D01 234*1b8898ebSYann Gautier #define CLK_CKPER_HSE 0x00000D02 235*1b8898ebSYann Gautier #define CLK_CKPER_DISABLED 0x00000D03 236*1b8898ebSYann Gautier 237*1b8898ebSYann Gautier #define CLK_STGEN_HSI 0x00000D40 238*1b8898ebSYann Gautier #define CLK_STGEN_HSE 0x00000D41 239*1b8898ebSYann Gautier #define CLK_STGEN_DISABLED 0x00000D43 240*1b8898ebSYann Gautier 241*1b8898ebSYann Gautier #define CLK_DSI_DSIPLL 0x00009240 242*1b8898ebSYann Gautier #define CLK_DSI_PLL4P 0x00009241 243*1b8898ebSYann Gautier 244*1b8898ebSYann Gautier #define CLK_ADC_PLL4R 0x00009280 245*1b8898ebSYann Gautier #define CLK_ADC_CKPER 0x00009281 246*1b8898ebSYann Gautier #define CLK_ADC_PLL3Q 0x00009282 247*1b8898ebSYann Gautier #define CLK_ADC_DISABLED 0x00009283 248*1b8898ebSYann Gautier 249*1b8898ebSYann Gautier #define CLK_LPTIM45_PCLK3 0x000092C0 250*1b8898ebSYann Gautier #define CLK_LPTIM45_PLL4P 0x000092C1 251*1b8898ebSYann Gautier #define CLK_LPTIM45_PLL3Q 0x000092C2 252*1b8898ebSYann Gautier #define CLK_LPTIM45_LSE 0x000092C3 253*1b8898ebSYann Gautier #define CLK_LPTIM45_LSI 0x000092C4 254*1b8898ebSYann Gautier #define CLK_LPTIM45_CKPER 0x000092C5 255*1b8898ebSYann Gautier #define CLK_LPTIM45_DISABLED 0x000092C7 256*1b8898ebSYann Gautier 257*1b8898ebSYann Gautier #define CLK_LPTIM23_PCLK3 0x00009300 258*1b8898ebSYann Gautier #define CLK_LPTIM23_PLL4Q 0x00009301 259*1b8898ebSYann Gautier #define CLK_LPTIM23_CKPER 0x00009302 260*1b8898ebSYann Gautier #define CLK_LPTIM23_LSE 0x00009303 261*1b8898ebSYann Gautier #define CLK_LPTIM23_LSI 0x00009304 262*1b8898ebSYann Gautier #define CLK_LPTIM23_DISABLED 0x00009307 263*1b8898ebSYann Gautier 264*1b8898ebSYann Gautier #define CLK_LPTIM1_PCLK1 0x00009340 265*1b8898ebSYann Gautier #define CLK_LPTIM1_PLL4P 0x00009341 266*1b8898ebSYann Gautier #define CLK_LPTIM1_PLL3Q 0x00009342 267*1b8898ebSYann Gautier #define CLK_LPTIM1_LSE 0x00009343 268*1b8898ebSYann Gautier #define CLK_LPTIM1_LSI 0x00009344 269*1b8898ebSYann Gautier #define CLK_LPTIM1_CKPER 0x00009345 270*1b8898ebSYann Gautier #define CLK_LPTIM1_DISABLED 0x00009347 271*1b8898ebSYann Gautier 272*1b8898ebSYann Gautier /* define for st,pll /csg */ 273*1b8898ebSYann Gautier #define SSCG_MODE_CENTER_SPREAD 0 274*1b8898ebSYann Gautier #define SSCG_MODE_DOWN_SPREAD 1 275*1b8898ebSYann Gautier 276*1b8898ebSYann Gautier /* define for st,drive */ 277*1b8898ebSYann Gautier #define LSEDRV_LOWEST 0 278*1b8898ebSYann Gautier #define LSEDRV_MEDIUM_LOW 1 279*1b8898ebSYann Gautier #define LSEDRV_MEDIUM_HIGH 2 280*1b8898ebSYann Gautier #define LSEDRV_HIGHEST 3 281*1b8898ebSYann Gautier 282*1b8898ebSYann Gautier #endif 283