xref: /optee_os/core/arch/arm/dts/stm32mp15xx-dhcom-som.dtsi (revision 234a510d622818c8dce21cd189c805faac10e32d)
16e9896c0SJohann Neuhauser// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
26e9896c0SJohann Neuhauser/*
36e9896c0SJohann Neuhauser * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
46e9896c0SJohann Neuhauser * Copyright (C) 2022 DH electronics GmbH
56e9896c0SJohann Neuhauser */
66e9896c0SJohann Neuhauser
76e9896c0SJohann Neuhauser#include "stm32mp15-pinctrl.dtsi"
86e9896c0SJohann Neuhauser#include "stm32mp15xxaa-pinctrl.dtsi"
96e9896c0SJohann Neuhauser#include <dt-bindings/gpio/gpio.h>
106e9896c0SJohann Neuhauser#include <dt-bindings/mfd/st,stpmic1.h>
116e9896c0SJohann Neuhauser
126e9896c0SJohann Neuhauser/ {
136e9896c0SJohann Neuhauser	aliases {
146e9896c0SJohann Neuhauser		ethernet0 = &ethernet0;
156e9896c0SJohann Neuhauser		ethernet1 = &ksz8851;
166e9896c0SJohann Neuhauser		rtc0 = &hwrtc;
176e9896c0SJohann Neuhauser		rtc1 = &rtc;
186e9896c0SJohann Neuhauser	};
196e9896c0SJohann Neuhauser
206e9896c0SJohann Neuhauser	memory@c0000000 {
216e9896c0SJohann Neuhauser		device_type = "memory";
226e9896c0SJohann Neuhauser		reg = <0xC0000000 0x40000000>;
236e9896c0SJohann Neuhauser	};
246e9896c0SJohann Neuhauser
256e9896c0SJohann Neuhauser	reserved-memory {
266e9896c0SJohann Neuhauser		#address-cells = <1>;
276e9896c0SJohann Neuhauser		#size-cells = <1>;
286e9896c0SJohann Neuhauser		ranges;
296e9896c0SJohann Neuhauser
306e9896c0SJohann Neuhauser		mcuram2: mcuram2@10000000 {
316e9896c0SJohann Neuhauser			compatible = "shared-dma-pool";
326e9896c0SJohann Neuhauser			reg = <0x10000000 0x40000>;
336e9896c0SJohann Neuhauser			no-map;
346e9896c0SJohann Neuhauser		};
356e9896c0SJohann Neuhauser
366e9896c0SJohann Neuhauser		vdev0vring0: vdev0vring0@10040000 {
376e9896c0SJohann Neuhauser			compatible = "shared-dma-pool";
386e9896c0SJohann Neuhauser			reg = <0x10040000 0x1000>;
396e9896c0SJohann Neuhauser			no-map;
406e9896c0SJohann Neuhauser		};
416e9896c0SJohann Neuhauser
426e9896c0SJohann Neuhauser		vdev0vring1: vdev0vring1@10041000 {
436e9896c0SJohann Neuhauser			compatible = "shared-dma-pool";
446e9896c0SJohann Neuhauser			reg = <0x10041000 0x1000>;
456e9896c0SJohann Neuhauser			no-map;
466e9896c0SJohann Neuhauser		};
476e9896c0SJohann Neuhauser
486e9896c0SJohann Neuhauser		vdev0buffer: vdev0buffer@10042000 {
496e9896c0SJohann Neuhauser			compatible = "shared-dma-pool";
506e9896c0SJohann Neuhauser			reg = <0x10042000 0x4000>;
516e9896c0SJohann Neuhauser			no-map;
526e9896c0SJohann Neuhauser		};
536e9896c0SJohann Neuhauser
546e9896c0SJohann Neuhauser		mcuram: mcuram@30000000 {
556e9896c0SJohann Neuhauser			compatible = "shared-dma-pool";
566e9896c0SJohann Neuhauser			reg = <0x30000000 0x40000>;
576e9896c0SJohann Neuhauser			no-map;
586e9896c0SJohann Neuhauser		};
596e9896c0SJohann Neuhauser
606e9896c0SJohann Neuhauser		retram: retram@38000000 {
616e9896c0SJohann Neuhauser			compatible = "shared-dma-pool";
626e9896c0SJohann Neuhauser			reg = <0x38000000 0x10000>;
636e9896c0SJohann Neuhauser			no-map;
646e9896c0SJohann Neuhauser		};
656e9896c0SJohann Neuhauser	};
666e9896c0SJohann Neuhauser
676e9896c0SJohann Neuhauser	ethernet_vio: vioregulator {
686e9896c0SJohann Neuhauser		compatible = "regulator-fixed";
696e9896c0SJohann Neuhauser		regulator-name = "vio";
706e9896c0SJohann Neuhauser		regulator-min-microvolt = <3300000>;
716e9896c0SJohann Neuhauser		regulator-max-microvolt = <3300000>;
726e9896c0SJohann Neuhauser		gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
736e9896c0SJohann Neuhauser		regulator-always-on;
746e9896c0SJohann Neuhauser		regulator-boot-on;
756e9896c0SJohann Neuhauser		vin-supply = <&vdd>;
766e9896c0SJohann Neuhauser	};
776e9896c0SJohann Neuhauser};
786e9896c0SJohann Neuhauser
796e9896c0SJohann Neuhauser&adc {
806e9896c0SJohann Neuhauser	vdd-supply = <&vdd>;
816e9896c0SJohann Neuhauser	vdda-supply = <&vdda>;
826e9896c0SJohann Neuhauser	vref-supply = <&vdda>;
836e9896c0SJohann Neuhauser	status = "okay";
846e9896c0SJohann Neuhauser
856e9896c0SJohann Neuhauser	adc1: adc@0 {
866e9896c0SJohann Neuhauser		st,min-sample-time-nsecs = <5000>;
876e9896c0SJohann Neuhauser		st,adc-channels = <0>;
886e9896c0SJohann Neuhauser		status = "okay";
896e9896c0SJohann Neuhauser	};
906e9896c0SJohann Neuhauser
916e9896c0SJohann Neuhauser	adc2: adc@100 {
926e9896c0SJohann Neuhauser		st,adc-channels = <1>;
936e9896c0SJohann Neuhauser		st,min-sample-time-nsecs = <5000>;
946e9896c0SJohann Neuhauser		status = "okay";
956e9896c0SJohann Neuhauser	};
966e9896c0SJohann Neuhauser};
976e9896c0SJohann Neuhauser
986e9896c0SJohann Neuhauser&crc1 {
996e9896c0SJohann Neuhauser	status = "okay";
1006e9896c0SJohann Neuhauser};
1016e9896c0SJohann Neuhauser
1026e9896c0SJohann Neuhauser&dac {
1036e9896c0SJohann Neuhauser	pinctrl-names = "default";
1046e9896c0SJohann Neuhauser	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
1056e9896c0SJohann Neuhauser	vref-supply = <&vdda>;
1066e9896c0SJohann Neuhauser	status = "okay";
1076e9896c0SJohann Neuhauser
1086e9896c0SJohann Neuhauser	dac1: dac@1 {
1096e9896c0SJohann Neuhauser		status = "okay";
1106e9896c0SJohann Neuhauser	};
1116e9896c0SJohann Neuhauser	dac2: dac@2 {
1126e9896c0SJohann Neuhauser		status = "okay";
1136e9896c0SJohann Neuhauser	};
1146e9896c0SJohann Neuhauser};
1156e9896c0SJohann Neuhauser
1166e9896c0SJohann Neuhauser&dts {
1176e9896c0SJohann Neuhauser	status = "okay";
1186e9896c0SJohann Neuhauser};
1196e9896c0SJohann Neuhauser
1206e9896c0SJohann Neuhauser&ethernet0 {
1216e9896c0SJohann Neuhauser	status = "okay";
1226e9896c0SJohann Neuhauser	pinctrl-0 = <&ethernet0_rmii_pins_c &mco2_pins_a>;
1236e9896c0SJohann Neuhauser	pinctrl-1 = <&ethernet0_rmii_sleep_pins_c &mco2_sleep_pins_a>;
1246e9896c0SJohann Neuhauser	pinctrl-names = "default", "sleep";
1256e9896c0SJohann Neuhauser	phy-mode = "rmii";
1266e9896c0SJohann Neuhauser	max-speed = <100>;
1276e9896c0SJohann Neuhauser	phy-handle = <&phy0>;
1286e9896c0SJohann Neuhauser
1296e9896c0SJohann Neuhauser	mdio0 {
1306e9896c0SJohann Neuhauser		#address-cells = <1>;
1316e9896c0SJohann Neuhauser		#size-cells = <0>;
1326e9896c0SJohann Neuhauser		compatible = "snps,dwmac-mdio";
1336e9896c0SJohann Neuhauser
1346e9896c0SJohann Neuhauser		phy0: ethernet-phy@1 {
1356e9896c0SJohann Neuhauser			reg = <1>;
1366e9896c0SJohann Neuhauser			/* LAN8710Ai */
1376e9896c0SJohann Neuhauser			compatible = "ethernet-phy-id0007.c0f0",
1386e9896c0SJohann Neuhauser				     "ethernet-phy-ieee802.3-c22";
1396e9896c0SJohann Neuhauser			clocks = <&rcc CK_MCO2>;
1406e9896c0SJohann Neuhauser			reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>;
1416e9896c0SJohann Neuhauser			reset-assert-us = <500>;
1426e9896c0SJohann Neuhauser			reset-deassert-us = <500>;
1436e9896c0SJohann Neuhauser			smsc,disable-energy-detect;
1446e9896c0SJohann Neuhauser			interrupt-parent = <&gpioi>;
1456e9896c0SJohann Neuhauser			interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
1466e9896c0SJohann Neuhauser		};
1476e9896c0SJohann Neuhauser	};
1486e9896c0SJohann Neuhauser};
1496e9896c0SJohann Neuhauser
15041115447SGatien Chevallier&etzpc {
15141115447SGatien Chevallier	st,decprot =
15241115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_USART1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>,
15341115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_SPI6_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>,
15441115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_I2C4_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>,
15541115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_I2C6_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>,
15641115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_RNG1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>,
15741115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_HASH1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>,
15841115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_CRYP1_ID, DECPROT_NS_RW, DECPROT_UNLOCK)>,
15941115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_DDRCTRL_ID, DECPROT_NS_R_S_W, DECPROT_LOCK)>,
16041115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_DDRPHYC_ID, DECPROT_NS_R_S_W, DECPROT_LOCK)>,
16141115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_STGENC_ID, DECPROT_S_RW, DECPROT_LOCK)>,
16241115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_BKPSRAM_ID, DECPROT_S_RW, DECPROT_LOCK)>,
16341115447SGatien Chevallier		<DECPROT(STM32MP1_ETZPC_IWDG1_ID, DECPROT_NS_RW, DECPROT_LOCK)>;
16441115447SGatien Chevallier};
16541115447SGatien Chevallier
1666e9896c0SJohann Neuhauser&fmc {
1676e9896c0SJohann Neuhauser	pinctrl-names = "default", "sleep";
1686e9896c0SJohann Neuhauser	pinctrl-0 = <&fmc_pins_b>;
1696e9896c0SJohann Neuhauser	pinctrl-1 = <&fmc_sleep_pins_b>;
1706e9896c0SJohann Neuhauser	status = "okay";
1716e9896c0SJohann Neuhauser
1726e9896c0SJohann Neuhauser	ksz8851: ethernet@1,0 {
1736e9896c0SJohann Neuhauser		compatible = "micrel,ks8851-mll";
1746e9896c0SJohann Neuhauser		reg = <1 0x0 0x2>, <1 0x2 0x20000>;
1756e9896c0SJohann Neuhauser		interrupt-parent = <&gpioc>;
1766e9896c0SJohann Neuhauser		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
1776e9896c0SJohann Neuhauser		bank-width = <2>;
1786e9896c0SJohann Neuhauser
1796e9896c0SJohann Neuhauser		/* Timing values are in nS */
1806e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-mux-enable;
1816e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-transaction-type = <4>;
1826e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-buswidth = <16>;
1836e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-address-setup-ns = <5>;
1846e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-address-hold-ns = <5>;
1856e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-bus-turnaround-ns = <5>;
1866e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-data-setup-ns = <45>;
1876e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-data-hold-ns = <1>;
1886e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-write-address-setup-ns = <5>;
1896e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-write-address-hold-ns = <5>;
1906e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-write-bus-turnaround-ns = <5>;
1916e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-write-data-setup-ns = <45>;
1926e9896c0SJohann Neuhauser		st,fmc2-ebi-cs-write-data-hold-ns = <1>;
1936e9896c0SJohann Neuhauser	};
1946e9896c0SJohann Neuhauser};
1956e9896c0SJohann Neuhauser
1966e9896c0SJohann Neuhauser&gpioa {
1976e9896c0SJohann Neuhauser	gpio-line-names = "", "", "", "",
1986e9896c0SJohann Neuhauser			  "", "", "DHCOM-K", "",
1996e9896c0SJohann Neuhauser			  "", "", "", "",
2006e9896c0SJohann Neuhauser			  "", "", "", "";
2016e9896c0SJohann Neuhauser};
2026e9896c0SJohann Neuhauser
2036e9896c0SJohann Neuhauser&gpiob {
2046e9896c0SJohann Neuhauser	gpio-line-names = "", "", "", "",
2056e9896c0SJohann Neuhauser			  "", "", "", "",
2066e9896c0SJohann Neuhauser			  "DHCOM-Q", "", "", "",
2076e9896c0SJohann Neuhauser			  "", "", "", "";
2086e9896c0SJohann Neuhauser};
2096e9896c0SJohann Neuhauser
2106e9896c0SJohann Neuhauser&gpioc {
2116e9896c0SJohann Neuhauser	gpio-line-names = "", "", "", "",
2126e9896c0SJohann Neuhauser			  "", "", "DHCOM-E", "",
2136e9896c0SJohann Neuhauser			  "", "", "", "",
2146e9896c0SJohann Neuhauser			  "", "", "", "";
2156e9896c0SJohann Neuhauser};
2166e9896c0SJohann Neuhauser
2176e9896c0SJohann Neuhauser&gpiod {
2186e9896c0SJohann Neuhauser	gpio-line-names = "", "", "", "",
2196e9896c0SJohann Neuhauser			  "", "", "DHCOM-B", "",
2206e9896c0SJohann Neuhauser			  "", "", "", "DHCOM-F",
2216e9896c0SJohann Neuhauser			  "DHCOM-D", "", "", "";
2226e9896c0SJohann Neuhauser};
2236e9896c0SJohann Neuhauser
2246e9896c0SJohann Neuhauser&gpioe {
2256e9896c0SJohann Neuhauser	gpio-line-names = "", "", "", "",
2266e9896c0SJohann Neuhauser			  "", "", "DHCOM-P", "",
2276e9896c0SJohann Neuhauser			  "", "", "", "",
2286e9896c0SJohann Neuhauser			  "", "", "", "";
2296e9896c0SJohann Neuhauser};
2306e9896c0SJohann Neuhauser
2316e9896c0SJohann Neuhauser&gpiof {
2326e9896c0SJohann Neuhauser	gpio-line-names = "", "", "", "DHCOM-A",
2336e9896c0SJohann Neuhauser			  "", "", "", "",
2346e9896c0SJohann Neuhauser			  "", "", "", "",
2356e9896c0SJohann Neuhauser			  "", "", "", "";
2366e9896c0SJohann Neuhauser};
2376e9896c0SJohann Neuhauser
2386e9896c0SJohann Neuhauser&gpiog {
2396e9896c0SJohann Neuhauser	gpio-line-names = "DHCOM-C", "", "", "",
2406e9896c0SJohann Neuhauser			  "", "", "", "",
2416e9896c0SJohann Neuhauser			  "DHCOM-L", "", "", "",
2426e9896c0SJohann Neuhauser			  "", "", "", "";
2436e9896c0SJohann Neuhauser};
2446e9896c0SJohann Neuhauser
2456e9896c0SJohann Neuhauser&gpioh {
2466e9896c0SJohann Neuhauser	gpio-line-names = "", "", "", "",
2476e9896c0SJohann Neuhauser			  "", "", "", "DHCOM-N",
2486e9896c0SJohann Neuhauser			  "DHCOM-J", "DHCOM-W", "DHCOM-V", "DHCOM-U",
2496e9896c0SJohann Neuhauser			  "DHCOM-T", "", "DHCOM-S", "";
2506e9896c0SJohann Neuhauser};
2516e9896c0SJohann Neuhauser
2526e9896c0SJohann Neuhauser&gpioi {
2536e9896c0SJohann Neuhauser	gpio-line-names = "DHCOM-G", "DHCOM-O", "DHCOM-H", "DHCOM-I",
2546e9896c0SJohann Neuhauser			  "DHCOM-R", "DHCOM-M", "", "",
2556e9896c0SJohann Neuhauser			  "", "", "", "",
2566e9896c0SJohann Neuhauser			  "", "", "", "";
2576e9896c0SJohann Neuhauser};
2586e9896c0SJohann Neuhauser
2596e9896c0SJohann Neuhauser&i2c4 {
260*234a510dSEtienne Carriere	compatible = "st,stm32mp15-i2c-non-secure";
2616e9896c0SJohann Neuhauser	pinctrl-names = "default";
2626e9896c0SJohann Neuhauser	pinctrl-0 = <&i2c4_pins_a>;
2636e9896c0SJohann Neuhauser	i2c-scl-rising-time-ns = <185>;
2646e9896c0SJohann Neuhauser	i2c-scl-falling-time-ns = <20>;
2656e9896c0SJohann Neuhauser	status = "okay";
2666e9896c0SJohann Neuhauser	/* spare dmas for other usage */
2676e9896c0SJohann Neuhauser	/delete-property/dmas;
2686e9896c0SJohann Neuhauser	/delete-property/dma-names;
2696e9896c0SJohann Neuhauser
2706e9896c0SJohann Neuhauser	hwrtc: rtc@32 {
2716e9896c0SJohann Neuhauser		compatible = "microcrystal,rv8803";
2726e9896c0SJohann Neuhauser		reg = <0x32>;
2736e9896c0SJohann Neuhauser	};
2746e9896c0SJohann Neuhauser
2756e9896c0SJohann Neuhauser	pmic: stpmic@33 {
2766e9896c0SJohann Neuhauser		compatible = "st,stpmic1";
2776e9896c0SJohann Neuhauser		reg = <0x33>;
2786e9896c0SJohann Neuhauser		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
2796e9896c0SJohann Neuhauser		interrupt-controller;
2806e9896c0SJohann Neuhauser		#interrupt-cells = <2>;
2816e9896c0SJohann Neuhauser		status = "okay";
2826e9896c0SJohann Neuhauser
2836e9896c0SJohann Neuhauser		regulators {
2846e9896c0SJohann Neuhauser			compatible = "st,stpmic1-regulators";
2856e9896c0SJohann Neuhauser			ldo1-supply = <&v3v3>;
2866e9896c0SJohann Neuhauser			ldo2-supply = <&v3v3>;
2876e9896c0SJohann Neuhauser			ldo3-supply = <&vdd_ddr>;
2886e9896c0SJohann Neuhauser			ldo5-supply = <&v3v3>;
2896e9896c0SJohann Neuhauser			ldo6-supply = <&v3v3>;
2906e9896c0SJohann Neuhauser			pwr_sw1-supply = <&bst_out>;
2916e9896c0SJohann Neuhauser			pwr_sw2-supply = <&bst_out>;
2926e9896c0SJohann Neuhauser
2936e9896c0SJohann Neuhauser			vddcore: buck1 {
2946e9896c0SJohann Neuhauser				regulator-name = "vddcore";
2956e9896c0SJohann Neuhauser				regulator-min-microvolt = <800000>;
2966e9896c0SJohann Neuhauser				regulator-max-microvolt = <1350000>;
2976e9896c0SJohann Neuhauser				regulator-always-on;
2986e9896c0SJohann Neuhauser				regulator-initial-mode = <0>;
2996e9896c0SJohann Neuhauser				regulator-over-current-protection;
3006e9896c0SJohann Neuhauser			};
3016e9896c0SJohann Neuhauser
3026e9896c0SJohann Neuhauser			vdd_ddr: buck2 {
3036e9896c0SJohann Neuhauser				regulator-name = "vdd_ddr";
3046e9896c0SJohann Neuhauser				regulator-min-microvolt = <1350000>;
3056e9896c0SJohann Neuhauser				regulator-max-microvolt = <1350000>;
3066e9896c0SJohann Neuhauser				regulator-always-on;
3076e9896c0SJohann Neuhauser				regulator-initial-mode = <0>;
3086e9896c0SJohann Neuhauser				regulator-over-current-protection;
3096e9896c0SJohann Neuhauser			};
3106e9896c0SJohann Neuhauser
3116e9896c0SJohann Neuhauser			vdd: buck3 {
3126e9896c0SJohann Neuhauser				regulator-name = "vdd";
3136e9896c0SJohann Neuhauser				regulator-min-microvolt = <3300000>;
3146e9896c0SJohann Neuhauser				regulator-max-microvolt = <3300000>;
3156e9896c0SJohann Neuhauser				regulator-always-on;
3166e9896c0SJohann Neuhauser				st,mask-reset;
3176e9896c0SJohann Neuhauser				regulator-initial-mode = <0>;
3186e9896c0SJohann Neuhauser				regulator-over-current-protection;
3196e9896c0SJohann Neuhauser			};
3206e9896c0SJohann Neuhauser
3216e9896c0SJohann Neuhauser			v3v3: buck4 {
3226e9896c0SJohann Neuhauser				regulator-name = "v3v3";
3236e9896c0SJohann Neuhauser				regulator-min-microvolt = <3300000>;
3246e9896c0SJohann Neuhauser				regulator-max-microvolt = <3300000>;
3256e9896c0SJohann Neuhauser				regulator-always-on;
3266e9896c0SJohann Neuhauser				regulator-over-current-protection;
3276e9896c0SJohann Neuhauser				regulator-initial-mode = <0>;
3286e9896c0SJohann Neuhauser			};
3296e9896c0SJohann Neuhauser
3306e9896c0SJohann Neuhauser			vdda: ldo1 {
3316e9896c0SJohann Neuhauser				regulator-name = "vdda";
3326e9896c0SJohann Neuhauser				regulator-always-on;
3336e9896c0SJohann Neuhauser				regulator-min-microvolt = <2900000>;
3346e9896c0SJohann Neuhauser				regulator-max-microvolt = <2900000>;
3356e9896c0SJohann Neuhauser				interrupts = <IT_CURLIM_LDO1 0>;
3366e9896c0SJohann Neuhauser			};
3376e9896c0SJohann Neuhauser
3386e9896c0SJohann Neuhauser			v2v8: ldo2 {
3396e9896c0SJohann Neuhauser				regulator-name = "v2v8";
3406e9896c0SJohann Neuhauser				regulator-min-microvolt = <2800000>;
3416e9896c0SJohann Neuhauser				regulator-max-microvolt = <2800000>;
3426e9896c0SJohann Neuhauser				interrupts = <IT_CURLIM_LDO2 0>;
3436e9896c0SJohann Neuhauser			};
3446e9896c0SJohann Neuhauser
3456e9896c0SJohann Neuhauser			vtt_ddr: ldo3 {
3466e9896c0SJohann Neuhauser				regulator-name = "vtt_ddr";
3476e9896c0SJohann Neuhauser				regulator-min-microvolt = <500000>;
3486e9896c0SJohann Neuhauser				regulator-max-microvolt = <750000>;
3496e9896c0SJohann Neuhauser				regulator-always-on;
3506e9896c0SJohann Neuhauser				regulator-over-current-protection;
3516e9896c0SJohann Neuhauser			};
3526e9896c0SJohann Neuhauser
3536e9896c0SJohann Neuhauser			vdd_usb: ldo4 {
3546e9896c0SJohann Neuhauser				regulator-name = "vdd_usb";
3556e9896c0SJohann Neuhauser				interrupts = <IT_CURLIM_LDO4 0>;
3566e9896c0SJohann Neuhauser			};
3576e9896c0SJohann Neuhauser
3586e9896c0SJohann Neuhauser			vdd_sd: ldo5 {
3596e9896c0SJohann Neuhauser				regulator-name = "vdd_sd";
3606e9896c0SJohann Neuhauser				regulator-min-microvolt = <2900000>;
3616e9896c0SJohann Neuhauser				regulator-max-microvolt = <2900000>;
3626e9896c0SJohann Neuhauser				interrupts = <IT_CURLIM_LDO5 0>;
3636e9896c0SJohann Neuhauser				regulator-boot-on;
3646e9896c0SJohann Neuhauser			};
3656e9896c0SJohann Neuhauser
3666e9896c0SJohann Neuhauser			v1v8: ldo6 {
3676e9896c0SJohann Neuhauser				regulator-name = "v1v8";
3686e9896c0SJohann Neuhauser				regulator-min-microvolt = <1800000>;
3696e9896c0SJohann Neuhauser				regulator-max-microvolt = <1800000>;
3706e9896c0SJohann Neuhauser				interrupts = <IT_CURLIM_LDO6 0>;
3716e9896c0SJohann Neuhauser			};
3726e9896c0SJohann Neuhauser
3736e9896c0SJohann Neuhauser			vref_ddr: vref_ddr {
3746e9896c0SJohann Neuhauser				regulator-name = "vref_ddr";
3756e9896c0SJohann Neuhauser				regulator-always-on;
3766e9896c0SJohann Neuhauser			};
3776e9896c0SJohann Neuhauser
3786e9896c0SJohann Neuhauser			bst_out: boost {
3796e9896c0SJohann Neuhauser				regulator-name = "bst_out";
3806e9896c0SJohann Neuhauser				interrupts = <IT_OCP_BOOST 0>;
3816e9896c0SJohann Neuhauser			};
3826e9896c0SJohann Neuhauser
3836e9896c0SJohann Neuhauser			vbus_otg: pwr_sw1 {
3846e9896c0SJohann Neuhauser				regulator-name = "vbus_otg";
3856e9896c0SJohann Neuhauser				interrupts = <IT_OCP_OTG 0>;
3866e9896c0SJohann Neuhauser			};
3876e9896c0SJohann Neuhauser
3886e9896c0SJohann Neuhauser			vbus_sw: pwr_sw2 {
3896e9896c0SJohann Neuhauser				regulator-name = "vbus_sw";
3906e9896c0SJohann Neuhauser				interrupts = <IT_OCP_SWOUT 0>;
3916e9896c0SJohann Neuhauser				regulator-active-discharge = <1>;
3926e9896c0SJohann Neuhauser			};
3936e9896c0SJohann Neuhauser		};
3946e9896c0SJohann Neuhauser
3956e9896c0SJohann Neuhauser		onkey {
3966e9896c0SJohann Neuhauser			compatible = "st,stpmic1-onkey";
3976e9896c0SJohann Neuhauser			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
3986e9896c0SJohann Neuhauser			interrupt-names = "onkey-falling", "onkey-rising";
3996e9896c0SJohann Neuhauser			power-off-time-sec = <10>;
4006e9896c0SJohann Neuhauser			status = "okay";
4016e9896c0SJohann Neuhauser		};
4026e9896c0SJohann Neuhauser
4036e9896c0SJohann Neuhauser		watchdog {
4046e9896c0SJohann Neuhauser			compatible = "st,stpmic1-wdt";
4056e9896c0SJohann Neuhauser			status = "disabled";
4066e9896c0SJohann Neuhauser		};
4076e9896c0SJohann Neuhauser	};
4086e9896c0SJohann Neuhauser
4096e9896c0SJohann Neuhauser	touchscreen@49 {
4106e9896c0SJohann Neuhauser		compatible = "ti,tsc2004";
4116e9896c0SJohann Neuhauser		reg = <0x49>;
4126e9896c0SJohann Neuhauser		vio-supply = <&v3v3>;
4136e9896c0SJohann Neuhauser		interrupts-extended = <&gpioh 15 IRQ_TYPE_EDGE_FALLING>;
4146e9896c0SJohann Neuhauser	};
4156e9896c0SJohann Neuhauser
4166e9896c0SJohann Neuhauser	eeprom@50 {
4176e9896c0SJohann Neuhauser		compatible = "atmel,24c02";
4186e9896c0SJohann Neuhauser		reg = <0x50>;
4196e9896c0SJohann Neuhauser		pagesize = <16>;
4206e9896c0SJohann Neuhauser	};
4216e9896c0SJohann Neuhauser};
4226e9896c0SJohann Neuhauser
4236e9896c0SJohann Neuhauser&ipcc {
4246e9896c0SJohann Neuhauser	status = "okay";
4256e9896c0SJohann Neuhauser};
4266e9896c0SJohann Neuhauser
4276e9896c0SJohann Neuhauser&iwdg2 {
4286e9896c0SJohann Neuhauser	timeout-sec = <32>;
4296e9896c0SJohann Neuhauser	status = "okay";
4306e9896c0SJohann Neuhauser	secure-status = "disabled";
4316e9896c0SJohann Neuhauser};
4326e9896c0SJohann Neuhauser
4336e9896c0SJohann Neuhauser&m4_rproc {
4346e9896c0SJohann Neuhauser	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
4356e9896c0SJohann Neuhauser			<&vdev0vring1>, <&vdev0buffer>;
4366e9896c0SJohann Neuhauser	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
4376e9896c0SJohann Neuhauser	mbox-names = "vq0", "vq1", "shutdown";
4386e9896c0SJohann Neuhauser	interrupt-parent = <&exti>;
4396e9896c0SJohann Neuhauser	interrupts = <68 1>;
4406e9896c0SJohann Neuhauser	status = "okay";
4416e9896c0SJohann Neuhauser};
4426e9896c0SJohann Neuhauser
4436e9896c0SJohann Neuhauser&pwr_regulators {
4446e9896c0SJohann Neuhauser	vdd-supply = <&vdd>;
4456e9896c0SJohann Neuhauser	vdd_3v3_usbfs-supply = <&vdd_usb>;
4466e9896c0SJohann Neuhauser};
4476e9896c0SJohann Neuhauser
4486e9896c0SJohann Neuhauser&qspi {
4496e9896c0SJohann Neuhauser	pinctrl-names = "default", "sleep";
4506e9896c0SJohann Neuhauser	pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
4516e9896c0SJohann Neuhauser	pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
4526e9896c0SJohann Neuhauser	reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
4536e9896c0SJohann Neuhauser	#address-cells = <1>;
4546e9896c0SJohann Neuhauser	#size-cells = <0>;
4556e9896c0SJohann Neuhauser	status = "okay";
4566e9896c0SJohann Neuhauser
4576e9896c0SJohann Neuhauser	flash0: flash@0 {
4586e9896c0SJohann Neuhauser		compatible = "jedec,spi-nor";
4596e9896c0SJohann Neuhauser		reg = <0>;
4606e9896c0SJohann Neuhauser		spi-rx-bus-width = <4>;
4616e9896c0SJohann Neuhauser		spi-max-frequency = <108000000>;
4626e9896c0SJohann Neuhauser		#address-cells = <1>;
4636e9896c0SJohann Neuhauser		#size-cells = <1>;
4646e9896c0SJohann Neuhauser	};
4656e9896c0SJohann Neuhauser};
4666e9896c0SJohann Neuhauser
4676e9896c0SJohann Neuhauser&rcc {
4686e9896c0SJohann Neuhauser	/* Connect MCO2 output to ETH_RX_CLK input via pad-pad connection */
4696e9896c0SJohann Neuhauser	/* clocks = <&rcc CK_MCO2>; Not supported in OP-TEE OS */
4706e9896c0SJohann Neuhauser	/* clock-names = "ETH_RX_CLK/ETH_REF_CLK"; Not supported */
4716e9896c0SJohann Neuhauser
4726e9896c0SJohann Neuhauser	/*
4736e9896c0SJohann Neuhauser	 * Set PLL4P output to 100 MHz to supply SDMMC with faster clock,
4746e9896c0SJohann Neuhauser	 * set MCO2 output to 50 MHz to supply ETHRX clock with PLL4P/2,
4756e9896c0SJohann Neuhauser	 * so that MCO2 behaves as a divider for the ETHRX clock here.
4766e9896c0SJohann Neuhauser	 */
4776e9896c0SJohann Neuhauser	/* assigned-clocks = <&rcc CK_MCO2>, <&rcc PLL4_P>; Not supported */
4786e9896c0SJohann Neuhauser	/* assigned-clock-parents = <&rcc PLL4_P>; Not supported */
4796e9896c0SJohann Neuhauser	/* assigned-clock-rates = <50000000>, <100000000>; Not supported */
4806e9896c0SJohann Neuhauser
4816e9896c0SJohann Neuhauser	status = "okay";
4826e9896c0SJohann Neuhauser};
4836e9896c0SJohann Neuhauser
4846e9896c0SJohann Neuhauser&rng1 {
4856e9896c0SJohann Neuhauser	status = "okay";
4866e9896c0SJohann Neuhauser};
4876e9896c0SJohann Neuhauser
4886e9896c0SJohann Neuhauser&rtc {
4896e9896c0SJohann Neuhauser	status = "okay";
4906e9896c0SJohann Neuhauser};
4916e9896c0SJohann Neuhauser
4926e9896c0SJohann Neuhauser&sdmmc1 {
4936e9896c0SJohann Neuhauser	pinctrl-names = "default", "opendrain", "sleep", "init";
4946e9896c0SJohann Neuhauser	pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
4956e9896c0SJohann Neuhauser	pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
4966e9896c0SJohann Neuhauser	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
4976e9896c0SJohann Neuhauser	pinctrl-3 = <&sdmmc1_b4_init_pins_a &sdmmc1_dir_init_pins_a>;
4986e9896c0SJohann Neuhauser	cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
4996e9896c0SJohann Neuhauser	disable-wp;
5006e9896c0SJohann Neuhauser	st,sig-dir;
5016e9896c0SJohann Neuhauser	st,neg-edge;
5026e9896c0SJohann Neuhauser	st,use-ckin;
5036e9896c0SJohann Neuhauser	st,cmd-gpios = <&gpiod 2 0>;
5046e9896c0SJohann Neuhauser	st,ck-gpios = <&gpioc 12 0>;
5056e9896c0SJohann Neuhauser	st,ckin-gpios = <&gpioe 4 0>;
5066e9896c0SJohann Neuhauser	bus-width = <4>;
5076e9896c0SJohann Neuhauser	vmmc-supply = <&vdd_sd>;
5086e9896c0SJohann Neuhauser	status = "okay";
5096e9896c0SJohann Neuhauser};
5106e9896c0SJohann Neuhauser
5116e9896c0SJohann Neuhauser&sdmmc1_b4_pins_a {
5126e9896c0SJohann Neuhauser	/*
5136e9896c0SJohann Neuhauser	 * SD bus pull-up resistors:
5146e9896c0SJohann Neuhauser	 * - optional on SoMs with SD voltage translator
5156e9896c0SJohann Neuhauser	 * - mandatory on SoMs without SD voltage translator
5166e9896c0SJohann Neuhauser	 */
5176e9896c0SJohann Neuhauser	pins1 {
5186e9896c0SJohann Neuhauser		bias-pull-up;
5196e9896c0SJohann Neuhauser	};
5206e9896c0SJohann Neuhauser	pins2 {
5216e9896c0SJohann Neuhauser		bias-pull-up;
5226e9896c0SJohann Neuhauser	};
5236e9896c0SJohann Neuhauser};
5246e9896c0SJohann Neuhauser
5256e9896c0SJohann Neuhauser&sdmmc2 {
5266e9896c0SJohann Neuhauser	pinctrl-names = "default", "opendrain", "sleep";
5276e9896c0SJohann Neuhauser	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
5286e9896c0SJohann Neuhauser	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
5296e9896c0SJohann Neuhauser	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
5306e9896c0SJohann Neuhauser	non-removable;
5316e9896c0SJohann Neuhauser	no-sd;
5326e9896c0SJohann Neuhauser	no-sdio;
5336e9896c0SJohann Neuhauser	st,neg-edge;
5346e9896c0SJohann Neuhauser	bus-width = <8>;
5356e9896c0SJohann Neuhauser	vmmc-supply = <&v3v3>;
5366e9896c0SJohann Neuhauser	vqmmc-supply = <&v3v3>;
5376e9896c0SJohann Neuhauser	mmc-ddr-3_3v;
5386e9896c0SJohann Neuhauser	status = "okay";
5396e9896c0SJohann Neuhauser};
5406e9896c0SJohann Neuhauser
5416e9896c0SJohann Neuhauser&sdmmc3 {
5426e9896c0SJohann Neuhauser	pinctrl-names = "default", "opendrain", "sleep";
5436e9896c0SJohann Neuhauser	pinctrl-0 = <&sdmmc3_b4_pins_a>;
5446e9896c0SJohann Neuhauser	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
5456e9896c0SJohann Neuhauser	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
5466e9896c0SJohann Neuhauser	broken-cd;
5476e9896c0SJohann Neuhauser	st,neg-edge;
5486e9896c0SJohann Neuhauser	bus-width = <4>;
5496e9896c0SJohann Neuhauser	vmmc-supply = <&v3v3>;
5506e9896c0SJohann Neuhauser	vqmmc-supply = <&v3v3>;
5516e9896c0SJohann Neuhauser	mmc-ddr-3_3v;
5526e9896c0SJohann Neuhauser	status = "okay";
5536e9896c0SJohann Neuhauser};
5546e9896c0SJohann Neuhauser
5556e9896c0SJohann Neuhauser&uart4 {
5566e9896c0SJohann Neuhauser	pinctrl-names = "default";
5576e9896c0SJohann Neuhauser	pinctrl-0 = <&uart4_pins_a>;
5586e9896c0SJohann Neuhauser	/delete-property/dmas;
5596e9896c0SJohann Neuhauser	/delete-property/dma-names;
5606e9896c0SJohann Neuhauser	status = "okay";
5616e9896c0SJohann Neuhauser};
562