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