1ae5de77eSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2ae5de77eSEmmanuel Vadot/* 3ae5de77eSEmmanuel Vadot * Copyright 2024-2025 NXP 4ae5de77eSEmmanuel Vadot */ 5ae5de77eSEmmanuel Vadot 6ae5de77eSEmmanuel Vadot/dts-v1/; 7ae5de77eSEmmanuel Vadot 8ae5de77eSEmmanuel Vadot#include "imx943.dtsi" 9ae5de77eSEmmanuel Vadot 10ae5de77eSEmmanuel Vadot/ { 11ae5de77eSEmmanuel Vadot compatible = "fsl,imx943-evk", "fsl,imx94"; 12ae5de77eSEmmanuel Vadot model = "NXP i.MX943 EVK board"; 13ae5de77eSEmmanuel Vadot 14ae5de77eSEmmanuel Vadot aliases { 15*833e5d42SEmmanuel Vadot i2c2 = &lpi2c3; 16*833e5d42SEmmanuel Vadot i2c3 = &lpi2c4; 17*833e5d42SEmmanuel Vadot i2c5 = &lpi2c6; 18ae5de77eSEmmanuel Vadot mmc0 = &usdhc1; 19ae5de77eSEmmanuel Vadot mmc1 = &usdhc2; 20ae5de77eSEmmanuel Vadot serial0 = &lpuart1; 21ae5de77eSEmmanuel Vadot }; 22ae5de77eSEmmanuel Vadot 23*833e5d42SEmmanuel Vadot bt_sco_codec: bt-sco-codec { 24*833e5d42SEmmanuel Vadot compatible = "linux,bt-sco"; 25*833e5d42SEmmanuel Vadot #sound-dai-cells = <1>; 26*833e5d42SEmmanuel Vadot }; 27*833e5d42SEmmanuel Vadot 28ae5de77eSEmmanuel Vadot chosen { 29ae5de77eSEmmanuel Vadot stdout-path = &lpuart1; 30ae5de77eSEmmanuel Vadot }; 31ae5de77eSEmmanuel Vadot 32*833e5d42SEmmanuel Vadot dmic: dmic { 33*833e5d42SEmmanuel Vadot compatible = "dmic-codec"; 34*833e5d42SEmmanuel Vadot #sound-dai-cells = <0>; 35*833e5d42SEmmanuel Vadot }; 36*833e5d42SEmmanuel Vadot 37ae5de77eSEmmanuel Vadot reg_usdhc2_vmmc: regulator-usdhc2 { 38ae5de77eSEmmanuel Vadot compatible = "regulator-fixed"; 39ae5de77eSEmmanuel Vadot off-on-delay-us = <12000>; 40ae5de77eSEmmanuel Vadot pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>; 41ae5de77eSEmmanuel Vadot pinctrl-names = "default"; 42ae5de77eSEmmanuel Vadot regulator-max-microvolt = <3300000>; 43ae5de77eSEmmanuel Vadot regulator-min-microvolt = <3300000>; 44ae5de77eSEmmanuel Vadot regulator-name = "VDD_SD2_3V3"; 45ae5de77eSEmmanuel Vadot gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; 46ae5de77eSEmmanuel Vadot enable-active-high; 47ae5de77eSEmmanuel Vadot }; 48ae5de77eSEmmanuel Vadot 49*833e5d42SEmmanuel Vadot reg_audio_pwr: regulator-wm8962-pwr { 50*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 51*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 52*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 53*833e5d42SEmmanuel Vadot regulator-name = "audio-pwr"; 54*833e5d42SEmmanuel Vadot gpio = <&pcal6416_i2c3_u171 12 GPIO_ACTIVE_HIGH>; 55*833e5d42SEmmanuel Vadot enable-active-high; 56*833e5d42SEmmanuel Vadot }; 57*833e5d42SEmmanuel Vadot 58ae5de77eSEmmanuel Vadot reserved-memory { 59ae5de77eSEmmanuel Vadot ranges; 60ae5de77eSEmmanuel Vadot #address-cells = <2>; 61ae5de77eSEmmanuel Vadot #size-cells = <2>; 62ae5de77eSEmmanuel Vadot 63ae5de77eSEmmanuel Vadot linux,cma { 64ae5de77eSEmmanuel Vadot compatible = "shared-dma-pool"; 65ae5de77eSEmmanuel Vadot alloc-ranges = <0 0x80000000 0 0x7f000000>; 66ae5de77eSEmmanuel Vadot reusable; 67ae5de77eSEmmanuel Vadot size = <0 0x10000000>; 68ae5de77eSEmmanuel Vadot linux,cma-default; 69ae5de77eSEmmanuel Vadot }; 70ae5de77eSEmmanuel Vadot }; 71ae5de77eSEmmanuel Vadot 72*833e5d42SEmmanuel Vadot sound-bt-sco { 73*833e5d42SEmmanuel Vadot compatible = "simple-audio-card"; 74*833e5d42SEmmanuel Vadot simple-audio-card,bitclock-inversion; 75*833e5d42SEmmanuel Vadot simple-audio-card,bitclock-master = <&btcpu>; 76*833e5d42SEmmanuel Vadot simple-audio-card,format = "dsp_a"; 77*833e5d42SEmmanuel Vadot simple-audio-card,frame-master = <&btcpu>; 78*833e5d42SEmmanuel Vadot simple-audio-card,name = "bt-sco-audio"; 79*833e5d42SEmmanuel Vadot 80*833e5d42SEmmanuel Vadot simple-audio-card,codec { 81*833e5d42SEmmanuel Vadot sound-dai = <&bt_sco_codec 1>; 82*833e5d42SEmmanuel Vadot }; 83*833e5d42SEmmanuel Vadot 84*833e5d42SEmmanuel Vadot btcpu: simple-audio-card,cpu { 85*833e5d42SEmmanuel Vadot dai-tdm-slot-num = <2>; 86*833e5d42SEmmanuel Vadot dai-tdm-slot-width = <16>; 87*833e5d42SEmmanuel Vadot sound-dai = <&sai3>; 88*833e5d42SEmmanuel Vadot }; 89*833e5d42SEmmanuel Vadot }; 90*833e5d42SEmmanuel Vadot 91*833e5d42SEmmanuel Vadot sound-micfil { 92*833e5d42SEmmanuel Vadot compatible = "fsl,imx-audio-card"; 93*833e5d42SEmmanuel Vadot model = "micfil-audio"; 94*833e5d42SEmmanuel Vadot 95*833e5d42SEmmanuel Vadot pri-dai-link { 96*833e5d42SEmmanuel Vadot format = "i2s"; 97*833e5d42SEmmanuel Vadot link-name = "micfil hifi"; 98*833e5d42SEmmanuel Vadot 99*833e5d42SEmmanuel Vadot codec { 100*833e5d42SEmmanuel Vadot sound-dai = <&dmic>; 101*833e5d42SEmmanuel Vadot }; 102*833e5d42SEmmanuel Vadot 103*833e5d42SEmmanuel Vadot cpu { 104*833e5d42SEmmanuel Vadot sound-dai = <&micfil>; 105*833e5d42SEmmanuel Vadot }; 106*833e5d42SEmmanuel Vadot }; 107*833e5d42SEmmanuel Vadot }; 108*833e5d42SEmmanuel Vadot 109*833e5d42SEmmanuel Vadot sound-wm8962 { 110*833e5d42SEmmanuel Vadot compatible = "fsl,imx-audio-wm8962"; 111*833e5d42SEmmanuel Vadot audio-codec = <&wm8962>; 112*833e5d42SEmmanuel Vadot audio-cpu = <&sai1>; 113*833e5d42SEmmanuel Vadot audio-routing = "Headphone Jack", "HPOUTL", 114*833e5d42SEmmanuel Vadot "Headphone Jack", "HPOUTR", 115*833e5d42SEmmanuel Vadot "Ext Spk", "SPKOUTL", 116*833e5d42SEmmanuel Vadot "Ext Spk", "SPKOUTR", 117*833e5d42SEmmanuel Vadot "AMIC", "MICBIAS", 118*833e5d42SEmmanuel Vadot "IN3R", "AMIC", 119*833e5d42SEmmanuel Vadot "IN1R", "AMIC"; 120*833e5d42SEmmanuel Vadot hp-det-gpio = <&pcal6416_i2c3_u48 14 GPIO_ACTIVE_HIGH>; 121*833e5d42SEmmanuel Vadot model = "wm8962-audio"; 122*833e5d42SEmmanuel Vadot }; 123*833e5d42SEmmanuel Vadot 124ae5de77eSEmmanuel Vadot memory@80000000 { 125ae5de77eSEmmanuel Vadot reg = <0x0 0x80000000 0x0 0x80000000>; 126ae5de77eSEmmanuel Vadot device_type = "memory"; 127ae5de77eSEmmanuel Vadot }; 128ae5de77eSEmmanuel Vadot}; 129ae5de77eSEmmanuel Vadot 130*833e5d42SEmmanuel Vadot&lpi2c3 { 131*833e5d42SEmmanuel Vadot clock-frequency = <400000>; 132*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_lpi2c3>; 133*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 134*833e5d42SEmmanuel Vadot status = "okay"; 135*833e5d42SEmmanuel Vadot 136*833e5d42SEmmanuel Vadot pca9670_i2c3: gpio@23 { 137*833e5d42SEmmanuel Vadot compatible = "nxp,pca9670"; 138*833e5d42SEmmanuel Vadot reg = <0x23>; 139*833e5d42SEmmanuel Vadot #gpio-cells = <2>; 140*833e5d42SEmmanuel Vadot gpio-controller; 141*833e5d42SEmmanuel Vadot }; 142*833e5d42SEmmanuel Vadot 143*833e5d42SEmmanuel Vadot pca9548_i2c3: i2c-mux@77 { 144*833e5d42SEmmanuel Vadot compatible = "nxp,pca9548"; 145*833e5d42SEmmanuel Vadot reg = <0x77>; 146*833e5d42SEmmanuel Vadot #address-cells = <1>; 147*833e5d42SEmmanuel Vadot #size-cells = <0>; 148*833e5d42SEmmanuel Vadot 149*833e5d42SEmmanuel Vadot i2c@0 { 150*833e5d42SEmmanuel Vadot reg = <0>; 151*833e5d42SEmmanuel Vadot #address-cells = <1>; 152*833e5d42SEmmanuel Vadot #size-cells = <0>; 153*833e5d42SEmmanuel Vadot }; 154*833e5d42SEmmanuel Vadot 155*833e5d42SEmmanuel Vadot i2c@1 { 156*833e5d42SEmmanuel Vadot reg = <1>; 157*833e5d42SEmmanuel Vadot #address-cells = <1>; 158*833e5d42SEmmanuel Vadot #size-cells = <0>; 159*833e5d42SEmmanuel Vadot }; 160*833e5d42SEmmanuel Vadot 161*833e5d42SEmmanuel Vadot i2c@2 { 162*833e5d42SEmmanuel Vadot reg = <2>; 163*833e5d42SEmmanuel Vadot #address-cells = <1>; 164*833e5d42SEmmanuel Vadot #size-cells = <0>; 165*833e5d42SEmmanuel Vadot }; 166*833e5d42SEmmanuel Vadot 167*833e5d42SEmmanuel Vadot i2c@3 { 168*833e5d42SEmmanuel Vadot reg = <3>; 169*833e5d42SEmmanuel Vadot #address-cells = <1>; 170*833e5d42SEmmanuel Vadot #size-cells = <0>; 171*833e5d42SEmmanuel Vadot }; 172*833e5d42SEmmanuel Vadot 173*833e5d42SEmmanuel Vadot i2c@4 { 174*833e5d42SEmmanuel Vadot reg = <4>; 175*833e5d42SEmmanuel Vadot #address-cells = <1>; 176*833e5d42SEmmanuel Vadot #size-cells = <0>; 177*833e5d42SEmmanuel Vadot 178*833e5d42SEmmanuel Vadot wm8962: codec@1a { 179*833e5d42SEmmanuel Vadot compatible = "wlf,wm8962"; 180*833e5d42SEmmanuel Vadot reg = <0x1a>; 181*833e5d42SEmmanuel Vadot clocks = <&scmi_clk IMX94_CLK_SAI1>; 182*833e5d42SEmmanuel Vadot AVDD-supply = <®_audio_pwr>; 183*833e5d42SEmmanuel Vadot CPVDD-supply = <®_audio_pwr>; 184*833e5d42SEmmanuel Vadot DBVDD-supply = <®_audio_pwr>; 185*833e5d42SEmmanuel Vadot DCVDD-supply = <®_audio_pwr>; 186*833e5d42SEmmanuel Vadot gpio-cfg = < 187*833e5d42SEmmanuel Vadot 0x0000 /* 0:Default */ 188*833e5d42SEmmanuel Vadot 0x0000 /* 1:Default */ 189*833e5d42SEmmanuel Vadot 0x0000 /* 2:FN_DMICCLK */ 190*833e5d42SEmmanuel Vadot 0x0000 /* 3:Default */ 191*833e5d42SEmmanuel Vadot 0x0000 /* 4:FN_DMICCDAT */ 192*833e5d42SEmmanuel Vadot 0x0000 /* 5:Default */ 193*833e5d42SEmmanuel Vadot >; 194*833e5d42SEmmanuel Vadot MICVDD-supply = <®_audio_pwr>; 195*833e5d42SEmmanuel Vadot PLLVDD-supply = <®_audio_pwr>; 196*833e5d42SEmmanuel Vadot SPKVDD1-supply = <®_audio_pwr>; 197*833e5d42SEmmanuel Vadot SPKVDD2-supply = <®_audio_pwr>; 198*833e5d42SEmmanuel Vadot }; 199*833e5d42SEmmanuel Vadot }; 200*833e5d42SEmmanuel Vadot 201*833e5d42SEmmanuel Vadot i2c@5 { 202*833e5d42SEmmanuel Vadot reg = <5>; 203*833e5d42SEmmanuel Vadot #address-cells = <1>; 204*833e5d42SEmmanuel Vadot #size-cells = <0>; 205*833e5d42SEmmanuel Vadot 206*833e5d42SEmmanuel Vadot pcal6416_i2c3_u46: gpio@20 { 207*833e5d42SEmmanuel Vadot compatible = "nxp,pcal6416"; 208*833e5d42SEmmanuel Vadot reg = <0x20>; 209*833e5d42SEmmanuel Vadot #gpio-cells = <2>; 210*833e5d42SEmmanuel Vadot gpio-controller; 211*833e5d42SEmmanuel Vadot 212*833e5d42SEmmanuel Vadot sd-card-on-hog { 213*833e5d42SEmmanuel Vadot gpios = <13 GPIO_ACTIVE_HIGH>; 214*833e5d42SEmmanuel Vadot gpio-hog; 215*833e5d42SEmmanuel Vadot output-high; 216*833e5d42SEmmanuel Vadot }; 217*833e5d42SEmmanuel Vadot }; 218*833e5d42SEmmanuel Vadot 219*833e5d42SEmmanuel Vadot pcal6416_i2c3_u171: gpio@21 { 220*833e5d42SEmmanuel Vadot compatible = "nxp,pcal6416"; 221*833e5d42SEmmanuel Vadot reg = <0x21>; 222*833e5d42SEmmanuel Vadot #gpio-cells = <2>; 223*833e5d42SEmmanuel Vadot gpio-controller; 224*833e5d42SEmmanuel Vadot 225*833e5d42SEmmanuel Vadot audio-pwren-hog { 226*833e5d42SEmmanuel Vadot gpios = <12 GPIO_ACTIVE_HIGH>; 227*833e5d42SEmmanuel Vadot gpio-hog; 228*833e5d42SEmmanuel Vadot output-high; 229*833e5d42SEmmanuel Vadot }; 230*833e5d42SEmmanuel Vadot 231*833e5d42SEmmanuel Vadot mqs-mic-sel-hog { 232*833e5d42SEmmanuel Vadot gpios = <11 GPIO_ACTIVE_HIGH>; 233*833e5d42SEmmanuel Vadot gpio-hog; 234*833e5d42SEmmanuel Vadot output-low; 235*833e5d42SEmmanuel Vadot }; 236*833e5d42SEmmanuel Vadot }; 237*833e5d42SEmmanuel Vadot }; 238*833e5d42SEmmanuel Vadot 239*833e5d42SEmmanuel Vadot i2c@6 { 240*833e5d42SEmmanuel Vadot reg = <6>; 241*833e5d42SEmmanuel Vadot #address-cells = <1>; 242*833e5d42SEmmanuel Vadot #size-cells = <0>; 243*833e5d42SEmmanuel Vadot 244*833e5d42SEmmanuel Vadot pcal6416_i2c3_u48: gpio@20 { 245*833e5d42SEmmanuel Vadot compatible = "nxp,pcal6416"; 246*833e5d42SEmmanuel Vadot reg = <0x20>; 247*833e5d42SEmmanuel Vadot #interrupt-cells = <2>; 248*833e5d42SEmmanuel Vadot interrupt-controller; 249*833e5d42SEmmanuel Vadot interrupt-parent = <&gpio3>; 250*833e5d42SEmmanuel Vadot interrupts = <13 IRQ_TYPE_LEVEL_LOW>; 251*833e5d42SEmmanuel Vadot #gpio-cells = <2>; 252*833e5d42SEmmanuel Vadot gpio-controller; 253*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_ioexpander_int>; 254*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 255*833e5d42SEmmanuel Vadot }; 256*833e5d42SEmmanuel Vadot }; 257*833e5d42SEmmanuel Vadot 258*833e5d42SEmmanuel Vadot i2c@7 { 259*833e5d42SEmmanuel Vadot reg = <7>; 260*833e5d42SEmmanuel Vadot #address-cells = <1>; 261*833e5d42SEmmanuel Vadot #size-cells = <0>; 262*833e5d42SEmmanuel Vadot 263*833e5d42SEmmanuel Vadot pcal6408_i2c3_u172: gpio@20 { 264*833e5d42SEmmanuel Vadot compatible = "nxp,pcal6408"; 265*833e5d42SEmmanuel Vadot reg = <0x20>; 266*833e5d42SEmmanuel Vadot #interrupt-cells = <2>; 267*833e5d42SEmmanuel Vadot interrupt-controller; 268*833e5d42SEmmanuel Vadot interrupt-parent = <&gpio3>; 269*833e5d42SEmmanuel Vadot /* shared int pin with u48 */ 270*833e5d42SEmmanuel Vadot interrupts = <13 IRQ_TYPE_LEVEL_LOW>; 271*833e5d42SEmmanuel Vadot #gpio-cells = <2>; 272*833e5d42SEmmanuel Vadot gpio-controller; 273*833e5d42SEmmanuel Vadot }; 274*833e5d42SEmmanuel Vadot }; 275*833e5d42SEmmanuel Vadot }; 276*833e5d42SEmmanuel Vadot}; 277*833e5d42SEmmanuel Vadot 278*833e5d42SEmmanuel Vadot&lpi2c4 { 279*833e5d42SEmmanuel Vadot clock-frequency = <400000>; 280*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_lpi2c4>; 281*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 282*833e5d42SEmmanuel Vadot status = "okay"; 283*833e5d42SEmmanuel Vadot}; 284*833e5d42SEmmanuel Vadot 285*833e5d42SEmmanuel Vadot&lpi2c6 { 286*833e5d42SEmmanuel Vadot clock-frequency = <400000>; 287*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_lpi2c6>; 288*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 289*833e5d42SEmmanuel Vadot status = "okay"; 290*833e5d42SEmmanuel Vadot 291*833e5d42SEmmanuel Vadot pca9544_i2c6: i2c-mux@77 { 292*833e5d42SEmmanuel Vadot compatible = "nxp,pca9544"; 293*833e5d42SEmmanuel Vadot reg = <0x77>; 294*833e5d42SEmmanuel Vadot #address-cells = <1>; 295*833e5d42SEmmanuel Vadot #size-cells = <0>; 296*833e5d42SEmmanuel Vadot 297*833e5d42SEmmanuel Vadot i2c@0 { 298*833e5d42SEmmanuel Vadot reg = <0>; 299*833e5d42SEmmanuel Vadot #address-cells = <1>; 300*833e5d42SEmmanuel Vadot #size-cells = <0>; 301*833e5d42SEmmanuel Vadot }; 302*833e5d42SEmmanuel Vadot 303*833e5d42SEmmanuel Vadot i2c@1 { 304*833e5d42SEmmanuel Vadot reg = <1>; 305*833e5d42SEmmanuel Vadot #address-cells = <1>; 306*833e5d42SEmmanuel Vadot #size-cells = <0>; 307*833e5d42SEmmanuel Vadot 308*833e5d42SEmmanuel Vadot pcal6416_i2c6_u50: gpio@21 { 309*833e5d42SEmmanuel Vadot compatible = "nxp,pcal6416"; 310*833e5d42SEmmanuel Vadot reg = <0x21>; 311*833e5d42SEmmanuel Vadot #gpio-cells = <2>; 312*833e5d42SEmmanuel Vadot gpio-controller; 313*833e5d42SEmmanuel Vadot }; 314*833e5d42SEmmanuel Vadot }; 315*833e5d42SEmmanuel Vadot 316*833e5d42SEmmanuel Vadot i2c@2 { 317*833e5d42SEmmanuel Vadot reg = <2>; 318*833e5d42SEmmanuel Vadot #address-cells = <1>; 319*833e5d42SEmmanuel Vadot #size-cells = <0>; 320*833e5d42SEmmanuel Vadot 321*833e5d42SEmmanuel Vadot pcal6408_i2c6_u170: gpio@20 { 322*833e5d42SEmmanuel Vadot compatible = "nxp,pcal6408"; 323*833e5d42SEmmanuel Vadot reg = <0x20>; 324*833e5d42SEmmanuel Vadot #interrupt-cells = <2>; 325*833e5d42SEmmanuel Vadot interrupt-controller; 326*833e5d42SEmmanuel Vadot interrupt-parent = <&gpio4>; 327*833e5d42SEmmanuel Vadot interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 328*833e5d42SEmmanuel Vadot #gpio-cells = <2>; 329*833e5d42SEmmanuel Vadot gpio-controller; 330*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_ioexpander_int2>; 331*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 332*833e5d42SEmmanuel Vadot }; 333*833e5d42SEmmanuel Vadot }; 334*833e5d42SEmmanuel Vadot 335*833e5d42SEmmanuel Vadot i2c@3 { 336*833e5d42SEmmanuel Vadot reg = <3>; 337*833e5d42SEmmanuel Vadot #address-cells = <1>; 338*833e5d42SEmmanuel Vadot #size-cells = <0>; 339*833e5d42SEmmanuel Vadot 340*833e5d42SEmmanuel Vadot pcal6416_i2c6_u44: gpio@20 { 341*833e5d42SEmmanuel Vadot compatible = "nxp,pcal6416"; 342*833e5d42SEmmanuel Vadot reg = <0x20>; 343*833e5d42SEmmanuel Vadot #gpio-cells = <2>; 344*833e5d42SEmmanuel Vadot gpio-controller; 345*833e5d42SEmmanuel Vadot 346*833e5d42SEmmanuel Vadot /* pdm selection */ 347*833e5d42SEmmanuel Vadot can-pdm-sel-hog { 348*833e5d42SEmmanuel Vadot gpios = <12 GPIO_ACTIVE_HIGH>; 349*833e5d42SEmmanuel Vadot gpio-hog; 350*833e5d42SEmmanuel Vadot output-low; 351*833e5d42SEmmanuel Vadot }; 352*833e5d42SEmmanuel Vadot 353*833e5d42SEmmanuel Vadot sai3-sel-hog { 354*833e5d42SEmmanuel Vadot gpios = <11 GPIO_ACTIVE_HIGH>; 355*833e5d42SEmmanuel Vadot gpio-hog; 356*833e5d42SEmmanuel Vadot output-high; 357*833e5d42SEmmanuel Vadot }; 358*833e5d42SEmmanuel Vadot 359*833e5d42SEmmanuel Vadot /* eMMC IOMUX selection */ 360*833e5d42SEmmanuel Vadot sd1-sel-hog { 361*833e5d42SEmmanuel Vadot gpios = <0 GPIO_ACTIVE_HIGH>; 362*833e5d42SEmmanuel Vadot gpio-hog; 363*833e5d42SEmmanuel Vadot output-high; 364*833e5d42SEmmanuel Vadot }; 365*833e5d42SEmmanuel Vadot 366*833e5d42SEmmanuel Vadot /* SD card IOMUX selection */ 367*833e5d42SEmmanuel Vadot sd2-sel-hog { 368*833e5d42SEmmanuel Vadot gpios = <1 GPIO_ACTIVE_HIGH>; 369*833e5d42SEmmanuel Vadot gpio-hog; 370*833e5d42SEmmanuel Vadot output-high; 371*833e5d42SEmmanuel Vadot }; 372*833e5d42SEmmanuel Vadot }; 373*833e5d42SEmmanuel Vadot }; 374*833e5d42SEmmanuel Vadot }; 375*833e5d42SEmmanuel Vadot}; 376*833e5d42SEmmanuel Vadot 377ae5de77eSEmmanuel Vadot&lpuart1 { 378ae5de77eSEmmanuel Vadot pinctrl-0 = <&pinctrl_uart1>; 379ae5de77eSEmmanuel Vadot pinctrl-names = "default"; 380ae5de77eSEmmanuel Vadot status = "okay"; 381ae5de77eSEmmanuel Vadot}; 382ae5de77eSEmmanuel Vadot 383*833e5d42SEmmanuel Vadot&micfil { 384*833e5d42SEmmanuel Vadot assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>, 385*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>, 386*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL1>, 387*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL2>, 388*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_PDM>; 389*833e5d42SEmmanuel Vadot assigned-clock-parents = <0>, <0>, <0>, <0>, 390*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL1>; 391*833e5d42SEmmanuel Vadot assigned-clock-rates = <3932160000>, 392*833e5d42SEmmanuel Vadot <3612672000>, <393216000>, 393*833e5d42SEmmanuel Vadot <361267200>, <49152000>; 394*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_pdm>; 395*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 396*833e5d42SEmmanuel Vadot status = "okay"; 397*833e5d42SEmmanuel Vadot}; 398*833e5d42SEmmanuel Vadot 399*833e5d42SEmmanuel Vadot&sai1 { 400*833e5d42SEmmanuel Vadot assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>, 401*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>, 402*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL1>, 403*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL2>, 404*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_SAI1>; 405*833e5d42SEmmanuel Vadot assigned-clock-parents = <0>, <0>, <0>, <0>, 406*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL1>; 407*833e5d42SEmmanuel Vadot assigned-clock-rates = <3932160000>, 408*833e5d42SEmmanuel Vadot <3612672000>, <393216000>, 409*833e5d42SEmmanuel Vadot <361267200>, <12288000>; 410*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_sai1>; 411*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 412*833e5d42SEmmanuel Vadot fsl,sai-mclk-direction-output; 413*833e5d42SEmmanuel Vadot status = "okay"; 414*833e5d42SEmmanuel Vadot}; 415*833e5d42SEmmanuel Vadot 416*833e5d42SEmmanuel Vadot&sai3 { 417*833e5d42SEmmanuel Vadot assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>, 418*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>, 419*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL1>, 420*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL2>, 421*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_SAI3>; 422*833e5d42SEmmanuel Vadot assigned-clock-parents = <0>, <0>, <0>, <0>, 423*833e5d42SEmmanuel Vadot <&scmi_clk IMX94_CLK_AUDIOPLL1>; 424*833e5d42SEmmanuel Vadot assigned-clock-rates = <3932160000>, 425*833e5d42SEmmanuel Vadot <3612672000>, <393216000>, 426*833e5d42SEmmanuel Vadot <361267200>, <12288000>; 427*833e5d42SEmmanuel Vadot pinctrl-0 = <&pinctrl_sai3>; 428*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 429*833e5d42SEmmanuel Vadot fsl,sai-mclk-direction-output; 430*833e5d42SEmmanuel Vadot status = "okay"; 431*833e5d42SEmmanuel Vadot}; 432*833e5d42SEmmanuel Vadot 433ae5de77eSEmmanuel Vadot&scmi_iomuxc { 434*833e5d42SEmmanuel Vadot 435*833e5d42SEmmanuel Vadot pinctrl_ioexpander_int2: ioexpanderint2grp { 436*833e5d42SEmmanuel Vadot fsl,pins = < 437*833e5d42SEmmanuel Vadot IMX94_PAD_CCM_CLKO4__GPIO4_IO3 0x31e 438*833e5d42SEmmanuel Vadot >; 439*833e5d42SEmmanuel Vadot }; 440*833e5d42SEmmanuel Vadot 441*833e5d42SEmmanuel Vadot pinctrl_ioexpander_int: ioexpanderintgrp { 442*833e5d42SEmmanuel Vadot fsl,pins = < 443*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO45__GPIO3_IO13 0x31e 444*833e5d42SEmmanuel Vadot >; 445*833e5d42SEmmanuel Vadot }; 446*833e5d42SEmmanuel Vadot 447*833e5d42SEmmanuel Vadot pinctrl_lpi2c3: lpi2c3grp { 448*833e5d42SEmmanuel Vadot fsl,pins = < 449*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO16__LPI2C3_SDA 0x40000b9e 450*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO17__LPI2C3_SCL 0x40000b9e 451*833e5d42SEmmanuel Vadot >; 452*833e5d42SEmmanuel Vadot }; 453*833e5d42SEmmanuel Vadot 454*833e5d42SEmmanuel Vadot pinctrl_lpi2c4: lpi2c4grp { 455*833e5d42SEmmanuel Vadot fsl,pins = < 456*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO18__LPI2C4_SDA 0x40000b9e 457*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO19__LPI2C4_SCL 0x40000b9e 458*833e5d42SEmmanuel Vadot >; 459*833e5d42SEmmanuel Vadot }; 460*833e5d42SEmmanuel Vadot 461*833e5d42SEmmanuel Vadot pinctrl_lpi2c6: lpi2c6grp { 462*833e5d42SEmmanuel Vadot fsl,pins = < 463*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO29__LPI2C6_SDA 0x40000b9e 464*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO28__LPI2C6_SCL 0x40000b9e 465*833e5d42SEmmanuel Vadot >; 466*833e5d42SEmmanuel Vadot }; 467*833e5d42SEmmanuel Vadot 468*833e5d42SEmmanuel Vadot pinctrl_pdm: pdmgrp { 469*833e5d42SEmmanuel Vadot fsl,pins = < 470*833e5d42SEmmanuel Vadot IMX94_PAD_PDM_CLK__PDM_CLK 0x31e 471*833e5d42SEmmanuel Vadot IMX94_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM0 0x31e 472*833e5d42SEmmanuel Vadot IMX94_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM1 0x31e 473*833e5d42SEmmanuel Vadot >; 474*833e5d42SEmmanuel Vadot }; 475*833e5d42SEmmanuel Vadot 476*833e5d42SEmmanuel Vadot pinctrl_sai1: sai1grp { 477*833e5d42SEmmanuel Vadot fsl,pins = < 478*833e5d42SEmmanuel Vadot IMX94_PAD_SAI1_TXFS__SAI1_TX_SYNC 0x31e 479*833e5d42SEmmanuel Vadot IMX94_PAD_SAI1_TXC__SAI1_TX_BCLK 0x31e 480*833e5d42SEmmanuel Vadot IMX94_PAD_SAI1_TXD0__SAI1_TX_DATA0 0x31e 481*833e5d42SEmmanuel Vadot IMX94_PAD_SAI1_RXD0__SAI1_RX_DATA0 0x31e 482*833e5d42SEmmanuel Vadot IMX94_PAD_I2C2_SDA__SAI1_MCLK 0x31e 483*833e5d42SEmmanuel Vadot >; 484*833e5d42SEmmanuel Vadot }; 485*833e5d42SEmmanuel Vadot 486*833e5d42SEmmanuel Vadot pinctrl_sai3: sai3grp { 487*833e5d42SEmmanuel Vadot fsl,pins = < 488*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO42__SAI3_TX_BCLK 0x31e 489*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO56__SAI3_TX_SYNC 0x31e 490*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO46__SAI3_RX_DATA0 0x31e 491*833e5d42SEmmanuel Vadot IMX94_PAD_GPIO_IO47__SAI3_TX_DATA0 0x31e 492*833e5d42SEmmanuel Vadot >; 493*833e5d42SEmmanuel Vadot }; 494*833e5d42SEmmanuel Vadot 495ae5de77eSEmmanuel Vadot pinctrl_uart1: uart1grp { 496ae5de77eSEmmanuel Vadot fsl,pins = < 497ae5de77eSEmmanuel Vadot IMX94_PAD_UART1_TXD__LPUART1_TX 0x31e 498ae5de77eSEmmanuel Vadot IMX94_PAD_UART1_RXD__LPUART1_RX 0x31e 499ae5de77eSEmmanuel Vadot >; 500ae5de77eSEmmanuel Vadot }; 501ae5de77eSEmmanuel Vadot 502ae5de77eSEmmanuel Vadot pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 503ae5de77eSEmmanuel Vadot fsl,pins = < 504ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_CLK__USDHC1_CLK 0x158e 505ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_CMD__USDHC1_CMD 0x138e 506ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA0__USDHC1_DATA0 0x138e 507ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA1__USDHC1_DATA1 0x138e 508ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA2__USDHC1_DATA2 0x138e 509ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA3__USDHC1_DATA3 0x138e 510ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA4__USDHC1_DATA4 0x138e 511ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA5__USDHC1_DATA5 0x138e 512ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA6__USDHC1_DATA6 0x138e 513ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA7__USDHC1_DATA7 0x138e 514ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_STROBE__USDHC1_STROBE 0x158e 515ae5de77eSEmmanuel Vadot >; 516ae5de77eSEmmanuel Vadot }; 517ae5de77eSEmmanuel Vadot 518ae5de77eSEmmanuel Vadot pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 519ae5de77eSEmmanuel Vadot fsl,pins = < 520ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_CLK__USDHC1_CLK 0x15fe 521ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_CMD__USDHC1_CMD 0x13fe 522ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe 523ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe 524ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA2__USDHC1_DATA2 0x13fe 525ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA3__USDHC1_DATA3 0x13fe 526ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe 527ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe 528ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe 529ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe 530ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe 531ae5de77eSEmmanuel Vadot >; 532ae5de77eSEmmanuel Vadot }; 533ae5de77eSEmmanuel Vadot 534ae5de77eSEmmanuel Vadot pinctrl_usdhc1: usdhc1grp { 535ae5de77eSEmmanuel Vadot fsl,pins = < 536ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_CLK__USDHC1_CLK 0x158e 537ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_CMD__USDHC1_CMD 0x138e 538ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA0__USDHC1_DATA0 0x138e 539ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA1__USDHC1_DATA1 0x138e 540ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA2__USDHC1_DATA2 0x138e 541ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA3__USDHC1_DATA3 0x138e 542ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA4__USDHC1_DATA4 0x138e 543ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA5__USDHC1_DATA5 0x138e 544ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA6__USDHC1_DATA6 0x138e 545ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_DATA7__USDHC1_DATA7 0x138e 546ae5de77eSEmmanuel Vadot IMX94_PAD_SD1_STROBE__USDHC1_STROBE 0x158e 547ae5de77eSEmmanuel Vadot >; 548ae5de77eSEmmanuel Vadot }; 549ae5de77eSEmmanuel Vadot 550ae5de77eSEmmanuel Vadot pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { 551ae5de77eSEmmanuel Vadot fsl,pins = < 552ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_CLK__USDHC2_CLK 0x158e 553ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_CMD__USDHC2_CMD 0x138e 554ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA0__USDHC2_DATA0 0x138e 555ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA1__USDHC2_DATA1 0x138e 556ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA2__USDHC2_DATA2 0x138e 557ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA3__USDHC2_DATA3 0x138e 558ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e 559ae5de77eSEmmanuel Vadot >; 560ae5de77eSEmmanuel Vadot }; 561ae5de77eSEmmanuel Vadot 562ae5de77eSEmmanuel Vadot pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { 563ae5de77eSEmmanuel Vadot fsl,pins = < 564ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_CLK__USDHC2_CLK 0x15fe 565ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_CMD__USDHC2_CMD 0x13fe 566ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA0__USDHC2_DATA0 0x13fe 567ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA1__USDHC2_DATA1 0x13fe 568ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA2__USDHC2_DATA2 0x13fe 569ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe 570ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e 571ae5de77eSEmmanuel Vadot >; 572ae5de77eSEmmanuel Vadot }; 573ae5de77eSEmmanuel Vadot 574ae5de77eSEmmanuel Vadot pinctrl_usdhc2_gpio: usdhc2gpiogrp { 575ae5de77eSEmmanuel Vadot fsl,pins = < 576ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_CD_B__GPIO4_IO20 0x31e 577ae5de77eSEmmanuel Vadot >; 578ae5de77eSEmmanuel Vadot }; 579ae5de77eSEmmanuel Vadot 580ae5de77eSEmmanuel Vadot pinctrl_usdhc2: usdhc2grp { 581ae5de77eSEmmanuel Vadot fsl,pins = < 582ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_CLK__USDHC2_CLK 0x158e 583ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_CMD__USDHC2_CMD 0x138e 584ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA0__USDHC2_DATA0 0x138e 585ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA1__USDHC2_DATA1 0x138e 586ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA2__USDHC2_DATA2 0x138e 587ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_DATA3__USDHC2_DATA3 0x138e 588ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e 589ae5de77eSEmmanuel Vadot >; 590ae5de77eSEmmanuel Vadot }; 591ae5de77eSEmmanuel Vadot 592ae5de77eSEmmanuel Vadot pinctrl_reg_usdhc2_vmmc: usdhc2regvmmcgrp { 593ae5de77eSEmmanuel Vadot fsl,pins = < 594ae5de77eSEmmanuel Vadot IMX94_PAD_SD2_RESET_B__GPIO4_IO27 0x31e 595ae5de77eSEmmanuel Vadot >; 596ae5de77eSEmmanuel Vadot }; 597ae5de77eSEmmanuel Vadot}; 598ae5de77eSEmmanuel Vadot 599ae5de77eSEmmanuel Vadot&usdhc1 { 600ae5de77eSEmmanuel Vadot pinctrl-0 = <&pinctrl_usdhc1>; 601ae5de77eSEmmanuel Vadot pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 602ae5de77eSEmmanuel Vadot pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 603ae5de77eSEmmanuel Vadot pinctrl-names = "default", "state_100mhz", "state_200mhz"; 604ae5de77eSEmmanuel Vadot bus-width = <8>; 605ae5de77eSEmmanuel Vadot non-removable; 606ae5de77eSEmmanuel Vadot no-sdio; 607ae5de77eSEmmanuel Vadot no-sd; 608ae5de77eSEmmanuel Vadot status = "okay"; 609ae5de77eSEmmanuel Vadot}; 610ae5de77eSEmmanuel Vadot 611ae5de77eSEmmanuel Vadot&usdhc2 { 612ae5de77eSEmmanuel Vadot pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; 613ae5de77eSEmmanuel Vadot pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; 614ae5de77eSEmmanuel Vadot pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; 615ae5de77eSEmmanuel Vadot pinctrl-names = "default", "state_100mhz", "state_200mhz"; 616ae5de77eSEmmanuel Vadot bus-width = <4>; 617ae5de77eSEmmanuel Vadot no-mmc; 618ae5de77eSEmmanuel Vadot no-sdio; 619ae5de77eSEmmanuel Vadot cd-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>; 620ae5de77eSEmmanuel Vadot vmmc-supply = <®_usdhc2_vmmc>; 621ae5de77eSEmmanuel Vadot status = "okay"; 622ae5de77eSEmmanuel Vadot}; 623ae5de77eSEmmanuel Vadot 624ae5de77eSEmmanuel Vadot&wdog3 { 625ae5de77eSEmmanuel Vadot fsl,ext-reset-output; 626ae5de77eSEmmanuel Vadot status = "okay"; 627ae5de77eSEmmanuel Vadot}; 628