1*2107d012SThomas Bourgoin// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 2*2107d012SThomas Bourgoin/* 3*2107d012SThomas Bourgoin * Copyright (C) 2025, STMicroelectronics 4*2107d012SThomas Bourgoin */ 5*2107d012SThomas Bourgoin 6*2107d012SThomas Bourgoin&clk_hse { 7*2107d012SThomas Bourgoin clock-frequency = <40000000>; 8*2107d012SThomas Bourgoin}; 9*2107d012SThomas Bourgoin 10*2107d012SThomas Bourgoin&clk_hsi { 11*2107d012SThomas Bourgoin clock-frequency = <64000000>; 12*2107d012SThomas Bourgoin}; 13*2107d012SThomas Bourgoin 14*2107d012SThomas Bourgoin&clk_lse { 15*2107d012SThomas Bourgoin clock-frequency = <32768>; 16*2107d012SThomas Bourgoin}; 17*2107d012SThomas Bourgoin 18*2107d012SThomas Bourgoin&clk_lsi { 19*2107d012SThomas Bourgoin clock-frequency = <32000>; 20*2107d012SThomas Bourgoin}; 21*2107d012SThomas Bourgoin 22*2107d012SThomas Bourgoin&clk_msi { 23*2107d012SThomas Bourgoin clock-frequency = <16000000>; 24*2107d012SThomas Bourgoin}; 25*2107d012SThomas Bourgoin 26*2107d012SThomas Bourgoin&rcc { 27*2107d012SThomas Bourgoin st,busclk = < 28*2107d012SThomas Bourgoin DIV_CFG(DIV_LSMCU, 1) 29*2107d012SThomas Bourgoin DIV_CFG(DIV_APB1, 0) 30*2107d012SThomas Bourgoin DIV_CFG(DIV_APB2, 0) 31*2107d012SThomas Bourgoin DIV_CFG(DIV_APB3, 0) 32*2107d012SThomas Bourgoin DIV_CFG(DIV_APB4, 0) 33*2107d012SThomas Bourgoin DIV_CFG(DIV_APBDBG, 0) 34*2107d012SThomas Bourgoin >; 35*2107d012SThomas Bourgoin 36*2107d012SThomas Bourgoin st,flexgen = < 37*2107d012SThomas Bourgoin FLEXGEN_CFG(0, XBAR_SRC_PLL4, 0, 2) 38*2107d012SThomas Bourgoin FLEXGEN_CFG(1, XBAR_SRC_PLL4, 0, 5) 39*2107d012SThomas Bourgoin FLEXGEN_CFG(2, XBAR_SRC_PLL4, 0, 1) 40*2107d012SThomas Bourgoin FLEXGEN_CFG(3, XBAR_SRC_PLL4, 0, 2) 41*2107d012SThomas Bourgoin FLEXGEN_CFG(4, XBAR_SRC_PLL4, 0, 3) 42*2107d012SThomas Bourgoin FLEXGEN_CFG(5, XBAR_SRC_PLL4, 0, 2) 43*2107d012SThomas Bourgoin FLEXGEN_CFG(6, XBAR_SRC_PLL4, 0, 1) 44*2107d012SThomas Bourgoin FLEXGEN_CFG(7, XBAR_SRC_PLL4, 0, 11) 45*2107d012SThomas Bourgoin FLEXGEN_CFG(8, XBAR_SRC_HSI_KER, 0, 0) 46*2107d012SThomas Bourgoin FLEXGEN_CFG(9, XBAR_SRC_HSI_KER, 0, 0) 47*2107d012SThomas Bourgoin FLEXGEN_CFG(10, XBAR_SRC_PLL7, 0, 16) 48*2107d012SThomas Bourgoin FLEXGEN_CFG(11, XBAR_SRC_PLL4, 0, 5) 49*2107d012SThomas Bourgoin FLEXGEN_CFG(12, XBAR_SRC_PLL4, 0, 11) 50*2107d012SThomas Bourgoin FLEXGEN_CFG(13, XBAR_SRC_PLL4, 0, 11) 51*2107d012SThomas Bourgoin FLEXGEN_CFG(14, XBAR_SRC_PLL4, 0, 11) 52*2107d012SThomas Bourgoin FLEXGEN_CFG(15, XBAR_SRC_PLL4, 0, 11) 53*2107d012SThomas Bourgoin FLEXGEN_CFG(16, XBAR_SRC_PLL4, 0, 23) 54*2107d012SThomas Bourgoin FLEXGEN_CFG(17, XBAR_SRC_PLL5, 0, 3) 55*2107d012SThomas Bourgoin FLEXGEN_CFG(18, XBAR_SRC_PLL5, 0, 3) 56*2107d012SThomas Bourgoin FLEXGEN_CFG(19, XBAR_SRC_HSI_KER, 0, 0) 57*2107d012SThomas Bourgoin FLEXGEN_CFG(20, XBAR_SRC_HSI_KER, 0, 0) 58*2107d012SThomas Bourgoin FLEXGEN_CFG(21, XBAR_SRC_HSI_KER, 0, 0) 59*2107d012SThomas Bourgoin FLEXGEN_CFG(22, XBAR_SRC_HSI_KER, 0, 0) 60*2107d012SThomas Bourgoin FLEXGEN_CFG(23, XBAR_SRC_PLL7, 0, 16) 61*2107d012SThomas Bourgoin FLEXGEN_CFG(24, XBAR_SRC_PLL7, 0, 16) 62*2107d012SThomas Bourgoin FLEXGEN_CFG(25, XBAR_SRC_PLL7, 0, 16) 63*2107d012SThomas Bourgoin FLEXGEN_CFG(26, XBAR_SRC_PLL4, 0, 11) 64*2107d012SThomas Bourgoin FLEXGEN_CFG(27, XBAR_SRC_PLL8, 0, 3) 65*2107d012SThomas Bourgoin FLEXGEN_CFG(28, XBAR_SRC_PLL8, 0, 21) 66*2107d012SThomas Bourgoin FLEXGEN_CFG(29, XBAR_SRC_PLL5, 0, 1) 67*2107d012SThomas Bourgoin FLEXGEN_CFG(30, XBAR_SRC_HSE_KER, 0, 1) 68*2107d012SThomas Bourgoin FLEXGEN_CFG(31, XBAR_SRC_PLL5, 0, 19) 69*2107d012SThomas Bourgoin FLEXGEN_CFG(32, XBAR_SRC_PLL5, 0, 19) 70*2107d012SThomas Bourgoin FLEXGEN_CFG(33, XBAR_SRC_HSE_KER, 0, 0) 71*2107d012SThomas Bourgoin FLEXGEN_CFG(34, XBAR_SRC_PLL4, 0, 59) 72*2107d012SThomas Bourgoin FLEXGEN_CFG(35, XBAR_SRC_HSI_KER, 0, 3) 73*2107d012SThomas Bourgoin FLEXGEN_CFG(36, XBAR_SRC_PLL5, 0, 3) 74*2107d012SThomas Bourgoin FLEXGEN_CFG(37, XBAR_SRC_PLL5, 0, 3) 75*2107d012SThomas Bourgoin FLEXGEN_CFG(38, XBAR_SRC_PLL5, 0, 3) 76*2107d012SThomas Bourgoin FLEXGEN_CFG(39, XBAR_SRC_MSI_KER, 0, 0) 77*2107d012SThomas Bourgoin FLEXGEN_CFG(40, XBAR_SRC_LSE, 0, 0) 78*2107d012SThomas Bourgoin FLEXGEN_CFG(41, XBAR_SRC_LSI, 0, 0) 79*2107d012SThomas Bourgoin FLEXGEN_CFG(42, XBAR_SRC_PLL7, 0, 16) 80*2107d012SThomas Bourgoin FLEXGEN_CFG(43, XBAR_SRC_PLL4, 0, 23) 81*2107d012SThomas Bourgoin FLEXGEN_CFG(44, XBAR_SRC_PLL4, 0, 5) 82*2107d012SThomas Bourgoin FLEXGEN_CFG(45, XBAR_SRC_PLL4, 0, 2) 83*2107d012SThomas Bourgoin FLEXGEN_CFG(46, XBAR_SRC_PLL5, 0, 3) 84*2107d012SThomas Bourgoin FLEXGEN_CFG(47, XBAR_SRC_PLL5, 0, 3) 85*2107d012SThomas Bourgoin FLEXGEN_CFG(48, XBAR_SRC_PLL5, 0, 3) 86*2107d012SThomas Bourgoin FLEXGEN_CFG(49, XBAR_SRC_PLL5, 0, 3) 87*2107d012SThomas Bourgoin FLEXGEN_CFG(51, XBAR_SRC_PLL4, 0, 5) 88*2107d012SThomas Bourgoin FLEXGEN_CFG(52, XBAR_SRC_PLL4, 0, 5) 89*2107d012SThomas Bourgoin FLEXGEN_CFG(53, XBAR_SRC_PLL4, 0, 5) 90*2107d012SThomas Bourgoin FLEXGEN_CFG(54, XBAR_SRC_PLL6, 0, 3) 91*2107d012SThomas Bourgoin FLEXGEN_CFG(55, XBAR_SRC_PLL6, 0, 3) 92*2107d012SThomas Bourgoin FLEXGEN_CFG(56, XBAR_SRC_PLL4, 0, 5) 93*2107d012SThomas Bourgoin FLEXGEN_CFG(57, XBAR_SRC_HSE_KER, 0, 1) 94*2107d012SThomas Bourgoin FLEXGEN_CFG(58, XBAR_SRC_HSE_KER, 0, 1) 95*2107d012SThomas Bourgoin FLEXGEN_CFG(59, XBAR_SRC_PLL4, 0, 1) 96*2107d012SThomas Bourgoin FLEXGEN_CFG(60, XBAR_SRC_PLL4, 0, 23) 97*2107d012SThomas Bourgoin FLEXGEN_CFG(61, XBAR_SRC_PLL4, 0, 7) 98*2107d012SThomas Bourgoin FLEXGEN_CFG(62, XBAR_SRC_PLL4, 0, 7) 99*2107d012SThomas Bourgoin FLEXGEN_CFG(63, XBAR_SRC_PLL4, 0, 2) 100*2107d012SThomas Bourgoin >; 101*2107d012SThomas Bourgoin 102*2107d012SThomas Bourgoin st,kerclk = < 103*2107d012SThomas Bourgoin MUX_CFG(MUX_ADC12, MUX_ADC12_FLEX46) 104*2107d012SThomas Bourgoin MUX_CFG(MUX_USB2PHY1, MUX_USB2PHY1_FLEX57) 105*2107d012SThomas Bourgoin MUX_CFG(MUX_USB2PHY2, MUX_USB2PHY2_FLEX58) 106*2107d012SThomas Bourgoin MUX_CFG(MUX_USB3PCIEPHY, MUX_USB3PCIEPHY_HSE) 107*2107d012SThomas Bourgoin MUX_CFG(MUX_DSIPHY, MUX_DSIPHY_FLEX28) 108*2107d012SThomas Bourgoin MUX_CFG(MUX_DSIBLANE, MUX_DSIBLANE_DSIPHY) 109*2107d012SThomas Bourgoin MUX_CFG(MUX_LVDSPHY, MUX_LVDSPHY_FLEX32) 110*2107d012SThomas Bourgoin MUX_CFG(MUX_DTS, MUX_DTS_HSE) 111*2107d012SThomas Bourgoin MUX_CFG(MUX_RTC, MUX_RTC_LSE) 112*2107d012SThomas Bourgoin MUX_CFG(MUX_D3PER, MUX_D3PER_MSI) 113*2107d012SThomas Bourgoin MCO_CFG(MCO1, MUX_MCO1_FLEX61, MCO_OFF) 114*2107d012SThomas Bourgoin MCO_CFG(MCO2, MUX_MCO2_FLEX62, MCO_OFF) 115*2107d012SThomas Bourgoin >; 116*2107d012SThomas Bourgoin 117*2107d012SThomas Bourgoin pll1: st,pll-1 { 118*2107d012SThomas Bourgoin st,pll = <&pll1_cfg_1200Mhz>; 119*2107d012SThomas Bourgoin 120*2107d012SThomas Bourgoin pll1_cfg_1200Mhz: pll1-cfg-1200Mhz { 121*2107d012SThomas Bourgoin cfg = <30 1 1 1>; 122*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL5, MUXSEL_HSE)>; 123*2107d012SThomas Bourgoin }; 124*2107d012SThomas Bourgoin 125*2107d012SThomas Bourgoin pll1_cfg_1500Mhz: pll1-cfg-1500Mhz { 126*2107d012SThomas Bourgoin cfg = <75 2 1 1>; 127*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL5, MUXSEL_HSE)>; 128*2107d012SThomas Bourgoin }; 129*2107d012SThomas Bourgoin }; 130*2107d012SThomas Bourgoin 131*2107d012SThomas Bourgoin pll2: st,pll-2 { 132*2107d012SThomas Bourgoin st,pll = <&pll2_cfg_600Mhz>; 133*2107d012SThomas Bourgoin 134*2107d012SThomas Bourgoin pll2_cfg_600Mhz: pll2-cfg-600Mhz { 135*2107d012SThomas Bourgoin cfg = <30 1 1 2>; 136*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL6, MUXSEL_HSE)>; 137*2107d012SThomas Bourgoin }; 138*2107d012SThomas Bourgoin }; 139*2107d012SThomas Bourgoin 140*2107d012SThomas Bourgoin pll3: st,pll-3 { 141*2107d012SThomas Bourgoin st,pll = <&pll3_cfg_800Mhz>; 142*2107d012SThomas Bourgoin 143*2107d012SThomas Bourgoin pll3_cfg_800Mhz: pll3-cfg-800Mhz { 144*2107d012SThomas Bourgoin cfg = <20 1 1 1>; 145*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL7, MUXSEL_HSE)>; 146*2107d012SThomas Bourgoin }; 147*2107d012SThomas Bourgoin 148*2107d012SThomas Bourgoin pll3_cfg_900Mhz: pll3-cfg-900Mhz { 149*2107d012SThomas Bourgoin cfg = <45 2 1 1>; 150*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL7, MUXSEL_HSE)>; 151*2107d012SThomas Bourgoin }; 152*2107d012SThomas Bourgoin }; 153*2107d012SThomas Bourgoin 154*2107d012SThomas Bourgoin pll4: st,pll-4 { 155*2107d012SThomas Bourgoin st,pll = <&pll4_cfg_1200Mhz>; 156*2107d012SThomas Bourgoin 157*2107d012SThomas Bourgoin pll4_cfg_1200Mhz: pll4-cfg-1200Mhz { 158*2107d012SThomas Bourgoin cfg = <30 1 1 1>; 159*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL0, MUXSEL_HSE)>; 160*2107d012SThomas Bourgoin }; 161*2107d012SThomas Bourgoin }; 162*2107d012SThomas Bourgoin 163*2107d012SThomas Bourgoin pll5: st,pll-5 { 164*2107d012SThomas Bourgoin st,pll = <&pll5_cfg_532Mhz>; 165*2107d012SThomas Bourgoin 166*2107d012SThomas Bourgoin pll5_cfg_532Mhz: pll5-cfg-532Mhz { 167*2107d012SThomas Bourgoin cfg = <133 5 1 2>; 168*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL1, MUXSEL_HSE)>; 169*2107d012SThomas Bourgoin }; 170*2107d012SThomas Bourgoin }; 171*2107d012SThomas Bourgoin 172*2107d012SThomas Bourgoin pll6: st,pll-6 { 173*2107d012SThomas Bourgoin st,pll = <&pll6_cfg_500Mhz>; 174*2107d012SThomas Bourgoin 175*2107d012SThomas Bourgoin pll6_cfg_500Mhz: pll6-cfg-500Mhz { 176*2107d012SThomas Bourgoin cfg = <25 1 1 2>; 177*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL2, MUXSEL_HSE)>; 178*2107d012SThomas Bourgoin }; 179*2107d012SThomas Bourgoin }; 180*2107d012SThomas Bourgoin 181*2107d012SThomas Bourgoin pll7: st,pll-7 { 182*2107d012SThomas Bourgoin st,pll = <&pll7_cfg_835_51172Mhz>; 183*2107d012SThomas Bourgoin 184*2107d012SThomas Bourgoin pll7_cfg_835_51172Mhz: pll7-cfg-835-51172Mhz { 185*2107d012SThomas Bourgoin cfg = <167 4 1 2>; 186*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL3, MUXSEL_HSE)>; 187*2107d012SThomas Bourgoin frac = < 0x1A3337 >; 188*2107d012SThomas Bourgoin }; 189*2107d012SThomas Bourgoin }; 190*2107d012SThomas Bourgoin 191*2107d012SThomas Bourgoin pll8: st,pll-8 { 192*2107d012SThomas Bourgoin st,pll = <&pll8_cfg_594Mhz>; 193*2107d012SThomas Bourgoin 194*2107d012SThomas Bourgoin pll8_cfg_594Mhz: pll8-cfg-594Mhz { 195*2107d012SThomas Bourgoin cfg = <297 5 1 4>; 196*2107d012SThomas Bourgoin src = <MUX_CFG(MUX_MUXSEL4, MUXSEL_HSE)>; 197*2107d012SThomas Bourgoin }; 198*2107d012SThomas Bourgoin }; 199*2107d012SThomas Bourgoin}; 200*2107d012SThomas Bourgoin 201