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	beeper {
12		compatible = "pwm-beeper";
13		pwms = <&pwm4 0 250000 0>;
14		beeper-hz = <4000>;
15		amp-supply = <&reg_vcc_3v3>;
16	};
17
18	chosen {
19		// bootargs = "console=ttymxc2,115200 earlycon=ec_imx6q,0x30880000,115200";
20		stdout-path = &uart3;
21	};
22
23	gpio-keys {
24		compatible = "gpio-keys";
25		pinctrl-names = "default";
26		pinctrl-0 = <&pinctrl_gpiobutton>;
27		autorepeat;
28
29		switch1 {
30			label = "switch1";
31			linux,code = <BTN_0>;
32			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
33			wakeup-source;
34		};
35
36		btn2: switch2 {
37			label = "switch2";
38			linux,code = <BTN_1>;
39			gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
40			wakeup-source;
41		};
42
43		switch3 {
44			label = "switch3";
45			linux,code = <BTN_2>;
46			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
47			wakeup-source;
48		};
49	};
50
51	gpio_leds: gpio-leds {
52		compatible = "gpio-leds";
53		pinctrl-names = "default";
54		pinctrl-0 = <&pinctrl_gpioled>;
55
56		led1 {
57			label = "led1";
58			gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
59			linux,default-trigger = "default-on";
60		};
61
62		led2: led2 {
63			label = "led2";
64			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
65			linux,default-trigger = "heartbeat";
66		};
67	};
68
69	reg_hub_vbus: regulator-hub-vbus {
70		compatible = "regulator-fixed";
71		regulator-name = "MBA8MX_HUB_VBUS";
72		regulator-min-microvolt = <5000000>;
73		regulator-max-microvolt = <5000000>;
74	};
75
76	reg_sn65dsi83_1v8: regulator-sn65dsi83-1v8 {
77		compatible = "regulator-fixed";
78		regulator-name = "SN65DSI83_1V8";
79		regulator-min-microvolt = <1800000>;
80		regulator-max-microvolt = <1800000>;
81		gpio = <&expander0 5 GPIO_ACTIVE_HIGH>;
82		enable-active-high;
83	};
84
85	reg_vcc_3v3: regulator-3v3 {
86		compatible = "regulator-fixed";
87		regulator-name = "MBA8MX_3V3";
88		regulator-min-microvolt = <3300000>;
89		regulator-max-microvolt = <3300000>;
90	};
91
92	sound {
93		compatible = "fsl,imx-audio-tlv320aic32x4";
94		model = "imx-audio-tlv320aic32x4";
95		ssi-controller = <&sai3>;
96		audio-codec = <&tlv320aic3x04>;
97	};
98};
99
100&ecspi1 {
101	pinctrl-names = "default";
102	pinctrl-0 = <&pinctrl_ecspi1>;
103	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
104	status = "okay";
105};
106
107&ecspi2 {
108	pinctrl-names = "default";
109	pinctrl-0 = <&pinctrl_ecspi2>;
110	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
111	status = "okay";
112};
113
114&fec1 {
115	pinctrl-names = "default";
116	pinctrl-0 = <&pinctrl_fec1>;
117	phy-mode = "rgmii-id";
118	phy-handle = <&ethphy0>;
119	phy-supply = <&reg_vcc_3v3>;
120	fsl,magic-packet;
121	mac-address = [ 00 00 00 00 00 00 ];
122	status = "okay";
123
124	mdio {
125		#address-cells = <1>;
126		#size-cells = <0>;
127
128		ethphy0: ethernet-phy@e {
129			compatible = "ethernet-phy-ieee802.3-c22";
130			reg = <0xe>;
131			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>;
132			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>;
133			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
134			ti,dp83867-rxctrl-strap-quirk;
135			ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
136			enet-phy-lane-no-swap;
137			reset-gpios = <&expander2 7 GPIO_ACTIVE_LOW>;
138			reset-assert-us = <500000>;
139			reset-deassert-us = <500>;
140		};
141	};
142};
143
144&i2c1 {
145	expander0: gpio@23 {
146		compatible = "nxp,pca9555";
147		reg = <0x23>;
148		gpio-controller;
149		#gpio-cells = <2>;
150		vcc-supply = <&reg_vcc_3v3>;
151		interrupt-parent = <&gpio1>;
152		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
153		interrupt-controller;
154		#interrupt-cells = <2>;
155
156		sd-mux-oe-hog {
157			gpio-hog;
158			gpios = <8 0>;
159			output-low;
160			line-name = "SD_MUX_EN#";
161		};
162
163		boot-cfg-oe-hog {
164			gpio-hog;
165			gpios = <12 0>;
166			output-high;
167			line-name = "BOOT_CFG_OE#";
168		};
169
170		rst-usb-hub-hog {
171			gpio-hog;
172			gpios = <13 0>;
173			output-high;
174			line-name = "RST_USB_HUB#";
175		};
176	};
177
178	expander1: gpio@24 {
179		compatible = "nxp,pca9555";
180		reg = <0x24>;
181		gpio-controller;
182		#gpio-cells = <2>;
183		vcc-supply = <&reg_vcc_3v3>;
184	};
185};
186
187&i2c2 {
188	clock-frequency = <100000>;
189	pinctrl-names = "default", "gpio";
190	pinctrl-0 = <&pinctrl_i2c2>;
191	pinctrl-1 = <&pinctrl_i2c2_gpio>;
192	scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
193	sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
194	status = "okay";
195
196	tlv320aic3x04: audio-codec@18 {
197		compatible = "ti,tlv320aic32x4";
198		reg = <0x18>;
199		reset-gpios = <&expander2 0 GPIO_ACTIVE_LOW>;
200		iov-supply = <&reg_vcc_3v3>;
201		ldoin-supply = <&reg_vcc_3v3>;
202	};
203
204	sensor1: sensor@1f {
205		compatible = "nxp,se97", "jedec,jc-42.4-temp";
206		reg = <0x1f>;
207	};
208
209	eeprom3: eeprom@57 {
210		compatible = "nxp,se97b", "atmel,24c02";
211		reg = <0x57>;
212		pagesize = <16>;
213	};
214};
215
216&i2c3 {
217	clock-frequency = <100000>;
218	pinctrl-names = "default", "gpio";
219	pinctrl-0 = <&pinctrl_i2c3>;
220	pinctrl-1 = <&pinctrl_i2c3_gpio>;
221	scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
222	sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
223	status = "okay";
224};
225
226&pwm3 {
227	pinctrl-names = "default";
228	pinctrl-0 = <&pinctrl_pwm3>;
229	status = "okay";
230};
231
232&pwm4 {
233	pinctrl-names = "default";
234	pinctrl-0 = <&pinctrl_pwm4>;
235	status = "okay";
236};
237
238&sai3 {
239	pinctrl-names = "default";
240	pinctrl-0 = <&pinctrl_sai3>;
241	#sound-dai-cells = <0>;
242	assigned-clock-rates = <49152000>;
243	status = "okay";
244};
245
246&snvs_pwrkey {
247	status = "okay";
248};
249
250&uart1 {
251	pinctrl-names = "default";
252	pinctrl-0 = <&pinctrl_uart1>;
253	status = "okay";
254};
255
256&uart2 {
257	pinctrl-names = "default";
258	pinctrl-0 = <&pinctrl_uart2>;
259	status = "okay";
260};
261
262/* console */
263&uart3 {
264	pinctrl-names = "default";
265	pinctrl-0 = <&pinctrl_uart3>;
266	status = "okay";
267};
268
269/* UART4 is assigned to Cortex-M4 */
270&usdhc2 {
271	pinctrl-names = "default", "state_100mhz", "state_200mhz";
272	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
273	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
274	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
275	bus-width = <4>;
276	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
277	disable-wp;
278	no-mmc;
279	no-sdio;
280	vmmc-supply = <&reg_usdhc2_vmmc>;
281	status = "okay";
282};
283