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