xref: /linux/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
1*ad296c41SDario Binacchi// SPDX-License-Identifier: GPL-2.0
2*ad296c41SDario Binacchi/*
3*ad296c41SDario Binacchi * Copyright (C) 2025 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com>
4*ad296c41SDario Binacchi */
5*ad296c41SDario Binacchi
6*ad296c41SDario Binacchi/dts-v1/;
7*ad296c41SDario Binacchi
8*ad296c41SDario Binacchi#include "imx28.dtsi"
9*ad296c41SDario Binacchi#include <dt-bindings/gpio/gpio.h>
10*ad296c41SDario Binacchi#include <dt-bindings/interrupt-controller/irq.h>
11*ad296c41SDario Binacchi
12*ad296c41SDario Binacchi/ {
13*ad296c41SDario Binacchi	compatible = "amarula,imx28-rmm", "fsl,imx28";
14*ad296c41SDario Binacchi	model = "Amarula i.MX28 rmm";
15*ad296c41SDario Binacchi
16*ad296c41SDario Binacchi	memory@40000000 {
17*ad296c41SDario Binacchi		reg = <0x40000000 0x08000000>;
18*ad296c41SDario Binacchi		device_type = "memory";
19*ad296c41SDario Binacchi	};
20*ad296c41SDario Binacchi
21*ad296c41SDario Binacchi	backlight {
22*ad296c41SDario Binacchi		compatible = "pwm-backlight";
23*ad296c41SDario Binacchi		pwms = <&pwm 4 5000000 0>;
24*ad296c41SDario Binacchi		brightness-levels = <0 255>;
25*ad296c41SDario Binacchi		num-interpolated-steps = <255>;
26*ad296c41SDario Binacchi		default-brightness-level = <255>;
27*ad296c41SDario Binacchi		power-supply = <&reg_5v>;
28*ad296c41SDario Binacchi	};
29*ad296c41SDario Binacchi
30*ad296c41SDario Binacchi	beeper {
31*ad296c41SDario Binacchi		compatible = "pwm-beeper";
32*ad296c41SDario Binacchi		pwms = <&pwm 7 100000 0>;
33*ad296c41SDario Binacchi	};
34*ad296c41SDario Binacchi
35*ad296c41SDario Binacchi	leds {
36*ad296c41SDario Binacchi		compatible = "gpio-leds";
37*ad296c41SDario Binacchi		pinctrl-names = "default";
38*ad296c41SDario Binacchi		pinctrl-0 = <&leds_pins>;
39*ad296c41SDario Binacchi
40*ad296c41SDario Binacchi		led-0 {
41*ad296c41SDario Binacchi			gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
42*ad296c41SDario Binacchi			default-state = "off";
43*ad296c41SDario Binacchi		};
44*ad296c41SDario Binacchi
45*ad296c41SDario Binacchi		led-1 {
46*ad296c41SDario Binacchi			gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
47*ad296c41SDario Binacchi			default-state = "off";
48*ad296c41SDario Binacchi		};
49*ad296c41SDario Binacchi
50*ad296c41SDario Binacchi		led-2 {
51*ad296c41SDario Binacchi			gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
52*ad296c41SDario Binacchi			default-state = "off";
53*ad296c41SDario Binacchi		};
54*ad296c41SDario Binacchi	};
55*ad296c41SDario Binacchi
56*ad296c41SDario Binacchi	reg_1v8: regulator-1v8 {
57*ad296c41SDario Binacchi		compatible = "regulator-fixed";
58*ad296c41SDario Binacchi		regulator-name = "1v8";
59*ad296c41SDario Binacchi		regulator-min-microvolt = <1800000>;
60*ad296c41SDario Binacchi		regulator-max-microvolt = <1800000>;
61*ad296c41SDario Binacchi	};
62*ad296c41SDario Binacchi
63*ad296c41SDario Binacchi	reg_3v3: regulator-3v3 {
64*ad296c41SDario Binacchi		compatible = "regulator-fixed";
65*ad296c41SDario Binacchi		regulator-name = "3v3";
66*ad296c41SDario Binacchi		regulator-min-microvolt = <3300000>;
67*ad296c41SDario Binacchi		regulator-max-microvolt = <3300000>;
68*ad296c41SDario Binacchi		regulator-always-on;
69*ad296c41SDario Binacchi	};
70*ad296c41SDario Binacchi
71*ad296c41SDario Binacchi	reg_5v: regulator-5v {
72*ad296c41SDario Binacchi		compatible = "regulator-fixed";
73*ad296c41SDario Binacchi		regulator-name = "5v";
74*ad296c41SDario Binacchi		regulator-min-microvolt = <5000000>;
75*ad296c41SDario Binacchi		regulator-max-microvolt = <5000000>;
76*ad296c41SDario Binacchi		regulator-always-on;
77*ad296c41SDario Binacchi	};
78*ad296c41SDario Binacchi
79*ad296c41SDario Binacchi	reg_fec_3v3: regulator-fec-3v3 {
80*ad296c41SDario Binacchi		compatible = "regulator-fixed";
81*ad296c41SDario Binacchi		pinctrl-names = "default";
82*ad296c41SDario Binacchi		pinctrl-0 = <&fec_3v3_enable_pin>;
83*ad296c41SDario Binacchi		regulator-name = "fec-3v3";
84*ad296c41SDario Binacchi		regulator-min-microvolt = <3300000>;
85*ad296c41SDario Binacchi		regulator-max-microvolt = <3300000>;
86*ad296c41SDario Binacchi		gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
87*ad296c41SDario Binacchi		enable-active-high;
88*ad296c41SDario Binacchi		startup-delay-us = <300000>;
89*ad296c41SDario Binacchi		vin-supply = <&reg_5v>;
90*ad296c41SDario Binacchi	};
91*ad296c41SDario Binacchi
92*ad296c41SDario Binacchi	reg_usb0_vbus: regulator-usb0-vbus {
93*ad296c41SDario Binacchi		compatible = "regulator-fixed";
94*ad296c41SDario Binacchi		pinctrl-names = "default";
95*ad296c41SDario Binacchi		pinctrl-0 = <&usb0_vbus_enable_pin>;
96*ad296c41SDario Binacchi		regulator-name = "usb0_vbus";
97*ad296c41SDario Binacchi		regulator-min-microvolt = <5000000>;
98*ad296c41SDario Binacchi		regulator-max-microvolt = <5000000>;
99*ad296c41SDario Binacchi		gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>;
100*ad296c41SDario Binacchi		enable-active-high;
101*ad296c41SDario Binacchi		regulator-always-on;
102*ad296c41SDario Binacchi	};
103*ad296c41SDario Binacchi
104*ad296c41SDario Binacchi	reg_usb1_vbus: regulator-usb1-vbus {
105*ad296c41SDario Binacchi		compatible = "regulator-fixed";
106*ad296c41SDario Binacchi		pinctrl-names = "default";
107*ad296c41SDario Binacchi		pinctrl-0 = <&usb1_vbus_enable_pin>;
108*ad296c41SDario Binacchi		regulator-name = "usb1_vbus";
109*ad296c41SDario Binacchi		regulator-min-microvolt = <5000000>;
110*ad296c41SDario Binacchi		regulator-max-microvolt = <5000000>;
111*ad296c41SDario Binacchi		gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>;
112*ad296c41SDario Binacchi		enable-active-high;
113*ad296c41SDario Binacchi		regulator-always-on;
114*ad296c41SDario Binacchi	};
115*ad296c41SDario Binacchi};
116*ad296c41SDario Binacchi
117*ad296c41SDario Binacchi&auart0 {
118*ad296c41SDario Binacchi	pinctrl-names = "default";
119*ad296c41SDario Binacchi	pinctrl-0 = <&auart0_2pins_a>;
120*ad296c41SDario Binacchi	status = "okay";
121*ad296c41SDario Binacchi};
122*ad296c41SDario Binacchi
123*ad296c41SDario Binacchi&auart1 {
124*ad296c41SDario Binacchi	pinctrl-names = "default";
125*ad296c41SDario Binacchi	pinctrl-0 = <&auart1_pins_a>;
126*ad296c41SDario Binacchi	status = "okay";
127*ad296c41SDario Binacchi};
128*ad296c41SDario Binacchi
129*ad296c41SDario Binacchi&can0 {
130*ad296c41SDario Binacchi	pinctrl-names = "default";
131*ad296c41SDario Binacchi	pinctrl-0 = <&can0_pins_a>;
132*ad296c41SDario Binacchi	status = "okay";
133*ad296c41SDario Binacchi};
134*ad296c41SDario Binacchi
135*ad296c41SDario Binacchi&duart {
136*ad296c41SDario Binacchi	pinctrl-names = "default";
137*ad296c41SDario Binacchi	pinctrl-0 = <&duart_pins_b>;
138*ad296c41SDario Binacchi	status = "okay";
139*ad296c41SDario Binacchi};
140*ad296c41SDario Binacchi
141*ad296c41SDario Binacchi&duart_pins_b {
142*ad296c41SDario Binacchi	fsl,voltage = <MXS_VOLTAGE_LOW>;
143*ad296c41SDario Binacchi};
144*ad296c41SDario Binacchi
145*ad296c41SDario Binacchi&gpmi {
146*ad296c41SDario Binacchi	#size-cells = <0>;
147*ad296c41SDario Binacchi	pinctrl-names = "default";
148*ad296c41SDario Binacchi	pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
149*ad296c41SDario Binacchi	status = "okay";
150*ad296c41SDario Binacchi};
151*ad296c41SDario Binacchi
152*ad296c41SDario Binacchi&i2c0 {
153*ad296c41SDario Binacchi	pinctrl-names = "default";
154*ad296c41SDario Binacchi	pinctrl-0 = <&i2c0_pins_a>;
155*ad296c41SDario Binacchi	status = "okay";
156*ad296c41SDario Binacchi
157*ad296c41SDario Binacchi	touchscreen: touchscreen@38 {
158*ad296c41SDario Binacchi		compatible = "edt,edt-ft5306";
159*ad296c41SDario Binacchi		reg = <0x38>;
160*ad296c41SDario Binacchi		pinctrl-names = "default";
161*ad296c41SDario Binacchi		pinctrl-0 = <&edt_ft5x06_pins &edt_ft5x06_wake_pin>;
162*ad296c41SDario Binacchi		interrupt-parent = <&gpio0>;
163*ad296c41SDario Binacchi		interrupts = <19 IRQ_TYPE_EDGE_RISING>;
164*ad296c41SDario Binacchi		reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
165*ad296c41SDario Binacchi		wake-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
166*ad296c41SDario Binacchi	};
167*ad296c41SDario Binacchi};
168*ad296c41SDario Binacchi
169*ad296c41SDario Binacchi&lradc {
170*ad296c41SDario Binacchi	status = "okay";
171*ad296c41SDario Binacchi};
172*ad296c41SDario Binacchi
173*ad296c41SDario Binacchi&mac0 {
174*ad296c41SDario Binacchi	pinctrl-names = "default";
175*ad296c41SDario Binacchi	pinctrl-0 = <&mac0_pins_a>;
176*ad296c41SDario Binacchi	phy-mode = "rmii";
177*ad296c41SDario Binacchi	phy-supply = <&reg_fec_3v3>;
178*ad296c41SDario Binacchi	phy-handle = <&ethphy>;
179*ad296c41SDario Binacchi	status = "okay";
180*ad296c41SDario Binacchi
181*ad296c41SDario Binacchi	mdio {
182*ad296c41SDario Binacchi		#address-cells = <1>;
183*ad296c41SDario Binacchi		#size-cells = <0>;
184*ad296c41SDario Binacchi
185*ad296c41SDario Binacchi		ethphy: ethernet-phy@0 {
186*ad296c41SDario Binacchi			compatible = "ethernet-phy-ieee802.3-c22";
187*ad296c41SDario Binacchi			reg = <0>;
188*ad296c41SDario Binacchi			max-speed = <100>;
189*ad296c41SDario Binacchi			reset-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>;
190*ad296c41SDario Binacchi			reset-assert-us = <4000>;
191*ad296c41SDario Binacchi			reset-deassert-us = <4000>;
192*ad296c41SDario Binacchi		};
193*ad296c41SDario Binacchi	};
194*ad296c41SDario Binacchi};
195*ad296c41SDario Binacchi
196*ad296c41SDario Binacchi&pinctrl {
197*ad296c41SDario Binacchi	pinctrl-names = "default";
198*ad296c41SDario Binacchi	pinctrl-0 = <&hog_pins_a>;
199*ad296c41SDario Binacchi
200*ad296c41SDario Binacchi	edt_ft5x06_pins: edt-ft5x06@0 {
201*ad296c41SDario Binacchi		reg = <0>;
202*ad296c41SDario Binacchi		fsl,pinmux-ids = <
203*ad296c41SDario Binacchi			MX28_PAD_GPMI_RDY1__GPIO_0_21 /* Reset */
204*ad296c41SDario Binacchi			MX28_PAD_GPMI_CE3N__GPIO_0_19 /* Interrupt */
205*ad296c41SDario Binacchi		>;
206*ad296c41SDario Binacchi		fsl,drive-strength = <MXS_DRIVE_4mA>;
207*ad296c41SDario Binacchi		fsl,pull-up = <MXS_PULL_ENABLE>;
208*ad296c41SDario Binacchi		fsl,voltage = <MXS_VOLTAGE_HIGH>;
209*ad296c41SDario Binacchi	};
210*ad296c41SDario Binacchi
211*ad296c41SDario Binacchi	edt_ft5x06_wake_pin: edt-ft5x06-wake@0 {
212*ad296c41SDario Binacchi		reg = <0>;
213*ad296c41SDario Binacchi		fsl,pinmux-ids = <MX28_PAD_GPMI_CE2N__GPIO_0_18>;
214*ad296c41SDario Binacchi		fsl,drive-strength = <MXS_DRIVE_16mA>;
215*ad296c41SDario Binacchi		fsl,pull-up = <MXS_PULL_DISABLE>;
216*ad296c41SDario Binacchi		fsl,voltage = <MXS_VOLTAGE_HIGH>;
217*ad296c41SDario Binacchi	};
218*ad296c41SDario Binacchi
219*ad296c41SDario Binacchi	fec_3v3_enable_pin: fec-3v3-enable@0 {
220*ad296c41SDario Binacchi		reg = <0>;
221*ad296c41SDario Binacchi		fsl,pinmux-ids = <MX28_PAD_SPDIF__GPIO_3_27>;
222*ad296c41SDario Binacchi		fsl,drive-strength = <MXS_DRIVE_4mA>;
223*ad296c41SDario Binacchi		fsl,pull-up = <MXS_PULL_DISABLE>;
224*ad296c41SDario Binacchi		fsl,voltage = <MXS_VOLTAGE_HIGH>;
225*ad296c41SDario Binacchi	};
226*ad296c41SDario Binacchi
227*ad296c41SDario Binacchi	hog_pins_a: hog@0 {
228*ad296c41SDario Binacchi		reg = <0>;
229*ad296c41SDario Binacchi		fsl,pinmux-ids = <
230*ad296c41SDario Binacchi			MX28_PAD_SSP2_SS1__GPIO_2_20  /* External power */
231*ad296c41SDario Binacchi		>;
232*ad296c41SDario Binacchi		fsl,drive-strength = <MXS_DRIVE_4mA>;
233*ad296c41SDario Binacchi		fsl,pull-up = <MXS_PULL_DISABLE>;
234*ad296c41SDario Binacchi		fsl,voltage = <MXS_VOLTAGE_HIGH>;
235*ad296c41SDario Binacchi	};
236*ad296c41SDario Binacchi
237*ad296c41SDario Binacchi	leds_pins: leds@0 {
238*ad296c41SDario Binacchi		reg = <0>;
239*ad296c41SDario Binacchi		fsl,pinmux-ids = <
240*ad296c41SDario Binacchi			MX28_PAD_SSP0_DATA7__GPIO_2_7
241*ad296c41SDario Binacchi			MX28_PAD_PWM0__GPIO_3_16
242*ad296c41SDario Binacchi			MX28_PAD_PWM1__GPIO_3_17
243*ad296c41SDario Binacchi		>;
244*ad296c41SDario Binacchi		fsl,drive-strength = <MXS_DRIVE_4mA>;
245*ad296c41SDario Binacchi		fsl,pull-up = <MXS_PULL_DISABLE>;
246*ad296c41SDario Binacchi		fsl,voltage = <MXS_VOLTAGE_HIGH>;
247*ad296c41SDario Binacchi	};
248*ad296c41SDario Binacchi
249*ad296c41SDario Binacchi	usb0_vbus_enable_pin: usb0-vbus-enable@0 {
250*ad296c41SDario Binacchi		reg = <0>;
251*ad296c41SDario Binacchi		fsl,pinmux-ids = <MX28_PAD_SSP0_DATA5__GPIO_2_5>;
252*ad296c41SDario Binacchi		fsl,drive-strength = <MXS_DRIVE_4mA>;
253*ad296c41SDario Binacchi		fsl,pull-up = <MXS_PULL_DISABLE>;
254*ad296c41SDario Binacchi		fsl,voltage = <MXS_VOLTAGE_HIGH>;
255*ad296c41SDario Binacchi	};
256*ad296c41SDario Binacchi
257*ad296c41SDario Binacchi	usb1_vbus_enable_pin: usb1-vbus-enable@0 {
258*ad296c41SDario Binacchi		reg = <0>;
259*ad296c41SDario Binacchi		fsl,pinmux-ids = <MX28_PAD_SSP0_DATA6__GPIO_2_6>;
260*ad296c41SDario Binacchi		fsl,drive-strength = <MXS_DRIVE_4mA>;
261*ad296c41SDario Binacchi		fsl,pull-up = <MXS_PULL_DISABLE>;
262*ad296c41SDario Binacchi		fsl,voltage = <MXS_VOLTAGE_HIGH>;
263*ad296c41SDario Binacchi	};
264*ad296c41SDario Binacchi};
265*ad296c41SDario Binacchi
266*ad296c41SDario Binacchi&pwm {
267*ad296c41SDario Binacchi	pinctrl-names = "default";
268*ad296c41SDario Binacchi	pinctrl-0 = <&pwm4_pins_a &pwm7_pins_a>;
269*ad296c41SDario Binacchi	status = "okay";
270*ad296c41SDario Binacchi};
271*ad296c41SDario Binacchi
272*ad296c41SDario Binacchi/* microSD */
273*ad296c41SDario Binacchi&ssp0 {
274*ad296c41SDario Binacchi	compatible = "fsl,imx28-mmc";
275*ad296c41SDario Binacchi	pinctrl-names = "default";
276*ad296c41SDario Binacchi	pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>;
277*ad296c41SDario Binacchi	broken-cd;
278*ad296c41SDario Binacchi	bus-width = <4>;
279*ad296c41SDario Binacchi	status = "okay";
280*ad296c41SDario Binacchi};
281*ad296c41SDario Binacchi
282*ad296c41SDario Binacchi&usb0 {
283*ad296c41SDario Binacchi	dr_mode = "host";
284*ad296c41SDario Binacchi	vbus-supply = <&reg_usb0_vbus>;
285*ad296c41SDario Binacchi	status = "okay";
286*ad296c41SDario Binacchi};
287*ad296c41SDario Binacchi
288*ad296c41SDario Binacchi&usb1 {
289*ad296c41SDario Binacchi	dr_mode = "host";
290*ad296c41SDario Binacchi	vbus-supply = <&reg_usb1_vbus>;
291*ad296c41SDario Binacchi	status = "okay";
292*ad296c41SDario Binacchi};
293*ad296c41SDario Binacchi
294*ad296c41SDario Binacchi&usbphy0 {
295*ad296c41SDario Binacchi	status = "okay";
296*ad296c41SDario Binacchi};
297*ad296c41SDario Binacchi
298*ad296c41SDario Binacchi&usbphy1 {
299*ad296c41SDario Binacchi	status = "okay";
300*ad296c41SDario Binacchi};
301