1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*f126890aSEmmanuel Vadot/dts-v1/;
3*f126890aSEmmanuel Vadot#include "imx28.dtsi"
4*f126890aSEmmanuel Vadot
5*f126890aSEmmanuel Vadot/ {
6*f126890aSEmmanuel Vadot	model = "Bluegiga APX4 Development Kit";
7*f126890aSEmmanuel Vadot	compatible = "bluegiga,apx4devkit", "fsl,imx28";
8*f126890aSEmmanuel Vadot
9*f126890aSEmmanuel Vadot	memory@40000000 {
10*f126890aSEmmanuel Vadot		device_type = "memory";
11*f126890aSEmmanuel Vadot		reg = <0x40000000 0x04000000>;
12*f126890aSEmmanuel Vadot	};
13*f126890aSEmmanuel Vadot
14*f126890aSEmmanuel Vadot	regulators {
15*f126890aSEmmanuel Vadot		compatible = "simple-bus";
16*f126890aSEmmanuel Vadot		#address-cells = <1>;
17*f126890aSEmmanuel Vadot		#size-cells = <0>;
18*f126890aSEmmanuel Vadot
19*f126890aSEmmanuel Vadot		reg_3p3v: regulator@0 {
20*f126890aSEmmanuel Vadot			compatible = "regulator-fixed";
21*f126890aSEmmanuel Vadot			reg = <0>;
22*f126890aSEmmanuel Vadot			regulator-name = "3P3V";
23*f126890aSEmmanuel Vadot			regulator-min-microvolt = <3300000>;
24*f126890aSEmmanuel Vadot			regulator-max-microvolt = <3300000>;
25*f126890aSEmmanuel Vadot			regulator-always-on;
26*f126890aSEmmanuel Vadot		};
27*f126890aSEmmanuel Vadot	};
28*f126890aSEmmanuel Vadot
29*f126890aSEmmanuel Vadot	sound {
30*f126890aSEmmanuel Vadot		compatible = "bluegiga,apx4devkit-sgtl5000",
31*f126890aSEmmanuel Vadot			     "fsl,mxs-audio-sgtl5000";
32*f126890aSEmmanuel Vadot		model = "apx4devkit-sgtl5000";
33*f126890aSEmmanuel Vadot		saif-controllers = <&saif0 &saif1>;
34*f126890aSEmmanuel Vadot		audio-codec = <&sgtl5000>;
35*f126890aSEmmanuel Vadot	};
36*f126890aSEmmanuel Vadot
37*f126890aSEmmanuel Vadot	leds {
38*f126890aSEmmanuel Vadot		compatible = "gpio-leds";
39*f126890aSEmmanuel Vadot
40*f126890aSEmmanuel Vadot		user {
41*f126890aSEmmanuel Vadot			label = "Heartbeat";
42*f126890aSEmmanuel Vadot			gpios = <&gpio3 28 0>;
43*f126890aSEmmanuel Vadot			linux,default-trigger = "heartbeat";
44*f126890aSEmmanuel Vadot		};
45*f126890aSEmmanuel Vadot	};
46*f126890aSEmmanuel Vadot};
47*f126890aSEmmanuel Vadot
48*f126890aSEmmanuel Vadot&auart0 {
49*f126890aSEmmanuel Vadot	pinctrl-names = "default";
50*f126890aSEmmanuel Vadot	pinctrl-0 = <&auart0_pins_a>;
51*f126890aSEmmanuel Vadot	status = "okay";
52*f126890aSEmmanuel Vadot};
53*f126890aSEmmanuel Vadot
54*f126890aSEmmanuel Vadot&auart1 {
55*f126890aSEmmanuel Vadot	pinctrl-names = "default";
56*f126890aSEmmanuel Vadot	pinctrl-0 = <&auart1_2pins_a>;
57*f126890aSEmmanuel Vadot	status = "okay";
58*f126890aSEmmanuel Vadot};
59*f126890aSEmmanuel Vadot
60*f126890aSEmmanuel Vadot&auart2 {
61*f126890aSEmmanuel Vadot	pinctrl-names = "default";
62*f126890aSEmmanuel Vadot	pinctrl-0 = <&auart2_2pins_a>;
63*f126890aSEmmanuel Vadot	status = "okay";
64*f126890aSEmmanuel Vadot};
65*f126890aSEmmanuel Vadot
66*f126890aSEmmanuel Vadot&duart {
67*f126890aSEmmanuel Vadot	pinctrl-names = "default";
68*f126890aSEmmanuel Vadot	pinctrl-0 = <&duart_pins_a>;
69*f126890aSEmmanuel Vadot	status = "okay";
70*f126890aSEmmanuel Vadot};
71*f126890aSEmmanuel Vadot
72*f126890aSEmmanuel Vadot&gpmi {
73*f126890aSEmmanuel Vadot	pinctrl-names = "default";
74*f126890aSEmmanuel Vadot	pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
75*f126890aSEmmanuel Vadot	status = "okay";
76*f126890aSEmmanuel Vadot};
77*f126890aSEmmanuel Vadot
78*f126890aSEmmanuel Vadot&lcdif {
79*f126890aSEmmanuel Vadot	pinctrl-names = "default";
80*f126890aSEmmanuel Vadot	pinctrl-0 = <&lcdif_24bit_pins_a
81*f126890aSEmmanuel Vadot		     &lcdif_pins_apx4>;
82*f126890aSEmmanuel Vadot	display = <&display0>;
83*f126890aSEmmanuel Vadot	status = "okay";
84*f126890aSEmmanuel Vadot
85*f126890aSEmmanuel Vadot	display0: display0 {
86*f126890aSEmmanuel Vadot		bits-per-pixel = <32>;
87*f126890aSEmmanuel Vadot		bus-width = <24>;
88*f126890aSEmmanuel Vadot
89*f126890aSEmmanuel Vadot		display-timings {
90*f126890aSEmmanuel Vadot			native-mode = <&timing0>;
91*f126890aSEmmanuel Vadot			timing0: timing0 {
92*f126890aSEmmanuel Vadot				clock-frequency = <30000000>;
93*f126890aSEmmanuel Vadot				hactive = <800>;
94*f126890aSEmmanuel Vadot				vactive = <480>;
95*f126890aSEmmanuel Vadot				hback-porch = <88>;
96*f126890aSEmmanuel Vadot				hfront-porch = <40>;
97*f126890aSEmmanuel Vadot				vback-porch = <32>;
98*f126890aSEmmanuel Vadot				vfront-porch = <13>;
99*f126890aSEmmanuel Vadot				hsync-len = <48>;
100*f126890aSEmmanuel Vadot				vsync-len = <3>;
101*f126890aSEmmanuel Vadot				hsync-active = <1>;
102*f126890aSEmmanuel Vadot				vsync-active = <1>;
103*f126890aSEmmanuel Vadot				de-active = <1>;
104*f126890aSEmmanuel Vadot				pixelclk-active = <0>;
105*f126890aSEmmanuel Vadot			};
106*f126890aSEmmanuel Vadot		};
107*f126890aSEmmanuel Vadot	};
108*f126890aSEmmanuel Vadot};
109*f126890aSEmmanuel Vadot
110*f126890aSEmmanuel Vadot&i2c0 {
111*f126890aSEmmanuel Vadot	pinctrl-names = "default";
112*f126890aSEmmanuel Vadot	pinctrl-0 = <&i2c0_pins_a>;
113*f126890aSEmmanuel Vadot	status = "okay";
114*f126890aSEmmanuel Vadot
115*f126890aSEmmanuel Vadot	sgtl5000: codec@a {
116*f126890aSEmmanuel Vadot		compatible = "fsl,sgtl5000";
117*f126890aSEmmanuel Vadot		reg = <0x0a>;
118*f126890aSEmmanuel Vadot		#sound-dai-cells = <0>;
119*f126890aSEmmanuel Vadot		VDDA-supply = <&reg_3p3v>;
120*f126890aSEmmanuel Vadot		VDDIO-supply = <&reg_3p3v>;
121*f126890aSEmmanuel Vadot		clocks = <&saif0>;
122*f126890aSEmmanuel Vadot	};
123*f126890aSEmmanuel Vadot
124*f126890aSEmmanuel Vadot	pcf8563: rtc@51 {
125*f126890aSEmmanuel Vadot		compatible = "phg,pcf8563";
126*f126890aSEmmanuel Vadot		reg = <0x51>;
127*f126890aSEmmanuel Vadot	};
128*f126890aSEmmanuel Vadot};
129*f126890aSEmmanuel Vadot
130*f126890aSEmmanuel Vadot&mac0 {
131*f126890aSEmmanuel Vadot	phy-mode = "rmii";
132*f126890aSEmmanuel Vadot	pinctrl-names = "default";
133*f126890aSEmmanuel Vadot	pinctrl-0 = <&mac0_pins_a>;
134*f126890aSEmmanuel Vadot	status = "okay";
135*f126890aSEmmanuel Vadot};
136*f126890aSEmmanuel Vadot
137*f126890aSEmmanuel Vadot&pinctrl {
138*f126890aSEmmanuel Vadot	pinctrl-names = "default";
139*f126890aSEmmanuel Vadot	pinctrl-0 = <&hog_pins_a>;
140*f126890aSEmmanuel Vadot
141*f126890aSEmmanuel Vadot	hog_pins_a: hog@0 {
142*f126890aSEmmanuel Vadot		reg = <0>;
143*f126890aSEmmanuel Vadot		fsl,pinmux-ids = <
144*f126890aSEmmanuel Vadot			MX28_PAD_GPMI_CE1N__GPIO_0_17
145*f126890aSEmmanuel Vadot			MX28_PAD_GPMI_RDY1__GPIO_0_21
146*f126890aSEmmanuel Vadot			MX28_PAD_SSP2_MISO__GPIO_2_18
147*f126890aSEmmanuel Vadot			MX28_PAD_SSP2_SS0__AUART3_TX /* was: 0x2131 - MX28_PAD_SSP2_SS0__GPIO_2_19 */
148*f126890aSEmmanuel Vadot			MX28_PAD_PWM3__GPIO_3_28
149*f126890aSEmmanuel Vadot			MX28_PAD_LCD_RESET__GPIO_3_30
150*f126890aSEmmanuel Vadot			MX28_PAD_JTAG_RTCK__GPIO_4_20
151*f126890aSEmmanuel Vadot		>;
152*f126890aSEmmanuel Vadot		fsl,drive-strength = <MXS_DRIVE_4mA>;
153*f126890aSEmmanuel Vadot		fsl,voltage = <MXS_VOLTAGE_HIGH>;
154*f126890aSEmmanuel Vadot		fsl,pull-up = <MXS_PULL_DISABLE>;
155*f126890aSEmmanuel Vadot	};
156*f126890aSEmmanuel Vadot
157*f126890aSEmmanuel Vadot	lcdif_pins_apx4: lcdif-apx4@0 {
158*f126890aSEmmanuel Vadot		reg = <0>;
159*f126890aSEmmanuel Vadot		fsl,pinmux-ids = <
160*f126890aSEmmanuel Vadot			MX28_PAD_LCD_RD_E__LCD_VSYNC
161*f126890aSEmmanuel Vadot			MX28_PAD_LCD_WR_RWN__LCD_HSYNC
162*f126890aSEmmanuel Vadot			MX28_PAD_LCD_RS__LCD_DOTCLK
163*f126890aSEmmanuel Vadot			MX28_PAD_LCD_CS__LCD_ENABLE
164*f126890aSEmmanuel Vadot		>;
165*f126890aSEmmanuel Vadot		fsl,drive-strength = <MXS_DRIVE_4mA>;
166*f126890aSEmmanuel Vadot		fsl,voltage = <MXS_VOLTAGE_HIGH>;
167*f126890aSEmmanuel Vadot		fsl,pull-up = <MXS_PULL_DISABLE>;
168*f126890aSEmmanuel Vadot	};
169*f126890aSEmmanuel Vadot
170*f126890aSEmmanuel Vadot	mmc2_4bit_pins_apx4: mmc2-4bit-apx4@0 {
171*f126890aSEmmanuel Vadot		reg = <0>;
172*f126890aSEmmanuel Vadot		fsl,pinmux-ids = <
173*f126890aSEmmanuel Vadot			MX28_PAD_SSP0_DATA4__SSP2_D0
174*f126890aSEmmanuel Vadot			MX28_PAD_SSP0_DATA5__SSP2_D3
175*f126890aSEmmanuel Vadot			MX28_PAD_SSP0_DATA6__SSP2_CMD
176*f126890aSEmmanuel Vadot			MX28_PAD_SSP0_DATA7__SSP2_SCK
177*f126890aSEmmanuel Vadot			MX28_PAD_SSP2_SS1__SSP2_D1
178*f126890aSEmmanuel Vadot			MX28_PAD_SSP2_SS2__SSP2_D2
179*f126890aSEmmanuel Vadot		>;
180*f126890aSEmmanuel Vadot		fsl,drive-strength = <MXS_DRIVE_8mA>;
181*f126890aSEmmanuel Vadot		fsl,voltage = <MXS_VOLTAGE_HIGH>;
182*f126890aSEmmanuel Vadot		fsl,pull-up = <MXS_PULL_ENABLE>;
183*f126890aSEmmanuel Vadot	};
184*f126890aSEmmanuel Vadot
185*f126890aSEmmanuel Vadot	mmc2_sck_cfg_apx4: mmc2-sck-cfg-apx4@0 {
186*f126890aSEmmanuel Vadot		reg = <0>;
187*f126890aSEmmanuel Vadot		fsl,pinmux-ids = <
188*f126890aSEmmanuel Vadot			MX28_PAD_SSP0_DATA7__SSP2_SCK
189*f126890aSEmmanuel Vadot		>;
190*f126890aSEmmanuel Vadot		fsl,drive-strength = <MXS_DRIVE_12mA>;
191*f126890aSEmmanuel Vadot		fsl,pull-up = <MXS_PULL_DISABLE>;
192*f126890aSEmmanuel Vadot	};
193*f126890aSEmmanuel Vadot};
194*f126890aSEmmanuel Vadot
195*f126890aSEmmanuel Vadot&saif0 {
196*f126890aSEmmanuel Vadot	pinctrl-names = "default";
197*f126890aSEmmanuel Vadot	pinctrl-0 = <&saif0_pins_a>;
198*f126890aSEmmanuel Vadot	status = "okay";
199*f126890aSEmmanuel Vadot};
200*f126890aSEmmanuel Vadot
201*f126890aSEmmanuel Vadot&saif1 {
202*f126890aSEmmanuel Vadot	pinctrl-names = "default";
203*f126890aSEmmanuel Vadot	pinctrl-0 = <&saif1_pins_a>;
204*f126890aSEmmanuel Vadot	fsl,saif-master = <&saif0>;
205*f126890aSEmmanuel Vadot	status = "okay";
206*f126890aSEmmanuel Vadot};
207*f126890aSEmmanuel Vadot
208*f126890aSEmmanuel Vadot&ssp0 {
209*f126890aSEmmanuel Vadot	compatible = "fsl,imx28-mmc";
210*f126890aSEmmanuel Vadot	pinctrl-names = "default";
211*f126890aSEmmanuel Vadot	pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>;
212*f126890aSEmmanuel Vadot	bus-width = <4>;
213*f126890aSEmmanuel Vadot	status = "okay";
214*f126890aSEmmanuel Vadot};
215*f126890aSEmmanuel Vadot
216*f126890aSEmmanuel Vadot&ssp2 {
217*f126890aSEmmanuel Vadot	compatible = "fsl,imx28-mmc";
218*f126890aSEmmanuel Vadot	pinctrl-names = "default";
219*f126890aSEmmanuel Vadot	pinctrl-0 = <&mmc2_4bit_pins_apx4 &mmc2_sck_cfg_apx4>;
220*f126890aSEmmanuel Vadot	bus-width = <4>;
221*f126890aSEmmanuel Vadot	status = "okay";
222*f126890aSEmmanuel Vadot};
223*f126890aSEmmanuel Vadot
224*f126890aSEmmanuel Vadot&usb1 {
225*f126890aSEmmanuel Vadot      status = "okay";
226*f126890aSEmmanuel Vadot};
227*f126890aSEmmanuel Vadot
228*f126890aSEmmanuel Vadot&usbphy1 {
229*f126890aSEmmanuel Vadot	pinctrl-names = "default";
230*f126890aSEmmanuel Vadot	pinctrl-0 = <&usb1_pins_a>;
231*f126890aSEmmanuel Vadot	status = "okay";
232*f126890aSEmmanuel Vadot};
233