1*b98948b0SJoão Paulo Gonçalves// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2*b98948b0SJoão Paulo Gonçalves/* 3*b98948b0SJoão Paulo Gonçalves * Copyright 2024 Toradex 4*b98948b0SJoão Paulo Gonçalves * 5*b98948b0SJoão Paulo Gonçalves * Common dtsi for Verdin IMX8MP SoM on Ivy carrier board 6*b98948b0SJoão Paulo Gonçalves * 7*b98948b0SJoão Paulo Gonçalves * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-plus 8*b98948b0SJoão Paulo Gonçalves * https://www.toradex.com/products/carrier-board/ivy-carrier-board 9*b98948b0SJoão Paulo Gonçalves */ 10*b98948b0SJoão Paulo Gonçalves 11*b98948b0SJoão Paulo Gonçalves#include <dt-bindings/mux/mux.h> 12*b98948b0SJoão Paulo Gonçalves#include <dt-bindings/leds/common.h> 13*b98948b0SJoão Paulo Gonçalves#include <dt-bindings/net/ti-dp83867.h> 14*b98948b0SJoão Paulo Gonçalves 15*b98948b0SJoão Paulo Gonçalves/ { 16*b98948b0SJoão Paulo Gonçalves /* AIN1 Voltage w/o AIN1_MODE gpio control */ 17*b98948b0SJoão Paulo Gonçalves ain1_voltage_unmanaged: voltage-divider-ain1 { 18*b98948b0SJoão Paulo Gonçalves compatible = "voltage-divider"; 19*b98948b0SJoão Paulo Gonçalves #io-channel-cells = <1>; 20*b98948b0SJoão Paulo Gonçalves io-channels = <&ivy_adc1 0>; 21*b98948b0SJoão Paulo Gonçalves full-ohms = <19>; 22*b98948b0SJoão Paulo Gonçalves output-ohms = <1>; 23*b98948b0SJoão Paulo Gonçalves }; 24*b98948b0SJoão Paulo Gonçalves 25*b98948b0SJoão Paulo Gonçalves /* AIN1 Current w/o AIN1_MODE gpio control */ 26*b98948b0SJoão Paulo Gonçalves ain1_current_unmanaged: current-sense-shunt-ain1 { 27*b98948b0SJoão Paulo Gonçalves compatible = "current-sense-shunt"; 28*b98948b0SJoão Paulo Gonçalves #io-channel-cells = <0>; 29*b98948b0SJoão Paulo Gonçalves io-channels = <&ivy_adc1 1>; 30*b98948b0SJoão Paulo Gonçalves shunt-resistor-micro-ohms = <100000000>; 31*b98948b0SJoão Paulo Gonçalves }; 32*b98948b0SJoão Paulo Gonçalves 33*b98948b0SJoão Paulo Gonçalves /* AIN1_MODE - SODIMM 216 */ 34*b98948b0SJoão Paulo Gonçalves ain1_mode_mux_ctrl: mux-controller-0 { 35*b98948b0SJoão Paulo Gonçalves compatible = "gpio-mux"; 36*b98948b0SJoão Paulo Gonçalves pinctrl-names = "default"; 37*b98948b0SJoão Paulo Gonçalves pinctrl-0 = <&pinctrl_gpio5>; 38*b98948b0SJoão Paulo Gonçalves #mux-control-cells = <0>; 39*b98948b0SJoão Paulo Gonçalves mux-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 40*b98948b0SJoão Paulo Gonçalves }; 41*b98948b0SJoão Paulo Gonçalves 42*b98948b0SJoão Paulo Gonçalves ain1-voltage { 43*b98948b0SJoão Paulo Gonçalves compatible = "io-channel-mux"; 44*b98948b0SJoão Paulo Gonçalves channels = "ain1_voltage", ""; 45*b98948b0SJoão Paulo Gonçalves io-channels = <&ain1_voltage_unmanaged 0>; 46*b98948b0SJoão Paulo Gonçalves io-channel-names = "parent"; 47*b98948b0SJoão Paulo Gonçalves mux-controls = <&ain1_mode_mux_ctrl>; 48*b98948b0SJoão Paulo Gonçalves settle-time-us = <1000>; 49*b98948b0SJoão Paulo Gonçalves }; 50*b98948b0SJoão Paulo Gonçalves 51*b98948b0SJoão Paulo Gonçalves ain1-current { 52*b98948b0SJoão Paulo Gonçalves compatible = "io-channel-mux"; 53*b98948b0SJoão Paulo Gonçalves channels = "", "ain1_current"; 54*b98948b0SJoão Paulo Gonçalves io-channels = <&ain1_current_unmanaged>; 55*b98948b0SJoão Paulo Gonçalves io-channel-names = "parent"; 56*b98948b0SJoão Paulo Gonçalves mux-controls = <&ain1_mode_mux_ctrl>; 57*b98948b0SJoão Paulo Gonçalves settle-time-us = <1000>; 58*b98948b0SJoão Paulo Gonçalves }; 59*b98948b0SJoão Paulo Gonçalves 60*b98948b0SJoão Paulo Gonçalves /* AIN2 Voltage w/o AIN2_MODE gpio control */ 61*b98948b0SJoão Paulo Gonçalves ain2_voltage_unmanaged: voltage-divider-ain2 { 62*b98948b0SJoão Paulo Gonçalves compatible = "voltage-divider"; 63*b98948b0SJoão Paulo Gonçalves #io-channel-cells = <1>; 64*b98948b0SJoão Paulo Gonçalves io-channels = <&ivy_adc2 0>; 65*b98948b0SJoão Paulo Gonçalves full-ohms = <19>; 66*b98948b0SJoão Paulo Gonçalves output-ohms = <1>; 67*b98948b0SJoão Paulo Gonçalves }; 68*b98948b0SJoão Paulo Gonçalves 69*b98948b0SJoão Paulo Gonçalves /* AIN2 Current w/o AIN2_MODE gpio control */ 70*b98948b0SJoão Paulo Gonçalves ain2_current_unmanaged: current-sense-shunt-ain2 { 71*b98948b0SJoão Paulo Gonçalves compatible = "current-sense-shunt"; 72*b98948b0SJoão Paulo Gonçalves #io-channel-cells = <0>; 73*b98948b0SJoão Paulo Gonçalves io-channels = <&ivy_adc2 1>; 74*b98948b0SJoão Paulo Gonçalves shunt-resistor-micro-ohms = <100000000>; 75*b98948b0SJoão Paulo Gonçalves }; 76*b98948b0SJoão Paulo Gonçalves 77*b98948b0SJoão Paulo Gonçalves /* AIN2_MODE - SODIMM 218 */ 78*b98948b0SJoão Paulo Gonçalves ain2_mode_mux_ctrl: mux-controller-1 { 79*b98948b0SJoão Paulo Gonçalves compatible = "gpio-mux"; 80*b98948b0SJoão Paulo Gonçalves pinctrl-names = "default"; 81*b98948b0SJoão Paulo Gonçalves pinctrl-0 = <&pinctrl_gpio6>; 82*b98948b0SJoão Paulo Gonçalves #mux-control-cells = <0>; 83*b98948b0SJoão Paulo Gonçalves mux-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; 84*b98948b0SJoão Paulo Gonçalves }; 85*b98948b0SJoão Paulo Gonçalves 86*b98948b0SJoão Paulo Gonçalves ain2-voltage { 87*b98948b0SJoão Paulo Gonçalves compatible = "io-channel-mux"; 88*b98948b0SJoão Paulo Gonçalves channels = "ain2_voltage", ""; 89*b98948b0SJoão Paulo Gonçalves io-channels = <&ain2_voltage_unmanaged 0>; 90*b98948b0SJoão Paulo Gonçalves io-channel-names = "parent"; 91*b98948b0SJoão Paulo Gonçalves mux-controls = <&ain2_mode_mux_ctrl>; 92*b98948b0SJoão Paulo Gonçalves settle-time-us = <1000>; 93*b98948b0SJoão Paulo Gonçalves }; 94*b98948b0SJoão Paulo Gonçalves 95*b98948b0SJoão Paulo Gonçalves ain2-current { 96*b98948b0SJoão Paulo Gonçalves compatible = "io-channel-mux"; 97*b98948b0SJoão Paulo Gonçalves channels = "", "ain2_current"; 98*b98948b0SJoão Paulo Gonçalves io-channels = <&ain2_current_unmanaged>; 99*b98948b0SJoão Paulo Gonçalves io-channel-names = "parent"; 100*b98948b0SJoão Paulo Gonçalves mux-controls = <&ain2_mode_mux_ctrl>; 101*b98948b0SJoão Paulo Gonçalves settle-time-us = <1000>; 102*b98948b0SJoão Paulo Gonçalves }; 103*b98948b0SJoão Paulo Gonçalves 104*b98948b0SJoão Paulo Gonçalves leds { 105*b98948b0SJoão Paulo Gonçalves compatible = "gpio-leds"; 106*b98948b0SJoão Paulo Gonçalves pinctrl-names = "default"; 107*b98948b0SJoão Paulo Gonçalves pinctrl-0 = <&pinctrl_ivy_leds>; 108*b98948b0SJoão Paulo Gonçalves 109*b98948b0SJoão Paulo Gonçalves /* D7 Blue - SODIMM 30 - LEDs.GPIO1 */ 110*b98948b0SJoão Paulo Gonçalves led-0 { 111*b98948b0SJoão Paulo Gonçalves color = <LED_COLOR_ID_BLUE>; 112*b98948b0SJoão Paulo Gonçalves default-state = "off"; 113*b98948b0SJoão Paulo Gonçalves function = LED_FUNCTION_STATUS; 114*b98948b0SJoão Paulo Gonçalves function-enumerator = <1>; 115*b98948b0SJoão Paulo Gonçalves gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; 116*b98948b0SJoão Paulo Gonçalves }; 117*b98948b0SJoão Paulo Gonçalves 118*b98948b0SJoão Paulo Gonçalves /* D7 Green - SODIMM 32 - LEDs.GPIO2 */ 119*b98948b0SJoão Paulo Gonçalves led-1 { 120*b98948b0SJoão Paulo Gonçalves color = <LED_COLOR_ID_GREEN>; 121*b98948b0SJoão Paulo Gonçalves default-state = "off"; 122*b98948b0SJoão Paulo Gonçalves function = LED_FUNCTION_STATUS; 123*b98948b0SJoão Paulo Gonçalves function-enumerator = <1>; 124*b98948b0SJoão Paulo Gonçalves gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; 125*b98948b0SJoão Paulo Gonçalves }; 126*b98948b0SJoão Paulo Gonçalves 127*b98948b0SJoão Paulo Gonçalves /* D7 Red - SODIMM 34 - LEDs.GPIO3 */ 128*b98948b0SJoão Paulo Gonçalves led-2 { 129*b98948b0SJoão Paulo Gonçalves color = <LED_COLOR_ID_RED>; 130*b98948b0SJoão Paulo Gonçalves default-state = "off"; 131*b98948b0SJoão Paulo Gonçalves function = LED_FUNCTION_STATUS; 132*b98948b0SJoão Paulo Gonçalves function-enumerator = <1>; 133*b98948b0SJoão Paulo Gonçalves gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 134*b98948b0SJoão Paulo Gonçalves }; 135*b98948b0SJoão Paulo Gonçalves 136*b98948b0SJoão Paulo Gonçalves /* D8 Blue - SODIMM 36 - LEDs.GPIO4 */ 137*b98948b0SJoão Paulo Gonçalves led-3 { 138*b98948b0SJoão Paulo Gonçalves color = <LED_COLOR_ID_BLUE>; 139*b98948b0SJoão Paulo Gonçalves default-state = "off"; 140*b98948b0SJoão Paulo Gonçalves function = LED_FUNCTION_STATUS; 141*b98948b0SJoão Paulo Gonçalves function-enumerator = <2>; 142*b98948b0SJoão Paulo Gonçalves gpios = <&gpio4 2 GPIO_ACTIVE_HIGH>; 143*b98948b0SJoão Paulo Gonçalves }; 144*b98948b0SJoão Paulo Gonçalves 145*b98948b0SJoão Paulo Gonçalves /* D8 Green - SODIMM 54 - LEDs.GPIO5 */ 146*b98948b0SJoão Paulo Gonçalves led-4 { 147*b98948b0SJoão Paulo Gonçalves color = <LED_COLOR_ID_GREEN>; 148*b98948b0SJoão Paulo Gonçalves default-state = "off"; 149*b98948b0SJoão Paulo Gonçalves function = LED_FUNCTION_STATUS; 150*b98948b0SJoão Paulo Gonçalves function-enumerator = <2>; 151*b98948b0SJoão Paulo Gonçalves gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; 152*b98948b0SJoão Paulo Gonçalves }; 153*b98948b0SJoão Paulo Gonçalves 154*b98948b0SJoão Paulo Gonçalves /* D8 Red - SODIMM 44 - LEDs.GPIO6 */ 155*b98948b0SJoão Paulo Gonçalves led-5 { 156*b98948b0SJoão Paulo Gonçalves color = <LED_COLOR_ID_RED>; 157*b98948b0SJoão Paulo Gonçalves default-state = "off"; 158*b98948b0SJoão Paulo Gonçalves function = LED_FUNCTION_STATUS; 159*b98948b0SJoão Paulo Gonçalves function-enumerator = <2>; 160*b98948b0SJoão Paulo Gonçalves gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>; 161*b98948b0SJoão Paulo Gonçalves }; 162*b98948b0SJoão Paulo Gonçalves 163*b98948b0SJoão Paulo Gonçalves /* D9 Blue - SODIMM 46 - LEDs.GPIO7 */ 164*b98948b0SJoão Paulo Gonçalves led-6 { 165*b98948b0SJoão Paulo Gonçalves color = <LED_COLOR_ID_BLUE>; 166*b98948b0SJoão Paulo Gonçalves default-state = "off"; 167*b98948b0SJoão Paulo Gonçalves function = LED_FUNCTION_STATUS; 168*b98948b0SJoão Paulo Gonçalves function-enumerator = <3>; 169*b98948b0SJoão Paulo Gonçalves gpios = <&gpio5 01 GPIO_ACTIVE_HIGH>; 170*b98948b0SJoão Paulo Gonçalves }; 171*b98948b0SJoão Paulo Gonçalves 172*b98948b0SJoão Paulo Gonçalves /* D9 Red - SODIMM 48 - LEDs.GPIO8 */ 173*b98948b0SJoão Paulo Gonçalves led-7 { 174*b98948b0SJoão Paulo Gonçalves color = <LED_COLOR_ID_RED>; 175*b98948b0SJoão Paulo Gonçalves default-state = "off"; 176*b98948b0SJoão Paulo Gonçalves function = LED_FUNCTION_STATUS; 177*b98948b0SJoão Paulo Gonçalves function-enumerator = <3>; 178*b98948b0SJoão Paulo Gonçalves gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>; 179*b98948b0SJoão Paulo Gonçalves }; 180*b98948b0SJoão Paulo Gonçalves }; 181*b98948b0SJoão Paulo Gonçalves 182*b98948b0SJoão Paulo Gonçalves reg_3v2_ain1: regulator-3v2-ain1 { 183*b98948b0SJoão Paulo Gonçalves compatible = "regulator-fixed"; 184*b98948b0SJoão Paulo Gonçalves regulator-max-microvolt = <3200000>; 185*b98948b0SJoão Paulo Gonçalves regulator-min-microvolt = <3200000>; 186*b98948b0SJoão Paulo Gonçalves regulator-name = "+3V2_AIN1"; 187*b98948b0SJoão Paulo Gonçalves }; 188*b98948b0SJoão Paulo Gonçalves 189*b98948b0SJoão Paulo Gonçalves reg_3v2_ain2: regulator-3v2-ain2 { 190*b98948b0SJoão Paulo Gonçalves compatible = "regulator-fixed"; 191*b98948b0SJoão Paulo Gonçalves regulator-max-microvolt = <3200000>; 192*b98948b0SJoão Paulo Gonçalves regulator-min-microvolt = <3200000>; 193*b98948b0SJoão Paulo Gonçalves regulator-name = "+3V2_AIN2"; 194*b98948b0SJoão Paulo Gonçalves }; 195*b98948b0SJoão Paulo Gonçalves 196*b98948b0SJoão Paulo Gonçalves /* Ivy Power Supply Input Voltage */ 197*b98948b0SJoão Paulo Gonçalves ivy-input-voltage { 198*b98948b0SJoão Paulo Gonçalves compatible = "voltage-divider"; 199*b98948b0SJoão Paulo Gonçalves /* Verdin ADC_1 */ 200*b98948b0SJoão Paulo Gonçalves io-channels = <&verdin_som_adc 7>; 201*b98948b0SJoão Paulo Gonçalves full-ohms = <204700>; /* 200k + 4.7k */ 202*b98948b0SJoão Paulo Gonçalves output-ohms = <4700>; 203*b98948b0SJoão Paulo Gonçalves }; 204*b98948b0SJoão Paulo Gonçalves 205*b98948b0SJoão Paulo Gonçalves ivy-5v-voltage { 206*b98948b0SJoão Paulo Gonçalves compatible = "voltage-divider"; 207*b98948b0SJoão Paulo Gonçalves /* Verdin ADC_2 */ 208*b98948b0SJoão Paulo Gonçalves io-channels = <&verdin_som_adc 6>; 209*b98948b0SJoão Paulo Gonçalves full-ohms = <39000>; /* 27k + 12k */ 210*b98948b0SJoão Paulo Gonçalves output-ohms = <12000>; 211*b98948b0SJoão Paulo Gonçalves }; 212*b98948b0SJoão Paulo Gonçalves 213*b98948b0SJoão Paulo Gonçalves ivy-3v3-voltage { 214*b98948b0SJoão Paulo Gonçalves compatible = "voltage-divider"; 215*b98948b0SJoão Paulo Gonçalves /* Verdin ADC_3 */ 216*b98948b0SJoão Paulo Gonçalves io-channels = <&verdin_som_adc 5>; 217*b98948b0SJoão Paulo Gonçalves full-ohms = <54000>; /* 27k + 27k */ 218*b98948b0SJoão Paulo Gonçalves output-ohms = <27000>; 219*b98948b0SJoão Paulo Gonçalves }; 220*b98948b0SJoão Paulo Gonçalves 221*b98948b0SJoão Paulo Gonçalves ivy-1v8-voltage { 222*b98948b0SJoão Paulo Gonçalves compatible = "voltage-divider"; 223*b98948b0SJoão Paulo Gonçalves /* Verdin ADC_4 */ 224*b98948b0SJoão Paulo Gonçalves io-channels = <&verdin_som_adc 4>; 225*b98948b0SJoão Paulo Gonçalves full-ohms = <39000>; /* 12k + 27k */ 226*b98948b0SJoão Paulo Gonçalves output-ohms = <27000>; 227*b98948b0SJoão Paulo Gonçalves }; 228*b98948b0SJoão Paulo Gonçalves}; 229*b98948b0SJoão Paulo Gonçalves 230*b98948b0SJoão Paulo Gonçalves/* Verdin SPI_1 */ 231*b98948b0SJoão Paulo Gonçalves&ecspi1 { 232*b98948b0SJoão Paulo Gonçalves pinctrl-0 = <&pinctrl_ecspi1>, 233*b98948b0SJoão Paulo Gonçalves <&pinctrl_gpio1>, 234*b98948b0SJoão Paulo Gonçalves <&pinctrl_gpio4>; 235*b98948b0SJoão Paulo Gonçalves cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>, 236*b98948b0SJoão Paulo Gonçalves <&gpio1 0 GPIO_ACTIVE_LOW>, 237*b98948b0SJoão Paulo Gonçalves <&gpio1 6 GPIO_ACTIVE_LOW>; 238*b98948b0SJoão Paulo Gonçalves status = "okay"; 239*b98948b0SJoão Paulo Gonçalves 240*b98948b0SJoão Paulo Gonçalves tpm@1 { 241*b98948b0SJoão Paulo Gonçalves compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; 242*b98948b0SJoão Paulo Gonçalves reg = <1>; 243*b98948b0SJoão Paulo Gonçalves spi-max-frequency = <18500000>; 244*b98948b0SJoão Paulo Gonçalves }; 245*b98948b0SJoão Paulo Gonçalves 246*b98948b0SJoão Paulo Gonçalves fram@2 { 247*b98948b0SJoão Paulo Gonçalves compatible = "fujitsu,mb85rs256", "atmel,at25"; 248*b98948b0SJoão Paulo Gonçalves reg = <2>; 249*b98948b0SJoão Paulo Gonçalves address-width = <16>; 250*b98948b0SJoão Paulo Gonçalves size = <32768>; 251*b98948b0SJoão Paulo Gonçalves spi-max-frequency = <33000000>; 252*b98948b0SJoão Paulo Gonçalves pagesize = <1>; 253*b98948b0SJoão Paulo Gonçalves }; 254*b98948b0SJoão Paulo Gonçalves}; 255*b98948b0SJoão Paulo Gonçalves 256*b98948b0SJoão Paulo Gonçalves/* EEPROM on Ivy */ 257*b98948b0SJoão Paulo Gonçalves&eeprom_carrier_board { 258*b98948b0SJoão Paulo Gonçalves status = "okay"; 259*b98948b0SJoão Paulo Gonçalves}; 260*b98948b0SJoão Paulo Gonçalves 261*b98948b0SJoão Paulo Gonçalves/* Verdin ETH_1 */ 262*b98948b0SJoão Paulo Gonçalves&eqos { 263*b98948b0SJoão Paulo Gonçalves status = "okay"; 264*b98948b0SJoão Paulo Gonçalves}; 265*b98948b0SJoão Paulo Gonçalves 266*b98948b0SJoão Paulo Gonçalves/* Verdin ETH_2 */ 267*b98948b0SJoão Paulo Gonçalves&fec { 268*b98948b0SJoão Paulo Gonçalves phy-handle = <ðphy2>; 269*b98948b0SJoão Paulo Gonçalves phy-mode = "rgmii-id"; 270*b98948b0SJoão Paulo Gonçalves status = "okay"; 271*b98948b0SJoão Paulo Gonçalves}; 272*b98948b0SJoão Paulo Gonçalves 273*b98948b0SJoão Paulo Gonçalves&verdin_eth2_mdio { 274*b98948b0SJoão Paulo Gonçalves ethphy2: ethernet-phy@2 { 275*b98948b0SJoão Paulo Gonçalves reg = <2>; 276*b98948b0SJoão Paulo Gonçalves interrupt-parent = <&gpio4>; 277*b98948b0SJoão Paulo Gonçalves interrupts = <18 IRQ_TYPE_LEVEL_LOW>; 278*b98948b0SJoão Paulo Gonçalves ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 279*b98948b0SJoão Paulo Gonçalves ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 280*b98948b0SJoão Paulo Gonçalves }; 281*b98948b0SJoão Paulo Gonçalves}; 282*b98948b0SJoão Paulo Gonçalves 283*b98948b0SJoão Paulo Gonçalves/* Verdin CAN_1 */ 284*b98948b0SJoão Paulo Gonçalves&flexcan1 { 285*b98948b0SJoão Paulo Gonçalves status = "okay"; 286*b98948b0SJoão Paulo Gonçalves}; 287*b98948b0SJoão Paulo Gonçalves 288*b98948b0SJoão Paulo Gonçalves/* Verdin CAN_2 */ 289*b98948b0SJoão Paulo Gonçalves&flexcan2 { 290*b98948b0SJoão Paulo Gonçalves status = "okay"; 291*b98948b0SJoão Paulo Gonçalves}; 292*b98948b0SJoão Paulo Gonçalves 293*b98948b0SJoão Paulo Gonçalves&gpio1 { 294*b98948b0SJoão Paulo Gonçalves gpio-line-names = 295*b98948b0SJoão Paulo Gonçalves "", /* 0 */ 296*b98948b0SJoão Paulo Gonçalves "GPIO2", /* Verdin GPIO_2 - SODIMM 208 */ 297*b98948b0SJoão Paulo Gonçalves "", 298*b98948b0SJoão Paulo Gonçalves "", 299*b98948b0SJoão Paulo Gonçalves "", 300*b98948b0SJoão Paulo Gonçalves "GPIO3", /* Verdin GPIO_3 - SODIMM 210 */ 301*b98948b0SJoão Paulo Gonçalves "", 302*b98948b0SJoão Paulo Gonçalves "", 303*b98948b0SJoão Paulo Gonçalves "", 304*b98948b0SJoão Paulo Gonçalves "", 305*b98948b0SJoão Paulo Gonçalves "", 306*b98948b0SJoão Paulo Gonçalves "", /* 10 */ 307*b98948b0SJoão Paulo Gonçalves "", 308*b98948b0SJoão Paulo Gonçalves "", 309*b98948b0SJoão Paulo Gonçalves "", 310*b98948b0SJoão Paulo Gonçalves "", 311*b98948b0SJoão Paulo Gonçalves "", 312*b98948b0SJoão Paulo Gonçalves "", 313*b98948b0SJoão Paulo Gonçalves "", 314*b98948b0SJoão Paulo Gonçalves "", 315*b98948b0SJoão Paulo Gonçalves "", 316*b98948b0SJoão Paulo Gonçalves "", /* 20 */ 317*b98948b0SJoão Paulo Gonçalves "", 318*b98948b0SJoão Paulo Gonçalves "", 319*b98948b0SJoão Paulo Gonçalves "", 320*b98948b0SJoão Paulo Gonçalves "", 321*b98948b0SJoão Paulo Gonçalves "", 322*b98948b0SJoão Paulo Gonçalves "", 323*b98948b0SJoão Paulo Gonçalves "", 324*b98948b0SJoão Paulo Gonçalves "", 325*b98948b0SJoão Paulo Gonçalves ""; 326*b98948b0SJoão Paulo Gonçalves}; 327*b98948b0SJoão Paulo Gonçalves 328*b98948b0SJoão Paulo Gonçalves&gpio3 { 329*b98948b0SJoão Paulo Gonçalves gpio-line-names = 330*b98948b0SJoão Paulo Gonçalves "", /* 0 */ 331*b98948b0SJoão Paulo Gonçalves "", 332*b98948b0SJoão Paulo Gonçalves "", 333*b98948b0SJoão Paulo Gonçalves "", 334*b98948b0SJoão Paulo Gonçalves "", 335*b98948b0SJoão Paulo Gonçalves "", 336*b98948b0SJoão Paulo Gonçalves "DIG_1", /* SODIMM 56 */ 337*b98948b0SJoão Paulo Gonçalves "DIG_2", /* SODIMM 58 */ 338*b98948b0SJoão Paulo Gonçalves "REL1", /* SODIMM 60 */ 339*b98948b0SJoão Paulo Gonçalves "REL2", /* SODIMM 62 */ 340*b98948b0SJoão Paulo Gonçalves "", /* 10 */ 341*b98948b0SJoão Paulo Gonçalves "", 342*b98948b0SJoão Paulo Gonçalves "", 343*b98948b0SJoão Paulo Gonçalves "", 344*b98948b0SJoão Paulo Gonçalves "REL4", /* SODIMM 66 */ 345*b98948b0SJoão Paulo Gonçalves "", 346*b98948b0SJoão Paulo Gonçalves "REL3", /* SODIMM 64 */ 347*b98948b0SJoão Paulo Gonçalves "", 348*b98948b0SJoão Paulo Gonçalves "", 349*b98948b0SJoão Paulo Gonçalves "", 350*b98948b0SJoão Paulo Gonçalves "", /* 20 */ 351*b98948b0SJoão Paulo Gonçalves "", 352*b98948b0SJoão Paulo Gonçalves "", 353*b98948b0SJoão Paulo Gonçalves "", 354*b98948b0SJoão Paulo Gonçalves "", 355*b98948b0SJoão Paulo Gonçalves "", 356*b98948b0SJoão Paulo Gonçalves "", 357*b98948b0SJoão Paulo Gonçalves "", 358*b98948b0SJoão Paulo Gonçalves "", 359*b98948b0SJoão Paulo Gonçalves ""; 360*b98948b0SJoão Paulo Gonçalves}; 361*b98948b0SJoão Paulo Gonçalves 362*b98948b0SJoão Paulo Gonçalves/* Temperature sensor on Ivy */ 363*b98948b0SJoão Paulo Gonçalves&hwmon_temp { 364*b98948b0SJoão Paulo Gonçalves compatible = "ti,tmp1075"; 365*b98948b0SJoão Paulo Gonçalves status = "okay"; 366*b98948b0SJoão Paulo Gonçalves}; 367*b98948b0SJoão Paulo Gonçalves 368*b98948b0SJoão Paulo Gonçalves/* Verdin I2C_4 CSI */ 369*b98948b0SJoão Paulo Gonçalves&i2c3 { 370*b98948b0SJoão Paulo Gonçalves status = "okay"; 371*b98948b0SJoão Paulo Gonçalves 372*b98948b0SJoão Paulo Gonçalves ivy_adc1: adc@40 { 373*b98948b0SJoão Paulo Gonçalves compatible = "ti,ads1119"; 374*b98948b0SJoão Paulo Gonçalves reg = <0x40>; 375*b98948b0SJoão Paulo Gonçalves pinctrl-names = "default"; 376*b98948b0SJoão Paulo Gonçalves pinctrl-0 = <&pinctrl_gpio7>; 377*b98948b0SJoão Paulo Gonçalves interrupt-parent = <&gpio4>; 378*b98948b0SJoão Paulo Gonçalves interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 379*b98948b0SJoão Paulo Gonçalves avdd-supply = <®_3v2_ain1>; 380*b98948b0SJoão Paulo Gonçalves dvdd-supply = <®_3v2_ain1>; 381*b98948b0SJoão Paulo Gonçalves vref-supply = <®_3v2_ain1>; 382*b98948b0SJoão Paulo Gonçalves #address-cells = <1>; 383*b98948b0SJoão Paulo Gonçalves #io-channel-cells = <1>; 384*b98948b0SJoão Paulo Gonçalves #size-cells = <0>; 385*b98948b0SJoão Paulo Gonçalves 386*b98948b0SJoão Paulo Gonçalves /* AIN1 0-33V Voltage Input */ 387*b98948b0SJoão Paulo Gonçalves channel@0 { 388*b98948b0SJoão Paulo Gonçalves reg = <0>; 389*b98948b0SJoão Paulo Gonçalves diff-channels = <0 1>; 390*b98948b0SJoão Paulo Gonçalves }; 391*b98948b0SJoão Paulo Gonçalves 392*b98948b0SJoão Paulo Gonçalves /* AIN1 0-20mA Current Input */ 393*b98948b0SJoão Paulo Gonçalves channel@1 { 394*b98948b0SJoão Paulo Gonçalves reg = <1>; 395*b98948b0SJoão Paulo Gonçalves diff-channels = <2 3>; 396*b98948b0SJoão Paulo Gonçalves }; 397*b98948b0SJoão Paulo Gonçalves }; 398*b98948b0SJoão Paulo Gonçalves 399*b98948b0SJoão Paulo Gonçalves ivy_adc2: adc@41 { 400*b98948b0SJoão Paulo Gonçalves compatible = "ti,ads1119"; 401*b98948b0SJoão Paulo Gonçalves reg = <0x41>; 402*b98948b0SJoão Paulo Gonçalves pinctrl-names = "default"; 403*b98948b0SJoão Paulo Gonçalves pinctrl-0 = <&pinctrl_gpio8>; 404*b98948b0SJoão Paulo Gonçalves interrupt-parent = <&gpio4>; 405*b98948b0SJoão Paulo Gonçalves interrupts = <1 IRQ_TYPE_EDGE_FALLING>; 406*b98948b0SJoão Paulo Gonçalves avdd-supply = <®_3v2_ain2>; 407*b98948b0SJoão Paulo Gonçalves dvdd-supply = <®_3v2_ain2>; 408*b98948b0SJoão Paulo Gonçalves vref-supply = <®_3v2_ain2>; 409*b98948b0SJoão Paulo Gonçalves #address-cells = <1>; 410*b98948b0SJoão Paulo Gonçalves #io-channel-cells = <1>; 411*b98948b0SJoão Paulo Gonçalves #size-cells = <0>; 412*b98948b0SJoão Paulo Gonçalves 413*b98948b0SJoão Paulo Gonçalves /* AIN2 0-33V Voltage Input */ 414*b98948b0SJoão Paulo Gonçalves channel@0 { 415*b98948b0SJoão Paulo Gonçalves reg = <0>; 416*b98948b0SJoão Paulo Gonçalves diff-channels = <0 1>; 417*b98948b0SJoão Paulo Gonçalves }; 418*b98948b0SJoão Paulo Gonçalves 419*b98948b0SJoão Paulo Gonçalves /* AIN2 0-20mA Current Input */ 420*b98948b0SJoão Paulo Gonçalves channel@1 { 421*b98948b0SJoão Paulo Gonçalves reg = <1>; 422*b98948b0SJoão Paulo Gonçalves diff-channels = <2 3>; 423*b98948b0SJoão Paulo Gonçalves }; 424*b98948b0SJoão Paulo Gonçalves }; 425*b98948b0SJoão Paulo Gonçalves}; 426*b98948b0SJoão Paulo Gonçalves 427*b98948b0SJoão Paulo Gonçalves/* Verdin I2C_1 */ 428*b98948b0SJoão Paulo Gonçalves&i2c4 { 429*b98948b0SJoão Paulo Gonçalves status = "okay"; 430*b98948b0SJoão Paulo Gonçalves}; 431*b98948b0SJoão Paulo Gonçalves 432*b98948b0SJoão Paulo Gonçalves/* Verdin PCIE_1 */ 433*b98948b0SJoão Paulo Gonçalves&pcie { 434*b98948b0SJoão Paulo Gonçalves status = "okay"; 435*b98948b0SJoão Paulo Gonçalves}; 436*b98948b0SJoão Paulo Gonçalves 437*b98948b0SJoão Paulo Gonçalves&pcie_phy { 438*b98948b0SJoão Paulo Gonçalves status = "okay"; 439*b98948b0SJoão Paulo Gonçalves}; 440*b98948b0SJoão Paulo Gonçalves 441*b98948b0SJoão Paulo Gonçalves/* Verdin UART_1 */ 442*b98948b0SJoão Paulo Gonçalves&uart1 { 443*b98948b0SJoão Paulo Gonçalves status = "okay"; 444*b98948b0SJoão Paulo Gonçalves}; 445*b98948b0SJoão Paulo Gonçalves 446*b98948b0SJoão Paulo Gonçalves/* Verdin UART_2 */ 447*b98948b0SJoão Paulo Gonçalves&uart2 { 448*b98948b0SJoão Paulo Gonçalves linux,rs485-enabled-at-boot-time; 449*b98948b0SJoão Paulo Gonçalves rs485-rx-during-tx; 450*b98948b0SJoão Paulo Gonçalves status = "okay"; 451*b98948b0SJoão Paulo Gonçalves}; 452*b98948b0SJoão Paulo Gonçalves 453*b98948b0SJoão Paulo Gonçalves/* Verdin UART_3 */ 454*b98948b0SJoão Paulo Gonçalves&uart3 { 455*b98948b0SJoão Paulo Gonçalves status = "okay"; 456*b98948b0SJoão Paulo Gonçalves}; 457*b98948b0SJoão Paulo Gonçalves 458*b98948b0SJoão Paulo Gonçalves/* Verdin USB_1 */ 459*b98948b0SJoão Paulo Gonçalves&usb3_0 { 460*b98948b0SJoão Paulo Gonçalves status = "okay"; 461*b98948b0SJoão Paulo Gonçalves}; 462*b98948b0SJoão Paulo Gonçalves 463*b98948b0SJoão Paulo Gonçalves&usb3_phy0 { 464*b98948b0SJoão Paulo Gonçalves status = "okay"; 465*b98948b0SJoão Paulo Gonçalves}; 466*b98948b0SJoão Paulo Gonçalves 467*b98948b0SJoão Paulo Gonçalves/* Verdin USB_2 */ 468*b98948b0SJoão Paulo Gonçalves&usb3_1 { 469*b98948b0SJoão Paulo Gonçalves status = "okay"; 470*b98948b0SJoão Paulo Gonçalves}; 471*b98948b0SJoão Paulo Gonçalves 472*b98948b0SJoão Paulo Gonçalves&usb3_phy1 { 473*b98948b0SJoão Paulo Gonçalves status = "okay"; 474*b98948b0SJoão Paulo Gonçalves}; 475*b98948b0SJoão Paulo Gonçalves 476*b98948b0SJoão Paulo Gonçalves/* Verdin SD_1 */ 477*b98948b0SJoão Paulo Gonçalves&usdhc2 { 478*b98948b0SJoão Paulo Gonçalves status = "okay"; 479*b98948b0SJoão Paulo Gonçalves}; 480*b98948b0SJoão Paulo Gonçalves 481*b98948b0SJoão Paulo Gonçalves&iomuxc { 482*b98948b0SJoão Paulo Gonçalves 483*b98948b0SJoão Paulo Gonçalves pinctrl-names = "default"; 484*b98948b0SJoão Paulo Gonçalves pinctrl-0 = <&pinctrl_gpio2>, <&pinctrl_gpio3>, 485*b98948b0SJoão Paulo Gonçalves <&pinctrl_ivy_dig_inputs>, <&pinctrl_ivy_relays>; 486*b98948b0SJoão Paulo Gonçalves 487*b98948b0SJoão Paulo Gonçalves pinctrl_ivy_dig_inputs: ivydiginputsgrp { 488*b98948b0SJoão Paulo Gonçalves fsl,pins = 489*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x96>, /* SODIMM 56 */ 490*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07 0x96>; /* SODIMM 58 */ 491*b98948b0SJoão Paulo Gonçalves }; 492*b98948b0SJoão Paulo Gonçalves 493*b98948b0SJoão Paulo Gonçalves pinctrl_ivy_leds: ivyledsgrp { 494*b98948b0SJoão Paulo Gonçalves fsl,pins = 495*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_SAI5_MCLK__GPIO3_IO25 0x16>, /* SODIMM 30 */ 496*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22 0x16>, /* SODIMM 32 */ 497*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x16>, /* SODIMM 34 */ 498*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x16>, /* SODIMM 36 */ 499*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x16>, /* SODIMM 44 */ 500*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x16>, /* SODIMM 46 */ 501*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30 0x16>, /* SODIMM 48 */ 502*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01 0x16>; /* SODIMM 54 */ 503*b98948b0SJoão Paulo Gonçalves }; 504*b98948b0SJoão Paulo Gonçalves 505*b98948b0SJoão Paulo Gonçalves pinctrl_ivy_relays: ivyrelaysgrp { 506*b98948b0SJoão Paulo Gonçalves fsl,pins = 507*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08 0x16>, /* SODIMM 60 */ 508*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09 0x16>, /* SODIMM 62 */ 509*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16 0x16>, /* SODIMM 64 */ 510*b98948b0SJoão Paulo Gonçalves <MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x16>; /* SODIMM 66 */ 511*b98948b0SJoão Paulo Gonçalves }; 512*b98948b0SJoão Paulo Gonçalves}; 513