1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (C) STMicroelectronics 2019 - All Rights Reserved 4*4882a593Smuzhiyun * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun/dts-v1/; 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun#include "stm32mp157c.dtsi" 10*4882a593Smuzhiyun#include "stm32mp157-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 model = "STMicroelectronics STM32MP157A-DK1 Discovery Board"; 16*4882a593Smuzhiyun compatible = "st,stm32mp157a-dk1", "st,stm32mp157"; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun aliases { 19*4882a593Smuzhiyun ethernet0 = ðernet0; 20*4882a593Smuzhiyun serial0 = &uart4; 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun chosen { 24*4882a593Smuzhiyun stdout-path = "serial0:115200n8"; 25*4882a593Smuzhiyun }; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun memory@c0000000 { 28*4882a593Smuzhiyun reg = <0xc0000000 0x20000000>; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun led { 32*4882a593Smuzhiyun compatible = "gpio-leds"; 33*4882a593Smuzhiyun blue { 34*4882a593Smuzhiyun label = "heartbeat"; 35*4882a593Smuzhiyun gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; 36*4882a593Smuzhiyun linux,default-trigger = "heartbeat"; 37*4882a593Smuzhiyun default-state = "off"; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun}; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyunðernet0 { 43*4882a593Smuzhiyun status = "okay"; 44*4882a593Smuzhiyun pinctrl-0 = <ðernet0_rgmii_pins_a>; 45*4882a593Smuzhiyun pinctrl-1 = <ðernet0_rgmii_pins_sleep_a>; 46*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 47*4882a593Smuzhiyun phy-mode = "rgmii"; 48*4882a593Smuzhiyun max-speed = <1000>; 49*4882a593Smuzhiyun phy-handle = <&phy0>; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun mdio0 { 52*4882a593Smuzhiyun #address-cells = <1>; 53*4882a593Smuzhiyun #size-cells = <0>; 54*4882a593Smuzhiyun compatible = "snps,dwmac-mdio"; 55*4882a593Smuzhiyun phy0: ethernet-phy@0 { 56*4882a593Smuzhiyun reg = <0>; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun}; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun&i2c4 { 62*4882a593Smuzhiyun pinctrl-names = "default"; 63*4882a593Smuzhiyun pinctrl-0 = <&i2c4_pins_a>; 64*4882a593Smuzhiyun i2c-scl-rising-time-ns = <185>; 65*4882a593Smuzhiyun i2c-scl-falling-time-ns = <20>; 66*4882a593Smuzhiyun status = "okay"; 67*4882a593Smuzhiyun /delete-property/dmas; 68*4882a593Smuzhiyun /delete-property/dma-names; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun typec: stusb1600@28 { 71*4882a593Smuzhiyun compatible = "st,stusb1600"; 72*4882a593Smuzhiyun reg = <0x28>; 73*4882a593Smuzhiyun interrupts = <11 IRQ_TYPE_EDGE_FALLING>; 74*4882a593Smuzhiyun interrupt-parent = <&gpioi>; 75*4882a593Smuzhiyun pinctrl-names = "default"; 76*4882a593Smuzhiyun pinctrl-0 = <&stusb1600_pins_a>; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun status = "okay"; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun typec_con: connector { 81*4882a593Smuzhiyun compatible = "usb-c-connector"; 82*4882a593Smuzhiyun label = "USB-C"; 83*4882a593Smuzhiyun power-role = "sink"; 84*4882a593Smuzhiyun power-opmode = "default"; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun }; 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun pmic: stpmic@33 { 89*4882a593Smuzhiyun compatible = "st,stpmic1"; 90*4882a593Smuzhiyun reg = <0x33>; 91*4882a593Smuzhiyun interrupt-controller; 92*4882a593Smuzhiyun #interrupt-cells = <2>; 93*4882a593Smuzhiyun status = "okay"; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun st,main-control-register = <0x04>; 96*4882a593Smuzhiyun st,vin-control-register = <0xc0>; 97*4882a593Smuzhiyun st,usb-control-register = <0x20>; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun regulators { 100*4882a593Smuzhiyun compatible = "st,stpmic1-regulators"; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun ldo1-supply = <&v3v3>; 103*4882a593Smuzhiyun ldo3-supply = <&vdd_ddr>; 104*4882a593Smuzhiyun ldo6-supply = <&v3v3>; 105*4882a593Smuzhiyun pwr_sw1-supply = <&bst_out>; 106*4882a593Smuzhiyun pwr_sw2-supply = <&bst_out>; 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun vddcore: buck1 { 109*4882a593Smuzhiyun regulator-name = "vddcore"; 110*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 111*4882a593Smuzhiyun regulator-max-microvolt = <1350000>; 112*4882a593Smuzhiyun regulator-always-on; 113*4882a593Smuzhiyun regulator-initial-mode = <0>; 114*4882a593Smuzhiyun regulator-over-current-protection; 115*4882a593Smuzhiyun }; 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun vdd_ddr: buck2 { 118*4882a593Smuzhiyun regulator-name = "vdd_ddr"; 119*4882a593Smuzhiyun regulator-min-microvolt = <1350000>; 120*4882a593Smuzhiyun regulator-max-microvolt = <1350000>; 121*4882a593Smuzhiyun regulator-always-on; 122*4882a593Smuzhiyun regulator-initial-mode = <0>; 123*4882a593Smuzhiyun regulator-over-current-protection; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun vdd: buck3 { 127*4882a593Smuzhiyun regulator-name = "vdd"; 128*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 129*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 130*4882a593Smuzhiyun regulator-always-on; 131*4882a593Smuzhiyun st,mask-reset; 132*4882a593Smuzhiyun regulator-initial-mode = <0>; 133*4882a593Smuzhiyun regulator-over-current-protection; 134*4882a593Smuzhiyun }; 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun v3v3: buck4 { 137*4882a593Smuzhiyun regulator-name = "v3v3"; 138*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 139*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 140*4882a593Smuzhiyun regulator-always-on; 141*4882a593Smuzhiyun regulator-over-current-protection; 142*4882a593Smuzhiyun regulator-initial-mode = <0>; 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun v1v8_audio: ldo1 { 146*4882a593Smuzhiyun regulator-name = "v1v8_audio"; 147*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 148*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 149*4882a593Smuzhiyun regulator-always-on; 150*4882a593Smuzhiyun interrupts = <IT_CURLIM_LDO1 0>; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun v3v3_hdmi: ldo2 { 154*4882a593Smuzhiyun regulator-name = "v3v3_hdmi"; 155*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 156*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 157*4882a593Smuzhiyun regulator-always-on; 158*4882a593Smuzhiyun interrupts = <IT_CURLIM_LDO2 0>; 159*4882a593Smuzhiyun }; 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun vtt_ddr: ldo3 { 162*4882a593Smuzhiyun regulator-name = "vtt_ddr"; 163*4882a593Smuzhiyun regulator-min-microvolt = <500000>; 164*4882a593Smuzhiyun regulator-max-microvolt = <750000>; 165*4882a593Smuzhiyun regulator-always-on; 166*4882a593Smuzhiyun regulator-over-current-protection; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun vdd_usb: ldo4 { 170*4882a593Smuzhiyun regulator-name = "vdd_usb"; 171*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 172*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 173*4882a593Smuzhiyun interrupts = <IT_CURLIM_LDO4 0>; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun vdda: ldo5 { 177*4882a593Smuzhiyun regulator-name = "vdda"; 178*4882a593Smuzhiyun regulator-min-microvolt = <2900000>; 179*4882a593Smuzhiyun regulator-max-microvolt = <2900000>; 180*4882a593Smuzhiyun interrupts = <IT_CURLIM_LDO5 0>; 181*4882a593Smuzhiyun regulator-boot-on; 182*4882a593Smuzhiyun }; 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun v1v2_hdmi: ldo6 { 185*4882a593Smuzhiyun regulator-name = "v1v2_hdmi"; 186*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 187*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 188*4882a593Smuzhiyun regulator-always-on; 189*4882a593Smuzhiyun interrupts = <IT_CURLIM_LDO6 0>; 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun }; 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun vref_ddr: vref_ddr { 194*4882a593Smuzhiyun regulator-name = "vref_ddr"; 195*4882a593Smuzhiyun regulator-always-on; 196*4882a593Smuzhiyun regulator-over-current-protection; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun bst_out: boost { 200*4882a593Smuzhiyun regulator-name = "bst_out"; 201*4882a593Smuzhiyun interrupts = <IT_OCP_BOOST 0>; 202*4882a593Smuzhiyun }; 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun vbus_otg: pwr_sw1 { 205*4882a593Smuzhiyun regulator-name = "vbus_otg"; 206*4882a593Smuzhiyun interrupts = <IT_OCP_OTG 0>; 207*4882a593Smuzhiyun regulator-active-discharge; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun vbus_sw: pwr_sw2 { 211*4882a593Smuzhiyun regulator-name = "vbus_sw"; 212*4882a593Smuzhiyun interrupts = <IT_OCP_SWOUT 0>; 213*4882a593Smuzhiyun regulator-active-discharge; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun }; 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun onkey { 218*4882a593Smuzhiyun compatible = "st,stpmic1-onkey"; 219*4882a593Smuzhiyun interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>; 220*4882a593Smuzhiyun interrupt-names = "onkey-falling", "onkey-rising"; 221*4882a593Smuzhiyun status = "okay"; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun watchdog { 225*4882a593Smuzhiyun compatible = "st,stpmic1-wdt"; 226*4882a593Smuzhiyun status = "disabled"; 227*4882a593Smuzhiyun }; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun}; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun&iwdg2 { 232*4882a593Smuzhiyun timeout-sec = <32>; 233*4882a593Smuzhiyun status = "okay"; 234*4882a593Smuzhiyun}; 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun&pwr { 237*4882a593Smuzhiyun pwr-supply = <&vdd>; 238*4882a593Smuzhiyun}; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun&rng1 { 241*4882a593Smuzhiyun status = "okay"; 242*4882a593Smuzhiyun}; 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun&rtc { 245*4882a593Smuzhiyun status = "okay"; 246*4882a593Smuzhiyun}; 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun&sdmmc1 { 249*4882a593Smuzhiyun pinctrl-names = "default"; 250*4882a593Smuzhiyun pinctrl-0 = <&sdmmc1_b4_pins_a>; 251*4882a593Smuzhiyun broken-cd; 252*4882a593Smuzhiyun st,neg-edge; 253*4882a593Smuzhiyun bus-width = <4>; 254*4882a593Smuzhiyun vmmc-supply = <&v3v3>; 255*4882a593Smuzhiyun status = "okay"; 256*4882a593Smuzhiyun}; 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun&uart4 { 259*4882a593Smuzhiyun pinctrl-names = "default"; 260*4882a593Smuzhiyun pinctrl-0 = <&uart4_pins_a>; 261*4882a593Smuzhiyun status = "okay"; 262*4882a593Smuzhiyun}; 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun&usbh_ehci { 265*4882a593Smuzhiyun phys = <&usbphyc_port0>; 266*4882a593Smuzhiyun phy-names = "usb"; 267*4882a593Smuzhiyun status = "okay"; 268*4882a593Smuzhiyun}; 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun&usbotg_hs { 271*4882a593Smuzhiyun dr_mode = "peripheral"; 272*4882a593Smuzhiyun phys = <&usbphyc_port1 0>; 273*4882a593Smuzhiyun phy-names = "usb2-phy"; 274*4882a593Smuzhiyun status = "okay"; 275*4882a593Smuzhiyun}; 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun&usbphyc { 278*4882a593Smuzhiyun status = "okay"; 279*4882a593Smuzhiyun}; 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun&usbphyc_port0 { 282*4882a593Smuzhiyun phy-supply = <&vdd_usb>; 283*4882a593Smuzhiyun}; 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun&usbphyc_port1 { 286*4882a593Smuzhiyun phy-supply = <&vdd_usb>; 287*4882a593Smuzhiyun}; 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun&vrefbuf { 290*4882a593Smuzhiyun regulator-min-microvolt = <2500000>; 291*4882a593Smuzhiyun regulator-max-microvolt = <2500000>; 292*4882a593Smuzhiyun vdda-supply = <&vdd>; 293*4882a593Smuzhiyun status = "okay"; 294*4882a593Smuzhiyun}; 295