16331bddcSMarek Vasut// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 26331bddcSMarek Vasut/* 36331bddcSMarek Vasut * Copyright (C) 2024 Marek Vasut <marex@denx.de> 46331bddcSMarek Vasut */ 56331bddcSMarek Vasut 66331bddcSMarek Vasut#include <dt-bindings/gpio/gpio.h> 76331bddcSMarek Vasut#include <dt-bindings/input/input.h> 86331bddcSMarek Vasut#include <dt-bindings/leds/common.h> 96331bddcSMarek Vasut#include <dt-bindings/mfd/st,stpmic1.h> 106331bddcSMarek Vasut#include <dt-bindings/regulator/st,stm32mp13-regulator.h> 116331bddcSMarek Vasut#include "stm32mp13-pinctrl.dtsi" 126331bddcSMarek Vasut 136331bddcSMarek Vasut/ { 146331bddcSMarek Vasut model = "DH electronics STM32MP13xx DHCOR SoM"; 156331bddcSMarek Vasut compatible = "dh,stm32mp131a-dhcor-som", 166331bddcSMarek Vasut "st,stm32mp131"; 176331bddcSMarek Vasut 186331bddcSMarek Vasut aliases { 196331bddcSMarek Vasut mmc0 = &sdmmc2; 206331bddcSMarek Vasut mmc1 = &sdmmc1; 216331bddcSMarek Vasut serial0 = &uart4; 226331bddcSMarek Vasut serial1 = &uart7; 236331bddcSMarek Vasut rtc0 = &rv3032; 246331bddcSMarek Vasut spi0 = &qspi; 256331bddcSMarek Vasut }; 266331bddcSMarek Vasut 276331bddcSMarek Vasut memory@c0000000 { 286331bddcSMarek Vasut device_type = "memory"; 296331bddcSMarek Vasut reg = <0xc0000000 0x20000000>; 306331bddcSMarek Vasut }; 316331bddcSMarek Vasut 326331bddcSMarek Vasut reserved-memory { 336331bddcSMarek Vasut #address-cells = <1>; 346331bddcSMarek Vasut #size-cells = <1>; 356331bddcSMarek Vasut ranges; 366331bddcSMarek Vasut 376331bddcSMarek Vasut optee@dd000000 { 386331bddcSMarek Vasut reg = <0xdd000000 0x3000000>; 396331bddcSMarek Vasut no-map; 406331bddcSMarek Vasut }; 416331bddcSMarek Vasut }; 426331bddcSMarek Vasut 436331bddcSMarek Vasut sdio_pwrseq: sdio-pwrseq { 446331bddcSMarek Vasut compatible = "mmc-pwrseq-simple"; 456331bddcSMarek Vasut reset-gpios = <&gpiof 12 GPIO_ACTIVE_LOW>; 466331bddcSMarek Vasut }; 476331bddcSMarek Vasut 486331bddcSMarek Vasut vin: vin { 496331bddcSMarek Vasut compatible = "regulator-fixed"; 506331bddcSMarek Vasut regulator-name = "vin"; 516331bddcSMarek Vasut regulator-min-microvolt = <5000000>; 526331bddcSMarek Vasut regulator-max-microvolt = <5000000>; 536331bddcSMarek Vasut regulator-always-on; 546331bddcSMarek Vasut }; 556331bddcSMarek Vasut}; 566331bddcSMarek Vasut 576331bddcSMarek Vasut&i2c3 { 586331bddcSMarek Vasut i2c-scl-rising-time-ns = <96>; 596331bddcSMarek Vasut i2c-scl-falling-time-ns = <3>; 606331bddcSMarek Vasut clock-frequency = <400000>; 616331bddcSMarek Vasut status = "okay"; 626331bddcSMarek Vasut /* spare dmas for other usage */ 636331bddcSMarek Vasut /delete-property/dmas; 646331bddcSMarek Vasut /delete-property/dma-names; 656331bddcSMarek Vasut 666331bddcSMarek Vasut pmic: stpmic@33 { 676331bddcSMarek Vasut compatible = "st,stpmic1"; 686331bddcSMarek Vasut reg = <0x33>; 696331bddcSMarek Vasut interrupts-extended = <&gpioi 3 IRQ_TYPE_EDGE_FALLING>; 706331bddcSMarek Vasut interrupt-controller; 716331bddcSMarek Vasut #interrupt-cells = <2>; 726331bddcSMarek Vasut status = "okay"; 736331bddcSMarek Vasut 746331bddcSMarek Vasut regulators { 756331bddcSMarek Vasut compatible = "st,stpmic1-regulators"; 766331bddcSMarek Vasut 776331bddcSMarek Vasut ldo1-supply = <&vin>; 786331bddcSMarek Vasut ldo2-supply = <&vin>; 796331bddcSMarek Vasut ldo3-supply = <&vin>; 806331bddcSMarek Vasut ldo4-supply = <&vin>; 816331bddcSMarek Vasut ldo5-supply = <&vin>; 826331bddcSMarek Vasut ldo6-supply = <&vin>; 836331bddcSMarek Vasut pwr_sw1-supply = <&bst_out>; 846331bddcSMarek Vasut pwr_sw2-supply = <&bst_out>; 856331bddcSMarek Vasut 866331bddcSMarek Vasut vddcpu: buck1 { /* VDD_CPU_1V2 */ 876331bddcSMarek Vasut regulator-name = "vddcpu"; 88a4422a91SMarek Vasut regulator-min-microvolt = <1350000>; 89a4422a91SMarek Vasut regulator-max-microvolt = <1350000>; 906331bddcSMarek Vasut regulator-always-on; 916331bddcSMarek Vasut regulator-initial-mode = <0>; 926331bddcSMarek Vasut regulator-over-current-protection; 936331bddcSMarek Vasut }; 946331bddcSMarek Vasut 956331bddcSMarek Vasut vdd_ddr: buck2 { /* VDD_DDR_1V35 */ 966331bddcSMarek Vasut regulator-name = "vdd_ddr"; 976331bddcSMarek Vasut regulator-min-microvolt = <1350000>; 986331bddcSMarek Vasut regulator-max-microvolt = <1350000>; 996331bddcSMarek Vasut regulator-always-on; 1006331bddcSMarek Vasut regulator-initial-mode = <0>; 1016331bddcSMarek Vasut regulator-over-current-protection; 1026331bddcSMarek Vasut }; 1036331bddcSMarek Vasut 1046331bddcSMarek Vasut vdd: buck3 { /* VDD_3V3_1V8 */ 1056331bddcSMarek Vasut regulator-name = "vdd"; 1066331bddcSMarek Vasut regulator-min-microvolt = <1800000>; 1076331bddcSMarek Vasut regulator-max-microvolt = <3300000>; 1086331bddcSMarek Vasut regulator-always-on; 1096331bddcSMarek Vasut regulator-initial-mode = <0>; 1106331bddcSMarek Vasut regulator-over-current-protection; 1116331bddcSMarek Vasut }; 1126331bddcSMarek Vasut 1136331bddcSMarek Vasut vddcore: buck4 { /* VDD_CORE_1V2 */ 1146331bddcSMarek Vasut regulator-name = "vddcore"; 1156331bddcSMarek Vasut regulator-min-microvolt = <1250000>; 1166331bddcSMarek Vasut regulator-max-microvolt = <1250000>; 1176331bddcSMarek Vasut regulator-always-on; 1186331bddcSMarek Vasut regulator-initial-mode = <0>; 1196331bddcSMarek Vasut regulator-over-current-protection; 1206331bddcSMarek Vasut }; 1216331bddcSMarek Vasut 1226331bddcSMarek Vasut vdd_adc: ldo1 { /* VDD_ADC_1V8 */ 1236331bddcSMarek Vasut regulator-name = "vdd_adc"; 1246331bddcSMarek Vasut regulator-min-microvolt = <1800000>; 1256331bddcSMarek Vasut regulator-max-microvolt = <1800000>; 1266331bddcSMarek Vasut interrupts = <IT_CURLIM_LDO1 0>; 1276331bddcSMarek Vasut }; 1286331bddcSMarek Vasut 1296331bddcSMarek Vasut vdd_ldo2: ldo2 { /* LDO2_OUT_1V8 */ 1306331bddcSMarek Vasut regulator-name = "vdd_ldo2"; 1316331bddcSMarek Vasut regulator-min-microvolt = <1800000>; 1326331bddcSMarek Vasut regulator-max-microvolt = <1800000>; 1336331bddcSMarek Vasut interrupts = <IT_CURLIM_LDO2 0>; 1346331bddcSMarek Vasut }; 1356331bddcSMarek Vasut 1366331bddcSMarek Vasut vdd_ldo3: ldo3 { /* LDO3_OUT */ 1376331bddcSMarek Vasut regulator-name = "vdd_ldo3"; 1386331bddcSMarek Vasut regulator-min-microvolt = <1800000>; 1396331bddcSMarek Vasut regulator-max-microvolt = <1800000>; 1406331bddcSMarek Vasut interrupts = <IT_CURLIM_LDO3 0>; 1416331bddcSMarek Vasut }; 1426331bddcSMarek Vasut 1436331bddcSMarek Vasut vdd_usb: ldo4 { /* VDD_USB_3V3 */ 1446331bddcSMarek Vasut regulator-name = "vdd_usb"; 1456331bddcSMarek Vasut regulator-min-microvolt = <3300000>; 1466331bddcSMarek Vasut regulator-max-microvolt = <3300000>; 1476331bddcSMarek Vasut interrupts = <IT_CURLIM_LDO4 0>; 1486331bddcSMarek Vasut }; 1496331bddcSMarek Vasut 1506331bddcSMarek Vasut vdd_sd: ldo5 { /* VDD_SD_3V3_1V8 */ 1516331bddcSMarek Vasut regulator-name = "vdd_sd"; 1526331bddcSMarek Vasut regulator-min-microvolt = <1800000>; 1536331bddcSMarek Vasut regulator-max-microvolt = <3300000>; 1546331bddcSMarek Vasut interrupts = <IT_CURLIM_LDO5 0>; 1556331bddcSMarek Vasut }; 1566331bddcSMarek Vasut 1576331bddcSMarek Vasut vdd_sd2: ldo6 { /* VDD_SD2_3V3_1V8 */ 1586331bddcSMarek Vasut regulator-name = "vdd_sd2"; 1596331bddcSMarek Vasut regulator-min-microvolt = <1800000>; 1606331bddcSMarek Vasut regulator-max-microvolt = <3300000>; 1616331bddcSMarek Vasut interrupts = <IT_CURLIM_LDO6 0>; 1626331bddcSMarek Vasut }; 1636331bddcSMarek Vasut 1646331bddcSMarek Vasut vref_ddr: vref_ddr { /* VREF_DDR_0V675 */ 1656331bddcSMarek Vasut regulator-name = "vref_ddr"; 1666331bddcSMarek Vasut regulator-always-on; 1676331bddcSMarek Vasut }; 1686331bddcSMarek Vasut 1696331bddcSMarek Vasut bst_out: boost { /* BST_OUT_5V2 */ 1706331bddcSMarek Vasut regulator-name = "bst_out"; 1716331bddcSMarek Vasut }; 1726331bddcSMarek Vasut 1736331bddcSMarek Vasut vbus_otg: pwr_sw1 { 1746331bddcSMarek Vasut regulator-name = "vbus_otg"; 1756331bddcSMarek Vasut interrupts = <IT_OCP_OTG 0>; 1766331bddcSMarek Vasut }; 1776331bddcSMarek Vasut 1786331bddcSMarek Vasut vbus_sw: pwr_sw2 { 1796331bddcSMarek Vasut regulator-name = "vbus_sw"; 1806331bddcSMarek Vasut interrupts = <IT_OCP_SWOUT 0>; 1816331bddcSMarek Vasut regulator-active-discharge = <1>; 1826331bddcSMarek Vasut }; 1836331bddcSMarek Vasut }; 1846331bddcSMarek Vasut 1856331bddcSMarek Vasut onkey { 1866331bddcSMarek Vasut compatible = "st,stpmic1-onkey"; 1876331bddcSMarek Vasut interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>; 1886331bddcSMarek Vasut interrupt-names = "onkey-falling", "onkey-rising"; 1896331bddcSMarek Vasut status = "okay"; 1906331bddcSMarek Vasut }; 1916331bddcSMarek Vasut 1926331bddcSMarek Vasut watchdog { 1936331bddcSMarek Vasut compatible = "st,stpmic1-wdt"; 1946331bddcSMarek Vasut status = "disabled"; 1956331bddcSMarek Vasut }; 1966331bddcSMarek Vasut }; 1976331bddcSMarek Vasut 1986331bddcSMarek Vasut eeprom0: eeprom@50 { 1996331bddcSMarek Vasut compatible = "atmel,24c256"; /* ST M24256 */ 2006331bddcSMarek Vasut reg = <0x50>; 2016331bddcSMarek Vasut pagesize = <64>; 2026331bddcSMarek Vasut }; 2036331bddcSMarek Vasut 2046331bddcSMarek Vasut rv3032: rtc@51 { 2056331bddcSMarek Vasut compatible = "microcrystal,rv3032"; 2066331bddcSMarek Vasut reg = <0x51>; 2076331bddcSMarek Vasut interrupts-extended = <&gpioi 0 IRQ_TYPE_EDGE_FALLING>; 2086331bddcSMarek Vasut }; 20941e12cebSMarek Vasut 21041e12cebSMarek Vasut eeprom0wl: eeprom@58 { 21141e12cebSMarek Vasut compatible = "st,24256e-wl"; /* ST M24256E WL page of 0x50 */ 21241e12cebSMarek Vasut pagesize = <64>; 21341e12cebSMarek Vasut reg = <0x58>; 21441e12cebSMarek Vasut }; 2156331bddcSMarek Vasut}; 2166331bddcSMarek Vasut 2176331bddcSMarek Vasut&iwdg2 { 2186331bddcSMarek Vasut timeout-sec = <32>; 2196331bddcSMarek Vasut status = "okay"; 2206331bddcSMarek Vasut}; 2216331bddcSMarek Vasut 2226331bddcSMarek Vasut&qspi { 2236331bddcSMarek Vasut pinctrl-names = "default", "sleep"; 2246331bddcSMarek Vasut pinctrl-0 = <&qspi_clk_pins_a 2256331bddcSMarek Vasut &qspi_bk1_pins_a 2266331bddcSMarek Vasut &qspi_cs1_pins_a>; 2276331bddcSMarek Vasut pinctrl-1 = <&qspi_clk_sleep_pins_a 2286331bddcSMarek Vasut &qspi_bk1_sleep_pins_a 2296331bddcSMarek Vasut &qspi_cs1_sleep_pins_a>; 2306331bddcSMarek Vasut #address-cells = <1>; 2316331bddcSMarek Vasut #size-cells = <0>; 2326331bddcSMarek Vasut status = "okay"; 2336331bddcSMarek Vasut 2346331bddcSMarek Vasut flash0: flash@0 { 2356331bddcSMarek Vasut compatible = "jedec,spi-nor"; 2366331bddcSMarek Vasut reg = <0>; 2376331bddcSMarek Vasut spi-rx-bus-width = <4>; 2386331bddcSMarek Vasut spi-max-frequency = <108000000>; 2396331bddcSMarek Vasut #address-cells = <1>; 2406331bddcSMarek Vasut #size-cells = <1>; 2416331bddcSMarek Vasut }; 2426331bddcSMarek Vasut}; 2436331bddcSMarek Vasut 2446331bddcSMarek Vasut/* Console UART */ 2456331bddcSMarek Vasut&uart4 { 2466331bddcSMarek Vasut pinctrl-names = "default", "sleep", "idle"; 2476331bddcSMarek Vasut pinctrl-0 = <&uart4_pins_b>; 2486331bddcSMarek Vasut pinctrl-1 = <&uart4_sleep_pins_b>; 2496331bddcSMarek Vasut pinctrl-2 = <&uart4_idle_pins_b>; 2506331bddcSMarek Vasut /delete-property/dmas; 2516331bddcSMarek Vasut /delete-property/dma-names; 2526331bddcSMarek Vasut status = "okay"; 2536331bddcSMarek Vasut}; 2546331bddcSMarek Vasut 2556331bddcSMarek Vasut/* Bluetooth */ 2566331bddcSMarek Vasut&uart7 { 2576331bddcSMarek Vasut pinctrl-names = "default", "sleep", "idle"; 2586331bddcSMarek Vasut pinctrl-0 = <&uart7_pins_a>; 2596331bddcSMarek Vasut pinctrl-1 = <&uart7_sleep_pins_a>; 2606331bddcSMarek Vasut pinctrl-2 = <&uart7_idle_pins_a>; 2616331bddcSMarek Vasut uart-has-rtscts; 2626331bddcSMarek Vasut status = "okay"; 2636331bddcSMarek Vasut 2646331bddcSMarek Vasut bluetooth { 2656331bddcSMarek Vasut compatible = "infineon,cyw43439-bt", "brcm,bcm4329-bt"; 2666331bddcSMarek Vasut max-speed = <3000000>; 2676331bddcSMarek Vasut device-wakeup-gpios = <&gpiog 9 GPIO_ACTIVE_HIGH>; 2686331bddcSMarek Vasut shutdown-gpios = <&gpioi 2 GPIO_ACTIVE_HIGH>; 2696331bddcSMarek Vasut }; 2706331bddcSMarek Vasut}; 2716331bddcSMarek Vasut 2726331bddcSMarek Vasut/* SDIO WiFi */ 2736331bddcSMarek Vasut&sdmmc1 { 2746331bddcSMarek Vasut pinctrl-names = "default", "opendrain", "sleep"; 2756331bddcSMarek Vasut pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_clk_pins_a>; 2766331bddcSMarek Vasut pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_clk_pins_a>; 2776331bddcSMarek Vasut pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; 2786331bddcSMarek Vasut bus-width = <4>; 2796331bddcSMarek Vasut cap-power-off-card; 2806331bddcSMarek Vasut keep-power-in-suspend; 2816331bddcSMarek Vasut non-removable; 2826331bddcSMarek Vasut st,neg-edge; 2836331bddcSMarek Vasut vmmc-supply = <&vdd>; 2846331bddcSMarek Vasut mmc-pwrseq = <&sdio_pwrseq>; 2856331bddcSMarek Vasut status = "okay"; 2866331bddcSMarek Vasut 2876331bddcSMarek Vasut #address-cells = <1>; 2886331bddcSMarek Vasut #size-cells = <0>; 2896331bddcSMarek Vasut 290*988cca00SKrzysztof Kozlowski brcmf: wifi@1 { /* muRata 1YN */ 2916331bddcSMarek Vasut reg = <1>; 2926331bddcSMarek Vasut compatible = "infineon,cyw43439-fmac", "brcm,bcm4329-fmac"; 2936331bddcSMarek Vasut interrupt-parent = <&gpioe>; 2946331bddcSMarek Vasut interrupts = <14 IRQ_TYPE_LEVEL_LOW>; 2956331bddcSMarek Vasut interrupt-names = "host-wake"; 2966331bddcSMarek Vasut }; 2976331bddcSMarek Vasut}; 2986331bddcSMarek Vasut 2996331bddcSMarek Vasut/* eMMC */ 3006331bddcSMarek Vasut&sdmmc2 { 3016331bddcSMarek Vasut pinctrl-names = "default", "opendrain", "sleep"; 3026331bddcSMarek Vasut pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a &sdmmc2_clk_pins_a>; 3036331bddcSMarek Vasut pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a &sdmmc2_clk_pins_a>; 3046331bddcSMarek Vasut pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>; 3056331bddcSMarek Vasut bus-width = <8>; 3066331bddcSMarek Vasut mmc-ddr-3_3v; 3076331bddcSMarek Vasut no-sd; 3086331bddcSMarek Vasut no-sdio; 3096331bddcSMarek Vasut non-removable; 3106331bddcSMarek Vasut st,neg-edge; 3116331bddcSMarek Vasut vmmc-supply = <&vdd>; 3126331bddcSMarek Vasut vqmmc-supply = <&vdd>; 3136331bddcSMarek Vasut status = "okay"; 3146331bddcSMarek Vasut}; 315