1*868ced4dSStefano Radaelli// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*868ced4dSStefano Radaelli/* 3*868ced4dSStefano Radaelli * Common dtsi for Variscite VAR-SOM-MX8 4*868ced4dSStefano Radaelli * 5*868ced4dSStefano Radaelli * Link: https://variscite.com/system-on-module-som/i-mx-8/i-mx-8-quadmax-quadplus/var-som-mx8/ 6*868ced4dSStefano Radaelli * 7*868ced4dSStefano Radaelli * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/ 8*868ced4dSStefano Radaelli * 9*868ced4dSStefano Radaelli */ 10*868ced4dSStefano Radaelli 11*868ced4dSStefano Radaelli/dts-v1/; 12*868ced4dSStefano Radaelli 13*868ced4dSStefano Radaelli#include "imx8qm.dtsi" 14*868ced4dSStefano Radaelli 15*868ced4dSStefano Radaelli/ { 16*868ced4dSStefano Radaelli model = "Variscite i.MX8QM VAR-SOM-MX8 Module"; 17*868ced4dSStefano Radaelli compatible = "variscite,var-som-imx8qm", "fsl,imx8qm"; 18*868ced4dSStefano Radaelli 19*868ced4dSStefano Radaelli memory@80000000 { 20*868ced4dSStefano Radaelli device_type = "memory"; 21*868ced4dSStefano Radaelli reg = <0x00000000 0x80000000 0 0x40000000>; 22*868ced4dSStefano Radaelli }; 23*868ced4dSStefano Radaelli 24*868ced4dSStefano Radaelli reg_audio_supply: regulator-1p8v { 25*868ced4dSStefano Radaelli compatible = "regulator-fixed"; 26*868ced4dSStefano Radaelli regulator-name = "wm8904-supply"; 27*868ced4dSStefano Radaelli regulator-min-microvolt = <1800000>; 28*868ced4dSStefano Radaelli regulator-max-microvolt = <1800000>; 29*868ced4dSStefano Radaelli regulator-always-on; 30*868ced4dSStefano Radaelli }; 31*868ced4dSStefano Radaelli 32*868ced4dSStefano Radaelli reg_phy_vddio: regulator-phy-vddio { 33*868ced4dSStefano Radaelli compatible = "regulator-fixed"; 34*868ced4dSStefano Radaelli regulator-name = "vddio-1v8"; 35*868ced4dSStefano Radaelli regulator-min-microvolt = <1800000>; 36*868ced4dSStefano Radaelli regulator-max-microvolt = <1800000>; 37*868ced4dSStefano Radaelli }; 38*868ced4dSStefano Radaelli 39*868ced4dSStefano Radaelli reserved-memory { 40*868ced4dSStefano Radaelli #address-cells = <2>; 41*868ced4dSStefano Radaelli #size-cells = <2>; 42*868ced4dSStefano Radaelli ranges; 43*868ced4dSStefano Radaelli 44*868ced4dSStefano Radaelli vdev0vring0: memory@90000000 { 45*868ced4dSStefano Radaelli reg = <0 0x90000000 0 0x8000>; 46*868ced4dSStefano Radaelli no-map; 47*868ced4dSStefano Radaelli }; 48*868ced4dSStefano Radaelli 49*868ced4dSStefano Radaelli vdev0vring1: memory@90008000 { 50*868ced4dSStefano Radaelli reg = <0 0x90008000 0 0x8000>; 51*868ced4dSStefano Radaelli no-map; 52*868ced4dSStefano Radaelli }; 53*868ced4dSStefano Radaelli 54*868ced4dSStefano Radaelli vdev1vring0: memory@90010000 { 55*868ced4dSStefano Radaelli reg = <0 0x90010000 0 0x8000>; 56*868ced4dSStefano Radaelli no-map; 57*868ced4dSStefano Radaelli }; 58*868ced4dSStefano Radaelli 59*868ced4dSStefano Radaelli vdev1vring1: memory@90018000 { 60*868ced4dSStefano Radaelli reg = <0 0x90018000 0 0x8000>; 61*868ced4dSStefano Radaelli no-map; 62*868ced4dSStefano Radaelli }; 63*868ced4dSStefano Radaelli 64*868ced4dSStefano Radaelli rsc_table0: memory@900ff000 { 65*868ced4dSStefano Radaelli reg = <0 0x900ff000 0 0x1000>; 66*868ced4dSStefano Radaelli no-map; 67*868ced4dSStefano Radaelli }; 68*868ced4dSStefano Radaelli 69*868ced4dSStefano Radaelli vdev2vring0: memory@90100000 { 70*868ced4dSStefano Radaelli reg = <0 0x90100000 0 0x8000>; 71*868ced4dSStefano Radaelli no-map; 72*868ced4dSStefano Radaelli }; 73*868ced4dSStefano Radaelli 74*868ced4dSStefano Radaelli vdev2vring1: memory@90108000 { 75*868ced4dSStefano Radaelli reg = <0 0x90108000 0 0x8000>; 76*868ced4dSStefano Radaelli no-map; 77*868ced4dSStefano Radaelli }; 78*868ced4dSStefano Radaelli 79*868ced4dSStefano Radaelli vdev3vring0: memory@90110000 { 80*868ced4dSStefano Radaelli reg = <0 0x90110000 0 0x8000>; 81*868ced4dSStefano Radaelli no-map; 82*868ced4dSStefano Radaelli }; 83*868ced4dSStefano Radaelli 84*868ced4dSStefano Radaelli vdev3vring1: memory@90118000 { 85*868ced4dSStefano Radaelli reg = <0 0x90118000 0 0x8000>; 86*868ced4dSStefano Radaelli no-map; 87*868ced4dSStefano Radaelli }; 88*868ced4dSStefano Radaelli 89*868ced4dSStefano Radaelli rsc_table1: memory@901ff000 { 90*868ced4dSStefano Radaelli reg = <0 0x901ff000 0 0x1000>; 91*868ced4dSStefano Radaelli no-map; 92*868ced4dSStefano Radaelli }; 93*868ced4dSStefano Radaelli 94*868ced4dSStefano Radaelli vdevbuffer: memory@90400000 { 95*868ced4dSStefano Radaelli compatible = "shared-dma-pool"; 96*868ced4dSStefano Radaelli reg = <0 0x90400000 0 0x100000>; 97*868ced4dSStefano Radaelli no-map; 98*868ced4dSStefano Radaelli }; 99*868ced4dSStefano Radaelli 100*868ced4dSStefano Radaelli dsp_reserved: memory@92400000 { 101*868ced4dSStefano Radaelli reg = <0 0x92400000 0 0x1000000>; 102*868ced4dSStefano Radaelli no-map; 103*868ced4dSStefano Radaelli }; 104*868ced4dSStefano Radaelli 105*868ced4dSStefano Radaelli dsp_vdev0vring0: memory@942f0000 { 106*868ced4dSStefano Radaelli reg = <0 0x942f0000 0 0x8000>; 107*868ced4dSStefano Radaelli no-map; 108*868ced4dSStefano Radaelli }; 109*868ced4dSStefano Radaelli 110*868ced4dSStefano Radaelli dsp_vdev0vring1: memory@942f8000 { 111*868ced4dSStefano Radaelli reg = <0 0x942f8000 0 0x8000>; 112*868ced4dSStefano Radaelli no-map; 113*868ced4dSStefano Radaelli }; 114*868ced4dSStefano Radaelli 115*868ced4dSStefano Radaelli dsp_vdev0buffer: memory@94300000 { 116*868ced4dSStefano Radaelli compatible = "shared-dma-pool"; 117*868ced4dSStefano Radaelli reg = <0 0x94300000 0 0x100000>; 118*868ced4dSStefano Radaelli no-map; 119*868ced4dSStefano Radaelli }; 120*868ced4dSStefano Radaelli 121*868ced4dSStefano Radaelli /* global autoconfigured region for contiguous allocations */ 122*868ced4dSStefano Radaelli linux,cma { 123*868ced4dSStefano Radaelli compatible = "shared-dma-pool"; 124*868ced4dSStefano Radaelli /* VAR-SOM-MX8QM doesn't have 1GB variant */ 125*868ced4dSStefano Radaelli alloc-ranges = <0 0xc0000000 0 0x3c000000>; 126*868ced4dSStefano Radaelli size = <0 0x3c000000>; 127*868ced4dSStefano Radaelli linux,cma-default; 128*868ced4dSStefano Radaelli reusable; 129*868ced4dSStefano Radaelli }; 130*868ced4dSStefano Radaelli }; 131*868ced4dSStefano Radaelli 132*868ced4dSStefano Radaelli sound-wm8904 { 133*868ced4dSStefano Radaelli compatible = "simple-audio-card"; 134*868ced4dSStefano Radaelli simple-audio-card,bitclock-master = <&codec_dai>; 135*868ced4dSStefano Radaelli simple-audio-card,format = "i2s"; 136*868ced4dSStefano Radaelli simple-audio-card,frame-master = <&codec_dai>; 137*868ced4dSStefano Radaelli simple-audio-card,mclk-fs = <256>; 138*868ced4dSStefano Radaelli simple-audio-card,name = "wm8904-audio"; 139*868ced4dSStefano Radaelli simple-audio-card,routing = 140*868ced4dSStefano Radaelli "Headphone Jack", "HPOUTL", 141*868ced4dSStefano Radaelli "Headphone Jack", "HPOUTR", 142*868ced4dSStefano Radaelli "IN2L", "Line In Jack", 143*868ced4dSStefano Radaelli "IN2R", "Line In Jack", 144*868ced4dSStefano Radaelli "IN1L", "Microphone Jack", 145*868ced4dSStefano Radaelli "IN1R", "Microphone Jack"; 146*868ced4dSStefano Radaelli simple-audio-card,widgets = 147*868ced4dSStefano Radaelli "Microphone", "Microphone Jack", 148*868ced4dSStefano Radaelli "Headphone", "Headphone Jack", 149*868ced4dSStefano Radaelli "Line", "Line In Jack"; 150*868ced4dSStefano Radaelli 151*868ced4dSStefano Radaelli codec_dai: simple-audio-card,codec { 152*868ced4dSStefano Radaelli sound-dai = <&wm8904>; 153*868ced4dSStefano Radaelli }; 154*868ced4dSStefano Radaelli 155*868ced4dSStefano Radaelli simple-audio-card,cpu { 156*868ced4dSStefano Radaelli sound-dai = <&esai0>; 157*868ced4dSStefano Radaelli }; 158*868ced4dSStefano Radaelli }; 159*868ced4dSStefano Radaelli}; 160*868ced4dSStefano Radaelli 161*868ced4dSStefano Radaelli&acm { 162*868ced4dSStefano Radaelli status = "okay"; 163*868ced4dSStefano Radaelli}; 164*868ced4dSStefano Radaelli 165*868ced4dSStefano Radaelli&asrc0 { 166*868ced4dSStefano Radaelli fsl,asrc-rate = <48000>; 167*868ced4dSStefano Radaelli status = "okay"; 168*868ced4dSStefano Radaelli}; 169*868ced4dSStefano Radaelli 170*868ced4dSStefano Radaelli&asrc1 { 171*868ced4dSStefano Radaelli fsl,asrc-rate = <48000>; 172*868ced4dSStefano Radaelli status = "okay"; 173*868ced4dSStefano Radaelli}; 174*868ced4dSStefano Radaelli 175*868ced4dSStefano Radaelli&cm41_intmux { 176*868ced4dSStefano Radaelli status = "okay"; 177*868ced4dSStefano Radaelli}; 178*868ced4dSStefano Radaelli 179*868ced4dSStefano Radaelli&esai0 { 180*868ced4dSStefano Radaelli pinctrl-names = "default"; 181*868ced4dSStefano Radaelli pinctrl-0 = <&pinctrl_esai0>; 182*868ced4dSStefano Radaelli assigned-clocks = <&acm IMX_ADMA_ACM_ESAI0_MCLK_SEL>, 183*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, 184*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, 185*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, 186*868ced4dSStefano Radaelli <&esai0_lpcg IMX_LPCG_CLK_4>; 187*868ced4dSStefano Radaelli assigned-clock-parents = <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>; 188*868ced4dSStefano Radaelli assigned-clock-rates = <0>, <786432000>, <49152000>, <12288000>, <49152000>; 189*868ced4dSStefano Radaelli #sound-dai-cells = <0>; 190*868ced4dSStefano Radaelli status = "okay"; 191*868ced4dSStefano Radaelli}; 192*868ced4dSStefano Radaelli 193*868ced4dSStefano Radaelli&fec1 { 194*868ced4dSStefano Radaelli pinctrl-names = "default"; 195*868ced4dSStefano Radaelli pinctrl-0 = <&pinctrl_fec1>; 196*868ced4dSStefano Radaelli /* 197*868ced4dSStefano Radaelli * The required RGMII TX and RX 2ns delays are implemented directly 198*868ced4dSStefano Radaelli * in hardware via passive delay elements on the SOM PCB. 199*868ced4dSStefano Radaelli * No delay configuration is needed in software via PHY driver. 200*868ced4dSStefano Radaelli */ 201*868ced4dSStefano Radaelli phy-mode = "rgmii"; 202*868ced4dSStefano Radaelli phy-handle = <ðphy0>; 203*868ced4dSStefano Radaelli status = "okay"; 204*868ced4dSStefano Radaelli 205*868ced4dSStefano Radaelli mdio { 206*868ced4dSStefano Radaelli #address-cells = <1>; 207*868ced4dSStefano Radaelli #size-cells = <0>; 208*868ced4dSStefano Radaelli 209*868ced4dSStefano Radaelli ethphy0: ethernet-phy@4 { 210*868ced4dSStefano Radaelli compatible = "ethernet-phy-ieee802.3-c22"; 211*868ced4dSStefano Radaelli reg = <4>; 212*868ced4dSStefano Radaelli reset-gpios = <&lsio_gpio2 28 GPIO_ACTIVE_LOW>; 213*868ced4dSStefano Radaelli reset-assert-us = <10000>; 214*868ced4dSStefano Radaelli reset-deassert-us = <20000>; 215*868ced4dSStefano Radaelli vddio-supply = <®_phy_vddio>; 216*868ced4dSStefano Radaelli }; 217*868ced4dSStefano Radaelli }; 218*868ced4dSStefano Radaelli}; 219*868ced4dSStefano Radaelli 220*868ced4dSStefano Radaelli&gpio0_mipi_csi0 { 221*868ced4dSStefano Radaelli status = "disabled"; 222*868ced4dSStefano Radaelli}; 223*868ced4dSStefano Radaelli 224*868ced4dSStefano Radaelli&gpio0_mipi_csi1 { 225*868ced4dSStefano Radaelli status = "disabled"; 226*868ced4dSStefano Radaelli}; 227*868ced4dSStefano Radaelli 228*868ced4dSStefano Radaelli&i2c0 { 229*868ced4dSStefano Radaelli clock-frequency = <100000>; 230*868ced4dSStefano Radaelli pinctrl-names = "default"; 231*868ced4dSStefano Radaelli pinctrl-0 = <&pinctrl_i2c0>; 232*868ced4dSStefano Radaelli status = "okay"; 233*868ced4dSStefano Radaelli 234*868ced4dSStefano Radaelli wm8904: codec@1a { 235*868ced4dSStefano Radaelli compatible = "wlf,wm8904"; 236*868ced4dSStefano Radaelli reg = <0x1a>; 237*868ced4dSStefano Radaelli #sound-dai-cells = <0>; 238*868ced4dSStefano Radaelli clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>; 239*868ced4dSStefano Radaelli clock-names = "mclk"; 240*868ced4dSStefano Radaelli assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, 241*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, 242*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, 243*868ced4dSStefano Radaelli <&mclkout0_lpcg IMX_LPCG_CLK_0>; 244*868ced4dSStefano Radaelli assigned-clock-rates = <786432000>, <49152000>, <12288000>, <12288000>; 245*868ced4dSStefano Radaelli AVDD-supply = <®_audio_supply>; 246*868ced4dSStefano Radaelli CPVDD-supply = <®_audio_supply>; 247*868ced4dSStefano Radaelli DBVDD-supply = <®_audio_supply>; 248*868ced4dSStefano Radaelli DCVDD-supply = <®_audio_supply>; 249*868ced4dSStefano Radaelli MICVDD-supply = <®_audio_supply>; 250*868ced4dSStefano Radaelli wlf,drc-cfg-names = "default", "peaklimiter", "tradition", 251*868ced4dSStefano Radaelli "soft", "music"; 252*868ced4dSStefano Radaelli /* 253*868ced4dSStefano Radaelli * Config registers per name, respectively: 254*868ced4dSStefano Radaelli * KNEE_IP = 0, KNEE_OP = 0, HI_COMP = 1, LO_COMP = 1 255*868ced4dSStefano Radaelli * KNEE_IP = -24, KNEE_OP = -6, HI_COMP = 1/4, LO_COMP = 1 256*868ced4dSStefano Radaelli * KNEE_IP = -42, KNEE_OP = -3, HI_COMP = 0, LO_COMP = 1 257*868ced4dSStefano Radaelli * KNEE_IP = -45, KNEE_OP = -9, HI_COMP = 1/8, LO_COMP = 1 258*868ced4dSStefano Radaelli * KNEE_IP = -30, KNEE_OP = -10.5, HI_COMP = 1/4, LO_COMP = 1 259*868ced4dSStefano Radaelli */ 260*868ced4dSStefano Radaelli wlf,drc-cfg-regs = /bits/ 16 <0x01af 0x3248 0x0000 0x0000>, 261*868ced4dSStefano Radaelli /bits/ 16 <0x04af 0x324b 0x0010 0x0408>, 262*868ced4dSStefano Radaelli /bits/ 16 <0x04af 0x324b 0x0028 0x0704>, 263*868ced4dSStefano Radaelli /bits/ 16 <0x04af 0x324b 0x0018 0x078c>, 264*868ced4dSStefano Radaelli /bits/ 16 <0x04af 0x324b 0x0010 0x050e>; 265*868ced4dSStefano Radaelli /* GPIO1 = DMIC_CLK, don't touch others */ 266*868ced4dSStefano Radaelli wlf,gpio-cfg = <0x0018>, <0xffff>, <0xffff>, <0xffff>; 267*868ced4dSStefano Radaelli }; 268*868ced4dSStefano Radaelli}; 269*868ced4dSStefano Radaelli 270*868ced4dSStefano Radaelli/* Bluetooth */ 271*868ced4dSStefano Radaelli&lpuart1 { 272*868ced4dSStefano Radaelli pinctrl-names = "default"; 273*868ced4dSStefano Radaelli pinctrl-0 = <&pinctrl_lpuart1>; 274*868ced4dSStefano Radaelli uart-has-rtscts; 275*868ced4dSStefano Radaelli status = "okay"; 276*868ced4dSStefano Radaelli}; 277*868ced4dSStefano Radaelli 278*868ced4dSStefano Radaelli&mu_m0{ 279*868ced4dSStefano Radaelli status = "okay"; 280*868ced4dSStefano Radaelli}; 281*868ced4dSStefano Radaelli 282*868ced4dSStefano Radaelli&mu1_m0{ 283*868ced4dSStefano Radaelli status = "okay"; 284*868ced4dSStefano Radaelli}; 285*868ced4dSStefano Radaelli 286*868ced4dSStefano Radaelli&mu2_m0{ 287*868ced4dSStefano Radaelli status = "okay"; 288*868ced4dSStefano Radaelli}; 289*868ced4dSStefano Radaelli 290*868ced4dSStefano Radaelli&rtc { 291*868ced4dSStefano Radaelli status = "disabled"; 292*868ced4dSStefano Radaelli}; 293*868ced4dSStefano Radaelli 294*868ced4dSStefano Radaelli&sai6 { 295*868ced4dSStefano Radaelli assigned-clocks = <&acm IMX_ADMA_ACM_SAI6_MCLK_SEL>, 296*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>, 297*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>, 298*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>, 299*868ced4dSStefano Radaelli <&sai6_lpcg IMX_LPCG_CLK_4>; 300*868ced4dSStefano Radaelli assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>; 301*868ced4dSStefano Radaelli assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>; 302*868ced4dSStefano Radaelli fsl,sai-asynchronous; 303*868ced4dSStefano Radaelli status = "okay"; 304*868ced4dSStefano Radaelli}; 305*868ced4dSStefano Radaelli 306*868ced4dSStefano Radaelli&sai7 { 307*868ced4dSStefano Radaelli assigned-clocks = <&acm IMX_ADMA_ACM_SAI7_MCLK_SEL>, 308*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>, 309*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>, 310*868ced4dSStefano Radaelli <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>, 311*868ced4dSStefano Radaelli <&sai7_lpcg IMX_LPCG_CLK_4>; 312*868ced4dSStefano Radaelli assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>; 313*868ced4dSStefano Radaelli assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>; 314*868ced4dSStefano Radaelli fsl,sai-asynchronous; 315*868ced4dSStefano Radaelli status = "okay"; 316*868ced4dSStefano Radaelli}; 317*868ced4dSStefano Radaelli 318*868ced4dSStefano Radaelli&thermal_zones { 319*868ced4dSStefano Radaelli pmic-thermal { 320*868ced4dSStefano Radaelli polling-delay-passive = <250>; 321*868ced4dSStefano Radaelli polling-delay = <2000>; 322*868ced4dSStefano Radaelli thermal-sensors = <&tsens IMX_SC_R_PMIC_0>; 323*868ced4dSStefano Radaelli trips { 324*868ced4dSStefano Radaelli pmic_alert0: trip0 { 325*868ced4dSStefano Radaelli temperature = <110000>; 326*868ced4dSStefano Radaelli hysteresis = <2000>; 327*868ced4dSStefano Radaelli type = "passive"; 328*868ced4dSStefano Radaelli }; 329*868ced4dSStefano Radaelli pmic_crit0: trip1 { 330*868ced4dSStefano Radaelli temperature = <125000>; 331*868ced4dSStefano Radaelli hysteresis = <2000>; 332*868ced4dSStefano Radaelli type = "critical"; 333*868ced4dSStefano Radaelli }; 334*868ced4dSStefano Radaelli }; 335*868ced4dSStefano Radaelli cooling-maps { 336*868ced4dSStefano Radaelli map0 { 337*868ced4dSStefano Radaelli trip = <&pmic_alert0>; 338*868ced4dSStefano Radaelli cooling-device = <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 339*868ced4dSStefano Radaelli <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 340*868ced4dSStefano Radaelli <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 341*868ced4dSStefano Radaelli <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 342*868ced4dSStefano Radaelli }; 343*868ced4dSStefano Radaelli }; 344*868ced4dSStefano Radaelli }; 345*868ced4dSStefano Radaelli}; 346*868ced4dSStefano Radaelli 347*868ced4dSStefano Radaelli/* eMMC */ 348*868ced4dSStefano Radaelli&usdhc1 { 349*868ced4dSStefano Radaelli pinctrl-names = "default", "state_100mhz", "state_200mhz"; 350*868ced4dSStefano Radaelli pinctrl-0 = <&pinctrl_usdhc1>; 351*868ced4dSStefano Radaelli pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 352*868ced4dSStefano Radaelli pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 353*868ced4dSStefano Radaelli bus-width = <8>; 354*868ced4dSStefano Radaelli non-removable; 355*868ced4dSStefano Radaelli status = "okay"; 356*868ced4dSStefano Radaelli}; 357*868ced4dSStefano Radaelli 358*868ced4dSStefano Radaelli/* WIFI */ 359*868ced4dSStefano Radaelli&usdhc3 { 360*868ced4dSStefano Radaelli #address-cells = <1>; 361*868ced4dSStefano Radaelli #size-cells = <0>; 362*868ced4dSStefano Radaelli pinctrl-names = "default", "state_100mhz", "state_200mhz"; 363*868ced4dSStefano Radaelli pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_wifi>; 364*868ced4dSStefano Radaelli pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_wifi>; 365*868ced4dSStefano Radaelli pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_wifi>; 366*868ced4dSStefano Radaelli bus-width = <4>; 367*868ced4dSStefano Radaelli non-removable; 368*868ced4dSStefano Radaelli status = "okay"; 369*868ced4dSStefano Radaelli 370*868ced4dSStefano Radaelli brcmf: wifi@1 { 371*868ced4dSStefano Radaelli compatible = "brcm,bcm4329-fmac"; 372*868ced4dSStefano Radaelli reg = <1>; 373*868ced4dSStefano Radaelli }; 374*868ced4dSStefano Radaelli}; 375*868ced4dSStefano Radaelli 376*868ced4dSStefano Radaelli&iomuxc { 377*868ced4dSStefano Radaelli pinctrl-names = "default"; 378*868ced4dSStefano Radaelli pinctrl-0 = <&pinctrl_hog>; 379*868ced4dSStefano Radaelli 380*868ced4dSStefano Radaelli pinctrl_esai0: esai0grp { 381*868ced4dSStefano Radaelli fsl,pins = < 382*868ced4dSStefano Radaelli IMX8QM_ESAI0_FSR_AUD_ESAI0_FSR 0xc6000040 383*868ced4dSStefano Radaelli IMX8QM_ESAI0_FST_AUD_ESAI0_FST 0xc6000040 384*868ced4dSStefano Radaelli IMX8QM_ESAI0_SCKR_AUD_ESAI0_SCKR 0xc6000040 385*868ced4dSStefano Radaelli IMX8QM_ESAI0_SCKT_AUD_ESAI0_SCKT 0xc6000040 386*868ced4dSStefano Radaelli IMX8QM_ESAI0_TX0_AUD_ESAI0_TX0 0xc6000040 387*868ced4dSStefano Radaelli IMX8QM_ESAI0_TX5_RX0_AUD_ESAI0_TX5_RX0 0xc6000040 388*868ced4dSStefano Radaelli IMX8QM_MCLK_OUT0_AUD_ACM_MCLK_OUT0 0xc600004c 389*868ced4dSStefano Radaelli >; 390*868ced4dSStefano Radaelli }; 391*868ced4dSStefano Radaelli 392*868ced4dSStefano Radaelli pinctrl_fec1: fec1grp { 393*868ced4dSStefano Radaelli fsl,pins = < 394*868ced4dSStefano Radaelli IMX8QM_ENET0_MDC_CONN_ENET0_MDC 0x06000048 395*868ced4dSStefano Radaelli IMX8QM_ENET0_MDIO_CONN_ENET0_MDIO 0x06000048 396*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL 0x06000048 397*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC 0x06000048 398*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0 0x06000048 399*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1 0x06000048 400*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2 0x06000048 401*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3 0x06000048 402*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC 0x06000048 403*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL 0x06000048 404*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0 0x06000048 405*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1 0x06000048 406*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2 0x06000048 407*868ced4dSStefano Radaelli IMX8QM_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3 0x06000048 408*868ced4dSStefano Radaelli IMX8QM_ESAI0_TX2_RX3_LSIO_GPIO2_IO28 0x06000028 409*868ced4dSStefano Radaelli >; 410*868ced4dSStefano Radaelli }; 411*868ced4dSStefano Radaelli 412*868ced4dSStefano Radaelli pinctrl_hog: hoggrp { 413*868ced4dSStefano Radaelli fsl,pins = < 414*868ced4dSStefano Radaelli IMX8QM_ESAI1_FSR_LSIO_GPIO2_IO04 0x00000041 415*868ced4dSStefano Radaelli IMX8QM_ESAI1_FST_LSIO_GPIO2_IO05 0x00000041 416*868ced4dSStefano Radaelli IMX8QM_ESAI1_SCKR_LSIO_GPIO2_IO06 0x00000041 417*868ced4dSStefano Radaelli IMX8QM_ESAI1_SCKT_LSIO_GPIO2_IO07 0x00000041 418*868ced4dSStefano Radaelli IMX8QM_SPDIF0_EXT_CLK_LSIO_GPIO2_IO16 0x00000041 419*868ced4dSStefano Radaelli >; 420*868ced4dSStefano Radaelli }; 421*868ced4dSStefano Radaelli 422*868ced4dSStefano Radaelli pinctrl_i2c0: i2c0grp { 423*868ced4dSStefano Radaelli fsl,pins = < 424*868ced4dSStefano Radaelli IMX8QM_HDMI_TX0_TS_SCL_DMA_I2C0_SCL 0xc6000020 425*868ced4dSStefano Radaelli IMX8QM_HDMI_TX0_TS_SDA_DMA_I2C0_SDA 0xc6000020 426*868ced4dSStefano Radaelli >; 427*868ced4dSStefano Radaelli }; 428*868ced4dSStefano Radaelli 429*868ced4dSStefano Radaelli pinctrl_lpuart1: lpuart1grp { 430*868ced4dSStefano Radaelli fsl,pins = < 431*868ced4dSStefano Radaelli IMX8QM_UART1_RX_DMA_UART1_RX 0x06000020 432*868ced4dSStefano Radaelli IMX8QM_UART1_TX_DMA_UART1_TX 0x06000020 433*868ced4dSStefano Radaelli IMX8QM_UART1_CTS_B_DMA_UART1_RTS_B 0x06000020 434*868ced4dSStefano Radaelli IMX8QM_UART1_RTS_B_DMA_UART1_CTS_B 0x06000020 435*868ced4dSStefano Radaelli >; 436*868ced4dSStefano Radaelli }; 437*868ced4dSStefano Radaelli 438*868ced4dSStefano Radaelli pinctrl_usdhc1: usdhc1grp { 439*868ced4dSStefano Radaelli fsl,pins = < 440*868ced4dSStefano Radaelli IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041 441*868ced4dSStefano Radaelli IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD 0x00000021 442*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000021 443*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000021 444*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000021 445*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000021 446*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000021 447*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000021 448*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000021 449*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000021 450*868ced4dSStefano Radaelli IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE 0x06000041 451*868ced4dSStefano Radaelli IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000021 452*868ced4dSStefano Radaelli >; 453*868ced4dSStefano Radaelli }; 454*868ced4dSStefano Radaelli 455*868ced4dSStefano Radaelli pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 456*868ced4dSStefano Radaelli fsl,pins = < 457*868ced4dSStefano Radaelli IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK 0x06000040 458*868ced4dSStefano Radaelli IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD 0x00000020 459*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000020 460*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000020 461*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000020 462*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000020 463*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000020 464*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000020 465*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000020 466*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000020 467*868ced4dSStefano Radaelli IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE 0x06000040 468*868ced4dSStefano Radaelli IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000020 469*868ced4dSStefano Radaelli >; 470*868ced4dSStefano Radaelli }; 471*868ced4dSStefano Radaelli 472*868ced4dSStefano Radaelli pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 473*868ced4dSStefano Radaelli fsl,pins = < 474*868ced4dSStefano Radaelli IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK 0x06000040 475*868ced4dSStefano Radaelli IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD 0x00000020 476*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000020 477*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000020 478*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000020 479*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000020 480*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000020 481*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000020 482*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000020 483*868ced4dSStefano Radaelli IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000020 484*868ced4dSStefano Radaelli IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE 0x06000040 485*868ced4dSStefano Radaelli IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000020 486*868ced4dSStefano Radaelli >; 487*868ced4dSStefano Radaelli }; 488*868ced4dSStefano Radaelli 489*868ced4dSStefano Radaelli pinctrl_usdhc3: usdhc3grp { 490*868ced4dSStefano Radaelli fsl,pins = < 491*868ced4dSStefano Radaelli IMX8QM_USDHC2_CLK_CONN_USDHC2_CLK 0x06000041 492*868ced4dSStefano Radaelli IMX8QM_USDHC2_CMD_CONN_USDHC2_CMD 0x00000021 493*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA0_CONN_USDHC2_DATA0 0x00000021 494*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA1_CONN_USDHC2_DATA1 0x00000021 495*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA2_CONN_USDHC2_DATA2 0x00000021 496*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA3_CONN_USDHC2_DATA3 0x00000021 497*868ced4dSStefano Radaelli >; 498*868ced4dSStefano Radaelli }; 499*868ced4dSStefano Radaelli 500*868ced4dSStefano Radaelli pinctrl_usdhc3_100mhz: usdhc3100mhzgrp { 501*868ced4dSStefano Radaelli fsl,pins = < 502*868ced4dSStefano Radaelli IMX8QM_USDHC2_CLK_CONN_USDHC2_CLK 0x06000040 503*868ced4dSStefano Radaelli IMX8QM_USDHC2_CMD_CONN_USDHC2_CMD 0x00000020 504*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA0_CONN_USDHC2_DATA0 0x00000020 505*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA1_CONN_USDHC2_DATA1 0x00000020 506*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA2_CONN_USDHC2_DATA2 0x00000020 507*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA3_CONN_USDHC2_DATA3 0x00000020 508*868ced4dSStefano Radaelli >; 509*868ced4dSStefano Radaelli }; 510*868ced4dSStefano Radaelli 511*868ced4dSStefano Radaelli pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { 512*868ced4dSStefano Radaelli fsl,pins = < 513*868ced4dSStefano Radaelli IMX8QM_USDHC2_CLK_CONN_USDHC2_CLK 0x06000040 514*868ced4dSStefano Radaelli IMX8QM_USDHC2_CMD_CONN_USDHC2_CMD 0x00000020 515*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA0_CONN_USDHC2_DATA0 0x00000020 516*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA1_CONN_USDHC2_DATA1 0x00000020 517*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA2_CONN_USDHC2_DATA2 0x00000020 518*868ced4dSStefano Radaelli IMX8QM_USDHC2_DATA3_CONN_USDHC2_DATA3 0x00000020 519*868ced4dSStefano Radaelli >; 520*868ced4dSStefano Radaelli }; 521*868ced4dSStefano Radaelli 522*868ced4dSStefano Radaelli pinctrl_wifi: wifigrp { 523*868ced4dSStefano Radaelli fsl,pins = < 524*868ced4dSStefano Radaelli /* GPIOs used by user space WiFi init */ 525*868ced4dSStefano Radaelli IMX8QM_SCU_GPIO0_07_SCU_DSC_RTC_CLOCK_OUTPUT_32K 0xc600004c 526*868ced4dSStefano Radaelli IMX8QM_SCU_GPIO0_03_LSIO_GPIO0_IO31 0x06000021 527*868ced4dSStefano Radaelli IMX8QM_SCU_GPIO0_02_LSIO_GPIO0_IO30 0x00000021 528*868ced4dSStefano Radaelli IMX8QM_QSPI1A_DATA0_LSIO_GPIO4_IO26 0x00000021 529*868ced4dSStefano Radaelli >; 530*868ced4dSStefano Radaelli }; 531*868ced4dSStefano Radaelli}; 532