xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm/stm32mp157c-lxa-mc1.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) */
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (C) 2020 STMicroelectronics - All Rights Reserved
4*4882a593Smuzhiyun * Copyright (C) 2020 Ahmad Fatoum, Pengutronix
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun/dts-v1/;
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include "stm32mp157.dtsi"
10*4882a593Smuzhiyun#include "stm32mp15xx-osd32.dtsi"
11*4882a593Smuzhiyun#include "stm32mp15xxac-pinctrl.dtsi"
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
14*4882a593Smuzhiyun#include <dt-bindings/pwm/pwm.h>
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun/ {
17*4882a593Smuzhiyun	model = "Linux Automation MC-1 board";
18*4882a593Smuzhiyun	compatible = "lxa,stm32mp157c-mc1", "st,stm32mp157";
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun	aliases {
21*4882a593Smuzhiyun		ethernet0 = &ethernet0;
22*4882a593Smuzhiyun		mmc0 = &sdmmc1;
23*4882a593Smuzhiyun		mmc1 = &sdmmc2;
24*4882a593Smuzhiyun		serial0 = &uart4;
25*4882a593Smuzhiyun	};
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	backlight: backlight {
28*4882a593Smuzhiyun		compatible = "pwm-backlight";
29*4882a593Smuzhiyun		pwms = <&backlight_pwm 1 100000 PWM_POLARITY_INVERTED>;
30*4882a593Smuzhiyun		brightness-levels = <0 31 63 95 127 159 191 223 255>;
31*4882a593Smuzhiyun		default-brightness-level = <7>;
32*4882a593Smuzhiyun		power-supply = <&reg_5v2>; /* 3V3_BACKLIGHT */
33*4882a593Smuzhiyun	};
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun	chosen {
36*4882a593Smuzhiyun		stdout-path = &uart4;
37*4882a593Smuzhiyun	};
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun	led-act {
40*4882a593Smuzhiyun		compatible = "gpio-leds";
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun		led-green {
43*4882a593Smuzhiyun			label = "mc1:green:act";
44*4882a593Smuzhiyun			gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
45*4882a593Smuzhiyun			linux,default-trigger = "heartbeat";
46*4882a593Smuzhiyun		};
47*4882a593Smuzhiyun	};
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun	led-rgb {
50*4882a593Smuzhiyun		compatible = "pwm-leds";
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun		led-red {
53*4882a593Smuzhiyun			label = "mc1:red:rgb";
54*4882a593Smuzhiyun			pwms = <&leds_pwm 1 1000000 0>;
55*4882a593Smuzhiyun			max-brightness = <255>;
56*4882a593Smuzhiyun			active-low;
57*4882a593Smuzhiyun		};
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun		led-green {
60*4882a593Smuzhiyun			label = "mc1:green:rgb";
61*4882a593Smuzhiyun			pwms = <&leds_pwm 2 1000000 0>;
62*4882a593Smuzhiyun			max-brightness = <255>;
63*4882a593Smuzhiyun			active-low;
64*4882a593Smuzhiyun		};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun		led-blue {
67*4882a593Smuzhiyun			label = "mc1:blue:rgb";
68*4882a593Smuzhiyun			pwms = <&leds_pwm 3 1000000 0>;
69*4882a593Smuzhiyun			max-brightness = <255>;
70*4882a593Smuzhiyun			active-low;
71*4882a593Smuzhiyun		};
72*4882a593Smuzhiyun	};
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun	panel: panel {
75*4882a593Smuzhiyun		compatible = "edt,etm0700g0edh6", "simple-panel";
76*4882a593Smuzhiyun		backlight = <&backlight>;
77*4882a593Smuzhiyun		enable-gpios = <&gpiod 4 GPIO_ACTIVE_HIGH>;
78*4882a593Smuzhiyun		power-supply = <&reg_3v3>;
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun		port {
81*4882a593Smuzhiyun			panel_input: endpoint {
82*4882a593Smuzhiyun				remote-endpoint = <&ltdc_ep0_out>;
83*4882a593Smuzhiyun			};
84*4882a593Smuzhiyun		};
85*4882a593Smuzhiyun	};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	reg_3v3: regulator_3v3 {
88*4882a593Smuzhiyun		compatible = "regulator-fixed";
89*4882a593Smuzhiyun		regulator-name = "3V3";
90*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
91*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
92*4882a593Smuzhiyun		regulator-always-on;
93*4882a593Smuzhiyun		vin-supply = <&v3v3>;
94*4882a593Smuzhiyun	};
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun	/* supplied by either debug board or PoE */
97*4882a593Smuzhiyun	reg_5v2: regulator_5v2 {
98*4882a593Smuzhiyun		compatible = "regulator-fixed";
99*4882a593Smuzhiyun		regulator-name = "5V2";
100*4882a593Smuzhiyun		regulator-min-microvolt = <5200000>;
101*4882a593Smuzhiyun		regulator-max-microvolt = <5200000>;
102*4882a593Smuzhiyun		regulator-always-on;
103*4882a593Smuzhiyun	};
104*4882a593Smuzhiyun};
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun&ethernet0 {
107*4882a593Smuzhiyun	pinctrl-names = "default", "sleep";
108*4882a593Smuzhiyun	pinctrl-0 = <&ethernet0_rgmii_pins_b>;
109*4882a593Smuzhiyun	pinctrl-1 = <&ethernet0_rgmii_sleep_pins_b>;
110*4882a593Smuzhiyun	phy-mode = "rgmii-id";
111*4882a593Smuzhiyun	phy-handle = <&ethphy>;
112*4882a593Smuzhiyun	status = "okay";
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun	mdio0 {
115*4882a593Smuzhiyun		compatible = "snps,dwmac-mdio";
116*4882a593Smuzhiyun		#address-cells = <1>;
117*4882a593Smuzhiyun		#size-cells = <0>;
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun		ethphy: ethernet-phy@3 { /* KSZ9031RN */
120*4882a593Smuzhiyun			reg = <3>;
121*4882a593Smuzhiyun			reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>; /* ETH_RST# */
122*4882a593Smuzhiyun			interrupt-parent = <&gpioa>;
123*4882a593Smuzhiyun			interrupts = <6 IRQ_TYPE_EDGE_FALLING>; /* ETH_MDINT# */
124*4882a593Smuzhiyun			reset-assert-us = <10000>;
125*4882a593Smuzhiyun			reset-deassert-us = <300>;
126*4882a593Smuzhiyun			micrel,force-master;
127*4882a593Smuzhiyun		};
128*4882a593Smuzhiyun	};
129*4882a593Smuzhiyun};
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun&gpioz {
132*4882a593Smuzhiyun	gpio-line-names = "HWID0", "HWID1", "HWID2", "HWID3", "", "",
133*4882a593Smuzhiyun			  "HWID4", "HWID5";
134*4882a593Smuzhiyun};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun&i2c5 {
137*4882a593Smuzhiyun	pinctrl-names = "default", "sleep";
138*4882a593Smuzhiyun	pinctrl-0 = <&i2c5_pins_b>;
139*4882a593Smuzhiyun	pinctrl-1 = <&i2c5_sleep_pins_b>;
140*4882a593Smuzhiyun	clock-frequency = <400000>;
141*4882a593Smuzhiyun	status = "okay";
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun	touchscreen@38 {
144*4882a593Smuzhiyun		compatible = "edt,edt-ft5x06";
145*4882a593Smuzhiyun		interrupt-parent = <&gpiod>;
146*4882a593Smuzhiyun		interrupts = <11 IRQ_TYPE_EDGE_FALLING>; /* TOUCH_INT# */
147*4882a593Smuzhiyun		vcc-supply = <&reg_3v3>;
148*4882a593Smuzhiyun		reg = <0x38>;
149*4882a593Smuzhiyun		reset-gpios = <&gpiof 8 GPIO_ACTIVE_LOW>; /* TOUCH_RESET# */
150*4882a593Smuzhiyun		touchscreen-size-x = <1792>;
151*4882a593Smuzhiyun		touchscreen-size-y = <1024>;
152*4882a593Smuzhiyun		wakeup-source;
153*4882a593Smuzhiyun	};
154*4882a593Smuzhiyun};
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun&ltdc {
157*4882a593Smuzhiyun	pinctrl-names = "default", "sleep";
158*4882a593Smuzhiyun	pinctrl-0 = <&ltdc_pins_c>;
159*4882a593Smuzhiyun	pinctrl-1 = <&ltdc_sleep_pins_c>;
160*4882a593Smuzhiyun	status = "okay";
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun	port {
163*4882a593Smuzhiyun		ltdc_ep0_out: endpoint@0 {
164*4882a593Smuzhiyun			reg = <0>;
165*4882a593Smuzhiyun			remote-endpoint = <&panel_input>;
166*4882a593Smuzhiyun		};
167*4882a593Smuzhiyun	};
168*4882a593Smuzhiyun};
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun&pmic {
171*4882a593Smuzhiyun	regulators {
172*4882a593Smuzhiyun		buck4-supply = <&reg_5v2>;	/* VIN */
173*4882a593Smuzhiyun		ldo2-supply = <&reg_5v2>;	/* PMIC_LDO25IN */
174*4882a593Smuzhiyun		ldo5-supply = <&reg_5v2>;	/* PMIC_LDO25IN */
175*4882a593Smuzhiyun		boost-supply = <&reg_5v2>;	/* PMIC_BSTIN */
176*4882a593Smuzhiyun		pwr_sw2-supply = <&bst_out>;    /* PMIC_SWIN */
177*4882a593Smuzhiyun	};
178*4882a593Smuzhiyun};
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun&sdmmc1 {
181*4882a593Smuzhiyun	pinctrl-names = "default", "opendrain", "sleep";
182*4882a593Smuzhiyun	pinctrl-0 = <&sdmmc1_b4_pins_a>;
183*4882a593Smuzhiyun	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
184*4882a593Smuzhiyun	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
185*4882a593Smuzhiyun	bus-width = <4>;
186*4882a593Smuzhiyun	cd-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>;
187*4882a593Smuzhiyun	disable-wp;
188*4882a593Smuzhiyun	no-1-8-v;
189*4882a593Smuzhiyun	st,neg-edge;
190*4882a593Smuzhiyun	vmmc-supply = <&reg_3v3>;
191*4882a593Smuzhiyun	status = "okay";
192*4882a593Smuzhiyun};
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun&sdmmc1_b4_pins_a {
195*4882a593Smuzhiyun	/*
196*4882a593Smuzhiyun	 * board lacks external pull-ups on SDMMC lines. Class 10 SD refuses to
197*4882a593Smuzhiyun	 * work, thus enable internal pull-ups.
198*4882a593Smuzhiyun	 */
199*4882a593Smuzhiyun	pins1 {
200*4882a593Smuzhiyun		/delete-property/ bias-disable;
201*4882a593Smuzhiyun		bias-pull-up;
202*4882a593Smuzhiyun	};
203*4882a593Smuzhiyun	pins2 {
204*4882a593Smuzhiyun		/delete-property/ bias-disable;
205*4882a593Smuzhiyun		bias-pull-up;
206*4882a593Smuzhiyun	};
207*4882a593Smuzhiyun};
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun&sdmmc2 {
210*4882a593Smuzhiyun	pinctrl-names = "default", "opendrain", "sleep";
211*4882a593Smuzhiyun	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
212*4882a593Smuzhiyun	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_b>;
213*4882a593Smuzhiyun	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_b>;
214*4882a593Smuzhiyun	bus-width = <8>;
215*4882a593Smuzhiyun	mmc-ddr-3_3v;
216*4882a593Smuzhiyun	no-1-8-v;
217*4882a593Smuzhiyun	no-sd;
218*4882a593Smuzhiyun	no-sdio;
219*4882a593Smuzhiyun	non-removable;
220*4882a593Smuzhiyun	st,neg-edge;
221*4882a593Smuzhiyun	vmmc-supply = <&reg_3v3>;
222*4882a593Smuzhiyun	status = "okay";
223*4882a593Smuzhiyun};
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun&timers3 {
226*4882a593Smuzhiyun	status = "okay";
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun	backlight_pwm: pwm {
229*4882a593Smuzhiyun		pinctrl-names = "default", "sleep";
230*4882a593Smuzhiyun		pinctrl-0 = <&pwm3_pins_b>;
231*4882a593Smuzhiyun		pinctrl-1 = <&pwm3_sleep_pins_b>;
232*4882a593Smuzhiyun		status = "okay";
233*4882a593Smuzhiyun	};
234*4882a593Smuzhiyun};
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun&timers5 {
237*4882a593Smuzhiyun	status = "okay";
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun	leds_pwm: pwm {
240*4882a593Smuzhiyun		pinctrl-names = "default", "sleep";
241*4882a593Smuzhiyun		pinctrl-0 = <&pwm5_pins_b>;
242*4882a593Smuzhiyun		pinctrl-1 = <&pwm5_sleep_pins_b>;
243*4882a593Smuzhiyun		status = "okay";
244*4882a593Smuzhiyun	};
245*4882a593Smuzhiyun};
246*4882a593Smuzhiyun
247*4882a593Smuzhiyun&uart4 {
248*4882a593Smuzhiyun	pinctrl-names = "default";
249*4882a593Smuzhiyun	pinctrl-0 = <&uart4_pins_a>;
250*4882a593Smuzhiyun	status = "okay";
251*4882a593Smuzhiyun};
252