1*2b7f7b75SYann Gautier// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2*2b7f7b75SYann Gautier/* 3*2b7f7b75SYann Gautier * Copyright (C) STMicroelectronics 2022 - All Rights Reserved 4*2b7f7b75SYann Gautier * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics. 5*2b7f7b75SYann Gautier */ 6*2b7f7b75SYann Gautier 7*2b7f7b75SYann Gautier/dts-v1/; 8*2b7f7b75SYann Gautier 9*2b7f7b75SYann Gautier#include <dt-bindings/clock/stm32mp13-clksrc.h> 10*2b7f7b75SYann Gautier#include "stm32mp135.dtsi" 11*2b7f7b75SYann Gautier#include "stm32mp13xf.dtsi" 12*2b7f7b75SYann Gautier#include "stm32mp13-ddr3-1x4Gb-1066-binF.dtsi" 13*2b7f7b75SYann Gautier#include "stm32mp13-pinctrl.dtsi" 14*2b7f7b75SYann Gautier 15*2b7f7b75SYann Gautier/ { 16*2b7f7b75SYann Gautier model = "STMicroelectronics STM32MP135F-DK Discovery Board"; 17*2b7f7b75SYann Gautier compatible = "st,stm32mp135f-dk", "st,stm32mp135"; 18*2b7f7b75SYann Gautier 19*2b7f7b75SYann Gautier aliases { 20*2b7f7b75SYann Gautier serial0 = &uart4; 21*2b7f7b75SYann Gautier serial1 = &usart1; 22*2b7f7b75SYann Gautier serial2 = &uart8; 23*2b7f7b75SYann Gautier serial3 = &usart2; 24*2b7f7b75SYann Gautier }; 25*2b7f7b75SYann Gautier 26*2b7f7b75SYann Gautier chosen { 27*2b7f7b75SYann Gautier stdout-path = "serial0:115200n8"; 28*2b7f7b75SYann Gautier }; 29*2b7f7b75SYann Gautier 30*2b7f7b75SYann Gautier memory@c0000000 { 31*2b7f7b75SYann Gautier device_type = "memory"; 32*2b7f7b75SYann Gautier reg = <0xc0000000 0x20000000>; 33*2b7f7b75SYann Gautier }; 34*2b7f7b75SYann Gautier 35*2b7f7b75SYann Gautier vin: vin { 36*2b7f7b75SYann Gautier compatible = "regulator-fixed"; 37*2b7f7b75SYann Gautier regulator-name = "vin"; 38*2b7f7b75SYann Gautier regulator-min-microvolt = <5000000>; 39*2b7f7b75SYann Gautier regulator-max-microvolt = <5000000>; 40*2b7f7b75SYann Gautier regulator-always-on; 41*2b7f7b75SYann Gautier }; 42*2b7f7b75SYann Gautier 43*2b7f7b75SYann Gautier v3v3_ao: v3v3_ao { 44*2b7f7b75SYann Gautier compatible = "regulator-fixed"; 45*2b7f7b75SYann Gautier regulator-name = "v3v3_ao"; 46*2b7f7b75SYann Gautier regulator-min-microvolt = <3300000>; 47*2b7f7b75SYann Gautier regulator-max-microvolt = <3300000>; 48*2b7f7b75SYann Gautier regulator-always-on; 49*2b7f7b75SYann Gautier }; 50*2b7f7b75SYann Gautier}; 51*2b7f7b75SYann Gautier 52*2b7f7b75SYann Gautier&bsec { 53*2b7f7b75SYann Gautier board_id: board_id@f0 { 54*2b7f7b75SYann Gautier reg = <0xf0 0x4>; 55*2b7f7b75SYann Gautier st,non-secure-otp; 56*2b7f7b75SYann Gautier }; 57*2b7f7b75SYann Gautier}; 58*2b7f7b75SYann Gautier 59*2b7f7b75SYann Gautier&cpu0 { 60*2b7f7b75SYann Gautier cpu-supply = <&vddcpu>; 61*2b7f7b75SYann Gautier}; 62*2b7f7b75SYann Gautier 63*2b7f7b75SYann Gautier&hash { 64*2b7f7b75SYann Gautier status = "okay"; 65*2b7f7b75SYann Gautier}; 66*2b7f7b75SYann Gautier 67*2b7f7b75SYann Gautier&i2c4 { 68*2b7f7b75SYann Gautier pinctrl-names = "default"; 69*2b7f7b75SYann Gautier pinctrl-0 = <&i2c4_pins_a>; 70*2b7f7b75SYann Gautier i2c-scl-rising-time-ns = <185>; 71*2b7f7b75SYann Gautier i2c-scl-falling-time-ns = <20>; 72*2b7f7b75SYann Gautier clock-frequency = <400000>; 73*2b7f7b75SYann Gautier status = "disabled"; 74*2b7f7b75SYann Gautier secure-status = "okay"; 75*2b7f7b75SYann Gautier 76*2b7f7b75SYann Gautier pmic: stpmic@33 { 77*2b7f7b75SYann Gautier compatible = "st,stpmic1"; 78*2b7f7b75SYann Gautier reg = <0x33>; 79*2b7f7b75SYann Gautier 80*2b7f7b75SYann Gautier status = "disabled"; 81*2b7f7b75SYann Gautier secure-status = "okay"; 82*2b7f7b75SYann Gautier 83*2b7f7b75SYann Gautier regulators { 84*2b7f7b75SYann Gautier compatible = "st,stpmic1-regulators"; 85*2b7f7b75SYann Gautier buck1-supply = <&vin>; 86*2b7f7b75SYann Gautier buck2-supply = <&vin>; 87*2b7f7b75SYann Gautier buck3-supply = <&vin>; 88*2b7f7b75SYann Gautier buck4-supply = <&vin>; 89*2b7f7b75SYann Gautier ldo1-supply = <&vin>; 90*2b7f7b75SYann Gautier ldo4-supply = <&vin>; 91*2b7f7b75SYann Gautier ldo5-supply = <&vin>; 92*2b7f7b75SYann Gautier ldo6-supply = <&vin>; 93*2b7f7b75SYann Gautier vref_ddr-supply = <&vin>; 94*2b7f7b75SYann Gautier pwr_sw1-supply = <&bst_out>; 95*2b7f7b75SYann Gautier pwr_sw2-supply = <&v3v3_ao>; 96*2b7f7b75SYann Gautier 97*2b7f7b75SYann Gautier vddcpu: buck1 { 98*2b7f7b75SYann Gautier regulator-name = "vddcpu"; 99*2b7f7b75SYann Gautier regulator-min-microvolt = <1250000>; 100*2b7f7b75SYann Gautier regulator-max-microvolt = <1250000>; 101*2b7f7b75SYann Gautier regulator-always-on; 102*2b7f7b75SYann Gautier regulator-over-current-protection; 103*2b7f7b75SYann Gautier }; 104*2b7f7b75SYann Gautier 105*2b7f7b75SYann Gautier vdd_ddr: buck2 { 106*2b7f7b75SYann Gautier regulator-name = "vdd_ddr"; 107*2b7f7b75SYann Gautier regulator-min-microvolt = <1350000>; 108*2b7f7b75SYann Gautier regulator-max-microvolt = <1350000>; 109*2b7f7b75SYann Gautier regulator-always-on; 110*2b7f7b75SYann Gautier regulator-over-current-protection; 111*2b7f7b75SYann Gautier }; 112*2b7f7b75SYann Gautier 113*2b7f7b75SYann Gautier vdd: buck3 { 114*2b7f7b75SYann Gautier regulator-name = "vdd"; 115*2b7f7b75SYann Gautier regulator-min-microvolt = <3300000>; 116*2b7f7b75SYann Gautier regulator-max-microvolt = <3300000>; 117*2b7f7b75SYann Gautier regulator-always-on; 118*2b7f7b75SYann Gautier st,mask-reset; 119*2b7f7b75SYann Gautier regulator-over-current-protection; 120*2b7f7b75SYann Gautier }; 121*2b7f7b75SYann Gautier 122*2b7f7b75SYann Gautier vddcore: buck4 { 123*2b7f7b75SYann Gautier regulator-name = "vddcore"; 124*2b7f7b75SYann Gautier regulator-min-microvolt = <1250000>; 125*2b7f7b75SYann Gautier regulator-max-microvolt = <1250000>; 126*2b7f7b75SYann Gautier regulator-always-on; 127*2b7f7b75SYann Gautier regulator-over-current-protection; 128*2b7f7b75SYann Gautier }; 129*2b7f7b75SYann Gautier 130*2b7f7b75SYann Gautier vdd_adc: ldo1 { 131*2b7f7b75SYann Gautier regulator-name = "vdd_adc"; 132*2b7f7b75SYann Gautier regulator-min-microvolt = <3300000>; 133*2b7f7b75SYann Gautier regulator-max-microvolt = <3300000>; 134*2b7f7b75SYann Gautier }; 135*2b7f7b75SYann Gautier 136*2b7f7b75SYann Gautier vdd_usb: ldo4 { 137*2b7f7b75SYann Gautier regulator-name = "vdd_usb"; 138*2b7f7b75SYann Gautier regulator-min-microvolt = <3300000>; 139*2b7f7b75SYann Gautier regulator-max-microvolt = <3300000>; 140*2b7f7b75SYann Gautier }; 141*2b7f7b75SYann Gautier 142*2b7f7b75SYann Gautier vdd_sd: ldo5 { 143*2b7f7b75SYann Gautier regulator-name = "vdd_sd"; 144*2b7f7b75SYann Gautier regulator-min-microvolt = <3300000>; 145*2b7f7b75SYann Gautier regulator-max-microvolt = <3300000>; 146*2b7f7b75SYann Gautier regulator-boot-on; 147*2b7f7b75SYann Gautier }; 148*2b7f7b75SYann Gautier 149*2b7f7b75SYann Gautier v1v8_periph: ldo6 { 150*2b7f7b75SYann Gautier regulator-name = "v1v8_periph"; 151*2b7f7b75SYann Gautier regulator-min-microvolt = <1800000>; 152*2b7f7b75SYann Gautier regulator-max-microvolt = <1800000>; 153*2b7f7b75SYann Gautier }; 154*2b7f7b75SYann Gautier 155*2b7f7b75SYann Gautier vref_ddr: vref_ddr { 156*2b7f7b75SYann Gautier regulator-name = "vref_ddr"; 157*2b7f7b75SYann Gautier regulator-always-on; 158*2b7f7b75SYann Gautier }; 159*2b7f7b75SYann Gautier 160*2b7f7b75SYann Gautier bst_out: boost { 161*2b7f7b75SYann Gautier regulator-name = "bst_out"; 162*2b7f7b75SYann Gautier }; 163*2b7f7b75SYann Gautier 164*2b7f7b75SYann Gautier v3v3_sw: pwr_sw2 { 165*2b7f7b75SYann Gautier regulator-name = "v3v3_sw"; 166*2b7f7b75SYann Gautier regulator-active-discharge = <1>; 167*2b7f7b75SYann Gautier regulator-always-on; 168*2b7f7b75SYann Gautier }; 169*2b7f7b75SYann Gautier }; 170*2b7f7b75SYann Gautier }; 171*2b7f7b75SYann Gautier}; 172*2b7f7b75SYann Gautier 173*2b7f7b75SYann Gautier&iwdg2 { 174*2b7f7b75SYann Gautier timeout-sec = <32>; 175*2b7f7b75SYann Gautier status = "okay"; 176*2b7f7b75SYann Gautier}; 177*2b7f7b75SYann Gautier 178*2b7f7b75SYann Gautier&nvmem_layout { 179*2b7f7b75SYann Gautier nvmem-cells = <&cfg0_otp>, 180*2b7f7b75SYann Gautier <&part_number_otp>, 181*2b7f7b75SYann Gautier <&monotonic_otp>, 182*2b7f7b75SYann Gautier <&nand_otp>, 183*2b7f7b75SYann Gautier <&nand2_otp>, 184*2b7f7b75SYann Gautier <&uid_otp>, 185*2b7f7b75SYann Gautier <&hw2_otp>, 186*2b7f7b75SYann Gautier <&pkh_otp>, 187*2b7f7b75SYann Gautier <&board_id>; 188*2b7f7b75SYann Gautier 189*2b7f7b75SYann Gautier nvmem-cell-names = "cfg0_otp", 190*2b7f7b75SYann Gautier "part_number_otp", 191*2b7f7b75SYann Gautier "monotonic_otp", 192*2b7f7b75SYann Gautier "nand_otp", 193*2b7f7b75SYann Gautier "nand2_otp", 194*2b7f7b75SYann Gautier "uid_otp", 195*2b7f7b75SYann Gautier "hw2_otp", 196*2b7f7b75SYann Gautier "pkh_otp", 197*2b7f7b75SYann Gautier "board_id"; 198*2b7f7b75SYann Gautier}; 199*2b7f7b75SYann Gautier 200*2b7f7b75SYann Gautier&pka { 201*2b7f7b75SYann Gautier secure-status = "okay"; 202*2b7f7b75SYann Gautier}; 203*2b7f7b75SYann Gautier 204*2b7f7b75SYann Gautier&pwr_regulators { 205*2b7f7b75SYann Gautier vdd-supply = <&vdd>; 206*2b7f7b75SYann Gautier vdd_3v3_usbfs-supply = <&vdd_usb>; 207*2b7f7b75SYann Gautier}; 208*2b7f7b75SYann Gautier 209*2b7f7b75SYann Gautier&rcc { 210*2b7f7b75SYann Gautier st,clksrc = < 211*2b7f7b75SYann Gautier CLK_MPU_PLL1P 212*2b7f7b75SYann Gautier CLK_AXI_PLL2P 213*2b7f7b75SYann Gautier CLK_MLAHBS_PLL3 214*2b7f7b75SYann Gautier CLK_CKPER_HSE 215*2b7f7b75SYann Gautier CLK_RTC_LSE 216*2b7f7b75SYann Gautier CLK_SDMMC1_PLL4P 217*2b7f7b75SYann Gautier CLK_SDMMC2_PLL4P 218*2b7f7b75SYann Gautier CLK_STGEN_HSE 219*2b7f7b75SYann Gautier CLK_USBPHY_HSE 220*2b7f7b75SYann Gautier CLK_I2C4_HSI 221*2b7f7b75SYann Gautier CLK_USBO_USBPHY 222*2b7f7b75SYann Gautier CLK_I2C12_HSI 223*2b7f7b75SYann Gautier CLK_UART2_HSI 224*2b7f7b75SYann Gautier CLK_UART4_HSI 225*2b7f7b75SYann Gautier CLK_SAES_AXI 226*2b7f7b75SYann Gautier >; 227*2b7f7b75SYann Gautier 228*2b7f7b75SYann Gautier st,clkdiv = < 229*2b7f7b75SYann Gautier DIV(DIV_AXI, 0) 230*2b7f7b75SYann Gautier DIV(DIV_MLAHB, 0) 231*2b7f7b75SYann Gautier DIV(DIV_APB1, 1) 232*2b7f7b75SYann Gautier DIV(DIV_APB2, 1) 233*2b7f7b75SYann Gautier DIV(DIV_APB3, 1) 234*2b7f7b75SYann Gautier DIV(DIV_APB4, 1) 235*2b7f7b75SYann Gautier DIV(DIV_APB5, 2) 236*2b7f7b75SYann Gautier DIV(DIV_APB6, 1) 237*2b7f7b75SYann Gautier DIV(DIV_RTC, 0) 238*2b7f7b75SYann Gautier >; 239*2b7f7b75SYann Gautier 240*2b7f7b75SYann Gautier st,pll_vco { 241*2b7f7b75SYann Gautier pll1_vco_1300Mhz: pll1-vco-1300Mhz { 242*2b7f7b75SYann Gautier src = < CLK_PLL12_HSE >; 243*2b7f7b75SYann Gautier divmn = < 2 80 >; 244*2b7f7b75SYann Gautier frac = < 0x800 >; 245*2b7f7b75SYann Gautier }; 246*2b7f7b75SYann Gautier 247*2b7f7b75SYann Gautier pll2_vco_1066Mhz: pll2-vco-1066Mhz { 248*2b7f7b75SYann Gautier src = < CLK_PLL12_HSE >; 249*2b7f7b75SYann Gautier divmn = < 2 65 >; 250*2b7f7b75SYann Gautier frac = < 0x1400 >; 251*2b7f7b75SYann Gautier }; 252*2b7f7b75SYann Gautier 253*2b7f7b75SYann Gautier pll3_vco_417_8Mhz: pll2-vco-417_8Mhz { 254*2b7f7b75SYann Gautier src = < CLK_PLL3_HSE >; 255*2b7f7b75SYann Gautier divmn = < 1 33 >; 256*2b7f7b75SYann Gautier frac = < 0x1a04 >; 257*2b7f7b75SYann Gautier }; 258*2b7f7b75SYann Gautier 259*2b7f7b75SYann Gautier pll4_vco_600Mhz: pll2-vco-600Mhz { 260*2b7f7b75SYann Gautier src = < CLK_PLL4_HSE >; 261*2b7f7b75SYann Gautier divmn = < 1 49 >; 262*2b7f7b75SYann Gautier }; 263*2b7f7b75SYann Gautier }; 264*2b7f7b75SYann Gautier 265*2b7f7b75SYann Gautier /* VCO = 1300.0 MHz => P = 650 (CPU) */ 266*2b7f7b75SYann Gautier pll1:st,pll@0 { 267*2b7f7b75SYann Gautier compatible = "st,stm32mp1-pll"; 268*2b7f7b75SYann Gautier reg = <0>; 269*2b7f7b75SYann Gautier 270*2b7f7b75SYann Gautier st,pll = < &pll1_cfg1 >; 271*2b7f7b75SYann Gautier 272*2b7f7b75SYann Gautier pll1_cfg1: pll1_cfg1 { 273*2b7f7b75SYann Gautier st,pll_vco = < &pll1_vco_1300Mhz >; 274*2b7f7b75SYann Gautier st,pll_div_pqr = < 0 1 1 >; 275*2b7f7b75SYann Gautier }; 276*2b7f7b75SYann Gautier }; 277*2b7f7b75SYann Gautier 278*2b7f7b75SYann Gautier /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 266, R = 533 (DDR) */ 279*2b7f7b75SYann Gautier pll2:st,pll@1 { 280*2b7f7b75SYann Gautier compatible = "st,stm32mp1-pll"; 281*2b7f7b75SYann Gautier reg = <1>; 282*2b7f7b75SYann Gautier 283*2b7f7b75SYann Gautier st,pll = < &pll2_cfg1 >; 284*2b7f7b75SYann Gautier 285*2b7f7b75SYann Gautier pll2_cfg1: pll2_cfg1 { 286*2b7f7b75SYann Gautier st,pll_vco = < &pll2_vco_1066Mhz >; 287*2b7f7b75SYann Gautier st,pll_div_pqr = < 1 1 0 >; 288*2b7f7b75SYann Gautier }; 289*2b7f7b75SYann Gautier }; 290*2b7f7b75SYann Gautier 291*2b7f7b75SYann Gautier /* VCO = 417.8 MHz => P = 209, Q = 24, R = 209 */ 292*2b7f7b75SYann Gautier pll3:st,pll@2 { 293*2b7f7b75SYann Gautier compatible = "st,stm32mp1-pll"; 294*2b7f7b75SYann Gautier reg = <2>; 295*2b7f7b75SYann Gautier 296*2b7f7b75SYann Gautier st,pll = < &pll3_cfg1 >; 297*2b7f7b75SYann Gautier 298*2b7f7b75SYann Gautier pll3_cfg1: pll3_cfg1 { 299*2b7f7b75SYann Gautier st,pll_vco = < &pll3_vco_417_8Mhz >; 300*2b7f7b75SYann Gautier st,pll_div_pqr = < 1 16 1 >; 301*2b7f7b75SYann Gautier }; 302*2b7f7b75SYann Gautier }; 303*2b7f7b75SYann Gautier 304*2b7f7b75SYann Gautier /* VCO = 600.0 MHz => P = 50, Q = 10, R = 100 */ 305*2b7f7b75SYann Gautier pll4:st,pll@3 { 306*2b7f7b75SYann Gautier compatible = "st,stm32mp1-pll"; 307*2b7f7b75SYann Gautier reg = <3>; 308*2b7f7b75SYann Gautier 309*2b7f7b75SYann Gautier st,pll = < &pll4_cfg1 >; 310*2b7f7b75SYann Gautier 311*2b7f7b75SYann Gautier pll4_cfg1: pll4_cfg1 { 312*2b7f7b75SYann Gautier st,pll_vco = < &pll4_vco_600Mhz >; 313*2b7f7b75SYann Gautier st,pll_div_pqr = < 11 59 5 >; 314*2b7f7b75SYann Gautier }; 315*2b7f7b75SYann Gautier }; 316*2b7f7b75SYann Gautier}; 317*2b7f7b75SYann Gautier 318*2b7f7b75SYann Gautier&rng { 319*2b7f7b75SYann Gautier status = "okay"; 320*2b7f7b75SYann Gautier}; 321*2b7f7b75SYann Gautier 322*2b7f7b75SYann Gautier&saes { 323*2b7f7b75SYann Gautier secure-status = "okay"; 324*2b7f7b75SYann Gautier}; 325*2b7f7b75SYann Gautier 326*2b7f7b75SYann Gautier&sdmmc1 { 327*2b7f7b75SYann Gautier pinctrl-names = "default"; 328*2b7f7b75SYann Gautier pinctrl-0 = <&sdmmc1_b4_pins_a>; 329*2b7f7b75SYann Gautier disable-wp; 330*2b7f7b75SYann Gautier st,neg-edge; 331*2b7f7b75SYann Gautier bus-width = <4>; 332*2b7f7b75SYann Gautier vmmc-supply = <&vdd_sd>; 333*2b7f7b75SYann Gautier status = "okay"; 334*2b7f7b75SYann Gautier}; 335*2b7f7b75SYann Gautier 336*2b7f7b75SYann Gautier&uart4 { 337*2b7f7b75SYann Gautier pinctrl-names = "default"; 338*2b7f7b75SYann Gautier pinctrl-0 = <&uart4_pins_a>; 339*2b7f7b75SYann Gautier status = "okay"; 340*2b7f7b75SYann Gautier}; 341*2b7f7b75SYann Gautier 342*2b7f7b75SYann Gautier&uart8 { 343*2b7f7b75SYann Gautier pinctrl-names = "default"; 344*2b7f7b75SYann Gautier pinctrl-0 = <&uart8_pins_a>; 345*2b7f7b75SYann Gautier status = "disabled"; 346*2b7f7b75SYann Gautier}; 347*2b7f7b75SYann Gautier 348*2b7f7b75SYann Gautier&usart1 { 349*2b7f7b75SYann Gautier pinctrl-names = "default"; 350*2b7f7b75SYann Gautier pinctrl-0 = <&usart1_pins_a>; 351*2b7f7b75SYann Gautier uart-has-rtscts; 352*2b7f7b75SYann Gautier status = "disabled"; 353*2b7f7b75SYann Gautier}; 354