xref: /linux/arch/arm64/boot/dts/freescale/mba8mx.dtsi (revision 566ab427f827b0256d3e8ce0235d088e6a9c28bd)
1// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2/*
3 * Copyright 2020-2021 TQ-Systems GmbH
4 */
5
6#include <dt-bindings/net/ti-dp83867.h>
7
8/* TQ-Systems GmbH MBa8Mx baseboard */
9
10/ {
11	backlight_lvds: backlight {
12		compatible = "pwm-backlight";
13		pwms = <&pwm3 0 5000000 0>;
14		brightness-levels = <0 4 8 16 32 64 128 255>;
15		default-brightness-level = <7>;
16		power-supply = <&reg_12v>;
17		enable-gpios = <&expander2 2 GPIO_ACTIVE_HIGH>;
18		status = "disabled";
19	};
20
21	beeper {
22		compatible = "pwm-beeper";
23		pwms = <&pwm4 0 250000 0>;
24		beeper-hz = <4000>;
25		amp-supply = <&reg_vcc_3v3>;
26	};
27
28	chosen {
29		stdout-path = &uart3;
30	};
31
32	clk_xtal25: clk-xtal25 {
33		compatible = "fixed-clock";
34		#clock-cells = <0>;
35		clock-frequency = <25000000>;
36	};
37
38	gpio-keys {
39		compatible = "gpio-keys";
40		pinctrl-names = "default";
41		pinctrl-0 = <&pinctrl_gpiobutton>;
42		autorepeat;
43
44		switch-1 {
45			label = "switch1";
46			linux,code = <BTN_0>;
47			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
48			wakeup-source;
49		};
50
51		btn2: switch-2 {
52			label = "switch2";
53			linux,code = <BTN_1>;
54			gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
55			wakeup-source;
56		};
57
58		switch-3 {
59			label = "switch3";
60			linux,code = <BTN_2>;
61			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
62			wakeup-source;
63		};
64	};
65
66	gpio_leds: gpio-leds {
67		compatible = "gpio-leds";
68		pinctrl-names = "default";
69		pinctrl-0 = <&pinctrl_gpioled>;
70
71		led1 {
72			label = "led1";
73			gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
74			linux,default-trigger = "default-on";
75		};
76
77		led2: led2 {
78			label = "led2";
79			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
80			linux,default-trigger = "heartbeat";
81		};
82	};
83
84	gpio_delays: gpio-delays {
85		compatible = "gpio-delay";
86		#gpio-cells = <3>;
87		gpio-controller;
88		gpios = <&expander0 6 GPIO_ACTIVE_HIGH>;
89		gpio-line-names = "LVDS_BRIDGE_EN_1V8";
90	};
91
92	panel: panel-lvds {
93		/*
94		 * Display is not fixed, so compatible has to be added from
95		 * DT overlay
96		 */
97		backlight = <&backlight_lvds>;
98		power-supply = <&reg_vcc_3v3>;
99		status = "disabled";
100
101		port {
102			panel_in_lvds: endpoint {
103				data-lanes = <1 2 3 4>;
104				remote-endpoint = <&lvds_bridge_out>;
105			};
106		};
107	};
108
109	reg_12v: regulator-12v {
110		compatible = "regulator-fixed";
111		regulator-name = "MBA8MX_12V";
112		regulator-min-microvolt = <12000000>;
113		regulator-max-microvolt = <12000000>;
114		regulator-always-on;
115	};
116
117	reg_hub_vbus: regulator-hub-vbus {
118		compatible = "regulator-fixed";
119		regulator-name = "MBA8MX_HUB_VBUS";
120		regulator-min-microvolt = <5000000>;
121		regulator-max-microvolt = <5000000>;
122	};
123
124	reg_sn65dsi83_1v8: regulator-sn65dsi83-1v8 {
125		compatible = "regulator-fixed";
126		regulator-name = "SN65DSI83_1V8";
127		regulator-min-microvolt = <1800000>;
128		regulator-max-microvolt = <1800000>;
129		gpio = <&expander0 5 GPIO_ACTIVE_HIGH>;
130		enable-active-high;
131	};
132
133	reg_vcc_3v3: regulator-3v3 {
134		compatible = "regulator-fixed";
135		regulator-name = "MBA8MX_3V3";
136		regulator-min-microvolt = <3300000>;
137		regulator-max-microvolt = <3300000>;
138	};
139
140	sound {
141		compatible = "fsl,imx-audio-tlv320aic32x4";
142		model = "imx-audio-tlv320aic32x4";
143		ssi-controller = <&sai3>;
144		audio-codec = <&tlv320aic3x04>;
145	};
146};
147
148&ecspi1 {
149	pinctrl-names = "default";
150	pinctrl-0 = <&pinctrl_ecspi1>;
151	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
152	status = "okay";
153};
154
155&ecspi2 {
156	pinctrl-names = "default";
157	pinctrl-0 = <&pinctrl_ecspi2>;
158	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
159	status = "okay";
160};
161
162&fec1 {
163	pinctrl-names = "default";
164	pinctrl-0 = <&pinctrl_fec1>;
165	phy-mode = "rgmii-id";
166	phy-handle = <&ethphy0>;
167	phy-supply = <&reg_vcc_3v3>;
168	fsl,magic-packet;
169	mac-address = [ 00 00 00 00 00 00 ];
170	status = "okay";
171
172	mdio {
173		#address-cells = <1>;
174		#size-cells = <0>;
175
176		ethphy0: ethernet-phy@e {
177			compatible = "ethernet-phy-ieee802.3-c22";
178			reg = <0xe>;
179			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>;
180			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>;
181			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
182			ti,dp83867-rxctrl-strap-quirk;
183			ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
184			enet-phy-lane-no-swap;
185			reset-gpios = <&expander2 7 GPIO_ACTIVE_LOW>;
186			reset-assert-us = <500000>;
187			reset-deassert-us = <500>;
188			interrupt-parent = <&expander2>;
189			interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
190		};
191	};
192};
193
194&i2c1 {
195	expander0: gpio@23 {
196		compatible = "nxp,pca9555";
197		reg = <0x23>;
198		gpio-controller;
199		#gpio-cells = <2>;
200		vcc-supply = <&reg_vcc_3v3>;
201		interrupt-parent = <&gpio1>;
202		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
203		interrupt-controller;
204		#interrupt-cells = <2>;
205		gpio-line-names = "", "", "", "",
206				  "", "", "LVDS_BRIDGE_EN", "",
207				  "", "", "", "",
208				  "", "", "", "";
209
210		sd-mux-oe-hog {
211			gpio-hog;
212			gpios = <8 0>;
213			output-low;
214			line-name = "SD_MUX_EN#";
215		};
216
217		boot-cfg-oe-hog {
218			gpio-hog;
219			gpios = <12 0>;
220			output-high;
221			line-name = "BOOT_CFG_OE#";
222		};
223
224		rst_usb_hub_hog: rst-usb-hub-hog {
225			gpio-hog;
226			gpios = <13 0>;
227			output-high;
228			line-name = "RST_USB_HUB#";
229		};
230	};
231
232	expander1: gpio@24 {
233		compatible = "nxp,pca9555";
234		reg = <0x24>;
235		gpio-controller;
236		#gpio-cells = <2>;
237		vcc-supply = <&reg_vcc_3v3>;
238	};
239};
240
241&i2c2 {
242	pinctrl-names = "default", "gpio";
243	pinctrl-0 = <&pinctrl_i2c2>;
244	pinctrl-1 = <&pinctrl_i2c2_gpio>;
245	scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
246	sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
247	status = "okay";
248
249	tlv320aic3x04: audio-codec@18 {
250		compatible = "ti,tlv320aic32x4";
251		reg = <0x18>;
252		reset-gpios = <&expander2 0 GPIO_ACTIVE_LOW>;
253		iov-supply = <&reg_vcc_3v3>;
254		ldoin-supply = <&reg_vcc_3v3>;
255	};
256
257	sensor1: temperator-sensor@1f {
258		compatible = "nxp,se97b", "jedec,jc-42.4-temp";
259		reg = <0x1f>;
260	};
261
262	/*
263	 * TUSB8041 is at 0x41, but not connected by default
264	 * Note: TUSB8041 only supports 100 kHz!
265	 */
266
267	eeprom3: eeprom@57 {
268		compatible = "nxp,se97b", "atmel,24c02";
269		reg = <0x57>;
270		pagesize = <16>;
271		vcc-supply = <&reg_vcc_3v3>;
272	};
273
274	pcieclk: clk@68 {
275		compatible = "renesas,9fgv0441";
276		reg = <0x68>;
277		clocks = <&clk_xtal25>;
278		#clock-cells = <1>;
279	};
280};
281
282&i2c3 {
283	pinctrl-names = "default", "gpio";
284	pinctrl-0 = <&pinctrl_i2c3>;
285	pinctrl-1 = <&pinctrl_i2c3_gpio>;
286	scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
287	sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
288	status = "okay";
289
290	dsi_lvds_bridge: bridge@2d {
291		compatible = "ti,sn65dsi84";
292		reg = <0x2d>;
293		enable-gpios = <&gpio_delays 0 130000 0>;
294		vcc-supply = <&reg_sn65dsi83_1v8>;
295		status = "disabled";
296
297		ports {
298			#address-cells = <1>;
299			#size-cells = <0>;
300
301			port@0 {
302				reg = <0>;
303
304				lvds_bridge_in: endpoint {
305					data-lanes = <1 2 3 4>;
306					remote-endpoint = <&mipi_dsi_out>;
307				};
308			};
309
310			port@2 {
311				reg = <2>;
312
313				lvds_bridge_out: endpoint {
314					remote-endpoint = <&panel_in_lvds>;
315				};
316			};
317		};
318	};
319};
320
321&mipi_dsi {
322	samsung,burst-clock-frequency = <891000000>;
323	samsung,esc-clock-frequency = <20000000>;
324};
325
326&mipi_dsi_out {
327	data-lanes = <1 2 3 4>;
328	remote-endpoint = <&lvds_bridge_in>;
329};
330
331&pwm3 {
332	pinctrl-names = "default";
333	pinctrl-0 = <&pinctrl_pwm3>;
334	status = "okay";
335};
336
337&pwm4 {
338	pinctrl-names = "default";
339	pinctrl-0 = <&pinctrl_pwm4>;
340	status = "okay";
341};
342
343&sai3 {
344	pinctrl-names = "default";
345	pinctrl-0 = <&pinctrl_sai3>;
346	#sound-dai-cells = <0>;
347	assigned-clock-rates = <49152000>;
348	status = "okay";
349};
350
351&snvs_pwrkey {
352	status = "okay";
353};
354
355&uart1 {
356	pinctrl-names = "default";
357	pinctrl-0 = <&pinctrl_uart1>;
358	status = "okay";
359};
360
361&uart2 {
362	pinctrl-names = "default";
363	pinctrl-0 = <&pinctrl_uart2>;
364	status = "okay";
365};
366
367/* console */
368&uart3 {
369	pinctrl-names = "default";
370	pinctrl-0 = <&pinctrl_uart3>;
371	status = "okay";
372};
373
374&usdhc2 {
375	pinctrl-names = "default", "state_100mhz", "state_200mhz";
376	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
377	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
378	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
379	bus-width = <4>;
380	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
381	disable-wp;
382	no-mmc;
383	no-sdio;
384	vmmc-supply = <&reg_usdhc2_vmmc>;
385	status = "okay";
386};
387