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