1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*f126890aSEmmanuel Vadot/* 3*f126890aSEmmanuel Vadot * Copyright (C) 2020 Manivannan Sadhasivam 4*f126890aSEmmanuel Vadot */ 5*f126890aSEmmanuel Vadot 6*f126890aSEmmanuel Vadot/dts-v1/; 7*f126890aSEmmanuel Vadot 8*f126890aSEmmanuel Vadot#include "stm32mp157.dtsi" 9*f126890aSEmmanuel Vadot#include "stm32mp15-pinctrl.dtsi" 10*f126890aSEmmanuel Vadot#include "stm32mp15xxac-pinctrl.dtsi" 11*f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 12*f126890aSEmmanuel Vadot#include <dt-bindings/mfd/st,stpmic1.h> 13*f126890aSEmmanuel Vadot 14*f126890aSEmmanuel Vadot/ { 15*f126890aSEmmanuel Vadot aliases { 16*f126890aSEmmanuel Vadot mmc0 = &sdmmc1; 17*f126890aSEmmanuel Vadot serial0 = &uart4; 18*f126890aSEmmanuel Vadot serial1 = &uart7; 19*f126890aSEmmanuel Vadot serial2 = &usart2; 20*f126890aSEmmanuel Vadot spi0 = &spi4; 21*f126890aSEmmanuel Vadot }; 22*f126890aSEmmanuel Vadot 23*f126890aSEmmanuel Vadot chosen { 24*f126890aSEmmanuel Vadot stdout-path = "serial1:115200n8"; 25*f126890aSEmmanuel Vadot }; 26*f126890aSEmmanuel Vadot 27*f126890aSEmmanuel Vadot memory@c0000000 { 28*f126890aSEmmanuel Vadot device_type = "memory"; 29*f126890aSEmmanuel Vadot reg = <0xc0000000 0x10000000>; 30*f126890aSEmmanuel Vadot }; 31*f126890aSEmmanuel Vadot 32*f126890aSEmmanuel Vadot led { 33*f126890aSEmmanuel Vadot compatible = "gpio-leds"; 34*f126890aSEmmanuel Vadot 35*f126890aSEmmanuel Vadot led1 { 36*f126890aSEmmanuel Vadot label = "green:user1"; 37*f126890aSEmmanuel Vadot gpios = <&gpioa 13 GPIO_ACTIVE_HIGH>; 38*f126890aSEmmanuel Vadot linux,default-trigger = "heartbeat"; 39*f126890aSEmmanuel Vadot default-state = "off"; 40*f126890aSEmmanuel Vadot }; 41*f126890aSEmmanuel Vadot 42*f126890aSEmmanuel Vadot led2 { 43*f126890aSEmmanuel Vadot label = "green:user2"; 44*f126890aSEmmanuel Vadot gpios = <&gpioh 3 GPIO_ACTIVE_HIGH>; 45*f126890aSEmmanuel Vadot linux,default-trigger = "mmc0"; 46*f126890aSEmmanuel Vadot default-state = "off"; 47*f126890aSEmmanuel Vadot }; 48*f126890aSEmmanuel Vadot 49*f126890aSEmmanuel Vadot led3 { 50*f126890aSEmmanuel Vadot label = "green:user3"; 51*f126890aSEmmanuel Vadot gpios = <&gpioh 2 GPIO_ACTIVE_HIGH>; 52*f126890aSEmmanuel Vadot linux,default-trigger = "mmc1"; 53*f126890aSEmmanuel Vadot default-state = "off"; 54*f126890aSEmmanuel Vadot }; 55*f126890aSEmmanuel Vadot 56*f126890aSEmmanuel Vadot led4 { 57*f126890aSEmmanuel Vadot label = "green:user4"; 58*f126890aSEmmanuel Vadot gpios = <&gpiof 12 GPIO_ACTIVE_HIGH>; 59*f126890aSEmmanuel Vadot linux,default-trigger = "none"; 60*f126890aSEmmanuel Vadot default-state = "off"; 61*f126890aSEmmanuel Vadot panic-indicator; 62*f126890aSEmmanuel Vadot }; 63*f126890aSEmmanuel Vadot }; 64*f126890aSEmmanuel Vadot 65*f126890aSEmmanuel Vadot sd_switch: regulator-sd_switch { 66*f126890aSEmmanuel Vadot compatible = "regulator-gpio"; 67*f126890aSEmmanuel Vadot regulator-name = "sd_switch"; 68*f126890aSEmmanuel Vadot regulator-min-microvolt = <1800000>; 69*f126890aSEmmanuel Vadot regulator-max-microvolt = <2900000>; 70*f126890aSEmmanuel Vadot regulator-type = "voltage"; 71*f126890aSEmmanuel Vadot regulator-always-on; 72*f126890aSEmmanuel Vadot 73*f126890aSEmmanuel Vadot gpios = <&gpioa 8 GPIO_ACTIVE_HIGH>; 74*f126890aSEmmanuel Vadot gpios-states = <0>; 75*f126890aSEmmanuel Vadot states = <1800000 0x1>, 76*f126890aSEmmanuel Vadot <2900000 0x0>; 77*f126890aSEmmanuel Vadot }; 78*f126890aSEmmanuel Vadot}; 79*f126890aSEmmanuel Vadot 80*f126890aSEmmanuel Vadot/* Only headless mode is supported */ 81*f126890aSEmmanuel Vadot&gpu { 82*f126890aSEmmanuel Vadot status = "disabled"; 83*f126890aSEmmanuel Vadot}; 84*f126890aSEmmanuel Vadot 85*f126890aSEmmanuel Vadot/* LS-I2C0 */ 86*f126890aSEmmanuel Vadot&i2c2 { 87*f126890aSEmmanuel Vadot pinctrl-names = "default"; 88*f126890aSEmmanuel Vadot pinctrl-0 = <&i2c2_pins_a>; 89*f126890aSEmmanuel Vadot i2c-scl-rising-time-ns = <1000>; 90*f126890aSEmmanuel Vadot i2c-scl-falling-time-ns = <300>; 91*f126890aSEmmanuel Vadot status = "okay"; 92*f126890aSEmmanuel Vadot /delete-property/dmas; 93*f126890aSEmmanuel Vadot /delete-property/dma-names; 94*f126890aSEmmanuel Vadot}; 95*f126890aSEmmanuel Vadot 96*f126890aSEmmanuel Vadot&i2c4 { 97*f126890aSEmmanuel Vadot pinctrl-names = "default"; 98*f126890aSEmmanuel Vadot pinctrl-0 = <&i2c4_pins_a>; 99*f126890aSEmmanuel Vadot i2c-scl-rising-time-ns = <185>; 100*f126890aSEmmanuel Vadot i2c-scl-falling-time-ns = <20>; 101*f126890aSEmmanuel Vadot status = "okay"; 102*f126890aSEmmanuel Vadot /delete-property/dmas; 103*f126890aSEmmanuel Vadot /delete-property/dma-names; 104*f126890aSEmmanuel Vadot 105*f126890aSEmmanuel Vadot pmic: stpmic@33 { 106*f126890aSEmmanuel Vadot compatible = "st,stpmic1"; 107*f126890aSEmmanuel Vadot reg = <0x33>; 108*f126890aSEmmanuel Vadot interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>; 109*f126890aSEmmanuel Vadot interrupt-controller; 110*f126890aSEmmanuel Vadot #interrupt-cells = <2>; 111*f126890aSEmmanuel Vadot status = "okay"; 112*f126890aSEmmanuel Vadot 113*f126890aSEmmanuel Vadot regulators { 114*f126890aSEmmanuel Vadot compatible = "st,stpmic1-regulators"; 115*f126890aSEmmanuel Vadot 116*f126890aSEmmanuel Vadot ldo1-supply = <&v3v3>; 117*f126890aSEmmanuel Vadot ldo2-supply = <&v3v3>; 118*f126890aSEmmanuel Vadot ldo3-supply = <&vdd_ddr>; 119*f126890aSEmmanuel Vadot ldo5-supply = <&v3v3>; 120*f126890aSEmmanuel Vadot ldo6-supply = <&v3v3>; 121*f126890aSEmmanuel Vadot pwr_sw1-supply = <&bst_out>; 122*f126890aSEmmanuel Vadot pwr_sw2-supply = <&bst_out>; 123*f126890aSEmmanuel Vadot 124*f126890aSEmmanuel Vadot vddcore: buck1 { 125*f126890aSEmmanuel Vadot regulator-name = "vddcore"; 126*f126890aSEmmanuel Vadot regulator-min-microvolt = <1200000>; 127*f126890aSEmmanuel Vadot regulator-max-microvolt = <1350000>; 128*f126890aSEmmanuel Vadot regulator-always-on; 129*f126890aSEmmanuel Vadot regulator-initial-mode = <0>; 130*f126890aSEmmanuel Vadot regulator-over-current-protection; 131*f126890aSEmmanuel Vadot }; 132*f126890aSEmmanuel Vadot 133*f126890aSEmmanuel Vadot vdd_ddr: buck2 { 134*f126890aSEmmanuel Vadot regulator-name = "vdd_ddr"; 135*f126890aSEmmanuel Vadot regulator-min-microvolt = <1500000>; 136*f126890aSEmmanuel Vadot regulator-max-microvolt = <1500000>; 137*f126890aSEmmanuel Vadot regulator-always-on; 138*f126890aSEmmanuel Vadot regulator-initial-mode = <0>; 139*f126890aSEmmanuel Vadot regulator-over-current-protection; 140*f126890aSEmmanuel Vadot }; 141*f126890aSEmmanuel Vadot 142*f126890aSEmmanuel Vadot vdd: buck3 { 143*f126890aSEmmanuel Vadot regulator-name = "vdd"; 144*f126890aSEmmanuel Vadot regulator-min-microvolt = <1800000>; 145*f126890aSEmmanuel Vadot regulator-max-microvolt = <1800000>; 146*f126890aSEmmanuel Vadot regulator-always-on; 147*f126890aSEmmanuel Vadot st,mask-reset; 148*f126890aSEmmanuel Vadot regulator-initial-mode = <0>; 149*f126890aSEmmanuel Vadot regulator-over-current-protection; 150*f126890aSEmmanuel Vadot }; 151*f126890aSEmmanuel Vadot 152*f126890aSEmmanuel Vadot v3v3: buck4 { 153*f126890aSEmmanuel Vadot regulator-name = "v3v3"; 154*f126890aSEmmanuel Vadot regulator-min-microvolt = <3300000>; 155*f126890aSEmmanuel Vadot regulator-max-microvolt = <3300000>; 156*f126890aSEmmanuel Vadot regulator-always-on; 157*f126890aSEmmanuel Vadot regulator-over-current-protection; 158*f126890aSEmmanuel Vadot regulator-initial-mode = <0>; 159*f126890aSEmmanuel Vadot }; 160*f126890aSEmmanuel Vadot 161*f126890aSEmmanuel Vadot vdda: ldo1 { 162*f126890aSEmmanuel Vadot regulator-name = "vdda"; 163*f126890aSEmmanuel Vadot regulator-min-microvolt = <1800000>; 164*f126890aSEmmanuel Vadot regulator-max-microvolt = <1800000>; 165*f126890aSEmmanuel Vadot regulator-always-on; 166*f126890aSEmmanuel Vadot interrupts = <IT_CURLIM_LDO1 0>; 167*f126890aSEmmanuel Vadot }; 168*f126890aSEmmanuel Vadot 169*f126890aSEmmanuel Vadot v2v9: ldo2 { 170*f126890aSEmmanuel Vadot regulator-name = "v2v9"; 171*f126890aSEmmanuel Vadot regulator-min-microvolt = <2900000>; 172*f126890aSEmmanuel Vadot regulator-max-microvolt = <2900000>; 173*f126890aSEmmanuel Vadot regulator-always-on; 174*f126890aSEmmanuel Vadot interrupts = <IT_CURLIM_LDO2 0>; 175*f126890aSEmmanuel Vadot }; 176*f126890aSEmmanuel Vadot 177*f126890aSEmmanuel Vadot vtt_ddr: ldo3 { 178*f126890aSEmmanuel Vadot regulator-name = "vtt_ddr"; 179*f126890aSEmmanuel Vadot regulator-min-microvolt = <500000>; 180*f126890aSEmmanuel Vadot regulator-max-microvolt = <750000>; 181*f126890aSEmmanuel Vadot regulator-always-on; 182*f126890aSEmmanuel Vadot regulator-over-current-protection; 183*f126890aSEmmanuel Vadot }; 184*f126890aSEmmanuel Vadot 185*f126890aSEmmanuel Vadot vdd_usb: ldo4 { 186*f126890aSEmmanuel Vadot regulator-name = "vdd_usb"; 187*f126890aSEmmanuel Vadot interrupts = <IT_CURLIM_LDO4 0>; 188*f126890aSEmmanuel Vadot }; 189*f126890aSEmmanuel Vadot 190*f126890aSEmmanuel Vadot vdd_sd: ldo5 { 191*f126890aSEmmanuel Vadot regulator-name = "vdd_sd"; 192*f126890aSEmmanuel Vadot regulator-min-microvolt = <2900000>; 193*f126890aSEmmanuel Vadot regulator-max-microvolt = <2900000>; 194*f126890aSEmmanuel Vadot interrupts = <IT_CURLIM_LDO5 0>; 195*f126890aSEmmanuel Vadot regulator-boot-on; 196*f126890aSEmmanuel Vadot }; 197*f126890aSEmmanuel Vadot 198*f126890aSEmmanuel Vadot v1v8: ldo6 { 199*f126890aSEmmanuel Vadot regulator-name = "v1v8"; 200*f126890aSEmmanuel Vadot regulator-min-microvolt = <1800000>; 201*f126890aSEmmanuel Vadot regulator-max-microvolt = <1800000>; 202*f126890aSEmmanuel Vadot regulator-always-on; 203*f126890aSEmmanuel Vadot interrupts = <IT_CURLIM_LDO6 0>; 204*f126890aSEmmanuel Vadot }; 205*f126890aSEmmanuel Vadot 206*f126890aSEmmanuel Vadot vref_ddr: vref_ddr { 207*f126890aSEmmanuel Vadot regulator-name = "vref_ddr"; 208*f126890aSEmmanuel Vadot regulator-always-on; 209*f126890aSEmmanuel Vadot }; 210*f126890aSEmmanuel Vadot 211*f126890aSEmmanuel Vadot bst_out: boost { 212*f126890aSEmmanuel Vadot regulator-name = "bst_out"; 213*f126890aSEmmanuel Vadot interrupts = <IT_OCP_BOOST 0>; 214*f126890aSEmmanuel Vadot }; 215*f126890aSEmmanuel Vadot 216*f126890aSEmmanuel Vadot vbus_otg: pwr_sw1 { 217*f126890aSEmmanuel Vadot regulator-name = "vbus_otg"; 218*f126890aSEmmanuel Vadot interrupts = <IT_OCP_OTG 0>; 219*f126890aSEmmanuel Vadot regulator-active-discharge = <1>; 220*f126890aSEmmanuel Vadot }; 221*f126890aSEmmanuel Vadot 222*f126890aSEmmanuel Vadot vbus_sw: pwr_sw2 { 223*f126890aSEmmanuel Vadot regulator-name = "vbus_sw"; 224*f126890aSEmmanuel Vadot interrupts = <IT_OCP_SWOUT 0>; 225*f126890aSEmmanuel Vadot regulator-active-discharge = <1>; 226*f126890aSEmmanuel Vadot }; 227*f126890aSEmmanuel Vadot }; 228*f126890aSEmmanuel Vadot 229*f126890aSEmmanuel Vadot onkey { 230*f126890aSEmmanuel Vadot compatible = "st,stpmic1-onkey"; 231*f126890aSEmmanuel Vadot interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>; 232*f126890aSEmmanuel Vadot interrupt-names = "onkey-falling", "onkey-rising"; 233*f126890aSEmmanuel Vadot status = "okay"; 234*f126890aSEmmanuel Vadot }; 235*f126890aSEmmanuel Vadot 236*f126890aSEmmanuel Vadot watchdog { 237*f126890aSEmmanuel Vadot compatible = "st,stpmic1-wdt"; 238*f126890aSEmmanuel Vadot status = "disabled"; 239*f126890aSEmmanuel Vadot }; 240*f126890aSEmmanuel Vadot }; 241*f126890aSEmmanuel Vadot}; 242*f126890aSEmmanuel Vadot 243*f126890aSEmmanuel Vadot&iwdg2 { 244*f126890aSEmmanuel Vadot timeout-sec = <32>; 245*f126890aSEmmanuel Vadot status = "okay"; 246*f126890aSEmmanuel Vadot}; 247*f126890aSEmmanuel Vadot 248*f126890aSEmmanuel Vadot&pwr_regulators { 249*f126890aSEmmanuel Vadot vdd-supply = <&vdd>; 250*f126890aSEmmanuel Vadot vdd_3v3_usbfs-supply = <&vdd_usb>; 251*f126890aSEmmanuel Vadot}; 252*f126890aSEmmanuel Vadot 253*f126890aSEmmanuel Vadot&rng1 { 254*f126890aSEmmanuel Vadot status = "okay"; 255*f126890aSEmmanuel Vadot}; 256*f126890aSEmmanuel Vadot 257*f126890aSEmmanuel Vadot&rtc { 258*f126890aSEmmanuel Vadot status = "okay"; 259*f126890aSEmmanuel Vadot}; 260*f126890aSEmmanuel Vadot 261*f126890aSEmmanuel Vadot&sdmmc1 { 262*f126890aSEmmanuel Vadot pinctrl-names = "default", "opendrain", "sleep"; 263*f126890aSEmmanuel Vadot pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_b>; 264*f126890aSEmmanuel Vadot pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_b>; 265*f126890aSEmmanuel Vadot pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_b>; 266*f126890aSEmmanuel Vadot broken-cd; 267*f126890aSEmmanuel Vadot disable-wp; 268*f126890aSEmmanuel Vadot st,sig-dir; 269*f126890aSEmmanuel Vadot st,neg-edge; 270*f126890aSEmmanuel Vadot st,use-ckin; 271*f126890aSEmmanuel Vadot bus-width = <4>; 272*f126890aSEmmanuel Vadot vmmc-supply = <&vdd_sd>; 273*f126890aSEmmanuel Vadot vqmmc-supply = <&sd_switch>; 274*f126890aSEmmanuel Vadot status = "okay"; 275*f126890aSEmmanuel Vadot}; 276*f126890aSEmmanuel Vadot 277*f126890aSEmmanuel Vadot/* LS-SPI0 */ 278*f126890aSEmmanuel Vadot&spi4 { 279*f126890aSEmmanuel Vadot pinctrl-names = "default"; 280*f126890aSEmmanuel Vadot pinctrl-0 = <&spi4_pins_a>; 281*f126890aSEmmanuel Vadot cs-gpios = <&gpioe 11 GPIO_ACTIVE_HIGH>; 282*f126890aSEmmanuel Vadot status = "okay"; 283*f126890aSEmmanuel Vadot}; 284*f126890aSEmmanuel Vadot 285*f126890aSEmmanuel Vadot/* BG96 */ 286*f126890aSEmmanuel Vadot&usart2 { 287*f126890aSEmmanuel Vadot pinctrl-names = "default", "sleep"; 288*f126890aSEmmanuel Vadot pinctrl-0 = <&usart2_pins_b>; 289*f126890aSEmmanuel Vadot pinctrl-1 = <&usart2_sleep_pins_b>; 290*f126890aSEmmanuel Vadot uart-has-rtscts; 291*f126890aSEmmanuel Vadot /delete-property/dmas; 292*f126890aSEmmanuel Vadot /delete-property/dma-names; 293*f126890aSEmmanuel Vadot status = "okay"; 294*f126890aSEmmanuel Vadot}; 295*f126890aSEmmanuel Vadot 296*f126890aSEmmanuel Vadot/* LS-UART0 */ 297*f126890aSEmmanuel Vadot&uart4 { 298*f126890aSEmmanuel Vadot pinctrl-names = "default"; 299*f126890aSEmmanuel Vadot pinctrl-0 = <&uart4_pins_c>; 300*f126890aSEmmanuel Vadot uart-has-rtscts; 301*f126890aSEmmanuel Vadot /delete-property/dmas; 302*f126890aSEmmanuel Vadot /delete-property/dma-names; 303*f126890aSEmmanuel Vadot status = "okay"; 304*f126890aSEmmanuel Vadot}; 305*f126890aSEmmanuel Vadot 306*f126890aSEmmanuel Vadot/* Debug console */ 307*f126890aSEmmanuel Vadot&uart7 { 308*f126890aSEmmanuel Vadot pinctrl-names = "default"; 309*f126890aSEmmanuel Vadot pinctrl-0 = <&uart7_pins_b>; 310*f126890aSEmmanuel Vadot /delete-property/dmas; 311*f126890aSEmmanuel Vadot /delete-property/dma-names; 312*f126890aSEmmanuel Vadot status = "okay"; 313*f126890aSEmmanuel Vadot}; 314*f126890aSEmmanuel Vadot 315*f126890aSEmmanuel Vadot&usbh_ehci { 316*f126890aSEmmanuel Vadot status = "okay"; 317*f126890aSEmmanuel Vadot}; 318*f126890aSEmmanuel Vadot 319*f126890aSEmmanuel Vadot&usbotg_hs { 320*f126890aSEmmanuel Vadot dr_mode = "peripheral"; 321*f126890aSEmmanuel Vadot pinctrl-0 = <&usbotg_hs_pins_a>; 322*f126890aSEmmanuel Vadot pinctrl-names = "default"; 323*f126890aSEmmanuel Vadot phy-names = "usb2-phy"; 324*f126890aSEmmanuel Vadot phys = <&usbphyc_port1 0>; 325*f126890aSEmmanuel Vadot vbus-supply = <&vbus_otg>; 326*f126890aSEmmanuel Vadot status = "okay"; 327*f126890aSEmmanuel Vadot}; 328*f126890aSEmmanuel Vadot 329*f126890aSEmmanuel Vadot&usbphyc { 330*f126890aSEmmanuel Vadot status = "okay"; 331*f126890aSEmmanuel Vadot}; 332*f126890aSEmmanuel Vadot 333*f126890aSEmmanuel Vadot&usbphyc_port0 { 334*f126890aSEmmanuel Vadot phy-supply = <&vdd_usb>; 335*f126890aSEmmanuel Vadot}; 336*f126890aSEmmanuel Vadot 337*f126890aSEmmanuel Vadot&usbphyc_port1 { 338*f126890aSEmmanuel Vadot phy-supply = <&vdd_usb>; 339*f126890aSEmmanuel Vadot}; 340