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