1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2/* 3 * Copyright (c) Toradex 4 * 5 * Common dtsi for Verdin IMX8MP SoM on Zinnia carrier board 6 * 7 * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-plus 8 * https://www.toradex.com/products/carrier-board/zinnia-carrier-board 9 */ 10 11#include <dt-bindings/leds/common.h> 12#include <dt-bindings/net/ti-dp83867.h> 13 14/ { 15 leds { 16 compatible = "gpio-leds"; 17 pinctrl-names = "default"; 18 pinctrl-0 = <&pinctrl_zinnia_leds>; 19 20 /* LED1 Red - SODIMM 48 - LED1_R */ 21 led-1 { 22 color = <LED_COLOR_ID_RED>; 23 default-state = "off"; 24 function = LED_FUNCTION_STATUS; 25 function-enumerator = <1>; 26 gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>; 27 }; 28 29 /* LED1 Blue - SODIMM 46 - LED1_B */ 30 led-2 { 31 color = <LED_COLOR_ID_BLUE>; 32 default-state = "off"; 33 function = LED_FUNCTION_STATUS; 34 function-enumerator = <1>; 35 gpios = <&gpio5 01 GPIO_ACTIVE_HIGH>; 36 }; 37 38 /* LED3 Red - SODIMM 44 - LED3_R */ 39 led-3 { 40 color = <LED_COLOR_ID_RED>; 41 default-state = "off"; 42 function = LED_FUNCTION_STATUS; 43 function-enumerator = <3>; 44 gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>; 45 }; 46 47 /* LED3 Green - SODIMM 54 - LED3_G */ 48 led-4 { 49 color = <LED_COLOR_ID_GREEN>; 50 default-state = "off"; 51 function = LED_FUNCTION_STATUS; 52 function-enumerator = <3>; 53 gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; 54 }; 55 56 /* LED3 Blue - SODIMM 36 - LED3_B */ 57 led-5 { 58 color = <LED_COLOR_ID_BLUE>; 59 default-state = "off"; 60 function = LED_FUNCTION_STATUS; 61 function-enumerator = <3>; 62 gpios = <&gpio4 2 GPIO_ACTIVE_HIGH>; 63 }; 64 65 /* LED4 Red - SODIMM 34 - LED4_R */ 66 led-6 { 67 color = <LED_COLOR_ID_RED>; 68 default-state = "off"; 69 function = LED_FUNCTION_STATUS; 70 function-enumerator = <4>; 71 gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 72 }; 73 74 /* LED4 Green - SODIMM 32 - LED4_G */ 75 led-7 { 76 color = <LED_COLOR_ID_GREEN>; 77 default-state = "off"; 78 function = LED_FUNCTION_STATUS; 79 function-enumerator = <4>; 80 gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; 81 }; 82 83 /* LED4 Blue - SODIMM 30 - LED4_B */ 84 led-8 { 85 color = <LED_COLOR_ID_BLUE>; 86 default-state = "off"; 87 function = LED_FUNCTION_STATUS; 88 function-enumerator = <4>; 89 gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; 90 }; 91 }; 92 93 zinnia-1v8-voltage { 94 compatible = "voltage-divider"; 95 full-ohms = <39000>; /* 12k + 27k */ 96 /* Verdin ADC_4 */ 97 io-channels = <&verdin_som_adc 4>; 98 output-ohms = <27000>; 99 }; 100 101 zinnia-3v3-voltage { 102 compatible = "voltage-divider"; 103 full-ohms = <54000>; /* 27k + 27k */ 104 /* Verdin ADC_3 */ 105 io-channels = <&verdin_som_adc 5>; 106 output-ohms = <27000>; 107 }; 108 109 zinnia-5v-voltage { 110 compatible = "voltage-divider"; 111 full-ohms = <39000>; /* 27k + 12k */ 112 /* Verdin ADC_2 */ 113 io-channels = <&verdin_som_adc 6>; 114 output-ohms = <12000>; 115 }; 116 117 /* Zinnia Power Supply Input Voltage */ 118 zinnia-input-voltage { 119 compatible = "voltage-divider"; 120 full-ohms = <204700>; /* 200k + 4.7k */ 121 /* Verdin ADC_1 */ 122 io-channels = <&verdin_som_adc 7>; 123 output-ohms = <4700>; 124 }; 125}; 126 127/* Verdin SPI_1 */ 128&ecspi1 { 129 pinctrl-0 = <&pinctrl_ecspi1>, <&pinctrl_uart2_cts_gpio>; 130 cs-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>, <&gpio5 9 GPIO_ACTIVE_LOW>; 131 132 status = "okay"; 133 134 tpm@1 { 135 compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; 136 reg = <1>; 137 spi-max-frequency = <18500000>; 138 }; 139}; 140 141/* EEPROM on Zinnia */ 142&eeprom_carrier_board { 143 status = "okay"; 144}; 145 146/* Verdin ETH_1 */ 147&eqos { 148 status = "okay"; 149}; 150 151/* Verdin ETH_2 */ 152&fec { 153 phy-handle = <ðphy2>; 154 phy-mode = "rgmii-id"; 155 156 status = "okay"; 157}; 158 159&verdin_eth2_mdio { 160 ethphy2: ethernet-phy@2 { 161 reg = <2>; 162 interrupt-parent = <&gpio4>; 163 interrupts = <18 IRQ_TYPE_LEVEL_LOW>; 164 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 165 ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 166 }; 167}; 168 169/* Verdin CAN_1 */ 170&flexcan1 { 171 status = "okay"; 172}; 173 174&gpio1 { 175 gpio-line-names = 176 "DO1_EN", /* 0 */ /* SODIMM 206 */ 177 "DI1_EN", /* SODIMM 208 */ 178 "", 179 "", 180 "", 181 "DI1_RB", /* SODIMM 210 */ 182 "DO2_EN", /* SODIMM 212 */ 183 "DI2_RB", /* SODIMM 216 */ 184 "DI2_EN", /* SODIMM 218 */ 185 "", 186 "", /* 10 */ 187 "", 188 "", 189 "", 190 "", 191 "", 192 "", 193 "", 194 "", 195 "", 196 "", /* 20 */ 197 "", 198 "", 199 "", 200 "", 201 "", 202 "", 203 "", 204 "", 205 ""; 206}; 207 208&gpio2 { 209 gpio-line-names = 210 "", /* 0 */ 211 "", 212 "", 213 "", 214 "", 215 "", 216 "", 217 "", 218 "", 219 "", 220 "", /* 10 */ 221 "", 222 "", 223 "", 224 "", 225 "", 226 "", 227 "", 228 "", 229 "", 230 ""; /* 20 */ 231}; 232 233&gpio3 { 234 gpio-line-names = 235 "", /* 0 */ 236 "", 237 "", 238 "", 239 "", 240 "", 241 "DI3_RB", /* SODIMM 56 */ 242 "", 243 "", 244 "", 245 "", /* 10 */ 246 "", 247 "", 248 "", 249 "", 250 "", 251 "", 252 "", 253 "", 254 "", 255 "", /* 20 */ 256 "", 257 "", 258 "", 259 "", 260 "", 261 "", 262 "", 263 "", 264 ""; 265}; 266 267&gpio4 { 268 gpio-line-names = 269 "", /* 0 */ 270 "DI3_EN", /* SODIMM 222 */ 271 "", 272 "DO3_EN", /* SODIMM 220 */ 273 "", 274 "", 275 "", 276 "", 277 "", 278 "", 279 "", /* 10 */ 280 "", 281 "", 282 "", 283 "", 284 "", 285 "", 286 "", 287 "", 288 "", 289 "", /* 20 */ 290 "", 291 "", 292 "", 293 "", 294 "", 295 "", 296 "", 297 "", 298 "", 299 "", /* 30 */ 300 ""; 301}; 302 303&gpio5 { 304 gpio-line-names = 305 "", /* 0 */ 306 "", 307 "", 308 "", 309 "", 310 "", 311 "", 312 "", 313 "", 314 "", 315 "", /* 10 */ 316 "", 317 "", 318 "", 319 "", 320 "", 321 "", 322 "", 323 "", 324 "", 325 "", /* 20 */ 326 "", 327 "", 328 "", 329 "", 330 "", 331 "", 332 "", 333 "", 334 ""; 335}; 336 337/* Temperature sensor on Zinnia */ 338&hwmon_temp { 339 compatible = "ti,tmp1075"; 340 341 status = "okay"; 342}; 343 344/* Verdin I2C_1 */ 345&i2c4 { 346 status = "okay"; 347}; 348 349/* Verdin UART_1 */ 350&uart1 { 351 status = "okay"; 352}; 353 354/* Verdin UART_2 */ 355&uart2 { 356 pinctrl-0 = <&pinctrl_uart2>, <&pinctrl_uart2_rts>; 357 linux,rs485-enabled-at-boot-time; 358 rs485-rx-during-tx; 359 360 status = "okay"; 361}; 362 363/* Verdin UART_3 */ 364&uart3 { 365 status = "okay"; 366}; 367 368/* Verdin USB_1 */ 369&usb3_0 { 370 status = "okay"; 371}; 372 373&usb3_phy0 { 374 status = "okay"; 375}; 376 377/* Verdin USB_2 */ 378&usb3_1 { 379 status = "okay"; 380}; 381 382&usb3_phy1 { 383 status = "okay"; 384}; 385 386/* Verdin SD_1 */ 387&usdhc2 { 388 status = "okay"; 389}; 390 391&iomuxc { 392 pinctrl-names = "default"; 393 pinctrl-0 = <&pinctrl_gpio1>, 394 <&pinctrl_gpio2>, 395 <&pinctrl_gpio3>, 396 <&pinctrl_gpio4>, 397 <&pinctrl_gpio5>, 398 <&pinctrl_gpio6>, 399 <&pinctrl_gpio7>, 400 <&pinctrl_gpio8>, 401 <&pinctrl_qspi1_io0_gpio>; 402 403 pinctrl_uart2_cts_gpio: gpio2io6grp { 404 fsl,pins = <MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06 0x184>; /* SODIMM 143 */ 405 }; 406 407 pinctrl_qspi1_io0_gpio: gpio3io6grp { 408 fsl,pins = <MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x184>; /* SODIMM 56 */ 409 }; 410 411 pinctrl_zinnia_leds: zinnialedsgrp { 412 fsl,pins = 413 <MX8MP_IOMUXC_SAI5_MCLK__GPIO3_IO25 0x16>, /* SODIMM 30 */ 414 <MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22 0x16>, /* SODIMM 32 */ 415 <MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x16>, /* SODIMM 34 */ 416 <MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x16>, /* SODIMM 36 */ 417 <MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x16>, /* SODIMM 44 */ 418 <MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x16>, /* SODIMM 46 */ 419 <MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30 0x16>, /* SODIMM 48 */ 420 <MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01 0x16>; /* SODIMM 54 */ 421 }; 422}; 423