Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / freescale / imx8mm-venice-gw7905.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright 2023 Gateworks Corporation
4  */
5
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/leds/common.h>
8 #include <dt-bindings/phy/phy-imx8-pcie.h>
9
10 / {
11         led-controller {
12                 compatible = "gpio-leds";
13                 pinctrl-names = "default";
14                 pinctrl-0 = <&pinctrl_gpio_leds>;
15
16                 led-0 {
17                         function = LED_FUNCTION_STATUS;
18                         color = <LED_COLOR_ID_GREEN>;
19                         gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
20                         default-state = "on";
21                         linux,default-trigger = "heartbeat";
22                 };
23
24                 led-1 {
25                         function = LED_FUNCTION_STATUS;
26                         color = <LED_COLOR_ID_RED>;
27                         gpios = <&gpio4 2 GPIO_ACTIVE_HIGH>;
28                         default-state = "off";
29                 };
30         };
31
32         pcie0_refclk: clock-pcie0 {
33                 compatible = "fixed-clock";
34                 #clock-cells = <0>;
35                 clock-frequency = <100000000>;
36         };
37
38         pps {
39                 compatible = "pps-gpio";
40                 pinctrl-names = "default";
41                 pinctrl-0 = <&pinctrl_pps>;
42                 gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;
43                 status = "okay";
44         };
45
46         reg_usb2_vbus: regulator-usb2-vbus {
47                 compatible = "regulator-fixed";
48                 pinctrl-names = "default";
49                 pinctrl-0 = <&pinctrl_reg_usb2_en>;
50                 regulator-name = "usb2_vbus";
51                 gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
52                 enable-active-high;
53                 regulator-min-microvolt = <5000000>;
54                 regulator-max-microvolt = <5000000>;
55         };
56
57         reg_usdhc2_vmmc: regulator-usdhc2 {
58                 compatible = "regulator-fixed";
59                 pinctrl-names = "default";
60                 pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
61                 regulator-name = "SD2_3P3V";
62                 regulator-min-microvolt = <3300000>;
63                 regulator-max-microvolt = <3300000>;
64                 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
65                 enable-active-high;
66         };
67 };
68
69 /* off-board header */
70 &ecspi2 {
71         pinctrl-names = "default";
72         pinctrl-0 = <&pinctrl_spi2>;
73         cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
74         status = "okay";
75 };
76
77 &gpio1 {
78         gpio-line-names =
79                 "", "", "", "",
80                 "", "", "", "",
81                 "", "", "", "",
82                 "", "gpioa", "gpiob", "",
83                 "", "", "", "",
84                 "", "", "", "",
85                 "", "", "", "",
86                 "", "", "", "";
87 };
88
89 &gpio4 {
90         gpio-line-names =
91                 "", "", "", "pci_usb_sel",
92                 "", "", "", "pci_wdis#",
93                 "", "", "", "",
94                 "", "", "", "",
95                 "", "", "", "",
96                 "", "", "", "",
97                 "", "", "", "",
98                 "", "", "", "";
99 };
100
101 &gpio5 {
102         gpio-line-names =
103                 "", "", "", "",
104                 "gpioc", "gpiod", "", "",
105                 "", "", "", "",
106                 "", "", "", "",
107                 "", "", "", "",
108                 "", "", "", "",
109                 "", "", "", "",
110                 "", "", "", "";
111 };
112
113 &i2c2 {
114         clock-frequency = <400000>;
115         pinctrl-names = "default";
116         pinctrl-0 = <&pinctrl_i2c2>;
117         status = "okay";
118
119         eeprom@52 {
120                 compatible = "atmel,24c32";
121                 reg = <0x52>;
122                 pagesize = <32>;
123         };
124 };
125
126 /* off-board header */
127 &i2c3 {
128         clock-frequency = <400000>;
129         pinctrl-names = "default";
130         pinctrl-0 = <&pinctrl_i2c3>;
131         status = "okay";
132 };
133
134 &pcie_phy {
135         fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
136         fsl,clkreq-unsupported;
137         clocks = <&pcie0_refclk>;
138         clock-names = "ref";
139         status = "okay";
140 };
141
142 &pcie0 {
143         pinctrl-names = "default";
144         pinctrl-0 = <&pinctrl_pcie0>;
145         reset-gpio = <&gpio4 6 GPIO_ACTIVE_LOW>;
146         status = "okay";
147 };
148
149 /* GPS */
150 &uart1 {
151         pinctrl-names = "default";
152         pinctrl-0 = <&pinctrl_uart1>;
153         status = "okay";
154 };
155
156 /* USB1 - Type C front panel SINK port J14 */
157 &usbotg1 {
158         dr_mode = "peripheral";
159         status = "okay";
160 };
161
162 /* USB2 4-port USB3.0 HUB:
163  *  P1 - USBC connector (host only)
164  *  P2 - USB2 test connector
165  *  P3 - miniPCIe full card
166  *  P4 - miniPCIe half card
167  */
168 &usbotg2 {
169         dr_mode = "host";
170         vbus-supply = <&reg_usb2_vbus>;
171         status = "okay";
172 };
173
174 /* microSD */
175 &usdhc2 {
176         pinctrl-names = "default", "state_100mhz", "state_200mhz";
177         pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
178         pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
179         pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
180         cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
181         vmmc-supply = <&reg_usdhc2_vmmc>;
182         bus-width = <4>;
183         status = "okay";
184 };
185
186 &iomuxc {
187         pinctrl-names = "default";
188         pinctrl-0 = <&pinctrl_hog>;
189
190         pinctrl_hog: hoggrp {
191                 fsl,pins = <
192                         MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13      0x40000040 /* GPIOA */
193                         MX8MM_IOMUXC_GPIO1_IO14_GPIO1_IO14      0x40000040 /* GPIOB */
194                         MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3        0x40000106 /* PCI_USBSEL */
195                         MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7        0x40000106 /* PCIE_WDIS# */
196                         MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5    0x40000040 /* GPIOD */
197                         MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4         0x40000040 /* GPIOC */
198                 >;
199         };
200
201         pinctrl_gpio_leds: gpioledgrp {
202                 fsl,pins = <
203                         MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0        0x6     /* LEDG */
204                         MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2        0x6     /* LEDR */
205                 >;
206         };
207
208         pinctrl_i2c2: i2c2grp {
209                 fsl,pins = <
210                         MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL          0x400001c2
211                         MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA          0x400001c2
212                 >;
213         };
214
215         pinctrl_i2c3: i2c3grp {
216                 fsl,pins = <
217                         MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL          0x400001c2
218                         MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA          0x400001c2
219                 >;
220         };
221
222         pinctrl_pcie0: pciegrp {
223                 fsl,pins = <
224                         MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6        0x106
225                 >;
226         };
227
228         pinctrl_pps: ppsgrp {
229                 fsl,pins = <
230                         MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5        0x106
231                 >;
232         };
233
234         pinctrl_reg_usb2_en: regusb2grp {
235                 fsl,pins = <
236                         MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8       0x6     /* USBHUB_RST# (ext p/u) */
237                 >;
238         };
239
240         pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
241                 fsl,pins = <
242                         MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19     0x40
243                 >;
244         };
245
246         pinctrl_spi2: spi2grp {
247                 fsl,pins = <
248                         MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK    0x140
249                         MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI    0x140
250                         MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO    0x140
251                         MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13      0x140
252                 >;
253         };
254
255         pinctrl_uart1: uart1grp {
256                 fsl,pins = <
257                         MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX     0x140
258                         MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX     0x140
259                 >;
260         };
261
262         pinctrl_usdhc2: usdhc2grp {
263                 fsl,pins = <
264                         MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK         0x190
265                         MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD         0x1d0
266                         MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0     0x1d0
267                         MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1     0x1d0
268                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2     0x1d0
269                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3     0x1d0
270                         MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT  0xc0
271                 >;
272         };
273
274         pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
275                 fsl,pins = <
276                         MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK         0x194
277                         MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD         0x1d4
278                         MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0     0x1d4
279                         MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1     0x1d4
280                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2     0x1d4
281                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3     0x1d4
282                         MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT  0xc0
283                 >;
284         };
285
286         pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
287                 fsl,pins = <
288                         MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK         0x196
289                         MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD         0x1d6
290                         MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0     0x1d6
291                         MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1     0x1d6
292                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2     0x1d6
293                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3     0x1d6
294                         MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT  0xc0
295                 >;
296         };
297
298         pinctrl_usdhc2_gpio: usdhc2gpiogrp {
299                 fsl,pins = <
300                         MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12        0x1c4
301                 >;
302         };
303 };