xref: /rk3399_ARM-atf/fdts/stm32mp157a-dk1.dts (revision b053a22e8a538d3ee6114c0ce7f25fa49f0302d8)
16c1e71e1SYann Gautier// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
26c1e71e1SYann Gautier/*
36c1e71e1SYann Gautier * Copyright (C) STMicroelectronics 2018-2019 - All Rights Reserved
46c1e71e1SYann Gautier * Author: Alexandre Torgue <alexandre.torgue@st.com>.
56c1e71e1SYann Gautier */
66c1e71e1SYann Gautier
76c1e71e1SYann Gautier/dts-v1/;
86c1e71e1SYann Gautier
96c1e71e1SYann Gautier#include "stm32mp157c.dtsi"
106c1e71e1SYann Gautier#include "stm32mp157cac-pinctrl.dtsi"
116c1e71e1SYann Gautier
126c1e71e1SYann Gautier/ {
136c1e71e1SYann Gautier	model = "STMicroelectronics STM32MP157A-DK1 Discovery Board";
146c1e71e1SYann Gautier	compatible = "st,stm32mp157a-dk1", "st,stm32mp157";
156c1e71e1SYann Gautier
166c1e71e1SYann Gautier	aliases {
176c1e71e1SYann Gautier		serial0 = &uart4;
186c1e71e1SYann Gautier	};
196c1e71e1SYann Gautier
206c1e71e1SYann Gautier	chosen {
216c1e71e1SYann Gautier		stdout-path = "serial0:115200n8";
226c1e71e1SYann Gautier	};
236c1e71e1SYann Gautier
246c1e71e1SYann Gautier};
256c1e71e1SYann Gautier
266c1e71e1SYann Gautier&clk_hse {
276c1e71e1SYann Gautier	st,digbypass;
286c1e71e1SYann Gautier};
296c1e71e1SYann Gautier
306c1e71e1SYann Gautier&i2c4 {
316c1e71e1SYann Gautier	pinctrl-names = "default";
326c1e71e1SYann Gautier	pinctrl-0 = <&i2c4_pins_a>;
336c1e71e1SYann Gautier	i2c-scl-rising-time-ns = <185>;
346c1e71e1SYann Gautier	i2c-scl-falling-time-ns = <20>;
356c1e71e1SYann Gautier	status = "okay";
366c1e71e1SYann Gautier
376c1e71e1SYann Gautier	pmic: stpmic@33 {
386c1e71e1SYann Gautier		compatible = "st,stpmic1";
396c1e71e1SYann Gautier		reg = <0x33>;
406c1e71e1SYann Gautier		interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
416c1e71e1SYann Gautier		interrupt-controller;
426c1e71e1SYann Gautier		#interrupt-cells = <2>;
436c1e71e1SYann Gautier		status = "okay";
446c1e71e1SYann Gautier
456c1e71e1SYann Gautier		st,main-control-register = <0x04>;
466c1e71e1SYann Gautier		st,vin-control-register = <0xc0>;
476c1e71e1SYann Gautier		st,usb-control-register = <0x20>;
486c1e71e1SYann Gautier
496c1e71e1SYann Gautier		regulators {
506c1e71e1SYann Gautier			compatible = "st,stpmic1-regulators";
516c1e71e1SYann Gautier
526c1e71e1SYann Gautier			ldo1-supply = <&v3v3>;
536c1e71e1SYann Gautier			ldo3-supply = <&vdd_ddr>;
546c1e71e1SYann Gautier			ldo6-supply = <&v3v3>;
556c1e71e1SYann Gautier
566c1e71e1SYann Gautier			vddcore: buck1 {
576c1e71e1SYann Gautier				regulator-name = "vddcore";
586c1e71e1SYann Gautier				regulator-min-microvolt = <1200000>;
596c1e71e1SYann Gautier				regulator-max-microvolt = <1350000>;
606c1e71e1SYann Gautier				regulator-always-on;
616c1e71e1SYann Gautier				regulator-initial-mode = <0>;
626c1e71e1SYann Gautier				regulator-over-current-protection;
636c1e71e1SYann Gautier			};
646c1e71e1SYann Gautier
656c1e71e1SYann Gautier			vdd_ddr: buck2 {
666c1e71e1SYann Gautier				regulator-name = "vdd_ddr";
676c1e71e1SYann Gautier				regulator-min-microvolt = <1350000>;
686c1e71e1SYann Gautier				regulator-max-microvolt = <1350000>;
696c1e71e1SYann Gautier				regulator-always-on;
706c1e71e1SYann Gautier				regulator-initial-mode = <0>;
716c1e71e1SYann Gautier				regulator-over-current-protection;
726c1e71e1SYann Gautier			};
736c1e71e1SYann Gautier
746c1e71e1SYann Gautier			vdd: buck3 {
756c1e71e1SYann Gautier				regulator-name = "vdd";
766c1e71e1SYann Gautier				regulator-min-microvolt = <3300000>;
776c1e71e1SYann Gautier				regulator-max-microvolt = <3300000>;
786c1e71e1SYann Gautier				regulator-always-on;
796c1e71e1SYann Gautier				st,mask-reset;
806c1e71e1SYann Gautier				regulator-initial-mode = <0>;
816c1e71e1SYann Gautier				regulator-over-current-protection;
826c1e71e1SYann Gautier			};
836c1e71e1SYann Gautier
846c1e71e1SYann Gautier			v3v3: buck4 {
856c1e71e1SYann Gautier				regulator-name = "v3v3";
866c1e71e1SYann Gautier				regulator-min-microvolt = <3300000>;
876c1e71e1SYann Gautier				regulator-max-microvolt = <3300000>;
886c1e71e1SYann Gautier				regulator-always-on;
896c1e71e1SYann Gautier				regulator-over-current-protection;
906c1e71e1SYann Gautier				regulator-initial-mode = <0>;
916c1e71e1SYann Gautier			};
926c1e71e1SYann Gautier
936c1e71e1SYann Gautier			v1v8_audio: ldo1 {
946c1e71e1SYann Gautier				regulator-name = "v1v8_audio";
956c1e71e1SYann Gautier				regulator-min-microvolt = <1800000>;
966c1e71e1SYann Gautier				regulator-max-microvolt = <1800000>;
976c1e71e1SYann Gautier				regulator-always-on;
986c1e71e1SYann Gautier			};
996c1e71e1SYann Gautier
1006c1e71e1SYann Gautier			v3v3_hdmi: ldo2 {
1016c1e71e1SYann Gautier				regulator-name = "v3v3_hdmi";
1026c1e71e1SYann Gautier				regulator-min-microvolt = <3300000>;
1036c1e71e1SYann Gautier				regulator-max-microvolt = <3300000>;
1046c1e71e1SYann Gautier				regulator-always-on;
1056c1e71e1SYann Gautier			};
1066c1e71e1SYann Gautier
1076c1e71e1SYann Gautier			vtt_ddr: ldo3 {
1086c1e71e1SYann Gautier				regulator-name = "vtt_ddr";
1096c1e71e1SYann Gautier				regulator-min-microvolt = <500000>;
1106c1e71e1SYann Gautier				regulator-max-microvolt = <750000>;
1116c1e71e1SYann Gautier				regulator-always-on;
1126c1e71e1SYann Gautier				regulator-over-current-protection;
1136c1e71e1SYann Gautier			};
1146c1e71e1SYann Gautier
1156c1e71e1SYann Gautier			vdd_usb: ldo4 {
1166c1e71e1SYann Gautier				regulator-name = "vdd_usb";
1176c1e71e1SYann Gautier				regulator-min-microvolt = <3300000>;
1186c1e71e1SYann Gautier				regulator-max-microvolt = <3300000>;
1196c1e71e1SYann Gautier			};
1206c1e71e1SYann Gautier
1216c1e71e1SYann Gautier			vdda: ldo5 {
1226c1e71e1SYann Gautier				regulator-name = "vdda";
1236c1e71e1SYann Gautier				regulator-min-microvolt = <2900000>;
1246c1e71e1SYann Gautier				regulator-max-microvolt = <2900000>;
1256c1e71e1SYann Gautier				regulator-boot-on;
1266c1e71e1SYann Gautier			};
1276c1e71e1SYann Gautier
1286c1e71e1SYann Gautier			v1v2_hdmi: ldo6 {
1296c1e71e1SYann Gautier				regulator-name = "v1v2_hdmi";
1306c1e71e1SYann Gautier				regulator-min-microvolt = <1200000>;
1316c1e71e1SYann Gautier				regulator-max-microvolt = <1200000>;
1326c1e71e1SYann Gautier				regulator-always-on;
1336c1e71e1SYann Gautier			};
1346c1e71e1SYann Gautier
1356c1e71e1SYann Gautier			vref_ddr: vref_ddr {
1366c1e71e1SYann Gautier				regulator-name = "vref_ddr";
1376c1e71e1SYann Gautier				regulator-always-on;
1386c1e71e1SYann Gautier				regulator-over-current-protection;
1396c1e71e1SYann Gautier			};
1406c1e71e1SYann Gautier		};
1416c1e71e1SYann Gautier	};
1426c1e71e1SYann Gautier};
1436c1e71e1SYann Gautier
1446c1e71e1SYann Gautier&iwdg2 {
1456c1e71e1SYann Gautier	timeout-sec = <32>;
1466c1e71e1SYann Gautier	status = "okay";
1476c1e71e1SYann Gautier};
1486c1e71e1SYann Gautier
1496c1e71e1SYann Gautier&rng1 {
1506c1e71e1SYann Gautier	status = "okay";
1516c1e71e1SYann Gautier};
1526c1e71e1SYann Gautier
1536c1e71e1SYann Gautier&rtc {
1546c1e71e1SYann Gautier	status = "okay";
1556c1e71e1SYann Gautier};
1566c1e71e1SYann Gautier
1576c1e71e1SYann Gautier&sdmmc1 {
1586c1e71e1SYann Gautier	pinctrl-names = "default";
1596c1e71e1SYann Gautier	pinctrl-0 = <&sdmmc1_b4_pins_a>;
1606c1e71e1SYann Gautier	broken-cd;
1616c1e71e1SYann Gautier	st,neg-edge;
1626c1e71e1SYann Gautier	bus-width = <4>;
1636c1e71e1SYann Gautier	vmmc-supply = <&v3v3>;
1646c1e71e1SYann Gautier	status = "okay";
1656c1e71e1SYann Gautier};
1666c1e71e1SYann Gautier
1676c1e71e1SYann Gautier&uart4 {
1686c1e71e1SYann Gautier	pinctrl-names = "default";
1696c1e71e1SYann Gautier	pinctrl-0 = <&uart4_pins_a>;
1706c1e71e1SYann Gautier	status = "okay";
1716c1e71e1SYann Gautier};
1726c1e71e1SYann Gautier
1736c1e71e1SYann Gautier/* ATF Specific */
1746c1e71e1SYann Gautier#include <dt-bindings/clock/stm32mp1-clksrc.h>
1756c1e71e1SYann Gautier#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi"
1766c1e71e1SYann Gautier
1776c1e71e1SYann Gautier/ {
1786c1e71e1SYann Gautier	aliases {
1796c1e71e1SYann Gautier		gpio0 = &gpioa;
1806c1e71e1SYann Gautier		gpio1 = &gpiob;
1816c1e71e1SYann Gautier		gpio2 = &gpioc;
1826c1e71e1SYann Gautier		gpio3 = &gpiod;
1836c1e71e1SYann Gautier		gpio4 = &gpioe;
1846c1e71e1SYann Gautier		gpio5 = &gpiof;
1856c1e71e1SYann Gautier		gpio6 = &gpiog;
1866c1e71e1SYann Gautier		gpio7 = &gpioh;
1876c1e71e1SYann Gautier		gpio8 = &gpioi;
1886c1e71e1SYann Gautier		gpio25 = &gpioz;
1896c1e71e1SYann Gautier		i2c3 = &i2c4;
1906c1e71e1SYann Gautier	};
1916c1e71e1SYann Gautier
1926c1e71e1SYann Gautier	soc {
1936c1e71e1SYann Gautier		stgen: stgen@5C008000 {
1946c1e71e1SYann Gautier			compatible = "st,stm32-stgen";
1956c1e71e1SYann Gautier			reg = <0x5C008000 0x1000>;
1966c1e71e1SYann Gautier			status = "okay";
1976c1e71e1SYann Gautier		};
1986c1e71e1SYann Gautier	};
1996c1e71e1SYann Gautier};
2006c1e71e1SYann Gautier
2016c1e71e1SYann Gautier/* CLOCK init */
2026c1e71e1SYann Gautier&rcc {
2036c1e71e1SYann Gautier	secure-status = "disabled";
2046c1e71e1SYann Gautier	st,clksrc = <
2056c1e71e1SYann Gautier		CLK_MPU_PLL1P
2066c1e71e1SYann Gautier		CLK_AXI_PLL2P
207*b053a22eSYann Gautier		CLK_MCU_PLL3P
2086c1e71e1SYann Gautier		CLK_PLL12_HSE
2096c1e71e1SYann Gautier		CLK_PLL3_HSE
2106c1e71e1SYann Gautier		CLK_PLL4_HSE
2116c1e71e1SYann Gautier		CLK_RTC_LSE
2126c1e71e1SYann Gautier		CLK_MCO1_DISABLED
2136c1e71e1SYann Gautier		CLK_MCO2_DISABLED
2146c1e71e1SYann Gautier	>;
2156c1e71e1SYann Gautier
2166c1e71e1SYann Gautier	st,clkdiv = <
2176c1e71e1SYann Gautier		1 /*MPU*/
2186c1e71e1SYann Gautier		0 /*AXI*/
219*b053a22eSYann Gautier		0 /*MCU*/
2206c1e71e1SYann Gautier		1 /*APB1*/
2216c1e71e1SYann Gautier		1 /*APB2*/
2226c1e71e1SYann Gautier		1 /*APB3*/
2236c1e71e1SYann Gautier		1 /*APB4*/
2246c1e71e1SYann Gautier		2 /*APB5*/
2256c1e71e1SYann Gautier		23 /*RTC*/
2266c1e71e1SYann Gautier		0 /*MCO1*/
2276c1e71e1SYann Gautier		0 /*MCO2*/
2286c1e71e1SYann Gautier	>;
2296c1e71e1SYann Gautier
2306c1e71e1SYann Gautier	st,pkcs = <
2316c1e71e1SYann Gautier		CLK_CKPER_HSE
2326c1e71e1SYann Gautier		CLK_FMC_ACLK
2336c1e71e1SYann Gautier		CLK_QSPI_ACLK
2346c1e71e1SYann Gautier		CLK_ETH_DISABLED
2356c1e71e1SYann Gautier		CLK_SDMMC12_PLL4P
2366c1e71e1SYann Gautier		CLK_DSI_DSIPLL
2376c1e71e1SYann Gautier		CLK_STGEN_HSE
2386c1e71e1SYann Gautier		CLK_USBPHY_HSE
2396c1e71e1SYann Gautier		CLK_SPI2S1_PLL3Q
2406c1e71e1SYann Gautier		CLK_SPI2S23_PLL3Q
2416c1e71e1SYann Gautier		CLK_SPI45_HSI
2426c1e71e1SYann Gautier		CLK_SPI6_HSI
2436c1e71e1SYann Gautier		CLK_I2C46_HSI
2446c1e71e1SYann Gautier		CLK_SDMMC3_PLL4P
2456c1e71e1SYann Gautier		CLK_USBO_USBPHY
2466c1e71e1SYann Gautier		CLK_ADC_CKPER
2476c1e71e1SYann Gautier		CLK_CEC_LSE
2486c1e71e1SYann Gautier		CLK_I2C12_HSI
2496c1e71e1SYann Gautier		CLK_I2C35_HSI
2506c1e71e1SYann Gautier		CLK_UART1_HSI
2516c1e71e1SYann Gautier		CLK_UART24_HSI
2526c1e71e1SYann Gautier		CLK_UART35_HSI
2536c1e71e1SYann Gautier		CLK_UART6_HSI
2546c1e71e1SYann Gautier		CLK_UART78_HSI
2556c1e71e1SYann Gautier		CLK_SPDIF_PLL4P
2566c1e71e1SYann Gautier		CLK_FDCAN_PLL4Q
2576c1e71e1SYann Gautier		CLK_SAI1_PLL3Q
2586c1e71e1SYann Gautier		CLK_SAI2_PLL3Q
2596c1e71e1SYann Gautier		CLK_SAI3_PLL3Q
2606c1e71e1SYann Gautier		CLK_SAI4_PLL3Q
2616c1e71e1SYann Gautier		CLK_RNG1_LSI
2626c1e71e1SYann Gautier		CLK_RNG2_LSI
2636c1e71e1SYann Gautier		CLK_LPTIM1_PCLK1
2646c1e71e1SYann Gautier		CLK_LPTIM23_PCLK3
2656c1e71e1SYann Gautier		CLK_LPTIM45_LSE
2666c1e71e1SYann Gautier	>;
2676c1e71e1SYann Gautier
2686c1e71e1SYann Gautier	/* VCO = 1300.0 MHz => P = 650 (CPU) */
2696c1e71e1SYann Gautier	pll1: st,pll@0 {
2706c1e71e1SYann Gautier		cfg = < 2 80 0 0 0 PQR(1,0,0) >;
2716c1e71e1SYann Gautier		frac = < 0x800 >;
2726c1e71e1SYann Gautier	};
2736c1e71e1SYann Gautier
2746c1e71e1SYann Gautier	/* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU), R = 533 (DDR) */
2756c1e71e1SYann Gautier	pll2: st,pll@1 {
2766c1e71e1SYann Gautier		cfg = < 2 65 1 0 0 PQR(1,1,1) >;
2776c1e71e1SYann Gautier		frac = < 0x1400 >;
2786c1e71e1SYann Gautier	};
2796c1e71e1SYann Gautier
2806c1e71e1SYann Gautier	/* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
2816c1e71e1SYann Gautier	pll3: st,pll@2 {
2826c1e71e1SYann Gautier		cfg = < 1 33 1 16 36 PQR(1,1,1) >;
2836c1e71e1SYann Gautier		frac = < 0x1a04 >;
2846c1e71e1SYann Gautier	};
2856c1e71e1SYann Gautier
2866c1e71e1SYann Gautier	/* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */
2876c1e71e1SYann Gautier	pll4: st,pll@3 {
2886c1e71e1SYann Gautier		cfg = < 3 98 5 7 7 PQR(1,1,1) >;
2896c1e71e1SYann Gautier	};
2906c1e71e1SYann Gautier};
291