1*91f16700Schasinglulu/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) */ 2*91f16700Schasinglulu/* 3*91f16700Schasinglulu * Copyright (C) 2020 STMicroelectronics - All Rights Reserved 4*91f16700Schasinglulu * Copyright (C) 2020 Ahmad Fatoum, Pengutronix 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu#include "stm32mp15-pinctrl.dtsi" 8*91f16700Schasinglulu 9*91f16700Schasinglulu&i2c4 { 10*91f16700Schasinglulu pinctrl-names = "default"; 11*91f16700Schasinglulu pinctrl-0 = <&i2c4_pins_a>; 12*91f16700Schasinglulu clock-frequency = <400000>; 13*91f16700Schasinglulu i2c-scl-rising-time-ns = <185>; 14*91f16700Schasinglulu i2c-scl-falling-time-ns = <20>; 15*91f16700Schasinglulu status = "okay"; 16*91f16700Schasinglulu 17*91f16700Schasinglulu pmic: stpmic@33 { 18*91f16700Schasinglulu compatible = "st,stpmic1"; 19*91f16700Schasinglulu reg = <0x33>; 20*91f16700Schasinglulu interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>; 21*91f16700Schasinglulu interrupt-controller; 22*91f16700Schasinglulu #interrupt-cells = <2>; 23*91f16700Schasinglulu 24*91f16700Schasinglulu regulators { 25*91f16700Schasinglulu compatible = "st,stpmic1-regulators"; 26*91f16700Schasinglulu 27*91f16700Schasinglulu ldo1-supply = <&v3v3>; 28*91f16700Schasinglulu ldo6-supply = <&v3v3>; 29*91f16700Schasinglulu pwr_sw1-supply = <&bst_out>; 30*91f16700Schasinglulu 31*91f16700Schasinglulu vddcore: buck1 { 32*91f16700Schasinglulu regulator-name = "vddcore"; 33*91f16700Schasinglulu regulator-min-microvolt = <1200000>; 34*91f16700Schasinglulu regulator-max-microvolt = <1350000>; 35*91f16700Schasinglulu regulator-always-on; 36*91f16700Schasinglulu regulator-initial-mode = <0>; 37*91f16700Schasinglulu regulator-over-current-protection; 38*91f16700Schasinglulu }; 39*91f16700Schasinglulu 40*91f16700Schasinglulu vdd_ddr: buck2 { 41*91f16700Schasinglulu regulator-name = "vdd_ddr"; 42*91f16700Schasinglulu regulator-min-microvolt = <1350000>; 43*91f16700Schasinglulu regulator-max-microvolt = <1350000>; 44*91f16700Schasinglulu regulator-always-on; 45*91f16700Schasinglulu regulator-initial-mode = <0>; 46*91f16700Schasinglulu regulator-over-current-protection; 47*91f16700Schasinglulu }; 48*91f16700Schasinglulu 49*91f16700Schasinglulu vdd: buck3 { 50*91f16700Schasinglulu regulator-name = "vdd"; 51*91f16700Schasinglulu regulator-min-microvolt = <3300000>; 52*91f16700Schasinglulu regulator-max-microvolt = <3300000>; 53*91f16700Schasinglulu regulator-always-on; 54*91f16700Schasinglulu st,mask-reset; 55*91f16700Schasinglulu regulator-initial-mode = <0>; 56*91f16700Schasinglulu regulator-over-current-protection; 57*91f16700Schasinglulu }; 58*91f16700Schasinglulu 59*91f16700Schasinglulu v3v3: buck4 { 60*91f16700Schasinglulu regulator-name = "v3v3"; 61*91f16700Schasinglulu regulator-min-microvolt = <3300000>; 62*91f16700Schasinglulu regulator-max-microvolt = <3300000>; 63*91f16700Schasinglulu regulator-always-on; 64*91f16700Schasinglulu regulator-over-current-protection; 65*91f16700Schasinglulu regulator-initial-mode = <0>; 66*91f16700Schasinglulu }; 67*91f16700Schasinglulu 68*91f16700Schasinglulu v1v8_audio: ldo1 { 69*91f16700Schasinglulu regulator-name = "v1v8_audio"; 70*91f16700Schasinglulu regulator-min-microvolt = <1800000>; 71*91f16700Schasinglulu regulator-max-microvolt = <1800000>; 72*91f16700Schasinglulu regulator-always-on; 73*91f16700Schasinglulu }; 74*91f16700Schasinglulu 75*91f16700Schasinglulu v3v3_hdmi: ldo2 { 76*91f16700Schasinglulu regulator-name = "v3v3_hdmi"; 77*91f16700Schasinglulu regulator-min-microvolt = <3300000>; 78*91f16700Schasinglulu regulator-max-microvolt = <3300000>; 79*91f16700Schasinglulu regulator-always-on; 80*91f16700Schasinglulu }; 81*91f16700Schasinglulu 82*91f16700Schasinglulu vtt_ddr: ldo3 { 83*91f16700Schasinglulu regulator-name = "vtt_ddr"; 84*91f16700Schasinglulu regulator-always-on; 85*91f16700Schasinglulu regulator-over-current-protection; 86*91f16700Schasinglulu st,regulator-sink-source; 87*91f16700Schasinglulu }; 88*91f16700Schasinglulu 89*91f16700Schasinglulu vdd_usb: ldo4 { 90*91f16700Schasinglulu regulator-name = "vdd_usb"; 91*91f16700Schasinglulu regulator-min-microvolt = <3300000>; 92*91f16700Schasinglulu regulator-max-microvolt = <3300000>; 93*91f16700Schasinglulu }; 94*91f16700Schasinglulu 95*91f16700Schasinglulu vdda: ldo5 { 96*91f16700Schasinglulu regulator-name = "vdda"; 97*91f16700Schasinglulu regulator-min-microvolt = <2900000>; 98*91f16700Schasinglulu regulator-max-microvolt = <2900000>; 99*91f16700Schasinglulu regulator-boot-on; 100*91f16700Schasinglulu }; 101*91f16700Schasinglulu 102*91f16700Schasinglulu v1v2_hdmi: ldo6 { 103*91f16700Schasinglulu regulator-name = "v1v2_hdmi"; 104*91f16700Schasinglulu regulator-min-microvolt = <1200000>; 105*91f16700Schasinglulu regulator-max-microvolt = <1200000>; 106*91f16700Schasinglulu regulator-always-on; 107*91f16700Schasinglulu }; 108*91f16700Schasinglulu 109*91f16700Schasinglulu vref_ddr: vref_ddr { 110*91f16700Schasinglulu regulator-name = "vref_ddr"; 111*91f16700Schasinglulu regulator-always-on; 112*91f16700Schasinglulu }; 113*91f16700Schasinglulu 114*91f16700Schasinglulu bst_out: boost { 115*91f16700Schasinglulu regulator-name = "bst_out"; 116*91f16700Schasinglulu }; 117*91f16700Schasinglulu 118*91f16700Schasinglulu vbus_otg: pwr_sw1 { 119*91f16700Schasinglulu regulator-name = "vbus_otg"; 120*91f16700Schasinglulu regulator-active-discharge; 121*91f16700Schasinglulu }; 122*91f16700Schasinglulu 123*91f16700Schasinglulu vbus_sw: pwr_sw2 { 124*91f16700Schasinglulu regulator-name = "vbus_sw"; 125*91f16700Schasinglulu regulator-active-discharge; 126*91f16700Schasinglulu }; 127*91f16700Schasinglulu }; 128*91f16700Schasinglulu 129*91f16700Schasinglulu pmic_watchdog: watchdog { 130*91f16700Schasinglulu compatible = "st,stpmic1-wdt"; 131*91f16700Schasinglulu status = "disabled"; 132*91f16700Schasinglulu }; 133*91f16700Schasinglulu }; 134*91f16700Schasinglulu}; 135*91f16700Schasinglulu 136*91f16700Schasinglulu&rng1 { 137*91f16700Schasinglulu status = "okay"; 138*91f16700Schasinglulu}; 139*91f16700Schasinglulu 140*91f16700Schasinglulu/* ATF Specific */ 141*91f16700Schasinglulu#include <dt-bindings/clock/stm32mp1-clksrc.h> 142*91f16700Schasinglulu 143*91f16700Schasinglulu/ { 144*91f16700Schasinglulu aliases { 145*91f16700Schasinglulu gpio0 = &gpioa; 146*91f16700Schasinglulu gpio1 = &gpiob; 147*91f16700Schasinglulu gpio2 = &gpioc; 148*91f16700Schasinglulu gpio3 = &gpiod; 149*91f16700Schasinglulu gpio4 = &gpioe; 150*91f16700Schasinglulu gpio5 = &gpiof; 151*91f16700Schasinglulu gpio6 = &gpiog; 152*91f16700Schasinglulu gpio7 = &gpioh; 153*91f16700Schasinglulu gpio8 = &gpioi; 154*91f16700Schasinglulu gpio25 = &gpioz; 155*91f16700Schasinglulu i2c3 = &i2c4; 156*91f16700Schasinglulu }; 157*91f16700Schasinglulu}; 158*91f16700Schasinglulu 159*91f16700Schasinglulu&bsec { 160*91f16700Schasinglulu board_id: board_id@ec { 161*91f16700Schasinglulu reg = <0xec 0x4>; 162*91f16700Schasinglulu st,non-secure-otp; 163*91f16700Schasinglulu }; 164*91f16700Schasinglulu}; 165*91f16700Schasinglulu 166*91f16700Schasinglulu&clk_hse { 167*91f16700Schasinglulu st,digbypass; 168*91f16700Schasinglulu}; 169*91f16700Schasinglulu 170*91f16700Schasinglulu&cpu0 { 171*91f16700Schasinglulu cpu-supply = <&vddcore>; 172*91f16700Schasinglulu}; 173*91f16700Schasinglulu 174*91f16700Schasinglulu&cpu1 { 175*91f16700Schasinglulu cpu-supply = <&vddcore>; 176*91f16700Schasinglulu}; 177*91f16700Schasinglulu 178*91f16700Schasinglulu&hash1 { 179*91f16700Schasinglulu status = "okay"; 180*91f16700Schasinglulu}; 181*91f16700Schasinglulu 182*91f16700Schasinglulu/* CLOCK init */ 183*91f16700Schasinglulu&rcc { 184*91f16700Schasinglulu st,clksrc = < 185*91f16700Schasinglulu CLK_MPU_PLL1P 186*91f16700Schasinglulu CLK_AXI_PLL2P 187*91f16700Schasinglulu CLK_MCU_PLL3P 188*91f16700Schasinglulu CLK_PLL12_HSE 189*91f16700Schasinglulu CLK_PLL3_HSE 190*91f16700Schasinglulu CLK_PLL4_HSE 191*91f16700Schasinglulu CLK_RTC_LSE 192*91f16700Schasinglulu CLK_MCO1_DISABLED 193*91f16700Schasinglulu CLK_MCO2_DISABLED 194*91f16700Schasinglulu >; 195*91f16700Schasinglulu 196*91f16700Schasinglulu st,clkdiv = < 197*91f16700Schasinglulu 1 /*MPU*/ 198*91f16700Schasinglulu 0 /*AXI*/ 199*91f16700Schasinglulu 0 /*MCU*/ 200*91f16700Schasinglulu 1 /*APB1*/ 201*91f16700Schasinglulu 1 /*APB2*/ 202*91f16700Schasinglulu 1 /*APB3*/ 203*91f16700Schasinglulu 1 /*APB4*/ 204*91f16700Schasinglulu 2 /*APB5*/ 205*91f16700Schasinglulu 23 /*RTC*/ 206*91f16700Schasinglulu 0 /*MCO1*/ 207*91f16700Schasinglulu 0 /*MCO2*/ 208*91f16700Schasinglulu >; 209*91f16700Schasinglulu 210*91f16700Schasinglulu st,pkcs = < 211*91f16700Schasinglulu CLK_CKPER_HSE 212*91f16700Schasinglulu CLK_FMC_ACLK 213*91f16700Schasinglulu CLK_QSPI_ACLK 214*91f16700Schasinglulu CLK_ETH_PLL4P 215*91f16700Schasinglulu CLK_SDMMC12_PLL4P 216*91f16700Schasinglulu CLK_DSI_DSIPLL 217*91f16700Schasinglulu CLK_STGEN_HSE 218*91f16700Schasinglulu CLK_USBPHY_HSE 219*91f16700Schasinglulu CLK_SPI2S1_PLL3Q 220*91f16700Schasinglulu CLK_SPI2S23_PLL3Q 221*91f16700Schasinglulu CLK_SPI45_HSI 222*91f16700Schasinglulu CLK_SPI6_HSI 223*91f16700Schasinglulu CLK_I2C46_HSI 224*91f16700Schasinglulu CLK_SDMMC3_PLL4P 225*91f16700Schasinglulu CLK_USBO_USBPHY 226*91f16700Schasinglulu CLK_ADC_CKPER 227*91f16700Schasinglulu CLK_CEC_LSE 228*91f16700Schasinglulu CLK_I2C12_HSI 229*91f16700Schasinglulu CLK_I2C35_HSI 230*91f16700Schasinglulu CLK_UART1_HSI 231*91f16700Schasinglulu CLK_UART24_HSI 232*91f16700Schasinglulu CLK_UART35_HSI 233*91f16700Schasinglulu CLK_UART6_HSI 234*91f16700Schasinglulu CLK_UART78_HSI 235*91f16700Schasinglulu CLK_SPDIF_PLL4P 236*91f16700Schasinglulu CLK_FDCAN_PLL4R 237*91f16700Schasinglulu CLK_SAI1_PLL3Q 238*91f16700Schasinglulu CLK_SAI2_PLL3Q 239*91f16700Schasinglulu CLK_SAI3_PLL3Q 240*91f16700Schasinglulu CLK_SAI4_PLL3Q 241*91f16700Schasinglulu CLK_RNG1_LSI 242*91f16700Schasinglulu CLK_RNG2_LSI 243*91f16700Schasinglulu CLK_LPTIM1_PCLK1 244*91f16700Schasinglulu CLK_LPTIM23_PCLK3 245*91f16700Schasinglulu CLK_LPTIM45_LSE 246*91f16700Schasinglulu >; 247*91f16700Schasinglulu 248*91f16700Schasinglulu /* VCO = 1300.0 MHz => P = 650 (CPU) */ 249*91f16700Schasinglulu pll1: st,pll@0 { 250*91f16700Schasinglulu compatible = "st,stm32mp1-pll"; 251*91f16700Schasinglulu reg = <0>; 252*91f16700Schasinglulu cfg = < 2 80 0 0 0 PQR(1,0,0) >; 253*91f16700Schasinglulu frac = < 0x800 >; 254*91f16700Schasinglulu }; 255*91f16700Schasinglulu 256*91f16700Schasinglulu /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */ 257*91f16700Schasinglulu pll2: st,pll@1 { 258*91f16700Schasinglulu compatible = "st,stm32mp1-pll"; 259*91f16700Schasinglulu reg = <1>; 260*91f16700Schasinglulu cfg = <2 65 1 0 0 PQR(1,1,1)>; 261*91f16700Schasinglulu frac = <0x1400>; 262*91f16700Schasinglulu }; 263*91f16700Schasinglulu 264*91f16700Schasinglulu /* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */ 265*91f16700Schasinglulu pll3: st,pll@2 { 266*91f16700Schasinglulu compatible = "st,stm32mp1-pll"; 267*91f16700Schasinglulu reg = <2>; 268*91f16700Schasinglulu cfg = <1 33 1 16 36 PQR(1,1,1)>; 269*91f16700Schasinglulu frac = <0x1a04>; 270*91f16700Schasinglulu }; 271*91f16700Schasinglulu 272*91f16700Schasinglulu /* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */ 273*91f16700Schasinglulu pll4: st,pll@3 { 274*91f16700Schasinglulu compatible = "st,stm32mp1-pll"; 275*91f16700Schasinglulu reg = <3>; 276*91f16700Schasinglulu cfg = <3 98 5 7 7 PQR(1,1,1)>; 277*91f16700Schasinglulu }; 278*91f16700Schasinglulu}; 279