1*36ca3c8cSAdam Ford// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*36ca3c8cSAdam Ford/* 3*36ca3c8cSAdam Ford * Copyright 2020 Compass Electronics Group, LLC 4*36ca3c8cSAdam Ford */ 5*36ca3c8cSAdam Ford 6*36ca3c8cSAdam Ford/ { 7*36ca3c8cSAdam Ford leds { 8*36ca3c8cSAdam Ford compatible = "gpio-leds"; 9*36ca3c8cSAdam Ford 10*36ca3c8cSAdam Ford led-0 { 11*36ca3c8cSAdam Ford label = "gen_led0"; 12*36ca3c8cSAdam Ford gpios = <&pca6416_1 4 GPIO_ACTIVE_HIGH>; 13*36ca3c8cSAdam Ford default-state = "off"; 14*36ca3c8cSAdam Ford }; 15*36ca3c8cSAdam Ford 16*36ca3c8cSAdam Ford led-1 { 17*36ca3c8cSAdam Ford label = "gen_led1"; 18*36ca3c8cSAdam Ford gpios = <&pca6416_1 5 GPIO_ACTIVE_HIGH>; 19*36ca3c8cSAdam Ford default-state = "off"; 20*36ca3c8cSAdam Ford }; 21*36ca3c8cSAdam Ford 22*36ca3c8cSAdam Ford led-2 { 23*36ca3c8cSAdam Ford label = "gen_led2"; 24*36ca3c8cSAdam Ford gpios = <&pca6416_1 6 GPIO_ACTIVE_HIGH>; 25*36ca3c8cSAdam Ford default-state = "off"; 26*36ca3c8cSAdam Ford }; 27*36ca3c8cSAdam Ford 28*36ca3c8cSAdam Ford led-3 { 29*36ca3c8cSAdam Ford pinctrl-names = "default"; 30*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_led3>; 31*36ca3c8cSAdam Ford label = "heartbeat"; 32*36ca3c8cSAdam Ford gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; 33*36ca3c8cSAdam Ford linux,default-trigger = "heartbeat"; 34*36ca3c8cSAdam Ford }; 35*36ca3c8cSAdam Ford }; 36*36ca3c8cSAdam Ford 37*36ca3c8cSAdam Ford reg_audio: regulator-audio { 38*36ca3c8cSAdam Ford compatible = "regulator-fixed"; 39*36ca3c8cSAdam Ford regulator-name = "3v3_aud"; 40*36ca3c8cSAdam Ford regulator-min-microvolt = <3300000>; 41*36ca3c8cSAdam Ford regulator-max-microvolt = <3300000>; 42*36ca3c8cSAdam Ford gpio = <&pca6416_1 11 GPIO_ACTIVE_HIGH>; 43*36ca3c8cSAdam Ford enable-active-high; 44*36ca3c8cSAdam Ford }; 45*36ca3c8cSAdam Ford 46*36ca3c8cSAdam Ford reg_usdhc2_vmmc: regulator-usdhc2 { 47*36ca3c8cSAdam Ford compatible = "regulator-fixed"; 48*36ca3c8cSAdam Ford regulator-name = "vsd_3v3"; 49*36ca3c8cSAdam Ford regulator-min-microvolt = <3300000>; 50*36ca3c8cSAdam Ford regulator-max-microvolt = <3300000>; 51*36ca3c8cSAdam Ford gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; 52*36ca3c8cSAdam Ford enable-active-high; 53*36ca3c8cSAdam Ford }; 54*36ca3c8cSAdam Ford 55*36ca3c8cSAdam Ford reg_usb_otg_vbus: regulator-usb { 56*36ca3c8cSAdam Ford compatible = "regulator-fixed"; 57*36ca3c8cSAdam Ford pinctrl-names = "default"; 58*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_reg_usb_otg>; 59*36ca3c8cSAdam Ford regulator-name = "usb_otg_vbus"; 60*36ca3c8cSAdam Ford regulator-min-microvolt = <5000000>; 61*36ca3c8cSAdam Ford regulator-max-microvolt = <5000000>; 62*36ca3c8cSAdam Ford gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; 63*36ca3c8cSAdam Ford enable-active-high; 64*36ca3c8cSAdam Ford }; 65*36ca3c8cSAdam Ford 66*36ca3c8cSAdam Ford sound { 67*36ca3c8cSAdam Ford compatible = "fsl,imx-audio-wm8962"; 68*36ca3c8cSAdam Ford model = "wm8962-audio"; 69*36ca3c8cSAdam Ford audio-cpu = <&sai3>; 70*36ca3c8cSAdam Ford audio-codec = <&wm8962>; 71*36ca3c8cSAdam Ford audio-routing = 72*36ca3c8cSAdam Ford "Headphone Jack", "HPOUTL", 73*36ca3c8cSAdam Ford "Headphone Jack", "HPOUTR", 74*36ca3c8cSAdam Ford "Ext Spk", "SPKOUTL", 75*36ca3c8cSAdam Ford "Ext Spk", "SPKOUTR", 76*36ca3c8cSAdam Ford "AMIC", "MICBIAS", 77*36ca3c8cSAdam Ford "IN3R", "AMIC"; 78*36ca3c8cSAdam Ford }; 79*36ca3c8cSAdam Ford}; 80*36ca3c8cSAdam Ford 81*36ca3c8cSAdam Ford&ecspi2 { 82*36ca3c8cSAdam Ford pinctrl-names = "default"; 83*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_espi2>; 84*36ca3c8cSAdam Ford cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; 85*36ca3c8cSAdam Ford status = "okay"; 86*36ca3c8cSAdam Ford 87*36ca3c8cSAdam Ford eeprom@0 { 88*36ca3c8cSAdam Ford compatible = "microchip,at25160bn", "atmel,at25"; 89*36ca3c8cSAdam Ford reg = <0>; 90*36ca3c8cSAdam Ford spi-max-frequency = <5000000>; 91*36ca3c8cSAdam Ford spi-cpha; 92*36ca3c8cSAdam Ford spi-cpol; 93*36ca3c8cSAdam Ford pagesize = <32>; 94*36ca3c8cSAdam Ford size = <2048>; 95*36ca3c8cSAdam Ford address-width = <16>; 96*36ca3c8cSAdam Ford }; 97*36ca3c8cSAdam Ford}; 98*36ca3c8cSAdam Ford 99*36ca3c8cSAdam Ford&i2c4 { 100*36ca3c8cSAdam Ford clock-frequency = <400000>; 101*36ca3c8cSAdam Ford pinctrl-names = "default"; 102*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_i2c4>; 103*36ca3c8cSAdam Ford status = "okay"; 104*36ca3c8cSAdam Ford 105*36ca3c8cSAdam Ford pca6416_0: gpio@20 { 106*36ca3c8cSAdam Ford compatible = "nxp,pcal6416"; 107*36ca3c8cSAdam Ford reg = <0x20>; 108*36ca3c8cSAdam Ford pinctrl-names = "default"; 109*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_pcal6414>; 110*36ca3c8cSAdam Ford gpio-controller; 111*36ca3c8cSAdam Ford #gpio-cells = <2>; 112*36ca3c8cSAdam Ford interrupt-parent = <&gpio4>; 113*36ca3c8cSAdam Ford interrupts = <27 IRQ_TYPE_LEVEL_LOW>; 114*36ca3c8cSAdam Ford }; 115*36ca3c8cSAdam Ford 116*36ca3c8cSAdam Ford pca6416_1: gpio@21 { 117*36ca3c8cSAdam Ford compatible = "nxp,pcal6416"; 118*36ca3c8cSAdam Ford reg = <0x21>; 119*36ca3c8cSAdam Ford gpio-controller; 120*36ca3c8cSAdam Ford #gpio-cells = <2>; 121*36ca3c8cSAdam Ford interrupt-parent = <&gpio4>; 122*36ca3c8cSAdam Ford interrupts = <27 IRQ_TYPE_LEVEL_LOW>; 123*36ca3c8cSAdam Ford }; 124*36ca3c8cSAdam Ford 125*36ca3c8cSAdam Ford wm8962: audio-codec@1a { 126*36ca3c8cSAdam Ford compatible = "wlf,wm8962"; 127*36ca3c8cSAdam Ford reg = <0x1a>; 128*36ca3c8cSAdam Ford clocks = <&clk IMX8MN_CLK_SAI3_ROOT>; 129*36ca3c8cSAdam Ford clock-names = "xclk"; 130*36ca3c8cSAdam Ford DCVDD-supply = <®_audio>; 131*36ca3c8cSAdam Ford DBVDD-supply = <®_audio>; 132*36ca3c8cSAdam Ford AVDD-supply = <®_audio>; 133*36ca3c8cSAdam Ford CPVDD-supply = <®_audio>; 134*36ca3c8cSAdam Ford MICVDD-supply = <®_audio>; 135*36ca3c8cSAdam Ford PLLVDD-supply = <®_audio>; 136*36ca3c8cSAdam Ford SPKVDD1-supply = <®_audio>; 137*36ca3c8cSAdam Ford SPKVDD2-supply = <®_audio>; 138*36ca3c8cSAdam Ford gpio-cfg = < 139*36ca3c8cSAdam Ford 0x0000 /* 0:Default */ 140*36ca3c8cSAdam Ford 0x0000 /* 1:Default */ 141*36ca3c8cSAdam Ford 0x0000 /* 2:FN_DMICCLK */ 142*36ca3c8cSAdam Ford 0x0000 /* 3:Default */ 143*36ca3c8cSAdam Ford 0x0000 /* 4:FN_DMICCDAT */ 144*36ca3c8cSAdam Ford 0x0000 /* 5:Default */ 145*36ca3c8cSAdam Ford >; 146*36ca3c8cSAdam Ford }; 147*36ca3c8cSAdam Ford}; 148*36ca3c8cSAdam Ford 149*36ca3c8cSAdam Ford&easrc { 150*36ca3c8cSAdam Ford fsl,asrc-rate = <48000>; 151*36ca3c8cSAdam Ford status = "okay"; 152*36ca3c8cSAdam Ford}; 153*36ca3c8cSAdam Ford 154*36ca3c8cSAdam Ford&sai3 { 155*36ca3c8cSAdam Ford pinctrl-names = "default"; 156*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_sai3>; 157*36ca3c8cSAdam Ford assigned-clocks = <&clk IMX8MN_CLK_SAI3>; 158*36ca3c8cSAdam Ford assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>; 159*36ca3c8cSAdam Ford assigned-clock-rates = <24576000>; 160*36ca3c8cSAdam Ford fsl,sai-mclk-direction-output; 161*36ca3c8cSAdam Ford status = "okay"; 162*36ca3c8cSAdam Ford}; 163*36ca3c8cSAdam Ford 164*36ca3c8cSAdam Ford&snvs_pwrkey { 165*36ca3c8cSAdam Ford status = "okay"; 166*36ca3c8cSAdam Ford}; 167*36ca3c8cSAdam Ford 168*36ca3c8cSAdam Ford&uart2 { /* console */ 169*36ca3c8cSAdam Ford pinctrl-names = "default"; 170*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_uart2>; 171*36ca3c8cSAdam Ford status = "okay"; 172*36ca3c8cSAdam Ford}; 173*36ca3c8cSAdam Ford 174*36ca3c8cSAdam Ford&uart3 { 175*36ca3c8cSAdam Ford pinctrl-names = "default"; 176*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_uart3>; 177*36ca3c8cSAdam Ford assigned-clocks = <&clk IMX8MN_CLK_UART3>; 178*36ca3c8cSAdam Ford assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_80M>; 179*36ca3c8cSAdam Ford status = "okay"; 180*36ca3c8cSAdam Ford}; 181*36ca3c8cSAdam Ford 182*36ca3c8cSAdam Ford&usbotg1 { 183*36ca3c8cSAdam Ford vbus-supply = <®_usb_otg_vbus>; 184*36ca3c8cSAdam Ford disable-over-current; 185*36ca3c8cSAdam Ford dr_mode="otg"; 186*36ca3c8cSAdam Ford status = "okay"; 187*36ca3c8cSAdam Ford}; 188*36ca3c8cSAdam Ford 189*36ca3c8cSAdam Ford&usdhc2 { 190*36ca3c8cSAdam Ford pinctrl-names = "default", "state_100mhz", "state_200mhz"; 191*36ca3c8cSAdam Ford pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; 192*36ca3c8cSAdam Ford pinctrl-1 = <&pinctrl_usdhc2_100mhz>; 193*36ca3c8cSAdam Ford pinctrl-2 = <&pinctrl_usdhc2_200mhz>; 194*36ca3c8cSAdam Ford bus-width = <4>; 195*36ca3c8cSAdam Ford vmmc-supply = <®_usdhc2_vmmc>; 196*36ca3c8cSAdam Ford status = "okay"; 197*36ca3c8cSAdam Ford}; 198*36ca3c8cSAdam Ford 199*36ca3c8cSAdam Ford&iomuxc { 200*36ca3c8cSAdam Ford pinctrl_espi2: espi2grp { 201*36ca3c8cSAdam Ford fsl,pins = < 202*36ca3c8cSAdam Ford MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x82 203*36ca3c8cSAdam Ford MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82 204*36ca3c8cSAdam Ford MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82 205*36ca3c8cSAdam Ford MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x41 206*36ca3c8cSAdam Ford >; 207*36ca3c8cSAdam Ford }; 208*36ca3c8cSAdam Ford 209*36ca3c8cSAdam Ford pinctrl_i2c2: i2c2grp { 210*36ca3c8cSAdam Ford fsl,pins = < 211*36ca3c8cSAdam Ford MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c3 212*36ca3c8cSAdam Ford MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c3 213*36ca3c8cSAdam Ford >; 214*36ca3c8cSAdam Ford }; 215*36ca3c8cSAdam Ford 216*36ca3c8cSAdam Ford pinctrl_i2c4: i2c4grp { 217*36ca3c8cSAdam Ford fsl,pins = < 218*36ca3c8cSAdam Ford MX8MN_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3 219*36ca3c8cSAdam Ford MX8MN_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3 220*36ca3c8cSAdam Ford >; 221*36ca3c8cSAdam Ford }; 222*36ca3c8cSAdam Ford 223*36ca3c8cSAdam Ford pinctrl_led3: led3grp { 224*36ca3c8cSAdam Ford fsl,pins = < 225*36ca3c8cSAdam Ford MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28 0x41 226*36ca3c8cSAdam Ford >; 227*36ca3c8cSAdam Ford }; 228*36ca3c8cSAdam Ford 229*36ca3c8cSAdam Ford pinctrl_pcal6414: pcal6414-gpiogrp { 230*36ca3c8cSAdam Ford fsl,pins = < 231*36ca3c8cSAdam Ford MX8MN_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x19 232*36ca3c8cSAdam Ford >; 233*36ca3c8cSAdam Ford }; 234*36ca3c8cSAdam Ford 235*36ca3c8cSAdam Ford pinctrl_reg_usb_otg: reg-otggrp { 236*36ca3c8cSAdam Ford fsl,pins = < 237*36ca3c8cSAdam Ford MX8MN_IOMUXC_SAI3_RXC_GPIO4_IO29 0x19 238*36ca3c8cSAdam Ford >; 239*36ca3c8cSAdam Ford }; 240*36ca3c8cSAdam Ford 241*36ca3c8cSAdam Ford pinctrl_sai3: sai3grp { 242*36ca3c8cSAdam Ford fsl,pins = < 243*36ca3c8cSAdam Ford MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6 244*36ca3c8cSAdam Ford MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0xd6 245*36ca3c8cSAdam Ford MX8MN_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6 246*36ca3c8cSAdam Ford MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6 247*36ca3c8cSAdam Ford MX8MN_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 0xd6 248*36ca3c8cSAdam Ford >; 249*36ca3c8cSAdam Ford }; 250*36ca3c8cSAdam Ford 251*36ca3c8cSAdam Ford pinctrl_uart2: uart2grp { 252*36ca3c8cSAdam Ford fsl,pins = < 253*36ca3c8cSAdam Ford MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140 254*36ca3c8cSAdam Ford MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140 255*36ca3c8cSAdam Ford >; 256*36ca3c8cSAdam Ford }; 257*36ca3c8cSAdam Ford 258*36ca3c8cSAdam Ford pinctrl_uart3: uart3grp { 259*36ca3c8cSAdam Ford fsl,pins = < 260*36ca3c8cSAdam Ford MX8MN_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX 0x40 261*36ca3c8cSAdam Ford MX8MN_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX 0x40 262*36ca3c8cSAdam Ford >; 263*36ca3c8cSAdam Ford }; 264*36ca3c8cSAdam Ford 265*36ca3c8cSAdam Ford pinctrl_usdhc2_gpio: usdhc2gpiogrp { 266*36ca3c8cSAdam Ford fsl,pins = < 267*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x41 268*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 269*36ca3c8cSAdam Ford >; 270*36ca3c8cSAdam Ford }; 271*36ca3c8cSAdam Ford 272*36ca3c8cSAdam Ford pinctrl_usdhc2: usdhc2grp { 273*36ca3c8cSAdam Ford fsl,pins = < 274*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK 0x190 275*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0 276*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0 277*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 278*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 279*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 280*36ca3c8cSAdam Ford MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 281*36ca3c8cSAdam Ford >; 282*36ca3c8cSAdam Ford }; 283*36ca3c8cSAdam Ford 284*36ca3c8cSAdam Ford pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { 285*36ca3c8cSAdam Ford fsl,pins = < 286*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 287*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 288*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 289*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 290*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 291*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 292*36ca3c8cSAdam Ford MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 293*36ca3c8cSAdam Ford >; 294*36ca3c8cSAdam Ford }; 295*36ca3c8cSAdam Ford 296*36ca3c8cSAdam Ford pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { 297*36ca3c8cSAdam Ford fsl,pins = < 298*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 299*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 300*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 301*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 302*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 303*36ca3c8cSAdam Ford MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 304*36ca3c8cSAdam Ford MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 305*36ca3c8cSAdam Ford >; 306*36ca3c8cSAdam Ford }; 307*36ca3c8cSAdam Ford}; 308