1*d8faf33fSGabriel Fernandez// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 2*d8faf33fSGabriel Fernandez/* 3*d8faf33fSGabriel Fernandez * Copyright (C) 2025, STMicroelectronics - All Rights Reserved 4*d8faf33fSGabriel Fernandez */ 5*d8faf33fSGabriel Fernandez 6*d8faf33fSGabriel Fernandez/* 7*d8faf33fSGabriel Fernandez * STM32MP21 Clock tree device tree configuration 8*d8faf33fSGabriel Fernandez */ 9*d8faf33fSGabriel Fernandez 10*d8faf33fSGabriel Fernandez&clk_hse { 11*d8faf33fSGabriel Fernandez clock-frequency = <40000000>; 12*d8faf33fSGabriel Fernandez}; 13*d8faf33fSGabriel Fernandez 14*d8faf33fSGabriel Fernandez&clk_hsi { 15*d8faf33fSGabriel Fernandez clock-frequency = <64000000>; 16*d8faf33fSGabriel Fernandez}; 17*d8faf33fSGabriel Fernandez 18*d8faf33fSGabriel Fernandez&clk_lse { 19*d8faf33fSGabriel Fernandez clock-frequency = <32768>; 20*d8faf33fSGabriel Fernandez}; 21*d8faf33fSGabriel Fernandez 22*d8faf33fSGabriel Fernandez&clk_lsi { 23*d8faf33fSGabriel Fernandez clock-frequency = <32000>; 24*d8faf33fSGabriel Fernandez}; 25*d8faf33fSGabriel Fernandez 26*d8faf33fSGabriel Fernandez&clk_msi { 27*d8faf33fSGabriel Fernandez clock-frequency = <16000000>; 28*d8faf33fSGabriel Fernandez}; 29*d8faf33fSGabriel Fernandez 30*d8faf33fSGabriel Fernandez&rcc { 31*d8faf33fSGabriel Fernandez st,busclk = < 32*d8faf33fSGabriel Fernandez DIV_CFG(DIV_LSMCU, 1) 33*d8faf33fSGabriel Fernandez DIV_CFG(DIV_APB1, 0) 34*d8faf33fSGabriel Fernandez DIV_CFG(DIV_APB2, 0) 35*d8faf33fSGabriel Fernandez DIV_CFG(DIV_APB3, 0) 36*d8faf33fSGabriel Fernandez DIV_CFG(DIV_APB4, 0) 37*d8faf33fSGabriel Fernandez DIV_CFG(DIV_APB5, 0) 38*d8faf33fSGabriel Fernandez DIV_CFG(DIV_APBDBG, 0) 39*d8faf33fSGabriel Fernandez >; 40*d8faf33fSGabriel Fernandez 41*d8faf33fSGabriel Fernandez st,flexgen = < 42*d8faf33fSGabriel Fernandez FLEXGEN_CFG(0, XBAR_SRC_PLL4, 0, 3) 43*d8faf33fSGabriel Fernandez FLEXGEN_CFG(1, XBAR_SRC_PLL4, 0, 5) 44*d8faf33fSGabriel Fernandez FLEXGEN_CFG(2, XBAR_SRC_PLL4, 0, 1) 45*d8faf33fSGabriel Fernandez FLEXGEN_CFG(3, XBAR_SRC_PLL4, 0, 2) 46*d8faf33fSGabriel Fernandez FLEXGEN_CFG(4, XBAR_SRC_PLL4, 0, 3) 47*d8faf33fSGabriel Fernandez FLEXGEN_CFG(5, XBAR_SRC_PLL4, 0, 2) 48*d8faf33fSGabriel Fernandez FLEXGEN_CFG(6, XBAR_SRC_PLL4, 0, 1) 49*d8faf33fSGabriel Fernandez FLEXGEN_CFG(7, XBAR_SRC_PLL4, 0, 11) 50*d8faf33fSGabriel Fernandez FLEXGEN_CFG(8, XBAR_SRC_HSI_KER, 0, 0) 51*d8faf33fSGabriel Fernandez FLEXGEN_CFG(9, XBAR_SRC_HSI_KER, 0, 0) 52*d8faf33fSGabriel Fernandez FLEXGEN_CFG(10, XBAR_SRC_PLL7, 0, 16) 53*d8faf33fSGabriel Fernandez FLEXGEN_CFG(11, XBAR_SRC_PLL7, 0, 16) 54*d8faf33fSGabriel Fernandez FLEXGEN_CFG(12, XBAR_SRC_PLL4, 0, 5) 55*d8faf33fSGabriel Fernandez FLEXGEN_CFG(13, XBAR_SRC_PLL4, 0, 11) 56*d8faf33fSGabriel Fernandez FLEXGEN_CFG(14, XBAR_SRC_PLL4, 0, 11) 57*d8faf33fSGabriel Fernandez FLEXGEN_CFG(16, XBAR_SRC_PLL7, 0, 16) 58*d8faf33fSGabriel Fernandez FLEXGEN_CFG(17, XBAR_SRC_PLL5, 0, 3) 59*d8faf33fSGabriel Fernandez FLEXGEN_CFG(18, XBAR_SRC_HSI_KER, 0, 0) 60*d8faf33fSGabriel Fernandez FLEXGEN_CFG(19, XBAR_SRC_HSI_KER, 0, 0) 61*d8faf33fSGabriel Fernandez FLEXGEN_CFG(20, XBAR_SRC_HSI_KER, 0, 0) 62*d8faf33fSGabriel Fernandez FLEXGEN_CFG(21, XBAR_SRC_PLL7, 0, 16) 63*d8faf33fSGabriel Fernandez FLEXGEN_CFG(22, XBAR_SRC_PLL7, 0, 16) 64*d8faf33fSGabriel Fernandez FLEXGEN_CFG(23, XBAR_SRC_PLL7, 0, 16) 65*d8faf33fSGabriel Fernandez FLEXGEN_CFG(24, XBAR_SRC_PLL7, 0, 16) 66*d8faf33fSGabriel Fernandez FLEXGEN_CFG(25, XBAR_SRC_PLL7, 0, 16) 67*d8faf33fSGabriel Fernandez FLEXGEN_CFG(26, XBAR_SRC_PLL4, 0, 11) 68*d8faf33fSGabriel Fernandez FLEXGEN_CFG(27, XBAR_SRC_PLL8, 0, 3) 69*d8faf33fSGabriel Fernandez FLEXGEN_CFG(29, XBAR_SRC_PLL5, 0, 1) 70*d8faf33fSGabriel Fernandez FLEXGEN_CFG(30, XBAR_SRC_HSE_KER, 0, 1) 71*d8faf33fSGabriel Fernandez FLEXGEN_CFG(31, XBAR_SRC_PLL5, 0, 19) 72*d8faf33fSGabriel Fernandez FLEXGEN_CFG(33, XBAR_SRC_HSE_KER, 0, 0) 73*d8faf33fSGabriel Fernandez FLEXGEN_CFG(36, XBAR_SRC_PLL4, 0, 11) 74*d8faf33fSGabriel Fernandez FLEXGEN_CFG(37, XBAR_SRC_PLL5, 0, 3) 75*d8faf33fSGabriel Fernandez FLEXGEN_CFG(38, XBAR_SRC_PLL4, 0, 11) 76*d8faf33fSGabriel Fernandez FLEXGEN_CFG(39, XBAR_SRC_MSI_KER, 0, 0) 77*d8faf33fSGabriel Fernandez FLEXGEN_CFG(40, XBAR_SRC_LSE, 0, 0) 78*d8faf33fSGabriel Fernandez FLEXGEN_CFG(41, XBAR_SRC_PLL4, 0, 11) 79*d8faf33fSGabriel Fernandez FLEXGEN_CFG(42, XBAR_SRC_PLL4, 0, 11) 80*d8faf33fSGabriel Fernandez FLEXGEN_CFG(43, XBAR_SRC_PLL4, 0, 23) 81*d8faf33fSGabriel Fernandez FLEXGEN_CFG(44, XBAR_SRC_PLL4, 0, 5) 82*d8faf33fSGabriel Fernandez FLEXGEN_CFG(45, XBAR_SRC_PLL4, 0, 2) 83*d8faf33fSGabriel Fernandez FLEXGEN_CFG(46, XBAR_SRC_PLL5, 0, 3) 84*d8faf33fSGabriel Fernandez FLEXGEN_CFG(47, XBAR_SRC_PLL5, 0, 3) 85*d8faf33fSGabriel Fernandez FLEXGEN_CFG(48, XBAR_SRC_PLL5, 0, 3) 86*d8faf33fSGabriel Fernandez FLEXGEN_CFG(51, XBAR_SRC_PLL4, 0, 5) 87*d8faf33fSGabriel Fernandez FLEXGEN_CFG(52, XBAR_SRC_PLL4, 0, 5) 88*d8faf33fSGabriel Fernandez FLEXGEN_CFG(53, XBAR_SRC_PLL4, 0, 5) 89*d8faf33fSGabriel Fernandez FLEXGEN_CFG(54, XBAR_SRC_PLL6, 0, 9) 90*d8faf33fSGabriel Fernandez FLEXGEN_CFG(55, XBAR_SRC_PLL6, 0, 3) 91*d8faf33fSGabriel Fernandez FLEXGEN_CFG(56, XBAR_SRC_PLL4, 0, 5) 92*d8faf33fSGabriel Fernandez FLEXGEN_CFG(57, XBAR_SRC_HSE_KER, 0, 1) 93*d8faf33fSGabriel Fernandez FLEXGEN_CFG(58, XBAR_SRC_HSE_KER, 0, 1) 94*d8faf33fSGabriel Fernandez FLEXGEN_CFG(61, XBAR_SRC_PLL4, 0, 7) 95*d8faf33fSGabriel Fernandez FLEXGEN_CFG(62, XBAR_SRC_PLL4, 0, 7) 96*d8faf33fSGabriel Fernandez FLEXGEN_CFG(63, XBAR_SRC_PLL4, 0, 2) 97*d8faf33fSGabriel Fernandez >; 98*d8faf33fSGabriel Fernandez 99*d8faf33fSGabriel Fernandez st,kerclk = < 100*d8faf33fSGabriel Fernandez MUX_CFG(MUX_ADC1, MUX_ADC1_FLEX46) 101*d8faf33fSGabriel Fernandez MUX_CFG(MUX_ADC2, MUX_ADC2_FLEX47) 102*d8faf33fSGabriel Fernandez MUX_CFG(MUX_USB2PHY1, MUX_USB2PHY1_FLEX57) 103*d8faf33fSGabriel Fernandez MUX_CFG(MUX_USB2PHY2, MUX_USB2PHY2_FLEX58) 104*d8faf33fSGabriel Fernandez MUX_CFG(MUX_DTS, MUX_DTS_HSE) 105*d8faf33fSGabriel Fernandez MUX_CFG(MUX_RTC, MUX_RTC_LSE) 106*d8faf33fSGabriel Fernandez MCO_CFG(MCO1, MUX_MCO1_FLEX61, MCO_OFF) 107*d8faf33fSGabriel Fernandez MCO_CFG(MCO2, MUX_MCO2_FLEX62, MCO_OFF) 108*d8faf33fSGabriel Fernandez >; 109*d8faf33fSGabriel Fernandez 110*d8faf33fSGabriel Fernandez pll1: st,pll-1 { 111*d8faf33fSGabriel Fernandez st,pll = <&pll1_cfg_1200MHz>; 112*d8faf33fSGabriel Fernandez 113*d8faf33fSGabriel Fernandez pll1_cfg_1200MHz: pll1-cfg-1200MHz { 114*d8faf33fSGabriel Fernandez cfg = <30 1 1 1>; 115*d8faf33fSGabriel Fernandez src = <MUX_CFG(MUX_MUXSEL5, MUXSEL_HSE)>; 116*d8faf33fSGabriel Fernandez }; 117*d8faf33fSGabriel Fernandez 118*d8faf33fSGabriel Fernandez pll1_cfg_1500MHz: pll1-cfg-1500MHz { 119*d8faf33fSGabriel Fernandez cfg = <75 2 1 1>; 120*d8faf33fSGabriel Fernandez src = <MUX_CFG(MUX_MUXSEL5, MUXSEL_HSE)>; 121*d8faf33fSGabriel Fernandez }; 122*d8faf33fSGabriel Fernandez }; 123*d8faf33fSGabriel Fernandez 124*d8faf33fSGabriel Fernandez pll2: st,pll-2 { 125*d8faf33fSGabriel Fernandez st,pll = <&pll2_cfg_400MHz>; 126*d8faf33fSGabriel Fernandez 127*d8faf33fSGabriel Fernandez pll2_cfg_400MHz: pll2-cfg-400MHz { 128*d8faf33fSGabriel Fernandez cfg = <20 1 1 2>; 129*d8faf33fSGabriel Fernandez src = <MUX_CFG(MUX_MUXSEL6, MUXSEL_HSE)>; 130*d8faf33fSGabriel Fernandez }; 131*d8faf33fSGabriel Fernandez }; 132*d8faf33fSGabriel Fernandez 133*d8faf33fSGabriel Fernandez pll4: st,pll-4 { 134*d8faf33fSGabriel Fernandez st,pll = <&pll4_cfg_1200MHz>; 135*d8faf33fSGabriel Fernandez 136*d8faf33fSGabriel Fernandez pll4_cfg_1200MHz: pll4-cfg-1200MHz { 137*d8faf33fSGabriel Fernandez cfg = <30 1 1 1>; 138*d8faf33fSGabriel Fernandez src = <MUX_CFG(MUX_MUXSEL0, MUXSEL_HSE)>; 139*d8faf33fSGabriel Fernandez }; 140*d8faf33fSGabriel Fernandez }; 141*d8faf33fSGabriel Fernandez 142*d8faf33fSGabriel Fernandez pll5: st,pll-5 { 143*d8faf33fSGabriel Fernandez st,pll = <&pll5_cfg_532MHz>; 144*d8faf33fSGabriel Fernandez 145*d8faf33fSGabriel Fernandez pll5_cfg_532MHz: pll5-cfg-532MHz { 146*d8faf33fSGabriel Fernandez cfg = <133 5 1 2>; 147*d8faf33fSGabriel Fernandez src = <MUX_CFG(MUX_MUXSEL1, MUXSEL_HSE)>; 148*d8faf33fSGabriel Fernandez }; 149*d8faf33fSGabriel Fernandez }; 150*d8faf33fSGabriel Fernandez 151*d8faf33fSGabriel Fernandez pll6: st,pll-6 { 152*d8faf33fSGabriel Fernandez st,pll = <&pll6_cfg_500MHz>; 153*d8faf33fSGabriel Fernandez 154*d8faf33fSGabriel Fernandez pll6_cfg_500MHz: pll6-cfg-500MHz { 155*d8faf33fSGabriel Fernandez cfg = <25 1 1 2>; 156*d8faf33fSGabriel Fernandez src = <MUX_CFG(MUX_MUXSEL2, MUXSEL_HSE)>; 157*d8faf33fSGabriel Fernandez }; 158*d8faf33fSGabriel Fernandez }; 159*d8faf33fSGabriel Fernandez 160*d8faf33fSGabriel Fernandez pll7: st,pll-7 { 161*d8faf33fSGabriel Fernandez st,pll = <&pll7_cfg_835_51172MHz>; 162*d8faf33fSGabriel Fernandez 163*d8faf33fSGabriel Fernandez pll7_cfg_835_51172MHz: pll7-cfg-835-51172MHz { 164*d8faf33fSGabriel Fernandez cfg = <167 4 1 2>; 165*d8faf33fSGabriel Fernandez src = <MUX_CFG(MUX_MUXSEL3, MUXSEL_HSE)>; 166*d8faf33fSGabriel Fernandez frac = < 0x1A3337 >; 167*d8faf33fSGabriel Fernandez }; 168*d8faf33fSGabriel Fernandez }; 169*d8faf33fSGabriel Fernandez 170*d8faf33fSGabriel Fernandez pll8: st,pll-8 { 171*d8faf33fSGabriel Fernandez st,pll = <&pll8_cfg_594MHz>; 172*d8faf33fSGabriel Fernandez 173*d8faf33fSGabriel Fernandez pll8_cfg_594MHz: pll8-cfg-594MHz { 174*d8faf33fSGabriel Fernandez cfg = <297 5 1 4>; 175*d8faf33fSGabriel Fernandez src = <MUX_CFG(MUX_MUXSEL4, MUXSEL_HSE)>; 176*d8faf33fSGabriel Fernandez }; 177*d8faf33fSGabriel Fernandez }; 178*d8faf33fSGabriel Fernandez}; 179