Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / freescale / mba8mx.dtsi
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         gpio-keys {
33                 compatible = "gpio-keys";
34                 pinctrl-names = "default";
35                 pinctrl-0 = <&pinctrl_gpiobutton>;
36                 autorepeat;
37
38                 switch-1 {
39                         label = "switch1";
40                         linux,code = <BTN_0>;
41                         gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
42                         wakeup-source;
43                 };
44
45                 btn2: switch-2 {
46                         label = "switch2";
47                         linux,code = <BTN_1>;
48                         gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
49                         wakeup-source;
50                 };
51
52                 switch-3 {
53                         label = "switch3";
54                         linux,code = <BTN_2>;
55                         gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
56                         wakeup-source;
57                 };
58         };
59
60         gpio_leds: gpio-leds {
61                 compatible = "gpio-leds";
62                 pinctrl-names = "default";
63                 pinctrl-0 = <&pinctrl_gpioled>;
64
65                 led1 {
66                         label = "led1";
67                         gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
68                         linux,default-trigger = "default-on";
69                 };
70
71                 led2: led2 {
72                         label = "led2";
73                         gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
74                         linux,default-trigger = "heartbeat";
75                 };
76         };
77
78         gpio_delays: gpio-delays {
79                 compatible = "gpio-delay";
80                 #gpio-cells = <3>;
81                 gpio-controller;
82                 gpios = <&expander0 6 GPIO_ACTIVE_HIGH>;
83                 gpio-line-names = "LVDS_BRIDGE_EN_1V8";
84         };
85
86         panel: panel-lvds {
87                 /*
88                  * Display is not fixed, so compatible has to be added from
89                  * DT overlay
90                  */
91                 backlight = <&backlight_lvds>;
92                 power-supply = <&reg_vcc_3v3>;
93                 status = "disabled";
94
95                 port {
96                         panel_in_lvds: endpoint {
97                                 data-lanes = <1 2 3 4>;
98                                 remote-endpoint = <&lvds_bridge_out>;
99                         };
100                 };
101         };
102
103         pcie0_refclk: pcie0-refclk {
104                 compatible = "fixed-clock";
105                 #clock-cells = <0>;
106                 clock-frequency = <100000000>;
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                 };
189         };
190 };
191
192 &i2c1 {
193         expander0: gpio@23 {
194                 compatible = "nxp,pca9555";
195                 reg = <0x23>;
196                 gpio-controller;
197                 #gpio-cells = <2>;
198                 vcc-supply = <&reg_vcc_3v3>;
199                 interrupt-parent = <&gpio1>;
200                 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
201                 interrupt-controller;
202                 #interrupt-cells = <2>;
203                 gpio-line-names = "", "", "", "",
204                                   "", "", "LVDS_BRIDGE_EN", "",
205                                   "", "", "", "",
206                                   "", "", "", "";
207
208                 sd-mux-oe-hog {
209                         gpio-hog;
210                         gpios = <8 0>;
211                         output-low;
212                         line-name = "SD_MUX_EN#";
213                 };
214
215                 boot-cfg-oe-hog {
216                         gpio-hog;
217                         gpios = <12 0>;
218                         output-high;
219                         line-name = "BOOT_CFG_OE#";
220                 };
221
222                 rst-usb-hub-hog {
223                         gpio-hog;
224                         gpios = <13 0>;
225                         output-high;
226                         line-name = "RST_USB_HUB#";
227                 };
228         };
229
230         expander1: gpio@24 {
231                 compatible = "nxp,pca9555";
232                 reg = <0x24>;
233                 gpio-controller;
234                 #gpio-cells = <2>;
235                 vcc-supply = <&reg_vcc_3v3>;
236         };
237 };
238
239 &i2c2 {
240         clock-frequency = <100000>;
241         pinctrl-names = "default", "gpio";
242         pinctrl-0 = <&pinctrl_i2c2>;
243         pinctrl-1 = <&pinctrl_i2c2_gpio>;
244         scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
245         sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
246         status = "okay";
247
248         tlv320aic3x04: audio-codec@18 {
249                 compatible = "ti,tlv320aic32x4";
250                 reg = <0x18>;
251                 reset-gpios = <&expander2 0 GPIO_ACTIVE_LOW>;
252                 iov-supply = <&reg_vcc_3v3>;
253                 ldoin-supply = <&reg_vcc_3v3>;
254         };
255
256         sensor1: temperator-sensor@1f {
257                 compatible = "nxp,se97b", "jedec,jc-42.4-temp";
258                 reg = <0x1f>;
259         };
260
261         eeprom3: eeprom@57 {
262                 compatible = "nxp,se97b", "atmel,24c02";
263                 reg = <0x57>;
264                 pagesize = <16>;
265                 vcc-supply = <&reg_vcc_3v3>;
266         };
267 };
268
269 &i2c3 {
270         clock-frequency = <100000>;
271         pinctrl-names = "default", "gpio";
272         pinctrl-0 = <&pinctrl_i2c3>;
273         pinctrl-1 = <&pinctrl_i2c3_gpio>;
274         scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
275         sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
276         status = "okay";
277
278         dsi_lvds_bridge: bridge@2d {
279                 compatible = "ti,sn65dsi84";
280                 reg = <0x2d>;
281                 enable-gpios = <&gpio_delays 0 130000 0>;
282                 vcc-supply = <&reg_sn65dsi83_1v8>;
283                 status = "disabled";
284
285                 ports {
286                         #address-cells = <1>;
287                         #size-cells = <0>;
288
289                         port@0 {
290                                 reg = <0>;
291
292                                 lvds_bridge_in: endpoint {
293                                         data-lanes = <1 2 3 4>;
294                                         remote-endpoint = <&mipi_dsi_out>;
295                                 };
296                         };
297
298                         port@2 {
299                                 reg = <2>;
300
301                                 lvds_bridge_out: endpoint {
302                                         remote-endpoint = <&panel_in_lvds>;
303                                 };
304                         };
305                 };
306         };
307 };
308
309 &mipi_dsi {
310         samsung,burst-clock-frequency = <891000000>;
311         samsung,esc-clock-frequency = <20000000>;
312
313         ports {
314                 port@1 {
315                         reg = <1>;
316
317                         mipi_dsi_out: endpoint {
318                                 data-lanes = <1 2 3 4>;
319                                 remote-endpoint = <&lvds_bridge_in>;
320                         };
321                 };
322         };
323 };
324
325 &pwm3 {
326         pinctrl-names = "default";
327         pinctrl-0 = <&pinctrl_pwm3>;
328         status = "okay";
329 };
330
331 &pwm4 {
332         pinctrl-names = "default";
333         pinctrl-0 = <&pinctrl_pwm4>;
334         status = "okay";
335 };
336
337 &sai3 {
338         pinctrl-names = "default";
339         pinctrl-0 = <&pinctrl_sai3>;
340         #sound-dai-cells = <0>;
341         assigned-clock-rates = <49152000>;
342         status = "okay";
343 };
344
345 &snvs_pwrkey {
346         status = "okay";
347 };
348
349 &uart1 {
350         pinctrl-names = "default";
351         pinctrl-0 = <&pinctrl_uart1>;
352         status = "okay";
353 };
354
355 &uart2 {
356         pinctrl-names = "default";
357         pinctrl-0 = <&pinctrl_uart2>;
358         status = "okay";
359 };
360
361 /* console */
362 &uart3 {
363         pinctrl-names = "default";
364         pinctrl-0 = <&pinctrl_uart3>;
365         status = "okay";
366 };
367
368 &usdhc2 {
369         pinctrl-names = "default", "state_100mhz", "state_200mhz";
370         pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
371         pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
372         pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
373         bus-width = <4>;
374         cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
375         disable-wp;
376         no-mmc;
377         no-sdio;
378         vmmc-supply = <&reg_usdhc2_vmmc>;
379         status = "okay";
380 };