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