xref: /rk3399_ARM-atf/fdts/stm32mp153c-lxa-fairytux2.dts (revision 093c738ab642005ca273aa6f21d306c81163012c)
1*093c738aSLeonard Göhrs/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) */
2*093c738aSLeonard Göhrs/*
3*093c738aSLeonard Göhrs * Copyright (C) 2020 STMicroelectronics - All Rights Reserved
4*093c738aSLeonard Göhrs * Copyright (C) 2021 Rouven Czerwinski, Pengutronix
5*093c738aSLeonard Göhrs * Copyright (C) 2024 Leonard Goehrs, Pengutronix
6*093c738aSLeonard Göhrs */
7*093c738aSLeonard Göhrs
8*093c738aSLeonard Göhrs/dts-v1/;
9*093c738aSLeonard Göhrs
10*093c738aSLeonard Göhrs#include "stm32mp153.dtsi"
11*093c738aSLeonard Göhrs#include "stm32mp15xc.dtsi"
12*093c738aSLeonard Göhrs#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi"
13*093c738aSLeonard Göhrs#include "stm32mp15xx-osd32.dtsi"
14*093c738aSLeonard Göhrs#include "stm32mp15xxac-pinctrl.dtsi"
15*093c738aSLeonard Göhrs
16*093c738aSLeonard Göhrs/ {
17*093c738aSLeonard Göhrs	model = "Linux Automation GmbH FairyTux 2";
18*093c738aSLeonard Göhrs	compatible = "lxa,stm32mp153c-fairytux-2", "oct,stm32mp15xx-osd32", "st,stm32mp153";
19*093c738aSLeonard Göhrs
20*093c738aSLeonard Göhrs	aliases {
21*093c738aSLeonard Göhrs		mmc1 = &sdmmc2;
22*093c738aSLeonard Göhrs		serial0 = &uart4;
23*093c738aSLeonard Göhrs	};
24*093c738aSLeonard Göhrs
25*093c738aSLeonard Göhrs	chosen {
26*093c738aSLeonard Göhrs		stdout-path = &uart4;
27*093c738aSLeonard Göhrs	};
28*093c738aSLeonard Göhrs
29*093c738aSLeonard Göhrs	led-controller-0 {
30*093c738aSLeonard Göhrs		compatible = "gpio-leds";
31*093c738aSLeonard Göhrs
32*093c738aSLeonard Göhrs		led-0 {
33*093c738aSLeonard Göhrs			label = "fairytux:green:status";
34*093c738aSLeonard Göhrs			gpios = <&gpioa 13 1>;
35*093c738aSLeonard Göhrs			linux,default-trigger = "heartbeat";
36*093c738aSLeonard Göhrs		};
37*093c738aSLeonard Göhrs	};
38*093c738aSLeonard Göhrs
39*093c738aSLeonard Göhrs	reg_3v3: regulator_3v3 {
40*093c738aSLeonard Göhrs		compatible = "regulator-fixed";
41*093c738aSLeonard Göhrs		regulator-name = "3V3";
42*093c738aSLeonard Göhrs		regulator-min-microvolt = <3300000>;
43*093c738aSLeonard Göhrs		regulator-max-microvolt = <3300000>;
44*093c738aSLeonard Göhrs		regulator-always-on;
45*093c738aSLeonard Göhrs		vin-supply = <&v3v3>;
46*093c738aSLeonard Göhrs	};
47*093c738aSLeonard Göhrs};
48*093c738aSLeonard Göhrs
49*093c738aSLeonard Göhrs&pinctrl {
50*093c738aSLeonard Göhrs	fairytux_sdmmc2_d47_pins_b: fairytux-sdmmc2-d47-1 {
51*093c738aSLeonard Göhrs		pins {
52*093c738aSLeonard Göhrs			pinmux = <STM32_PINMUX('A', 8, AF9)>,  /* SDMMC2_D4 */
53*093c738aSLeonard Göhrs				 <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
54*093c738aSLeonard Göhrs				 <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */
55*093c738aSLeonard Göhrs				 <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */
56*093c738aSLeonard Göhrs			slew-rate = <1>;
57*093c738aSLeonard Göhrs			drive-push-pull;
58*093c738aSLeonard Göhrs			bias-disable;
59*093c738aSLeonard Göhrs		};
60*093c738aSLeonard Göhrs	};
61*093c738aSLeonard Göhrs};
62*093c738aSLeonard Göhrs
63*093c738aSLeonard Göhrs/* VCO = 624 MHz => P = 208, Q = 48, R = 104 */
64*093c738aSLeonard Göhrs&pll3 {
65*093c738aSLeonard Göhrs	st,pll = <&pll3_cfg2>;
66*093c738aSLeonard Göhrs
67*093c738aSLeonard Göhrs	pll3_cfg2: pll3-cfg2 {
68*093c738aSLeonard Göhrs		st,pll_vco = <&pll3_vco_624Mhz>;
69*093c738aSLeonard Göhrs		st,pll_div_pqr = <2 12 5>;
70*093c738aSLeonard Göhrs	};
71*093c738aSLeonard Göhrs};
72*093c738aSLeonard Göhrs
73*093c738aSLeonard Göhrs/* VCO = 750.0 MHz => P = 125, Q = 75, R = 62.5 */
74*093c738aSLeonard Göhrs&pll4 {
75*093c738aSLeonard Göhrs	st,pll = <&pll4_cfg2>;
76*093c738aSLeonard Göhrs
77*093c738aSLeonard Göhrs	pll4_cfg2: pll4-cfg2 {
78*093c738aSLeonard Göhrs		st,pll_vco = <&pll4_vco_750Mhz>;
79*093c738aSLeonard Göhrs		st,pll_div_pqr = <5 9 11>;
80*093c738aSLeonard Göhrs	};
81*093c738aSLeonard Göhrs};
82*093c738aSLeonard Göhrs
83*093c738aSLeonard Göhrs&rcc {
84*093c738aSLeonard Göhrs	/* change parent clocks */
85*093c738aSLeonard Göhrs	st,clksrc = <
86*093c738aSLeonard Göhrs		CLK_MPU_PLL1P
87*093c738aSLeonard Göhrs		CLK_AXI_PLL2P
88*093c738aSLeonard Göhrs		CLK_MCU_PLL3P
89*093c738aSLeonard Göhrs		CLK_RTC_LSE
90*093c738aSLeonard Göhrs		CLK_MCO1_DISABLED
91*093c738aSLeonard Göhrs		CLK_MCO2_DISABLED
92*093c738aSLeonard Göhrs		CLK_CKPER_HSE
93*093c738aSLeonard Göhrs		CLK_FMC_ACLK
94*093c738aSLeonard Göhrs		CLK_QSPI_ACLK
95*093c738aSLeonard Göhrs		CLK_ETH_PLL4P
96*093c738aSLeonard Göhrs		CLK_SDMMC12_PLL3R
97*093c738aSLeonard Göhrs		CLK_DSI_DSIPLL
98*093c738aSLeonard Göhrs		CLK_STGEN_HSE
99*093c738aSLeonard Göhrs		CLK_USBPHY_HSE
100*093c738aSLeonard Göhrs		CLK_SPI2S1_PLL3Q
101*093c738aSLeonard Göhrs		CLK_SPI2S23_PLL3Q
102*093c738aSLeonard Göhrs		CLK_SPI45_HSI
103*093c738aSLeonard Göhrs		CLK_SPI6_HSI
104*093c738aSLeonard Göhrs		CLK_I2C46_HSI
105*093c738aSLeonard Göhrs		CLK_SDMMC3_DISABLED
106*093c738aSLeonard Göhrs		CLK_USBO_USBPHY
107*093c738aSLeonard Göhrs		CLK_ADC_CKPER
108*093c738aSLeonard Göhrs		CLK_CEC_DISABLED
109*093c738aSLeonard Göhrs		CLK_I2C12_HSI
110*093c738aSLeonard Göhrs		CLK_I2C35_HSI
111*093c738aSLeonard Göhrs		CLK_UART1_HSI
112*093c738aSLeonard Göhrs		CLK_UART24_HSI
113*093c738aSLeonard Göhrs		CLK_UART35_HSI
114*093c738aSLeonard Göhrs		CLK_UART6_HSI
115*093c738aSLeonard Göhrs		CLK_UART78_HSI
116*093c738aSLeonard Göhrs		CLK_SPDIF_DISABLED
117*093c738aSLeonard Göhrs		CLK_FDCAN_PLL3Q
118*093c738aSLeonard Göhrs		CLK_SAI1_DISABLED
119*093c738aSLeonard Göhrs		CLK_SAI2_DISABLED
120*093c738aSLeonard Göhrs		CLK_SAI3_DISABLED
121*093c738aSLeonard Göhrs		CLK_SAI4_DISABLED
122*093c738aSLeonard Göhrs		CLK_RNG1_LSI
123*093c738aSLeonard Göhrs		CLK_RNG2_LSI
124*093c738aSLeonard Göhrs		CLK_LPTIM1_PCLK1
125*093c738aSLeonard Göhrs		CLK_LPTIM23_PCLK3
126*093c738aSLeonard Göhrs		CLK_LPTIM45_LSE
127*093c738aSLeonard Göhrs	>;
128*093c738aSLeonard Göhrs
129*093c738aSLeonard Göhrs	st,pll_vco {
130*093c738aSLeonard Göhrs		pll3_vco_624Mhz: pll3-vco-624Mhz {
131*093c738aSLeonard Göhrs			src = <CLK_PLL3_HSE>;
132*093c738aSLeonard Göhrs			divmn = <1 51>;
133*093c738aSLeonard Göhrs		};
134*093c738aSLeonard Göhrs
135*093c738aSLeonard Göhrs		pll4_vco_750Mhz: pll4-vco-750Mhz {
136*093c738aSLeonard Göhrs			src = <CLK_PLL4_HSE>;
137*093c738aSLeonard Göhrs			divmn = <3 124>;
138*093c738aSLeonard Göhrs		};
139*093c738aSLeonard Göhrs	};
140*093c738aSLeonard Göhrs};
141*093c738aSLeonard Göhrs
142*093c738aSLeonard Göhrs&sdmmc2 {
143*093c738aSLeonard Göhrs	pinctrl-names = "default";
144*093c738aSLeonard Göhrs	pinctrl-0 = <&sdmmc2_b4_pins_a &fairytux_sdmmc2_d47_pins_b>;
145*093c738aSLeonard Göhrs	bus-width = <8>;
146*093c738aSLeonard Göhrs	mmc-ddr-3_3v;
147*093c738aSLeonard Göhrs	no-1-8-v;
148*093c738aSLeonard Göhrs	no-sd;
149*093c738aSLeonard Göhrs	no-sdio;
150*093c738aSLeonard Göhrs	non-removable;
151*093c738aSLeonard Göhrs	st,neg-edge;
152*093c738aSLeonard Göhrs	vmmc-supply = <&reg_3v3>;
153*093c738aSLeonard Göhrs	status = "okay";
154*093c738aSLeonard Göhrs};
155*093c738aSLeonard Göhrs
156*093c738aSLeonard Göhrs&uart4 {
157*093c738aSLeonard Göhrs	pinctrl-names = "default";
158*093c738aSLeonard Göhrs	pinctrl-0 = <&uart4_pins_a>;
159*093c738aSLeonard Göhrs	status = "okay";
160*093c738aSLeonard Göhrs};
161