1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright 2025 Josua Mayer <josua@solid-run.com> 4 */ 5 6#include <dt-bindings/leds/common.h> 7 8/ { 9 aliases { 10 rtc0 = &carrier_rtc; 11 rtc1 = &snvs_rtc; 12 }; 13 14 leds { 15 compatible = "gpio-leds"; 16 pinctrl-names = "default"; 17 pinctrl-0 = <&led_pins>; 18 19 led-0 { 20 label = "D30"; 21 color = <LED_COLOR_ID_GREEN>; 22 gpios = <&gpio5 28 GPIO_ACTIVE_LOW>; 23 default-state = "on"; 24 }; 25 26 led-1 { 27 label = "D31"; 28 color = <LED_COLOR_ID_GREEN>; 29 gpios = <&gpio4 24 GPIO_ACTIVE_LOW>; 30 default-state = "on"; 31 }; 32 33 led-2 { 34 label = "D32"; 35 color = <LED_COLOR_ID_GREEN>; 36 gpios = <&gpio4 23 GPIO_ACTIVE_LOW>; 37 default-state = "on"; 38 }; 39 40 led-3 { 41 label = "D33"; 42 color = <LED_COLOR_ID_GREEN>; 43 gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; 44 default-state = "on"; 45 }; 46 47 led-4 { 48 label = "D34"; 49 color = <LED_COLOR_ID_GREEN>; 50 gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; 51 default-state = "on"; 52 }; 53 }; 54 55 rfkill-mpcie-wifi { 56 /* 57 * The mpcie connector only has USB, 58 * therefore this rfkill is for cellular radios only. 59 */ 60 compatible = "rfkill-gpio"; 61 pinctrl-names = "default"; 62 pinctrl-0 = <&mpcie_rfkill_pins>; 63 label = "mpcie radio"; 64 radio-type = "wwan"; 65 /* rfkill-gpio inverts internally */ 66 shutdown-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; 67 }; 68 69 vmmc: regulator-mmc { 70 compatible = "regulator-fixed"; 71 pinctrl-names = "default"; 72 pinctrl-0 = <&vmmc_pins>; 73 regulator-name = "vmmc"; 74 regulator-min-microvolt = <3300000>; 75 regulator-max-microvolt = <3300000>; 76 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; 77 startup-delay-us = <250>; 78 }; 79 80 vbus1: regulator-vbus-1 { 81 compatible = "regulator-fixed"; 82 regulator-name = "vbus1"; 83 gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>; 84 enable-active-high; 85 pinctrl-names = "default"; 86 pinctrl-0 = <&vbus1_pins>; 87 regulator-min-microvolt = <5000000>; 88 regulator-max-microvolt = <5000000>; 89 }; 90 91 vbus2: regulator-vbus-2 { 92 compatible = "regulator-fixed"; 93 regulator-name = "vbus2"; 94 gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>; 95 enable-active-high; 96 pinctrl-names = "default"; 97 pinctrl-0 = <&vbus2_pins>; 98 regulator-min-microvolt = <5000000>; 99 regulator-max-microvolt = <5000000>; 100 }; 101 102 v_1_2: regulator-1-2 { 103 compatible = "regulator-fixed"; 104 regulator-name = "1v2"; 105 regulator-min-microvolt = <1200000>; 106 regulator-max-microvolt = <1200000>; 107 }; 108 109 vmpcie { 110 /* supplies mpcie and m2 connectors */ 111 compatible = "regulator-fixed"; 112 regulator-name = "vmpcie"; 113 gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>; 114 enable-active-high; 115 pinctrl-names = "default"; 116 pinctrl-0 = <&vmpcie_pins>; 117 regulator-min-microvolt = <3300000>; 118 regulator-max-microvolt = <3300000>; 119 regulator-always-on; 120 }; 121}; 122 123/* mikrobus spi */ 124&ecspi2 { 125 num-cs = <1>; 126 pinctrl-names = "default"; 127 pinctrl-0 = <&mikro_spi_pins>; 128 status = "okay"; 129}; 130 131&gpio1 { 132 pinctrl-0 = <&mpcie_reset_pins>; 133 pinctrl-names = "default"; 134 135 mpcie-reset-hog { 136 gpio-hog; 137 gpios = <1 GPIO_ACTIVE_LOW>; 138 output-low; 139 line-name = "mpcie-reset"; 140 }; 141}; 142 143&i2c3 { 144 carrier_eeprom: eeprom@57{ 145 compatible = "st,24c02", "atmel,24c02"; 146 reg = <0x57>; 147 pagesize = <16>; 148 }; 149 150 carrier_rtc: rtc@69 { 151 compatible = "abracon,ab1805"; 152 reg = <0x69>; 153 abracon,tc-diode = "schottky"; 154 abracon,tc-resistor = <3>; 155 }; 156}; 157 158&iomuxc { 159 csi_pins: pinctrl-csi-grp { 160 fsl,pins = < 161 /* Pin 24: STROBE */ 162 MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07 0x0 163 >; 164 }; 165 166 led_pins: pinctrl-led-grp { 167 fsl,pins = < 168 MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22 0x0 169 MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21 0x0 170 MX8MP_IOMUXC_SAI2_RXD0__GPIO4_IO23 0x0 171 MX8MP_IOMUXC_SAI2_TXFS__GPIO4_IO24 0x0 172 MX8MP_IOMUXC_UART4_RXD__GPIO5_IO28 0x0 173 >; 174 }; 175 176 mikro_int_pins: pinctrl-mikro-int-grp { 177 fsl,pins = < 178 MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09 0x0 179 >; 180 }; 181 182 mikro_pwm_pins: pinctrl-mikro-pwm-grp { 183 fsl,pins = < 184 MX8MP_IOMUXC_ECSPI1_MISO__GPIO5_IO08 0x0 185 >; 186 }; 187 188 mikro_rst_pins: pinctrl-mikro-rst-grp { 189 fsl,pins = < 190 MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30 0x0 191 >; 192 }; 193 194 mikro_spi_pins: pinctrl-mikro-spi-grp { 195 fsl,pins = < 196 MX8MP_IOMUXC_ECSPI2_SS0__ECSPI2_SS0 0x40000 197 MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK 0x82 198 MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO 0x82 199 MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI 0x82 200 >; 201 }; 202 203 mikro_uart_pins: pinctrl-mikro-uart-grp { 204 fsl,pins = < 205 MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX 0x140 206 MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX 0x140 207 >; 208 }; 209 210 mpcie_reset_pins: pinctrl-mpcie-reset-grp { 211 fsl,pins = < 212 MX8MP_IOMUXC_GPIO1_IO01__GPIO1_IO01 0x0 213 >; 214 }; 215 216 mpcie_rfkill_pins: pinctrl-pcie-rfkill-grp { 217 fsl,pins = < 218 /* weak i/o, open drain */ 219 MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05 0x20 220 >; 221 }; 222 223 usb_hub_pins: pinctrl-usb-hub-grp { 224 fsl,pins = < 225 MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11 0x0 226 >; 227 }; 228 229 usdhc2_pins: pinctrl-usdhc2-grp { 230 fsl,pins = < 231 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190 232 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0 233 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0 234 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0 235 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0 236 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0 237 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0x140 238 MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B 0x140 239 >; 240 }; 241 242 usdhc2_100mhz_pins: pinctrl-usdhc2-100mhz-grp { 243 fsl,pins = < 244 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x194 245 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d4 246 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4 247 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4 248 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4 249 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4 250 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0x140 251 MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B 0x140 252 >; 253 }; 254 255 usdhc2_200mhz_pins: pinctrl-usdhc2-200mhz-grp { 256 fsl,pins = < 257 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x196 258 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d6 259 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d6 260 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d6 261 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d6 262 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d6 263 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0x140 264 MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B 0x140 265 >; 266 }; 267 268 vbus1_pins: pinctrl-vbus-1-grp { 269 fsl,pins = < 270 MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14 0x20 271 >; 272 }; 273 274 vbus2_pins: pinctrl-vbus-2-grp { 275 fsl,pins = < 276 MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15 0x20 277 >; 278 }; 279 280 vmmc_pins: pinctrl-vmmc-grp { 281 fsl,pins = < 282 MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x41 283 >; 284 }; 285 286 vmpcie_pins: pinctrl-vmpcie-grp { 287 fsl,pins = < 288 MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10 0x0 289 >; 290 }; 291}; 292 293&phy0 { 294 leds { 295 #address-cells = <1>; 296 #size-cells = <0>; 297 298 /* ADIN1300 LED_0 pin */ 299 led@0 { 300 reg = <0>; 301 color = <LED_COLOR_ID_ORANGE>; 302 function = LED_FUNCTION_LAN; 303 default-state = "keep"; 304 }; 305 306 /* ADIN1300 LINK_ST pin */ 307 led@1 { 308 reg = <1>; 309 color = <LED_COLOR_ID_GREEN>; 310 function = LED_FUNCTION_LAN; 311 default-state = "keep"; 312 }; 313 }; 314}; 315 316&snvs_pwrkey { 317 status = "okay"; 318}; 319 320/* mikrobus uart */ 321&uart3 { 322 status = "okay"; 323}; 324 325&usb3_phy0 { 326 fsl,phy-tx-preemp-amp-tune-microamp = <1200>; 327 vbus-supply = <&vbus2>; 328 status = "okay"; 329}; 330 331&usb3_0 { 332 status = "okay"; 333}; 334 335&usb3_phy1 { 336 vbus-supply = <&vbus1>; 337 status = "okay"; 338}; 339 340&usb3_1 { 341 status = "okay"; 342}; 343 344&usb_dwc3_0 { 345 dr_mode = "host"; 346}; 347 348&usb_dwc3_1 { 349 dr_mode = "host"; 350 #address-cells = <1>; 351 #size-cells = <0>; 352 pinctrl-names = "default"; 353 pinctrl-0 = <&usb_hub_pins>; 354 355 hub_2_0: hub@1 { 356 compatible = "usb4b4,6502", "usb4b4,6506"; 357 reg = <1>; 358 peer-hub = <&hub_3_0>; 359 reset-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; 360 vdd-supply = <&v_1_2>; 361 vdd2-supply = <&v_3_3>; 362 }; 363 364 hub_3_0: hub@2 { 365 compatible = "usb4b4,6500", "usb4b4,6504"; 366 reg = <2>; 367 peer-hub = <&hub_2_0>; 368 reset-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; 369 vdd-supply = <&v_1_2>; 370 vdd2-supply = <&v_3_3>; 371 }; 372}; 373 374&usdhc2 { 375 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 376 pinctrl-0 = <&usdhc2_pins>; 377 pinctrl-1 = <&usdhc2_100mhz_pins>; 378 pinctrl-2 = <&usdhc2_200mhz_pins>; 379 vmmc-supply = <&vmmc>; 380 bus-width = <4>; 381 cap-power-off-card; 382 full-pwr-cycle; 383 status = "okay"; 384}; 385