1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Copyright (C) STMicroelectronics 2017 - All Rights Reserved 4*724ba675SRob Herring * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics. 5*724ba675SRob Herring */ 6*724ba675SRob Herring/dts-v1/; 7*724ba675SRob Herring 8*724ba675SRob Herring#include "stm32mp157.dtsi" 9*724ba675SRob Herring#include "stm32mp15xc.dtsi" 10*724ba675SRob Herring#include "stm32mp15-pinctrl.dtsi" 11*724ba675SRob Herring#include "stm32mp15xxaa-pinctrl.dtsi" 12*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h> 13*724ba675SRob Herring#include <dt-bindings/mfd/st,stpmic1.h> 14*724ba675SRob Herring 15*724ba675SRob Herring/ { 16*724ba675SRob Herring model = "STMicroelectronics STM32MP157C eval daughter"; 17*724ba675SRob Herring compatible = "st,stm32mp157c-ed1", "st,stm32mp157"; 18*724ba675SRob Herring 19*724ba675SRob Herring aliases { 20*724ba675SRob Herring serial0 = &uart4; 21*724ba675SRob Herring }; 22*724ba675SRob Herring 23*724ba675SRob Herring chosen { 24*724ba675SRob Herring stdout-path = "serial0:115200n8"; 25*724ba675SRob Herring }; 26*724ba675SRob Herring 27*724ba675SRob Herring memory@c0000000 { 28*724ba675SRob Herring device_type = "memory"; 29*724ba675SRob Herring reg = <0xC0000000 0x40000000>; 30*724ba675SRob Herring }; 31*724ba675SRob Herring 32*724ba675SRob Herring reserved-memory { 33*724ba675SRob Herring #address-cells = <1>; 34*724ba675SRob Herring #size-cells = <1>; 35*724ba675SRob Herring ranges; 36*724ba675SRob Herring 37*724ba675SRob Herring mcuram2: mcuram2@10000000 { 38*724ba675SRob Herring compatible = "shared-dma-pool"; 39*724ba675SRob Herring reg = <0x10000000 0x40000>; 40*724ba675SRob Herring no-map; 41*724ba675SRob Herring }; 42*724ba675SRob Herring 43*724ba675SRob Herring vdev0vring0: vdev0vring0@10040000 { 44*724ba675SRob Herring compatible = "shared-dma-pool"; 45*724ba675SRob Herring reg = <0x10040000 0x1000>; 46*724ba675SRob Herring no-map; 47*724ba675SRob Herring }; 48*724ba675SRob Herring 49*724ba675SRob Herring vdev0vring1: vdev0vring1@10041000 { 50*724ba675SRob Herring compatible = "shared-dma-pool"; 51*724ba675SRob Herring reg = <0x10041000 0x1000>; 52*724ba675SRob Herring no-map; 53*724ba675SRob Herring }; 54*724ba675SRob Herring 55*724ba675SRob Herring vdev0buffer: vdev0buffer@10042000 { 56*724ba675SRob Herring compatible = "shared-dma-pool"; 57*724ba675SRob Herring reg = <0x10042000 0x4000>; 58*724ba675SRob Herring no-map; 59*724ba675SRob Herring }; 60*724ba675SRob Herring 61*724ba675SRob Herring mcuram: mcuram@30000000 { 62*724ba675SRob Herring compatible = "shared-dma-pool"; 63*724ba675SRob Herring reg = <0x30000000 0x40000>; 64*724ba675SRob Herring no-map; 65*724ba675SRob Herring }; 66*724ba675SRob Herring 67*724ba675SRob Herring retram: retram@38000000 { 68*724ba675SRob Herring compatible = "shared-dma-pool"; 69*724ba675SRob Herring reg = <0x38000000 0x10000>; 70*724ba675SRob Herring no-map; 71*724ba675SRob Herring }; 72*724ba675SRob Herring }; 73*724ba675SRob Herring 74*724ba675SRob Herring sd_switch: regulator-sd_switch { 75*724ba675SRob Herring compatible = "regulator-gpio"; 76*724ba675SRob Herring regulator-name = "sd_switch"; 77*724ba675SRob Herring regulator-min-microvolt = <1800000>; 78*724ba675SRob Herring regulator-max-microvolt = <2900000>; 79*724ba675SRob Herring regulator-type = "voltage"; 80*724ba675SRob Herring regulator-always-on; 81*724ba675SRob Herring 82*724ba675SRob Herring gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>; 83*724ba675SRob Herring gpios-states = <0>; 84*724ba675SRob Herring states = <1800000 0x1>, 85*724ba675SRob Herring <2900000 0x0>; 86*724ba675SRob Herring }; 87*724ba675SRob Herring 88*724ba675SRob Herring vin: vin { 89*724ba675SRob Herring compatible = "regulator-fixed"; 90*724ba675SRob Herring regulator-name = "vin"; 91*724ba675SRob Herring regulator-min-microvolt = <5000000>; 92*724ba675SRob Herring regulator-max-microvolt = <5000000>; 93*724ba675SRob Herring regulator-always-on; 94*724ba675SRob Herring }; 95*724ba675SRob Herring}; 96*724ba675SRob Herring 97*724ba675SRob Herring&adc { 98*724ba675SRob Herring /* ANA0, ANA1 are dedicated pins and don't need pinctrl: only in6. */ 99*724ba675SRob Herring pinctrl-0 = <&adc1_in6_pins_a>; 100*724ba675SRob Herring pinctrl-names = "default"; 101*724ba675SRob Herring vdd-supply = <&vdd>; 102*724ba675SRob Herring vdda-supply = <&vdda>; 103*724ba675SRob Herring vref-supply = <&vdda>; 104*724ba675SRob Herring status = "disabled"; 105*724ba675SRob Herring adc1: adc@0 { 106*724ba675SRob Herring status = "okay"; 107*724ba675SRob Herring channel@0 { 108*724ba675SRob Herring reg = <0>; 109*724ba675SRob Herring /* 16.5 ck_cycles sampling time */ 110*724ba675SRob Herring st,min-sample-time-ns = <400>; 111*724ba675SRob Herring }; 112*724ba675SRob Herring channel@1 { 113*724ba675SRob Herring reg = <1>; 114*724ba675SRob Herring st,min-sample-time-ns = <400>; 115*724ba675SRob Herring }; 116*724ba675SRob Herring channel@6 { 117*724ba675SRob Herring reg = <6>; 118*724ba675SRob Herring st,min-sample-time-ns = <400>; 119*724ba675SRob Herring }; 120*724ba675SRob Herring }; 121*724ba675SRob Herring}; 122*724ba675SRob Herring 123*724ba675SRob Herring&crc1 { 124*724ba675SRob Herring status = "okay"; 125*724ba675SRob Herring}; 126*724ba675SRob Herring 127*724ba675SRob Herring&cryp1 { 128*724ba675SRob Herring status = "okay"; 129*724ba675SRob Herring}; 130*724ba675SRob Herring 131*724ba675SRob Herring&dac { 132*724ba675SRob Herring pinctrl-names = "default"; 133*724ba675SRob Herring pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>; 134*724ba675SRob Herring vref-supply = <&vdda>; 135*724ba675SRob Herring status = "disabled"; 136*724ba675SRob Herring dac1: dac@1 { 137*724ba675SRob Herring status = "okay"; 138*724ba675SRob Herring }; 139*724ba675SRob Herring dac2: dac@2 { 140*724ba675SRob Herring status = "okay"; 141*724ba675SRob Herring }; 142*724ba675SRob Herring}; 143*724ba675SRob Herring 144*724ba675SRob Herring&dts { 145*724ba675SRob Herring status = "okay"; 146*724ba675SRob Herring}; 147*724ba675SRob Herring 148*724ba675SRob Herring&hash1 { 149*724ba675SRob Herring status = "okay"; 150*724ba675SRob Herring}; 151*724ba675SRob Herring 152*724ba675SRob Herring&i2c4 { 153*724ba675SRob Herring pinctrl-names = "default", "sleep"; 154*724ba675SRob Herring pinctrl-0 = <&i2c4_pins_a>; 155*724ba675SRob Herring pinctrl-1 = <&i2c4_sleep_pins_a>; 156*724ba675SRob Herring i2c-scl-rising-time-ns = <185>; 157*724ba675SRob Herring i2c-scl-falling-time-ns = <20>; 158*724ba675SRob Herring clock-frequency = <400000>; 159*724ba675SRob Herring status = "okay"; 160*724ba675SRob Herring /* spare dmas for other usage */ 161*724ba675SRob Herring /delete-property/dmas; 162*724ba675SRob Herring /delete-property/dma-names; 163*724ba675SRob Herring 164*724ba675SRob Herring pmic: stpmic@33 { 165*724ba675SRob Herring compatible = "st,stpmic1"; 166*724ba675SRob Herring reg = <0x33>; 167*724ba675SRob Herring interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>; 168*724ba675SRob Herring interrupt-controller; 169*724ba675SRob Herring #interrupt-cells = <2>; 170*724ba675SRob Herring status = "okay"; 171*724ba675SRob Herring 172*724ba675SRob Herring regulators { 173*724ba675SRob Herring compatible = "st,stpmic1-regulators"; 174*724ba675SRob Herring buck1-supply = <&vin>; 175*724ba675SRob Herring buck2-supply = <&vin>; 176*724ba675SRob Herring buck3-supply = <&vin>; 177*724ba675SRob Herring buck4-supply = <&vin>; 178*724ba675SRob Herring ldo1-supply = <&v3v3>; 179*724ba675SRob Herring ldo2-supply = <&v3v3>; 180*724ba675SRob Herring ldo3-supply = <&vdd_ddr>; 181*724ba675SRob Herring ldo4-supply = <&vin>; 182*724ba675SRob Herring ldo5-supply = <&v3v3>; 183*724ba675SRob Herring ldo6-supply = <&v3v3>; 184*724ba675SRob Herring vref_ddr-supply = <&vin>; 185*724ba675SRob Herring boost-supply = <&vin>; 186*724ba675SRob Herring pwr_sw1-supply = <&bst_out>; 187*724ba675SRob Herring pwr_sw2-supply = <&bst_out>; 188*724ba675SRob Herring 189*724ba675SRob Herring vddcore: buck1 { 190*724ba675SRob Herring regulator-name = "vddcore"; 191*724ba675SRob Herring regulator-min-microvolt = <1200000>; 192*724ba675SRob Herring regulator-max-microvolt = <1350000>; 193*724ba675SRob Herring regulator-always-on; 194*724ba675SRob Herring regulator-initial-mode = <0>; 195*724ba675SRob Herring regulator-over-current-protection; 196*724ba675SRob Herring }; 197*724ba675SRob Herring 198*724ba675SRob Herring vdd_ddr: buck2 { 199*724ba675SRob Herring regulator-name = "vdd_ddr"; 200*724ba675SRob Herring regulator-min-microvolt = <1350000>; 201*724ba675SRob Herring regulator-max-microvolt = <1350000>; 202*724ba675SRob Herring regulator-always-on; 203*724ba675SRob Herring regulator-initial-mode = <0>; 204*724ba675SRob Herring regulator-over-current-protection; 205*724ba675SRob Herring }; 206*724ba675SRob Herring 207*724ba675SRob Herring vdd: buck3 { 208*724ba675SRob Herring regulator-name = "vdd"; 209*724ba675SRob Herring regulator-min-microvolt = <3300000>; 210*724ba675SRob Herring regulator-max-microvolt = <3300000>; 211*724ba675SRob Herring regulator-always-on; 212*724ba675SRob Herring st,mask-reset; 213*724ba675SRob Herring regulator-initial-mode = <0>; 214*724ba675SRob Herring regulator-over-current-protection; 215*724ba675SRob Herring }; 216*724ba675SRob Herring 217*724ba675SRob Herring v3v3: buck4 { 218*724ba675SRob Herring regulator-name = "v3v3"; 219*724ba675SRob Herring regulator-min-microvolt = <3300000>; 220*724ba675SRob Herring regulator-max-microvolt = <3300000>; 221*724ba675SRob Herring regulator-always-on; 222*724ba675SRob Herring regulator-over-current-protection; 223*724ba675SRob Herring regulator-initial-mode = <0>; 224*724ba675SRob Herring }; 225*724ba675SRob Herring 226*724ba675SRob Herring vdda: ldo1 { 227*724ba675SRob Herring regulator-name = "vdda"; 228*724ba675SRob Herring regulator-min-microvolt = <2900000>; 229*724ba675SRob Herring regulator-max-microvolt = <2900000>; 230*724ba675SRob Herring interrupts = <IT_CURLIM_LDO1 0>; 231*724ba675SRob Herring }; 232*724ba675SRob Herring 233*724ba675SRob Herring v2v8: ldo2 { 234*724ba675SRob Herring regulator-name = "v2v8"; 235*724ba675SRob Herring regulator-min-microvolt = <2800000>; 236*724ba675SRob Herring regulator-max-microvolt = <2800000>; 237*724ba675SRob Herring interrupts = <IT_CURLIM_LDO2 0>; 238*724ba675SRob Herring }; 239*724ba675SRob Herring 240*724ba675SRob Herring vtt_ddr: ldo3 { 241*724ba675SRob Herring regulator-name = "vtt_ddr"; 242*724ba675SRob Herring regulator-min-microvolt = <500000>; 243*724ba675SRob Herring regulator-max-microvolt = <750000>; 244*724ba675SRob Herring regulator-always-on; 245*724ba675SRob Herring regulator-over-current-protection; 246*724ba675SRob Herring }; 247*724ba675SRob Herring 248*724ba675SRob Herring vdd_usb: ldo4 { 249*724ba675SRob Herring regulator-name = "vdd_usb"; 250*724ba675SRob Herring interrupts = <IT_CURLIM_LDO4 0>; 251*724ba675SRob Herring }; 252*724ba675SRob Herring 253*724ba675SRob Herring vdd_sd: ldo5 { 254*724ba675SRob Herring regulator-name = "vdd_sd"; 255*724ba675SRob Herring regulator-min-microvolt = <2900000>; 256*724ba675SRob Herring regulator-max-microvolt = <2900000>; 257*724ba675SRob Herring interrupts = <IT_CURLIM_LDO5 0>; 258*724ba675SRob Herring regulator-boot-on; 259*724ba675SRob Herring }; 260*724ba675SRob Herring 261*724ba675SRob Herring v1v8: ldo6 { 262*724ba675SRob Herring regulator-name = "v1v8"; 263*724ba675SRob Herring regulator-min-microvolt = <1800000>; 264*724ba675SRob Herring regulator-max-microvolt = <1800000>; 265*724ba675SRob Herring interrupts = <IT_CURLIM_LDO6 0>; 266*724ba675SRob Herring }; 267*724ba675SRob Herring 268*724ba675SRob Herring vref_ddr: vref_ddr { 269*724ba675SRob Herring regulator-name = "vref_ddr"; 270*724ba675SRob Herring regulator-always-on; 271*724ba675SRob Herring }; 272*724ba675SRob Herring 273*724ba675SRob Herring bst_out: boost { 274*724ba675SRob Herring regulator-name = "bst_out"; 275*724ba675SRob Herring interrupts = <IT_OCP_BOOST 0>; 276*724ba675SRob Herring }; 277*724ba675SRob Herring 278*724ba675SRob Herring vbus_otg: pwr_sw1 { 279*724ba675SRob Herring regulator-name = "vbus_otg"; 280*724ba675SRob Herring interrupts = <IT_OCP_OTG 0>; 281*724ba675SRob Herring }; 282*724ba675SRob Herring 283*724ba675SRob Herring vbus_sw: pwr_sw2 { 284*724ba675SRob Herring regulator-name = "vbus_sw"; 285*724ba675SRob Herring interrupts = <IT_OCP_SWOUT 0>; 286*724ba675SRob Herring regulator-active-discharge = <1>; 287*724ba675SRob Herring }; 288*724ba675SRob Herring }; 289*724ba675SRob Herring 290*724ba675SRob Herring onkey { 291*724ba675SRob Herring compatible = "st,stpmic1-onkey"; 292*724ba675SRob Herring interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>; 293*724ba675SRob Herring interrupt-names = "onkey-falling", "onkey-rising"; 294*724ba675SRob Herring power-off-time-sec = <10>; 295*724ba675SRob Herring status = "okay"; 296*724ba675SRob Herring }; 297*724ba675SRob Herring 298*724ba675SRob Herring watchdog { 299*724ba675SRob Herring compatible = "st,stpmic1-wdt"; 300*724ba675SRob Herring status = "disabled"; 301*724ba675SRob Herring }; 302*724ba675SRob Herring }; 303*724ba675SRob Herring}; 304*724ba675SRob Herring 305*724ba675SRob Herring&ipcc { 306*724ba675SRob Herring status = "okay"; 307*724ba675SRob Herring}; 308*724ba675SRob Herring 309*724ba675SRob Herring&iwdg2 { 310*724ba675SRob Herring timeout-sec = <32>; 311*724ba675SRob Herring status = "okay"; 312*724ba675SRob Herring}; 313*724ba675SRob Herring 314*724ba675SRob Herring&m4_rproc { 315*724ba675SRob Herring memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, 316*724ba675SRob Herring <&vdev0vring1>, <&vdev0buffer>; 317*724ba675SRob Herring mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>; 318*724ba675SRob Herring mbox-names = "vq0", "vq1", "shutdown", "detach"; 319*724ba675SRob Herring interrupt-parent = <&exti>; 320*724ba675SRob Herring interrupts = <68 1>; 321*724ba675SRob Herring status = "okay"; 322*724ba675SRob Herring}; 323*724ba675SRob Herring 324*724ba675SRob Herring&pwr_regulators { 325*724ba675SRob Herring vdd-supply = <&vdd>; 326*724ba675SRob Herring vdd_3v3_usbfs-supply = <&vdd_usb>; 327*724ba675SRob Herring}; 328*724ba675SRob Herring 329*724ba675SRob Herring&rng1 { 330*724ba675SRob Herring status = "okay"; 331*724ba675SRob Herring}; 332*724ba675SRob Herring 333*724ba675SRob Herring&rtc { 334*724ba675SRob Herring status = "okay"; 335*724ba675SRob Herring}; 336*724ba675SRob Herring 337*724ba675SRob Herring&sdmmc1 { 338*724ba675SRob Herring pinctrl-names = "default", "opendrain", "sleep"; 339*724ba675SRob Herring pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>; 340*724ba675SRob Herring pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>; 341*724ba675SRob Herring pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>; 342*724ba675SRob Herring cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 343*724ba675SRob Herring disable-wp; 344*724ba675SRob Herring st,sig-dir; 345*724ba675SRob Herring st,neg-edge; 346*724ba675SRob Herring st,use-ckin; 347*724ba675SRob Herring bus-width = <4>; 348*724ba675SRob Herring vmmc-supply = <&vdd_sd>; 349*724ba675SRob Herring vqmmc-supply = <&sd_switch>; 350*724ba675SRob Herring sd-uhs-sdr12; 351*724ba675SRob Herring sd-uhs-sdr25; 352*724ba675SRob Herring sd-uhs-sdr50; 353*724ba675SRob Herring sd-uhs-ddr50; 354*724ba675SRob Herring status = "okay"; 355*724ba675SRob Herring}; 356*724ba675SRob Herring 357*724ba675SRob Herring&sdmmc2 { 358*724ba675SRob Herring pinctrl-names = "default", "opendrain", "sleep"; 359*724ba675SRob Herring pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>; 360*724ba675SRob Herring pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>; 361*724ba675SRob Herring pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>; 362*724ba675SRob Herring non-removable; 363*724ba675SRob Herring no-sd; 364*724ba675SRob Herring no-sdio; 365*724ba675SRob Herring st,neg-edge; 366*724ba675SRob Herring bus-width = <8>; 367*724ba675SRob Herring vmmc-supply = <&v3v3>; 368*724ba675SRob Herring vqmmc-supply = <&vdd>; 369*724ba675SRob Herring mmc-ddr-3_3v; 370*724ba675SRob Herring status = "okay"; 371*724ba675SRob Herring}; 372*724ba675SRob Herring 373*724ba675SRob Herring&timers6 { 374*724ba675SRob Herring status = "okay"; 375*724ba675SRob Herring /* spare dmas for other usage */ 376*724ba675SRob Herring /delete-property/dmas; 377*724ba675SRob Herring /delete-property/dma-names; 378*724ba675SRob Herring timer@5 { 379*724ba675SRob Herring status = "okay"; 380*724ba675SRob Herring }; 381*724ba675SRob Herring}; 382*724ba675SRob Herring 383*724ba675SRob Herring&uart4 { 384*724ba675SRob Herring pinctrl-names = "default", "sleep", "idle"; 385*724ba675SRob Herring pinctrl-0 = <&uart4_pins_a>; 386*724ba675SRob Herring pinctrl-1 = <&uart4_sleep_pins_a>; 387*724ba675SRob Herring pinctrl-2 = <&uart4_idle_pins_a>; 388*724ba675SRob Herring /delete-property/dmas; 389*724ba675SRob Herring /delete-property/dma-names; 390*724ba675SRob Herring status = "okay"; 391*724ba675SRob Herring}; 392*724ba675SRob Herring 393*724ba675SRob Herring&usbotg_hs { 394*724ba675SRob Herring vbus-supply = <&vbus_otg>; 395*724ba675SRob Herring}; 396*724ba675SRob Herring 397*724ba675SRob Herring&usbphyc_port0 { 398*724ba675SRob Herring phy-supply = <&vdd_usb>; 399*724ba675SRob Herring}; 400*724ba675SRob Herring 401*724ba675SRob Herring&usbphyc_port1 { 402*724ba675SRob Herring phy-supply = <&vdd_usb>; 403*724ba675SRob Herring}; 404