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