1*a009c0c6SJosua Mayer// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*a009c0c6SJosua Mayer/* 3*a009c0c6SJosua Mayer * Copyright 2025 Josua Mayer <josua@solid-run.com> 4*a009c0c6SJosua Mayer */ 5*a009c0c6SJosua Mayer 6*a009c0c6SJosua Mayer#include "imx8mp.dtsi" 7*a009c0c6SJosua Mayer 8*a009c0c6SJosua Mayer/ { 9*a009c0c6SJosua Mayer model = "SolidRun i.MX8MP SoM"; 10*a009c0c6SJosua Mayer compatible = "solidrun,imx8mp-sr-som", "fsl,imx8mp"; 11*a009c0c6SJosua Mayer 12*a009c0c6SJosua Mayer chosen { 13*a009c0c6SJosua Mayer bootargs = "earlycon=ec_imx6q,0x30890000,115200"; 14*a009c0c6SJosua Mayer stdout-path = &uart2; 15*a009c0c6SJosua Mayer }; 16*a009c0c6SJosua Mayer 17*a009c0c6SJosua Mayer memory@40000000 { 18*a009c0c6SJosua Mayer device_type = "memory"; 19*a009c0c6SJosua Mayer reg = <0x0 0x40000000 0 0xc0000000>, 20*a009c0c6SJosua Mayer <0x1 0x00000000 0 0xc0000000>; 21*a009c0c6SJosua Mayer }; 22*a009c0c6SJosua Mayer 23*a009c0c6SJosua Mayer usdhc1_pwrseq: usdhc1-pwrseq { 24*a009c0c6SJosua Mayer compatible = "mmc-pwrseq-simple"; 25*a009c0c6SJosua Mayer reset-gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; 26*a009c0c6SJosua Mayer }; 27*a009c0c6SJosua Mayer 28*a009c0c6SJosua Mayer v_1_8: regulator-1-8 { 29*a009c0c6SJosua Mayer compatible = "regulator-fixed"; 30*a009c0c6SJosua Mayer regulator-name = "1v8"; 31*a009c0c6SJosua Mayer regulator-min-microvolt = <1800000>; 32*a009c0c6SJosua Mayer regulator-max-microvolt = <1800000>; 33*a009c0c6SJosua Mayer }; 34*a009c0c6SJosua Mayer 35*a009c0c6SJosua Mayer v_3_3: regulator-3-3 { 36*a009c0c6SJosua Mayer compatible = "regulator-fixed"; 37*a009c0c6SJosua Mayer regulator-name = "3v3"; 38*a009c0c6SJosua Mayer regulator-min-microvolt = <3300000>; 39*a009c0c6SJosua Mayer regulator-max-microvolt = <3300000>; 40*a009c0c6SJosua Mayer }; 41*a009c0c6SJosua Mayer}; 42*a009c0c6SJosua Mayer 43*a009c0c6SJosua Mayer/* 44*a009c0c6SJosua Mayer * Reserve all physical memory from within the first 1GB of DDR address 45*a009c0c6SJosua Mayer * space to avoid panic on low memory systems. 46*a009c0c6SJosua Mayer */ 47*a009c0c6SJosua Mayer&dsp_reserved { 48*a009c0c6SJosua Mayer reg = <0 0x6f000000 0 0x1000000>; 49*a009c0c6SJosua Mayer}; 50*a009c0c6SJosua Mayer 51*a009c0c6SJosua Mayer&eqos { 52*a009c0c6SJosua Mayer pinctrl-names = "default"; 53*a009c0c6SJosua Mayer pinctrl-0 = <&eqos_pins>, <&phy0_pins>; 54*a009c0c6SJosua Mayer phy-mode = "rgmii-id"; 55*a009c0c6SJosua Mayer phy = <&phy0>; 56*a009c0c6SJosua Mayer snps,force_thresh_dma_mode; 57*a009c0c6SJosua Mayer snps,mtl-tx-config = <&mtl_tx_setup>; 58*a009c0c6SJosua Mayer snps,mtl-rx-config = <&mtl_rx_setup>; 59*a009c0c6SJosua Mayer status = "okay"; 60*a009c0c6SJosua Mayer 61*a009c0c6SJosua Mayer mdio { 62*a009c0c6SJosua Mayer compatible = "snps,dwmac-mdio"; 63*a009c0c6SJosua Mayer #address-cells = <1>; 64*a009c0c6SJosua Mayer #size-cells = <0>; 65*a009c0c6SJosua Mayer 66*a009c0c6SJosua Mayer phy0: ethernet-phy@0 { 67*a009c0c6SJosua Mayer compatible = "ethernet-phy-ieee802.3-c22"; 68*a009c0c6SJosua Mayer reg = <0>; 69*a009c0c6SJosua Mayer reset-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>; 70*a009c0c6SJosua Mayer interrupt-parent = <&gpio4>; 71*a009c0c6SJosua Mayer interrupts = <18 IRQ_TYPE_LEVEL_LOW>; 72*a009c0c6SJosua Mayer }; 73*a009c0c6SJosua Mayer }; 74*a009c0c6SJosua Mayer 75*a009c0c6SJosua Mayer mtl_tx_setup: tx-queues-config { 76*a009c0c6SJosua Mayer snps,tx-queues-to-use = <5>; 77*a009c0c6SJosua Mayer 78*a009c0c6SJosua Mayer queue0 { 79*a009c0c6SJosua Mayer snps,dcb-algorithm; 80*a009c0c6SJosua Mayer snps,priority = <0x1>; 81*a009c0c6SJosua Mayer }; 82*a009c0c6SJosua Mayer 83*a009c0c6SJosua Mayer queue1 { 84*a009c0c6SJosua Mayer snps,dcb-algorithm; 85*a009c0c6SJosua Mayer snps,priority = <0x2>; 86*a009c0c6SJosua Mayer }; 87*a009c0c6SJosua Mayer 88*a009c0c6SJosua Mayer queue2 { 89*a009c0c6SJosua Mayer snps,dcb-algorithm; 90*a009c0c6SJosua Mayer snps,priority = <0x4>; 91*a009c0c6SJosua Mayer }; 92*a009c0c6SJosua Mayer 93*a009c0c6SJosua Mayer queue3 { 94*a009c0c6SJosua Mayer snps,dcb-algorithm; 95*a009c0c6SJosua Mayer snps,priority = <0x8>; 96*a009c0c6SJosua Mayer }; 97*a009c0c6SJosua Mayer 98*a009c0c6SJosua Mayer queue4 { 99*a009c0c6SJosua Mayer snps,dcb-algorithm; 100*a009c0c6SJosua Mayer snps,priority = <0xf0>; 101*a009c0c6SJosua Mayer }; 102*a009c0c6SJosua Mayer }; 103*a009c0c6SJosua Mayer 104*a009c0c6SJosua Mayer mtl_rx_setup: rx-queues-config { 105*a009c0c6SJosua Mayer snps,rx-queues-to-use = <5>; 106*a009c0c6SJosua Mayer snps,rx-sched-sp; 107*a009c0c6SJosua Mayer 108*a009c0c6SJosua Mayer queue0 { 109*a009c0c6SJosua Mayer snps,dcb-algorithm; 110*a009c0c6SJosua Mayer snps,priority = <0x1>; 111*a009c0c6SJosua Mayer snps,map-to-dma-channel = <0>; 112*a009c0c6SJosua Mayer }; 113*a009c0c6SJosua Mayer 114*a009c0c6SJosua Mayer queue1 { 115*a009c0c6SJosua Mayer snps,dcb-algorithm; 116*a009c0c6SJosua Mayer snps,priority = <0x2>; 117*a009c0c6SJosua Mayer snps,map-to-dma-channel = <1>; 118*a009c0c6SJosua Mayer }; 119*a009c0c6SJosua Mayer 120*a009c0c6SJosua Mayer queue2 { 121*a009c0c6SJosua Mayer snps,dcb-algorithm; 122*a009c0c6SJosua Mayer snps,priority = <0x4>; 123*a009c0c6SJosua Mayer snps,map-to-dma-channel = <2>; 124*a009c0c6SJosua Mayer }; 125*a009c0c6SJosua Mayer 126*a009c0c6SJosua Mayer queue3 { 127*a009c0c6SJosua Mayer snps,dcb-algorithm; 128*a009c0c6SJosua Mayer snps,priority = <0x8>; 129*a009c0c6SJosua Mayer snps,map-to-dma-channel = <3>; 130*a009c0c6SJosua Mayer }; 131*a009c0c6SJosua Mayer 132*a009c0c6SJosua Mayer queue4 { 133*a009c0c6SJosua Mayer snps,dcb-algorithm; 134*a009c0c6SJosua Mayer snps,priority = <0xf0>; 135*a009c0c6SJosua Mayer snps,map-to-dma-channel = <4>; 136*a009c0c6SJosua Mayer }; 137*a009c0c6SJosua Mayer }; 138*a009c0c6SJosua Mayer}; 139*a009c0c6SJosua Mayer 140*a009c0c6SJosua Mayer&fec { 141*a009c0c6SJosua Mayer pinctrl-names = "default"; 142*a009c0c6SJosua Mayer pinctrl-0 = <&fec_pins>, <&phy1_pins>; 143*a009c0c6SJosua Mayer phy-mode = "rgmii-id"; 144*a009c0c6SJosua Mayer phy = <&phy1>; 145*a009c0c6SJosua Mayer fsl,magic-packet; 146*a009c0c6SJosua Mayer status = "okay"; 147*a009c0c6SJosua Mayer 148*a009c0c6SJosua Mayer mdio { 149*a009c0c6SJosua Mayer #address-cells = <1>; 150*a009c0c6SJosua Mayer #size-cells = <0>; 151*a009c0c6SJosua Mayer 152*a009c0c6SJosua Mayer phy1: ethernet-phy@1 { 153*a009c0c6SJosua Mayer compatible = "ethernet-phy-ieee802.3-c22"; 154*a009c0c6SJosua Mayer reg = <0x1>; 155*a009c0c6SJosua Mayer reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; 156*a009c0c6SJosua Mayer interrupt-parent = <&gpio4>; 157*a009c0c6SJosua Mayer interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 158*a009c0c6SJosua Mayer }; 159*a009c0c6SJosua Mayer }; 160*a009c0c6SJosua Mayer}; 161*a009c0c6SJosua Mayer 162*a009c0c6SJosua Mayer&i2c1 { 163*a009c0c6SJosua Mayer clock-frequency = <400000>; 164*a009c0c6SJosua Mayer pinctrl-names = "default", "gpio"; 165*a009c0c6SJosua Mayer pinctrl-0 = <&i2c1_pins>; 166*a009c0c6SJosua Mayer pinctrl-1 = <&i2c1_gpio_pins>; 167*a009c0c6SJosua Mayer scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 168*a009c0c6SJosua Mayer sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 169*a009c0c6SJosua Mayer status = "okay"; 170*a009c0c6SJosua Mayer 171*a009c0c6SJosua Mayer pmic: pmic@25 { 172*a009c0c6SJosua Mayer compatible = "nxp,pca9450c"; 173*a009c0c6SJosua Mayer reg = <0x25>; 174*a009c0c6SJosua Mayer pinctrl-0 = <&pmic_pins>; 175*a009c0c6SJosua Mayer pinctrl-names = "default"; 176*a009c0c6SJosua Mayer interrupt-parent = <&gpio1>; 177*a009c0c6SJosua Mayer interrupts = <3 GPIO_ACTIVE_LOW>; 178*a009c0c6SJosua Mayer nxp,i2c-lt-enable; 179*a009c0c6SJosua Mayer 180*a009c0c6SJosua Mayer regulators { 181*a009c0c6SJosua Mayer buck1: BUCK1 { 182*a009c0c6SJosua Mayer regulator-name = "BUCK1"; 183*a009c0c6SJosua Mayer regulator-min-microvolt = <600000>; 184*a009c0c6SJosua Mayer regulator-max-microvolt = <2187500>; 185*a009c0c6SJosua Mayer regulator-boot-on; 186*a009c0c6SJosua Mayer regulator-always-on; 187*a009c0c6SJosua Mayer regulator-ramp-delay = <3125>; 188*a009c0c6SJosua Mayer }; 189*a009c0c6SJosua Mayer 190*a009c0c6SJosua Mayer buck2: BUCK2 { 191*a009c0c6SJosua Mayer regulator-name = "BUCK2"; 192*a009c0c6SJosua Mayer regulator-min-microvolt = <600000>; 193*a009c0c6SJosua Mayer regulator-max-microvolt = <2187500>; 194*a009c0c6SJosua Mayer regulator-boot-on; 195*a009c0c6SJosua Mayer regulator-always-on; 196*a009c0c6SJosua Mayer regulator-ramp-delay = <3125>; 197*a009c0c6SJosua Mayer nxp,dvs-run-voltage = <950000>; 198*a009c0c6SJosua Mayer nxp,dvs-standby-voltage = <850000>; 199*a009c0c6SJosua Mayer }; 200*a009c0c6SJosua Mayer 201*a009c0c6SJosua Mayer buck4: BUCK4{ 202*a009c0c6SJosua Mayer regulator-name = "BUCK4"; 203*a009c0c6SJosua Mayer regulator-min-microvolt = <600000>; 204*a009c0c6SJosua Mayer regulator-max-microvolt = <3400000>; 205*a009c0c6SJosua Mayer regulator-boot-on; 206*a009c0c6SJosua Mayer regulator-always-on; 207*a009c0c6SJosua Mayer }; 208*a009c0c6SJosua Mayer 209*a009c0c6SJosua Mayer buck5: BUCK5{ 210*a009c0c6SJosua Mayer regulator-name = "BUCK5"; 211*a009c0c6SJosua Mayer regulator-min-microvolt = <600000>; 212*a009c0c6SJosua Mayer regulator-max-microvolt = <3400000>; 213*a009c0c6SJosua Mayer regulator-boot-on; 214*a009c0c6SJosua Mayer regulator-always-on; 215*a009c0c6SJosua Mayer }; 216*a009c0c6SJosua Mayer 217*a009c0c6SJosua Mayer buck6: BUCK6 { 218*a009c0c6SJosua Mayer regulator-name = "BUCK6"; 219*a009c0c6SJosua Mayer regulator-min-microvolt = <600000>; 220*a009c0c6SJosua Mayer regulator-max-microvolt = <3400000>; 221*a009c0c6SJosua Mayer regulator-boot-on; 222*a009c0c6SJosua Mayer regulator-always-on; 223*a009c0c6SJosua Mayer }; 224*a009c0c6SJosua Mayer 225*a009c0c6SJosua Mayer ldo1: LDO1 { 226*a009c0c6SJosua Mayer regulator-name = "LDO1"; 227*a009c0c6SJosua Mayer regulator-min-microvolt = <1600000>; 228*a009c0c6SJosua Mayer regulator-max-microvolt = <3300000>; 229*a009c0c6SJosua Mayer regulator-boot-on; 230*a009c0c6SJosua Mayer regulator-always-on; 231*a009c0c6SJosua Mayer }; 232*a009c0c6SJosua Mayer 233*a009c0c6SJosua Mayer ldo2: LDO2 { 234*a009c0c6SJosua Mayer regulator-name = "LDO2"; 235*a009c0c6SJosua Mayer regulator-min-microvolt = <800000>; 236*a009c0c6SJosua Mayer regulator-max-microvolt = <1150000>; 237*a009c0c6SJosua Mayer regulator-boot-on; 238*a009c0c6SJosua Mayer regulator-always-on; 239*a009c0c6SJosua Mayer }; 240*a009c0c6SJosua Mayer 241*a009c0c6SJosua Mayer ldo3: LDO3 { 242*a009c0c6SJosua Mayer regulator-name = "LDO3"; 243*a009c0c6SJosua Mayer regulator-min-microvolt = <800000>; 244*a009c0c6SJosua Mayer regulator-max-microvolt = <3300000>; 245*a009c0c6SJosua Mayer regulator-boot-on; 246*a009c0c6SJosua Mayer regulator-always-on; 247*a009c0c6SJosua Mayer }; 248*a009c0c6SJosua Mayer 249*a009c0c6SJosua Mayer ldo4: LDO4 { 250*a009c0c6SJosua Mayer regulator-name = "LDO4"; 251*a009c0c6SJosua Mayer regulator-min-microvolt = <800000>; 252*a009c0c6SJosua Mayer regulator-max-microvolt = <3300000>; 253*a009c0c6SJosua Mayer regulator-boot-on; 254*a009c0c6SJosua Mayer regulator-always-on; 255*a009c0c6SJosua Mayer }; 256*a009c0c6SJosua Mayer 257*a009c0c6SJosua Mayer ldo5: LDO5 { 258*a009c0c6SJosua Mayer regulator-name = "LDO5"; 259*a009c0c6SJosua Mayer regulator-min-microvolt = <1800000>; 260*a009c0c6SJosua Mayer regulator-max-microvolt = <3300000>; 261*a009c0c6SJosua Mayer regulator-boot-on; 262*a009c0c6SJosua Mayer regulator-always-on; 263*a009c0c6SJosua Mayer }; 264*a009c0c6SJosua Mayer }; 265*a009c0c6SJosua Mayer }; 266*a009c0c6SJosua Mayer 267*a009c0c6SJosua Mayer som_eeprom: eeprom@50{ 268*a009c0c6SJosua Mayer compatible = "st,24c01", "atmel,24c01"; 269*a009c0c6SJosua Mayer reg = <0x50>; 270*a009c0c6SJosua Mayer pagesize = <16>; 271*a009c0c6SJosua Mayer }; 272*a009c0c6SJosua Mayer}; 273*a009c0c6SJosua Mayer 274*a009c0c6SJosua Mayer&i2c2 { 275*a009c0c6SJosua Mayer clock-frequency = <100000>; 276*a009c0c6SJosua Mayer pinctrl-names = "default", "gpio"; 277*a009c0c6SJosua Mayer pinctrl-0 = <&i2c2_pins>; 278*a009c0c6SJosua Mayer pinctrl-1 = <&i2c2_gpio_pins>; 279*a009c0c6SJosua Mayer scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 280*a009c0c6SJosua Mayer sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 281*a009c0c6SJosua Mayer status = "okay"; 282*a009c0c6SJosua Mayer}; 283*a009c0c6SJosua Mayer 284*a009c0c6SJosua Mayer&i2c3 { 285*a009c0c6SJosua Mayer clock-frequency = <100000>; 286*a009c0c6SJosua Mayer pinctrl-names = "default", "gpio"; 287*a009c0c6SJosua Mayer pinctrl-0 = <&i2c3_pins>; 288*a009c0c6SJosua Mayer pinctrl-1 = <&i2c3_gpio_pins>; 289*a009c0c6SJosua Mayer scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 290*a009c0c6SJosua Mayer sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 291*a009c0c6SJosua Mayer status = "okay"; 292*a009c0c6SJosua Mayer}; 293*a009c0c6SJosua Mayer 294*a009c0c6SJosua Mayer&i2c4 { 295*a009c0c6SJosua Mayer /* routed to basler camera connector */ 296*a009c0c6SJosua Mayer clock-frequency = <100000>; 297*a009c0c6SJosua Mayer pinctrl-names = "default", "gpio"; 298*a009c0c6SJosua Mayer pinctrl-0 = <&i2c4_pins>; 299*a009c0c6SJosua Mayer pinctrl-1 = <&i2c4_gpio_pins>; 300*a009c0c6SJosua Mayer scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 301*a009c0c6SJosua Mayer sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 302*a009c0c6SJosua Mayer status = "okay"; 303*a009c0c6SJosua Mayer}; 304*a009c0c6SJosua Mayer 305*a009c0c6SJosua Mayer&iomuxc { 306*a009c0c6SJosua Mayer eqos_pins: pinctrl-eqos-grp { 307*a009c0c6SJosua Mayer fsl,pins = < 308*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x3 309*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x3 310*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x91 311*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x91 312*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x91 313*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x91 314*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x91 315*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x91 316*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x1f 317*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x1f 318*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x1f 319*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x1f 320*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x1f 321*a009c0c6SJosua Mayer MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x1f 322*a009c0c6SJosua Mayer >; 323*a009c0c6SJosua Mayer }; 324*a009c0c6SJosua Mayer 325*a009c0c6SJosua Mayer fec_pins: pinctrl-fec-grp { 326*a009c0c6SJosua Mayer fsl,pins = < 327*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC 0x3 328*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO 0x3 329*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x91 330*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x91 331*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x91 332*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x91 333*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x91 334*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x91 335*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x1f 336*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x1f 337*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x1f 338*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x1f 339*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x1f 340*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x1f 341*a009c0c6SJosua Mayer >; 342*a009c0c6SJosua Mayer }; 343*a009c0c6SJosua Mayer 344*a009c0c6SJosua Mayer i2c1_pins: pinctrl-i2c1-grp { 345*a009c0c6SJosua Mayer fsl,pins = < 346*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c3 347*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c3 348*a009c0c6SJosua Mayer >; 349*a009c0c6SJosua Mayer }; 350*a009c0c6SJosua Mayer 351*a009c0c6SJosua Mayer i2c1_gpio_pins: pinctrl-i2c1-gpio-grp { 352*a009c0c6SJosua Mayer fsl,pins = < 353*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C1_SCL__GPIO5_IO14 0x400001c3 354*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C1_SDA__GPIO5_IO15 0x400001c3 355*a009c0c6SJosua Mayer >; 356*a009c0c6SJosua Mayer }; 357*a009c0c6SJosua Mayer 358*a009c0c6SJosua Mayer i2c2_pins: pinctrl-i2c2-grp { 359*a009c0c6SJosua Mayer fsl,pins = < 360*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c3 361*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA 0x400001c3 362*a009c0c6SJosua Mayer >; 363*a009c0c6SJosua Mayer }; 364*a009c0c6SJosua Mayer 365*a009c0c6SJosua Mayer i2c2_gpio_pins: pinctrl-i2c2-gpio-grp { 366*a009c0c6SJosua Mayer fsl,pins = < 367*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C2_SCL__GPIO5_IO16 0x400001c3 368*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C2_SDA__GPIO5_IO17 0x400001c3 369*a009c0c6SJosua Mayer >; 370*a009c0c6SJosua Mayer }; 371*a009c0c6SJosua Mayer 372*a009c0c6SJosua Mayer i2c3_pins: pinctrl-i2c3-grp { 373*a009c0c6SJosua Mayer fsl,pins = < 374*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL 0x400001c3 375*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA 0x400001c3 376*a009c0c6SJosua Mayer >; 377*a009c0c6SJosua Mayer }; 378*a009c0c6SJosua Mayer 379*a009c0c6SJosua Mayer i2c3_gpio_pins: pinctrl-i2c3-gpio-grp { 380*a009c0c6SJosua Mayer fsl,pins = < 381*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C3_SCL__GPIO5_IO18 0x400001c3 382*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C3_SDA__GPIO5_IO19 0x400001c3 383*a009c0c6SJosua Mayer >; 384*a009c0c6SJosua Mayer }; 385*a009c0c6SJosua Mayer 386*a009c0c6SJosua Mayer i2c4_pins: pinctrl-i2c4-grp { 387*a009c0c6SJosua Mayer fsl,pins = < 388*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL 0x400001c3 389*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA 0x400001c3 390*a009c0c6SJosua Mayer >; 391*a009c0c6SJosua Mayer }; 392*a009c0c6SJosua Mayer 393*a009c0c6SJosua Mayer i2c4_gpio_pins: pinctrl-i2c4-gpio-grp { 394*a009c0c6SJosua Mayer fsl,pins = < 395*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C4_SCL__GPIO5_IO20 0x400001c3 396*a009c0c6SJosua Mayer MX8MP_IOMUXC_I2C4_SDA__GPIO5_IO21 0x400001c3 397*a009c0c6SJosua Mayer >; 398*a009c0c6SJosua Mayer }; 399*a009c0c6SJosua Mayer 400*a009c0c6SJosua Mayer phy0_pins: pinctrl-phy0-grp { 401*a009c0c6SJosua Mayer fsl,pins = < 402*a009c0c6SJosua Mayer /* RESET_N: weak i/o, open drain, external 1k pull-up */ 403*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19 0x20 404*a009c0c6SJosua Mayer /* INT_N: weak i/o, open drain, internal pull-up */ 405*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18 0x160 406*a009c0c6SJosua Mayer >; 407*a009c0c6SJosua Mayer }; 408*a009c0c6SJosua Mayer 409*a009c0c6SJosua Mayer phy1_pins: pinctrl-phy-1-grp { 410*a009c0c6SJosua Mayer fsl,pins = < 411*a009c0c6SJosua Mayer /* RESET_N: weak i/o, open drain, external 1k pull-up */ 412*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x20 413*a009c0c6SJosua Mayer /* INT_N: weak i/o, open drain, internal pull-up */ 414*a009c0c6SJosua Mayer MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03 0x160 415*a009c0c6SJosua Mayer >; 416*a009c0c6SJosua Mayer }; 417*a009c0c6SJosua Mayer 418*a009c0c6SJosua Mayer pmic_pins: pinctrl-pmic-grp { 419*a009c0c6SJosua Mayer fsl,pins = < 420*a009c0c6SJosua Mayer MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x41 421*a009c0c6SJosua Mayer >; 422*a009c0c6SJosua Mayer }; 423*a009c0c6SJosua Mayer 424*a009c0c6SJosua Mayer uart1_pins: pinctrl-uart1-grp { 425*a009c0c6SJosua Mayer fsl,pins = < 426*a009c0c6SJosua Mayer MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX 0x140 427*a009c0c6SJosua Mayer MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX 0x140 428*a009c0c6SJosua Mayer MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS 0x140 429*a009c0c6SJosua Mayer MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS 0x140 430*a009c0c6SJosua Mayer /* BT_REG_ON */ 431*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10 0x0 432*a009c0c6SJosua Mayer /* BT_WAKE_DEV */ 433*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07 0x0 434*a009c0c6SJosua Mayer /* BT_WAKE_HOST */ 435*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08 0x100 436*a009c0c6SJosua Mayer >; 437*a009c0c6SJosua Mayer }; 438*a009c0c6SJosua Mayer 439*a009c0c6SJosua Mayer uart2_pins: pinctrl-uart2-grp { 440*a009c0c6SJosua Mayer fsl,pins = < 441*a009c0c6SJosua Mayer MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x49 442*a009c0c6SJosua Mayer MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x49 443*a009c0c6SJosua Mayer >; 444*a009c0c6SJosua Mayer }; 445*a009c0c6SJosua Mayer 446*a009c0c6SJosua Mayer usdhc1_pins: pinctrl-usdhc1-grp { 447*a009c0c6SJosua Mayer fsl,pins = < 448*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x190 449*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x1d0 450*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x1d0 451*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x1d0 452*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x1d0 453*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x1d0 454*a009c0c6SJosua Mayer /* WL_REG_ON */ 455*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11 0x0 456*a009c0c6SJosua Mayer /* WL_WAKE_HOST */ 457*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09 0x100 458*a009c0c6SJosua Mayer >; 459*a009c0c6SJosua Mayer }; 460*a009c0c6SJosua Mayer 461*a009c0c6SJosua Mayer usdhc1_100mhz_pins: pinctrl-usdhc1g-100mhz-grp { 462*a009c0c6SJosua Mayer fsl,pins = < 463*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x194 464*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x1d4 465*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x1d4 466*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x1d4 467*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x1d4 468*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x1d4 469*a009c0c6SJosua Mayer >; 470*a009c0c6SJosua Mayer }; 471*a009c0c6SJosua Mayer 472*a009c0c6SJosua Mayer usdhc1_200mhz_pins: pinctrl-usdhc1-200mhz-grp { 473*a009c0c6SJosua Mayer fsl,pins = < 474*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x196 475*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x1d6 476*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x1d6 477*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x1d6 478*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x1d6 479*a009c0c6SJosua Mayer MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x1d6 480*a009c0c6SJosua Mayer >; 481*a009c0c6SJosua Mayer }; 482*a009c0c6SJosua Mayer 483*a009c0c6SJosua Mayer usdhc3_pins: pinctrl-usdhc3-grp { 484*a009c0c6SJosua Mayer fsl,pins = < 485*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190 486*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d0 487*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d0 488*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d0 489*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d0 490*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d0 491*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d0 492*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d0 493*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d0 494*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d0 495*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x190 496*a009c0c6SJosua Mayer >; 497*a009c0c6SJosua Mayer }; 498*a009c0c6SJosua Mayer 499*a009c0c6SJosua Mayer usdhc3_100mhz_pins: pinctrl-usdhc3-100mhz-grp { 500*a009c0c6SJosua Mayer fsl,pins = < 501*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194 502*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4 503*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d4 504*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d4 505*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d4 506*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d4 507*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d4 508*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d4 509*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d4 510*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d4 511*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x194 512*a009c0c6SJosua Mayer >; 513*a009c0c6SJosua Mayer }; 514*a009c0c6SJosua Mayer 515*a009c0c6SJosua Mayer usdhc3_200mhz_pins: pinctrl-usdhc3-200mhz-grp { 516*a009c0c6SJosua Mayer fsl,pins = < 517*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x196 518*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d6 519*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d6 520*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d6 521*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d6 522*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d6 523*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d6 524*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d6 525*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d6 526*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d6 527*a009c0c6SJosua Mayer MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x196 528*a009c0c6SJosua Mayer >; 529*a009c0c6SJosua Mayer }; 530*a009c0c6SJosua Mayer 531*a009c0c6SJosua Mayer wdog1_pins: pinctrl-wdog1-grp { 532*a009c0c6SJosua Mayer fsl,pins = < 533*a009c0c6SJosua Mayer MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B 0x140 534*a009c0c6SJosua Mayer >; 535*a009c0c6SJosua Mayer }; 536*a009c0c6SJosua Mayer}; 537*a009c0c6SJosua Mayer 538*a009c0c6SJosua Mayer&uart1 { 539*a009c0c6SJosua Mayer pinctrl-names = "default"; 540*a009c0c6SJosua Mayer pinctrl-0 = <&uart1_pins>; 541*a009c0c6SJosua Mayer uart-has-rtscts; 542*a009c0c6SJosua Mayer /* select 80MHz parent clock to support maximum baudrate 4Mbps */ 543*a009c0c6SJosua Mayer assigned-clocks = <&clk IMX8MP_CLK_UART1>; 544*a009c0c6SJosua Mayer assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>; 545*a009c0c6SJosua Mayer status = "okay"; 546*a009c0c6SJosua Mayer 547*a009c0c6SJosua Mayer bluetooth { 548*a009c0c6SJosua Mayer compatible = "brcm,bcm4345c5"; 549*a009c0c6SJosua Mayer device-wakeup-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>; 550*a009c0c6SJosua Mayer host-wakeup-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; 551*a009c0c6SJosua Mayer shutdown-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; 552*a009c0c6SJosua Mayer /* Murata 1MW module supports max. 3M baud */ 553*a009c0c6SJosua Mayer max-speed = <3000000>; 554*a009c0c6SJosua Mayer }; 555*a009c0c6SJosua Mayer}; 556*a009c0c6SJosua Mayer 557*a009c0c6SJosua Mayer&uart2 { 558*a009c0c6SJosua Mayer pinctrl-names = "default"; 559*a009c0c6SJosua Mayer pinctrl-0 = <&uart2_pins>; 560*a009c0c6SJosua Mayer status = "okay"; 561*a009c0c6SJosua Mayer}; 562*a009c0c6SJosua Mayer 563*a009c0c6SJosua Mayer&usdhc1 { 564*a009c0c6SJosua Mayer pinctrl-names = "default"; 565*a009c0c6SJosua Mayer pinctrl-0 = <&usdhc1_pins>; 566*a009c0c6SJosua Mayer pinctrl-1 = <&usdhc1_100mhz_pins>; 567*a009c0c6SJosua Mayer pinctrl-2 = <&usdhc1_200mhz_pins>; 568*a009c0c6SJosua Mayer vmmc-supply = <&v_3_3>; 569*a009c0c6SJosua Mayer vqmmc-supply = <&v_1_8>; 570*a009c0c6SJosua Mayer bus-width = <4>; 571*a009c0c6SJosua Mayer mmc-pwrseq = <&usdhc1_pwrseq>; 572*a009c0c6SJosua Mayer status = "okay"; 573*a009c0c6SJosua Mayer}; 574*a009c0c6SJosua Mayer 575*a009c0c6SJosua Mayer&usdhc3 { 576*a009c0c6SJosua Mayer pinctrl-names = "default", "state_100mhz", "state_200mhz"; 577*a009c0c6SJosua Mayer pinctrl-0 = <&usdhc3_pins>; 578*a009c0c6SJosua Mayer pinctrl-1 = <&usdhc3_100mhz_pins>; 579*a009c0c6SJosua Mayer pinctrl-2 = <&usdhc3_200mhz_pins>; 580*a009c0c6SJosua Mayer vmmc-supply = <&v_3_3>; 581*a009c0c6SJosua Mayer vqmmc-supply = <&v_1_8>; 582*a009c0c6SJosua Mayer bus-width = <8>; 583*a009c0c6SJosua Mayer non-removable; 584*a009c0c6SJosua Mayer status = "okay"; 585*a009c0c6SJosua Mayer}; 586*a009c0c6SJosua Mayer 587*a009c0c6SJosua Mayer&wdog1 { 588*a009c0c6SJosua Mayer pinctrl-names = "default"; 589*a009c0c6SJosua Mayer pinctrl-0 = <&wdog1_pins>; 590*a009c0c6SJosua Mayer status = "okay"; 591*a009c0c6SJosua Mayer}; 592