15c932a03SJohann Neuhauser// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) 25c932a03SJohann Neuhauser/* 35c932a03SJohann Neuhauser * Copyright (C) Linaro Ltd 2019 - All Rights Reserved 45c932a03SJohann Neuhauser * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 55c932a03SJohann Neuhauser * Copyright (C) 2020 Marek Vasut <marex@denx.de> 65c932a03SJohann Neuhauser * Copyright (C) 2022 DH electronics GmbH 75c932a03SJohann Neuhauser */ 85c932a03SJohann Neuhauser 95c932a03SJohann Neuhauser#include "stm32mp15-pinctrl.dtsi" 105c932a03SJohann Neuhauser#include "stm32mp15xxac-pinctrl.dtsi" 115c932a03SJohann Neuhauser#include <dt-bindings/gpio/gpio.h> 125c932a03SJohann Neuhauser#include <dt-bindings/mfd/st,stpmic1.h> 135c932a03SJohann Neuhauser 145c932a03SJohann Neuhauser/ { 155c932a03SJohann Neuhauser aliases { 165c932a03SJohann Neuhauser spi0 = &qspi; 175c932a03SJohann Neuhauser }; 185c932a03SJohann Neuhauser 195c932a03SJohann Neuhauser memory@c0000000 { 205c932a03SJohann Neuhauser device_type = "memory"; 215c932a03SJohann Neuhauser reg = <0xc0000000 0x40000000>; 225c932a03SJohann Neuhauser }; 235c932a03SJohann Neuhauser 245c932a03SJohann Neuhauser reserved-memory { 255c932a03SJohann Neuhauser #address-cells = <1>; 265c932a03SJohann Neuhauser #size-cells = <1>; 275c932a03SJohann Neuhauser ranges; 285c932a03SJohann Neuhauser 295c932a03SJohann Neuhauser mcuram2: mcuram2@10000000 { 305c932a03SJohann Neuhauser compatible = "shared-dma-pool"; 315c932a03SJohann Neuhauser reg = <0x10000000 0x40000>; 325c932a03SJohann Neuhauser no-map; 335c932a03SJohann Neuhauser }; 345c932a03SJohann Neuhauser 355c932a03SJohann Neuhauser vdev0vring0: vdev0vring0@10040000 { 365c932a03SJohann Neuhauser compatible = "shared-dma-pool"; 375c932a03SJohann Neuhauser reg = <0x10040000 0x1000>; 385c932a03SJohann Neuhauser no-map; 395c932a03SJohann Neuhauser }; 405c932a03SJohann Neuhauser 415c932a03SJohann Neuhauser vdev0vring1: vdev0vring1@10041000 { 425c932a03SJohann Neuhauser compatible = "shared-dma-pool"; 435c932a03SJohann Neuhauser reg = <0x10041000 0x1000>; 445c932a03SJohann Neuhauser no-map; 455c932a03SJohann Neuhauser }; 465c932a03SJohann Neuhauser 475c932a03SJohann Neuhauser vdev0buffer: vdev0buffer@10042000 { 485c932a03SJohann Neuhauser compatible = "shared-dma-pool"; 495c932a03SJohann Neuhauser reg = <0x10042000 0x4000>; 505c932a03SJohann Neuhauser no-map; 515c932a03SJohann Neuhauser }; 525c932a03SJohann Neuhauser 535c932a03SJohann Neuhauser mcuram: mcuram@30000000 { 545c932a03SJohann Neuhauser compatible = "shared-dma-pool"; 555c932a03SJohann Neuhauser reg = <0x30000000 0x40000>; 565c932a03SJohann Neuhauser no-map; 575c932a03SJohann Neuhauser }; 585c932a03SJohann Neuhauser 595c932a03SJohann Neuhauser retram: retram@38000000 { 605c932a03SJohann Neuhauser compatible = "shared-dma-pool"; 615c932a03SJohann Neuhauser reg = <0x38000000 0x10000>; 625c932a03SJohann Neuhauser no-map; 635c932a03SJohann Neuhauser }; 645c932a03SJohann Neuhauser }; 655c932a03SJohann Neuhauser}; 665c932a03SJohann Neuhauser 675c932a03SJohann Neuhauser&crc1 { 685c932a03SJohann Neuhauser status = "okay"; 695c932a03SJohann Neuhauser}; 705c932a03SJohann Neuhauser 715c932a03SJohann Neuhauser&dts { 725c932a03SJohann Neuhauser status = "okay"; 735c932a03SJohann Neuhauser}; 745c932a03SJohann Neuhauser 7541115447SGatien Chevallier&etzpc { 7641115447SGatien Chevallier st,decprot = 7741115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_USART1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>, 7841115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_SPI6_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>, 7941115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_I2C4_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>, 8041115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_I2C6_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>, 8141115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_RNG1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>, 8241115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_HASH1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>, 8341115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_CRYP1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>, 8441115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_DDRCTRL_ID, DECPROT_NS_R_S_W, DECPROT_LOCK)>, 8541115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_DDRPHYC_ID, DECPROT_NS_R_S_W, DECPROT_LOCK)>, 8641115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_STGENC_ID, DECPROT_S_RW, DECPROT_LOCK)>, 8741115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_BKPSRAM_ID, DECPROT_S_RW, DECPROT_LOCK)>, 8841115447SGatien Chevallier <DECPROT(STM32MP1_ETZPC_IWDG1_ID, DECPROT_NS_RW, DECPROT_LOCK)>; 8941115447SGatien Chevallier}; 9041115447SGatien Chevallier 915c932a03SJohann Neuhauser&i2c4 { 92*234a510dSEtienne Carriere compatible = "st,stm32mp15-i2c-non-secure"; 935c932a03SJohann Neuhauser pinctrl-names = "default"; 945c932a03SJohann Neuhauser pinctrl-0 = <&i2c4_pins_a>; 955c932a03SJohann Neuhauser i2c-scl-rising-time-ns = <185>; 965c932a03SJohann Neuhauser i2c-scl-falling-time-ns = <20>; 975c932a03SJohann Neuhauser status = "okay"; 985c932a03SJohann Neuhauser /delete-property/dmas; 995c932a03SJohann Neuhauser /delete-property/dma-names; 1005c932a03SJohann Neuhauser 1015c932a03SJohann Neuhauser pmic: stpmic@33 { 1025c932a03SJohann Neuhauser compatible = "st,stpmic1"; 1035c932a03SJohann Neuhauser reg = <0x33>; 1045c932a03SJohann Neuhauser interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>; 1055c932a03SJohann Neuhauser interrupt-controller; 1065c932a03SJohann Neuhauser #interrupt-cells = <2>; 1075c932a03SJohann Neuhauser status = "okay"; 1085c932a03SJohann Neuhauser 1095c932a03SJohann Neuhauser regulators { 1105c932a03SJohann Neuhauser compatible = "st,stpmic1-regulators"; 1115c932a03SJohann Neuhauser 1125c932a03SJohann Neuhauser ldo1-supply = <&v3v3>; 1135c932a03SJohann Neuhauser ldo2-supply = <&v3v3>; 1145c932a03SJohann Neuhauser ldo3-supply = <&vdd_ddr>; 1155c932a03SJohann Neuhauser ldo5-supply = <&v3v3>; 1165c932a03SJohann Neuhauser ldo6-supply = <&v3v3>; 1175c932a03SJohann Neuhauser pwr_sw1-supply = <&bst_out>; 1185c932a03SJohann Neuhauser pwr_sw2-supply = <&bst_out>; 1195c932a03SJohann Neuhauser 1205c932a03SJohann Neuhauser vddcore: buck1 { 1215c932a03SJohann Neuhauser regulator-name = "vddcore"; 1225c932a03SJohann Neuhauser regulator-min-microvolt = <1200000>; 1235c932a03SJohann Neuhauser regulator-max-microvolt = <1350000>; 1245c932a03SJohann Neuhauser regulator-always-on; 1255c932a03SJohann Neuhauser regulator-initial-mode = <0>; 1265c932a03SJohann Neuhauser regulator-over-current-protection; 1275c932a03SJohann Neuhauser }; 1285c932a03SJohann Neuhauser 1295c932a03SJohann Neuhauser vdd_ddr: buck2 { 1305c932a03SJohann Neuhauser regulator-name = "vdd_ddr"; 1315c932a03SJohann Neuhauser regulator-min-microvolt = <1350000>; 1325c932a03SJohann Neuhauser regulator-max-microvolt = <1350000>; 1335c932a03SJohann Neuhauser regulator-always-on; 1345c932a03SJohann Neuhauser regulator-initial-mode = <0>; 1355c932a03SJohann Neuhauser regulator-over-current-protection; 1365c932a03SJohann Neuhauser }; 1375c932a03SJohann Neuhauser 1385c932a03SJohann Neuhauser vdd: buck3 { 1395c932a03SJohann Neuhauser regulator-name = "vdd"; 1405c932a03SJohann Neuhauser regulator-min-microvolt = <2900000>; 1415c932a03SJohann Neuhauser regulator-max-microvolt = <2900000>; 1425c932a03SJohann Neuhauser regulator-always-on; 1435c932a03SJohann Neuhauser regulator-initial-mode = <0>; 1445c932a03SJohann Neuhauser regulator-over-current-protection; 1455c932a03SJohann Neuhauser }; 1465c932a03SJohann Neuhauser 1475c932a03SJohann Neuhauser v3v3: buck4 { 1485c932a03SJohann Neuhauser regulator-name = "v3v3"; 1495c932a03SJohann Neuhauser regulator-min-microvolt = <3300000>; 1505c932a03SJohann Neuhauser regulator-max-microvolt = <3300000>; 1515c932a03SJohann Neuhauser regulator-always-on; 1525c932a03SJohann Neuhauser regulator-over-current-protection; 1535c932a03SJohann Neuhauser regulator-initial-mode = <0>; 1545c932a03SJohann Neuhauser }; 1555c932a03SJohann Neuhauser 1565c932a03SJohann Neuhauser vdda: ldo1 { 1575c932a03SJohann Neuhauser regulator-name = "vdda"; 1585c932a03SJohann Neuhauser regulator-min-microvolt = <2900000>; 1595c932a03SJohann Neuhauser regulator-max-microvolt = <2900000>; 1605c932a03SJohann Neuhauser interrupts = <IT_CURLIM_LDO1 0>; 1615c932a03SJohann Neuhauser }; 1625c932a03SJohann Neuhauser 1635c932a03SJohann Neuhauser v2v8: ldo2 { 1645c932a03SJohann Neuhauser regulator-name = "v2v8"; 1655c932a03SJohann Neuhauser regulator-min-microvolt = <2800000>; 1665c932a03SJohann Neuhauser regulator-max-microvolt = <2800000>; 1675c932a03SJohann Neuhauser interrupts = <IT_CURLIM_LDO2 0>; 1685c932a03SJohann Neuhauser }; 1695c932a03SJohann Neuhauser 1705c932a03SJohann Neuhauser vtt_ddr: ldo3 { 1715c932a03SJohann Neuhauser regulator-name = "vtt_ddr"; 1725c932a03SJohann Neuhauser regulator-min-microvolt = <500000>; 1735c932a03SJohann Neuhauser regulator-max-microvolt = <750000>; 1745c932a03SJohann Neuhauser regulator-always-on; 1755c932a03SJohann Neuhauser regulator-over-current-protection; 1765c932a03SJohann Neuhauser }; 1775c932a03SJohann Neuhauser 1785c932a03SJohann Neuhauser vdd_usb: ldo4 { 1795c932a03SJohann Neuhauser regulator-name = "vdd_usb"; 1805c932a03SJohann Neuhauser interrupts = <IT_CURLIM_LDO4 0>; 1815c932a03SJohann Neuhauser }; 1825c932a03SJohann Neuhauser 1835c932a03SJohann Neuhauser vdd_sd: ldo5 { 1845c932a03SJohann Neuhauser regulator-name = "vdd_sd"; 1855c932a03SJohann Neuhauser regulator-min-microvolt = <2900000>; 1865c932a03SJohann Neuhauser regulator-max-microvolt = <2900000>; 1875c932a03SJohann Neuhauser interrupts = <IT_CURLIM_LDO5 0>; 1885c932a03SJohann Neuhauser regulator-boot-on; 1895c932a03SJohann Neuhauser }; 1905c932a03SJohann Neuhauser 1915c932a03SJohann Neuhauser v1v8: ldo6 { 1925c932a03SJohann Neuhauser regulator-name = "v1v8"; 1935c932a03SJohann Neuhauser regulator-min-microvolt = <1800000>; 1945c932a03SJohann Neuhauser regulator-max-microvolt = <1800000>; 1955c932a03SJohann Neuhauser interrupts = <IT_CURLIM_LDO6 0>; 1965c932a03SJohann Neuhauser regulator-enable-ramp-delay = <300000>; 1975c932a03SJohann Neuhauser }; 1985c932a03SJohann Neuhauser 1995c932a03SJohann Neuhauser vref_ddr: vref_ddr { 2005c932a03SJohann Neuhauser regulator-name = "vref_ddr"; 2015c932a03SJohann Neuhauser regulator-always-on; 2025c932a03SJohann Neuhauser }; 2035c932a03SJohann Neuhauser 2045c932a03SJohann Neuhauser bst_out: boost { 2055c932a03SJohann Neuhauser regulator-name = "bst_out"; 2065c932a03SJohann Neuhauser interrupts = <IT_OCP_BOOST 0>; 2075c932a03SJohann Neuhauser }; 2085c932a03SJohann Neuhauser 2095c932a03SJohann Neuhauser vbus_otg: pwr_sw1 { 2105c932a03SJohann Neuhauser regulator-name = "vbus_otg"; 2115c932a03SJohann Neuhauser interrupts = <IT_OCP_OTG 0>; 2125c932a03SJohann Neuhauser regulator-active-discharge = <1>; 2135c932a03SJohann Neuhauser }; 2145c932a03SJohann Neuhauser 2155c932a03SJohann Neuhauser vbus_sw: pwr_sw2 { 2165c932a03SJohann Neuhauser regulator-name = "vbus_sw"; 2175c932a03SJohann Neuhauser interrupts = <IT_OCP_SWOUT 0>; 2185c932a03SJohann Neuhauser regulator-active-discharge = <1>; 2195c932a03SJohann Neuhauser }; 2205c932a03SJohann Neuhauser }; 2215c932a03SJohann Neuhauser 2225c932a03SJohann Neuhauser onkey { 2235c932a03SJohann Neuhauser compatible = "st,stpmic1-onkey"; 2245c932a03SJohann Neuhauser interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>; 2255c932a03SJohann Neuhauser interrupt-names = "onkey-falling", "onkey-rising"; 2265c932a03SJohann Neuhauser status = "okay"; 2275c932a03SJohann Neuhauser }; 2285c932a03SJohann Neuhauser 2295c932a03SJohann Neuhauser watchdog { 2305c932a03SJohann Neuhauser compatible = "st,stpmic1-wdt"; 2315c932a03SJohann Neuhauser status = "disabled"; 2325c932a03SJohann Neuhauser }; 2335c932a03SJohann Neuhauser }; 2345c932a03SJohann Neuhauser 2355c932a03SJohann Neuhauser eeprom@53 { 2365c932a03SJohann Neuhauser compatible = "atmel,24c02"; 2375c932a03SJohann Neuhauser reg = <0x53>; 2385c932a03SJohann Neuhauser pagesize = <16>; 2395c932a03SJohann Neuhauser }; 2405c932a03SJohann Neuhauser}; 2415c932a03SJohann Neuhauser 2425c932a03SJohann Neuhauser&ipcc { 2435c932a03SJohann Neuhauser status = "okay"; 2445c932a03SJohann Neuhauser}; 2455c932a03SJohann Neuhauser 2465c932a03SJohann Neuhauser&iwdg2 { 2475c932a03SJohann Neuhauser timeout-sec = <32>; 2485c932a03SJohann Neuhauser status = "okay"; 2495c932a03SJohann Neuhauser secure-status = "disabled"; 2505c932a03SJohann Neuhauser}; 2515c932a03SJohann Neuhauser 2525c932a03SJohann Neuhauser&m4_rproc { 2535c932a03SJohann Neuhauser memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, 2545c932a03SJohann Neuhauser <&vdev0vring1>, <&vdev0buffer>; 2555c932a03SJohann Neuhauser mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; 2565c932a03SJohann Neuhauser mbox-names = "vq0", "vq1", "shutdown"; 2575c932a03SJohann Neuhauser interrupt-parent = <&exti>; 2585c932a03SJohann Neuhauser interrupts = <68 1>; 2595c932a03SJohann Neuhauser status = "okay"; 2605c932a03SJohann Neuhauser}; 2615c932a03SJohann Neuhauser 2625c932a03SJohann Neuhauser&pwr_regulators { 2635c932a03SJohann Neuhauser vdd-supply = <&vdd>; 2645c932a03SJohann Neuhauser vdd_3v3_usbfs-supply = <&vdd_usb>; 2655c932a03SJohann Neuhauser}; 2665c932a03SJohann Neuhauser 2675c932a03SJohann Neuhauser&qspi { 2685c932a03SJohann Neuhauser pinctrl-names = "default", "sleep"; 2695c932a03SJohann Neuhauser pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>; 2705c932a03SJohann Neuhauser pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>; 2715c932a03SJohann Neuhauser reg = <0x58003000 0x1000>, <0x70000000 0x200000>; 2725c932a03SJohann Neuhauser #address-cells = <1>; 2735c932a03SJohann Neuhauser #size-cells = <0>; 2745c932a03SJohann Neuhauser status = "okay"; 2755c932a03SJohann Neuhauser 2765c932a03SJohann Neuhauser flash0: flash@0 { 2775c932a03SJohann Neuhauser compatible = "jedec,spi-nor"; 2785c932a03SJohann Neuhauser reg = <0>; 2795c932a03SJohann Neuhauser spi-rx-bus-width = <4>; 2805c932a03SJohann Neuhauser spi-max-frequency = <50000000>; 2815c932a03SJohann Neuhauser #address-cells = <1>; 2825c932a03SJohann Neuhauser #size-cells = <1>; 2835c932a03SJohann Neuhauser }; 2845c932a03SJohann Neuhauser}; 2855c932a03SJohann Neuhauser 2865c932a03SJohann Neuhauser&rcc { 2875c932a03SJohann Neuhauser status = "okay"; 2885c932a03SJohann Neuhauser}; 2895c932a03SJohann Neuhauser 2905c932a03SJohann Neuhauser&rng1 { 2915c932a03SJohann Neuhauser status = "okay"; 2925c932a03SJohann Neuhauser}; 2935c932a03SJohann Neuhauser 2945c932a03SJohann Neuhauser&rtc { 2955c932a03SJohann Neuhauser status = "okay"; 2965c932a03SJohann Neuhauser}; 297