1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (C) 2018 Jon Nettleton <jon@solid-run.com> 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun#include "imx8mq.dtsi" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/ { 9*4882a593Smuzhiyun reg_vdd_3v3: regulator-vdd-3v3 { 10*4882a593Smuzhiyun compatible = "regulator-fixed"; 11*4882a593Smuzhiyun regulator-always-on; 12*4882a593Smuzhiyun regulator-name = "vdd_3v3"; 13*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 14*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 15*4882a593Smuzhiyun }; 16*4882a593Smuzhiyun}; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun&fec1 { 19*4882a593Smuzhiyun pinctrl-names = "default"; 20*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_fec1>; 21*4882a593Smuzhiyun phy-mode = "rgmii-id"; 22*4882a593Smuzhiyun phy-handle = <ðphy0>; 23*4882a593Smuzhiyun fsl,magic-packet; 24*4882a593Smuzhiyun status = "okay"; 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun mdio { 27*4882a593Smuzhiyun #address-cells = <1>; 28*4882a593Smuzhiyun #size-cells = <0>; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun ethphy0: ethernet-phy@4 { 31*4882a593Smuzhiyun compatible = "ethernet-phy-ieee802.3-c22"; 32*4882a593Smuzhiyun reg = <4>; 33*4882a593Smuzhiyun reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; 34*4882a593Smuzhiyun reset-assert-us = <2000>; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun}; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun&i2c1 { 40*4882a593Smuzhiyun pinctrl-names = "default"; 41*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_i2c1>; 42*4882a593Smuzhiyun clock-frequency = <400000>; 43*4882a593Smuzhiyun status = "okay"; 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun pmic: pmic@8 { 46*4882a593Smuzhiyun compatible = "fsl,pfuze100"; 47*4882a593Smuzhiyun reg = <0x08>; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun regulators { 50*4882a593Smuzhiyun sw1a_reg: sw1ab { 51*4882a593Smuzhiyun regulator-min-microvolt = <300000>; 52*4882a593Smuzhiyun regulator-max-microvolt = <1875000>; 53*4882a593Smuzhiyun }; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun sw1c_reg: sw1c { 56*4882a593Smuzhiyun regulator-min-microvolt = <300000>; 57*4882a593Smuzhiyun regulator-max-microvolt = <1875000>; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun sw2_reg: sw2 { 61*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 62*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 63*4882a593Smuzhiyun regulator-always-on; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun sw3a_reg: sw3ab { 67*4882a593Smuzhiyun regulator-min-microvolt = <400000>; 68*4882a593Smuzhiyun regulator-max-microvolt = <1975000>; 69*4882a593Smuzhiyun regulator-always-on; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun sw4_reg: sw4 { 73*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 74*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 75*4882a593Smuzhiyun regulator-always-on; 76*4882a593Smuzhiyun }; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun swbst_reg: swbst { 79*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 80*4882a593Smuzhiyun regulator-max-microvolt = <5150000>; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun snvs_reg: vsnvs { 84*4882a593Smuzhiyun regulator-min-microvolt = <1000000>; 85*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 86*4882a593Smuzhiyun regulator-always-on; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun vref_reg: vrefddr { 90*4882a593Smuzhiyun regulator-always-on; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun vgen1_reg: vgen1 { 94*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 95*4882a593Smuzhiyun regulator-max-microvolt = <1550000>; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun vgen2_reg: vgen2 { 99*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 100*4882a593Smuzhiyun regulator-max-microvolt = <1550000>; 101*4882a593Smuzhiyun regulator-always-on; 102*4882a593Smuzhiyun }; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun vgen3_reg: vgen3 { 105*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 106*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 107*4882a593Smuzhiyun regulator-always-on; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun vgen4_reg: vgen4 { 111*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 112*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 113*4882a593Smuzhiyun regulator-always-on; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun vgen5_reg: vgen5 { 117*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 118*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 119*4882a593Smuzhiyun regulator-always-on; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun vgen6_reg: vgen6 { 123*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 124*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun }; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun eeprom@50 { 130*4882a593Smuzhiyun compatible = "atmel,24c01"; 131*4882a593Smuzhiyun reg = <0x50>; 132*4882a593Smuzhiyun status = "okay"; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun}; 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun&pgc_gpu{ 137*4882a593Smuzhiyun power-supply = <&sw1a_reg>; 138*4882a593Smuzhiyun}; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun&pgc_vpu { 141*4882a593Smuzhiyun power-supply = <&sw1c_reg>; 142*4882a593Smuzhiyun}; 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun&qspi0 { 145*4882a593Smuzhiyun pinctrl-names = "default"; 146*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_qspi>; 147*4882a593Smuzhiyun status = "okay"; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun /* SPI flash; not assembled by default */ 150*4882a593Smuzhiyun spi_flash: flash@0 { 151*4882a593Smuzhiyun #address-cells = <1>; 152*4882a593Smuzhiyun #size-cells = <1>; 153*4882a593Smuzhiyun reg = <0>; 154*4882a593Smuzhiyun compatible = "micron,n25q256a", "jedec,spi-nor"; 155*4882a593Smuzhiyun spi-max-frequency = <29000000>; 156*4882a593Smuzhiyun status = "disabled"; 157*4882a593Smuzhiyun }; 158*4882a593Smuzhiyun}; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun&uart1 { /* console */ 161*4882a593Smuzhiyun pinctrl-names = "default"; 162*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_uart1>; 163*4882a593Smuzhiyun assigned-clocks = <&clk IMX8MQ_CLK_UART1>; 164*4882a593Smuzhiyun assigned-clock-parents = <&clk IMX8MQ_CLK_25M>; 165*4882a593Smuzhiyun assigned-clock-rates = <25000000>; 166*4882a593Smuzhiyun status = "okay"; 167*4882a593Smuzhiyun}; 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun&uart4 { /* ublox BT */ 170*4882a593Smuzhiyun pinctrl-names = "default"; 171*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_uart4>; 172*4882a593Smuzhiyun assigned-clocks = <&clk IMX8MQ_CLK_UART4>; 173*4882a593Smuzhiyun assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>; 174*4882a593Smuzhiyun assigned-clock-rates = <80000000>; 175*4882a593Smuzhiyun status = "okay"; 176*4882a593Smuzhiyun}; 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun&usdhc1 { 179*4882a593Smuzhiyun assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>; 180*4882a593Smuzhiyun assigned-clock-rates = <400000000>; 181*4882a593Smuzhiyun pinctrl-names = "default", "state_100mhz", "state_200mhz"; 182*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_usdhc1>; 183*4882a593Smuzhiyun pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 184*4882a593Smuzhiyun pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 185*4882a593Smuzhiyun bus-width = <8>; 186*4882a593Smuzhiyun non-removable; 187*4882a593Smuzhiyun status = "okay"; 188*4882a593Smuzhiyun}; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun&wdog1 { 191*4882a593Smuzhiyun pinctrl-names = "default"; 192*4882a593Smuzhiyun pinctrl-0 = <&pinctrl_wdog>; 193*4882a593Smuzhiyun fsl,ext-reset-output; 194*4882a593Smuzhiyun status = "okay"; 195*4882a593Smuzhiyun}; 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun&iomuxc { 198*4882a593Smuzhiyun pinctrl_fec1: fec1grp { 199*4882a593Smuzhiyun fsl,pins = < 200*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC 0x3 201*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO 0x23 202*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f 203*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f 204*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f 205*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f 206*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91 207*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91 208*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91 209*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91 210*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f 211*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91 212*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91 213*4882a593Smuzhiyun MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f 214*4882a593Smuzhiyun MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x19 215*4882a593Smuzhiyun >; 216*4882a593Smuzhiyun }; 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun pinctrl_i2c1: i2c1grp { 219*4882a593Smuzhiyun fsl,pins = < 220*4882a593Smuzhiyun MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x4000007f 221*4882a593Smuzhiyun MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x4000007f 222*4882a593Smuzhiyun >; 223*4882a593Smuzhiyun }; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun pinctrl_pcie0: pcie0grp { 226*4882a593Smuzhiyun fsl,pins = < 227*4882a593Smuzhiyun MX8MQ_IOMUXC_I2C4_SCL_PCIE1_CLKREQ_B 0x74 228*4882a593Smuzhiyun MX8MQ_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x16 229*4882a593Smuzhiyun MX8MQ_IOMUXC_SAI2_RXFS_GPIO4_IO21 0x16 230*4882a593Smuzhiyun >; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun pinctrl_qspi: qspigrp { 234*4882a593Smuzhiyun fsl,pins = < 235*4882a593Smuzhiyun MX8MQ_IOMUXC_NAND_ALE_QSPI_A_SCLK 0x82 236*4882a593Smuzhiyun MX8MQ_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B 0x82 237*4882a593Smuzhiyun MX8MQ_IOMUXC_NAND_DATA00_QSPI_A_DATA0 0x82 238*4882a593Smuzhiyun MX8MQ_IOMUXC_NAND_DATA01_QSPI_A_DATA1 0x82 239*4882a593Smuzhiyun MX8MQ_IOMUXC_NAND_DATA02_QSPI_A_DATA2 0x82 240*4882a593Smuzhiyun MX8MQ_IOMUXC_NAND_DATA03_QSPI_A_DATA3 0x82 241*4882a593Smuzhiyun 242*4882a593Smuzhiyun >; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun pinctrl_uart1: uart1grp { 246*4882a593Smuzhiyun fsl,pins = < 247*4882a593Smuzhiyun MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49 248*4882a593Smuzhiyun MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX 0x49 249*4882a593Smuzhiyun MX8MQ_IOMUXC_NAND_CE1_B_GPIO3_IO2 0x19 250*4882a593Smuzhiyun >; 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun pinctrl_uart4: uart4grp { 254*4882a593Smuzhiyun fsl,pins = < 255*4882a593Smuzhiyun MX8MQ_IOMUXC_UART4_TXD_UART4_DCE_TX 0x49 256*4882a593Smuzhiyun MX8MQ_IOMUXC_UART4_RXD_UART4_DCE_RX 0x49 257*4882a593Smuzhiyun MX8MQ_IOMUXC_SAI3_TXD_GPIO5_IO1 0x19 258*4882a593Smuzhiyun >; 259*4882a593Smuzhiyun }; 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun pinctrl_usdhc1: usdhc1grp { 262*4882a593Smuzhiyun fsl,pins = < 263*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x83 264*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc3 265*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc3 266*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc3 267*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc3 268*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc3 269*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc3 270*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc3 271*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc3 272*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc3 273*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x83 274*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 275*4882a593Smuzhiyun >; 276*4882a593Smuzhiyun }; 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 279*4882a593Smuzhiyun fsl,pins = < 280*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d 281*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd 282*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xcd 283*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xcd 284*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xcd 285*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xcd 286*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xcd 287*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xcd 288*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xcd 289*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xcd 290*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x8d 291*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 292*4882a593Smuzhiyun >; 293*4882a593Smuzhiyun }; 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 296*4882a593Smuzhiyun fsl,pins = < 297*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f 298*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf 299*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xdf 300*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xdf 301*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xdf 302*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xdf 303*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xdf 304*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xdf 305*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xdf 306*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xdf 307*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x9f 308*4882a593Smuzhiyun MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 309*4882a593Smuzhiyun >; 310*4882a593Smuzhiyun }; 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun pinctrl_wdog: wdoggrp { 313*4882a593Smuzhiyun fsl,pins = < 314*4882a593Smuzhiyun MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6 315*4882a593Smuzhiyun >; 316*4882a593Smuzhiyun }; 317*4882a593Smuzhiyun}; 318