1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* Copyright 2016-2018 NXP Semiconductors 3*4882a593Smuzhiyun * Copyright 2019 Vladimir Oltean <olteanv@gmail.com> 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun/dts-v1/; 7*4882a593Smuzhiyun#include "ls1021a.dtsi" 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun/ { 10*4882a593Smuzhiyun model = "NXP LS1021A-TSN Board"; 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun sys_mclk: clock-mclk { 13*4882a593Smuzhiyun compatible = "fixed-clock"; 14*4882a593Smuzhiyun #clock-cells = <0>; 15*4882a593Smuzhiyun clock-frequency = <24576000>; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun reg_vdda_codec: regulator-3V3 { 19*4882a593Smuzhiyun compatible = "regulator-fixed"; 20*4882a593Smuzhiyun regulator-name = "3P3V"; 21*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 22*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 23*4882a593Smuzhiyun regulator-always-on; 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun reg_vddio_codec: regulator-2V5 { 27*4882a593Smuzhiyun compatible = "regulator-fixed"; 28*4882a593Smuzhiyun regulator-name = "2P5V"; 29*4882a593Smuzhiyun regulator-min-microvolt = <2500000>; 30*4882a593Smuzhiyun regulator-max-microvolt = <2500000>; 31*4882a593Smuzhiyun regulator-always-on; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun}; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun&dspi0 { 36*4882a593Smuzhiyun bus-num = <0>; 37*4882a593Smuzhiyun status = "okay"; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun /* ADG704BRMZ 1:4 SPI mux/demux */ 40*4882a593Smuzhiyun sja1105: ethernet-switch@1 { 41*4882a593Smuzhiyun reg = <0x1>; 42*4882a593Smuzhiyun #address-cells = <1>; 43*4882a593Smuzhiyun #size-cells = <0>; 44*4882a593Smuzhiyun compatible = "nxp,sja1105t"; 45*4882a593Smuzhiyun /* 12 MHz */ 46*4882a593Smuzhiyun spi-max-frequency = <12000000>; 47*4882a593Smuzhiyun /* Sample data on trailing clock edge */ 48*4882a593Smuzhiyun spi-cpha; 49*4882a593Smuzhiyun /* SPI controller settings for SJA1105 timing requirements */ 50*4882a593Smuzhiyun fsl,spi-cs-sck-delay = <1000>; 51*4882a593Smuzhiyun fsl,spi-sck-cs-delay = <1000>; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun ports { 54*4882a593Smuzhiyun #address-cells = <1>; 55*4882a593Smuzhiyun #size-cells = <0>; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun port@0 { 58*4882a593Smuzhiyun /* ETH5 written on chassis */ 59*4882a593Smuzhiyun label = "swp5"; 60*4882a593Smuzhiyun phy-handle = <&rgmii_phy6>; 61*4882a593Smuzhiyun phy-mode = "rgmii-id"; 62*4882a593Smuzhiyun reg = <0>; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun port@1 { 66*4882a593Smuzhiyun /* ETH2 written on chassis */ 67*4882a593Smuzhiyun label = "swp2"; 68*4882a593Smuzhiyun phy-handle = <&rgmii_phy3>; 69*4882a593Smuzhiyun phy-mode = "rgmii-id"; 70*4882a593Smuzhiyun reg = <1>; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun port@2 { 74*4882a593Smuzhiyun /* ETH3 written on chassis */ 75*4882a593Smuzhiyun label = "swp3"; 76*4882a593Smuzhiyun phy-handle = <&rgmii_phy4>; 77*4882a593Smuzhiyun phy-mode = "rgmii-id"; 78*4882a593Smuzhiyun reg = <2>; 79*4882a593Smuzhiyun }; 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun port@3 { 82*4882a593Smuzhiyun /* ETH4 written on chassis */ 83*4882a593Smuzhiyun label = "swp4"; 84*4882a593Smuzhiyun phy-handle = <&rgmii_phy5>; 85*4882a593Smuzhiyun phy-mode = "rgmii-id"; 86*4882a593Smuzhiyun reg = <3>; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun port@4 { 90*4882a593Smuzhiyun /* Internal port connected to eth2 */ 91*4882a593Smuzhiyun ethernet = <&enet2>; 92*4882a593Smuzhiyun phy-mode = "rgmii"; 93*4882a593Smuzhiyun reg = <4>; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun fixed-link { 96*4882a593Smuzhiyun speed = <1000>; 97*4882a593Smuzhiyun full-duplex; 98*4882a593Smuzhiyun }; 99*4882a593Smuzhiyun }; 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun}; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun&enet0 { 105*4882a593Smuzhiyun tbi-handle = <&tbi0>; 106*4882a593Smuzhiyun phy-handle = <&sgmii_phy2>; 107*4882a593Smuzhiyun phy-mode = "sgmii"; 108*4882a593Smuzhiyun status = "okay"; 109*4882a593Smuzhiyun}; 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun&enet1 { 112*4882a593Smuzhiyun tbi-handle = <&tbi1>; 113*4882a593Smuzhiyun phy-handle = <&sgmii_phy1>; 114*4882a593Smuzhiyun phy-mode = "sgmii"; 115*4882a593Smuzhiyun status = "okay"; 116*4882a593Smuzhiyun}; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun/* RGMII delays added via PCB traces */ 119*4882a593Smuzhiyun&enet2 { 120*4882a593Smuzhiyun phy-mode = "rgmii"; 121*4882a593Smuzhiyun status = "okay"; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun fixed-link { 124*4882a593Smuzhiyun speed = <1000>; 125*4882a593Smuzhiyun full-duplex; 126*4882a593Smuzhiyun }; 127*4882a593Smuzhiyun}; 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun&esdhc { 130*4882a593Smuzhiyun status = "okay"; 131*4882a593Smuzhiyun}; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun&i2c0 { 134*4882a593Smuzhiyun status = "okay"; 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun /* 3 axis accelerometer */ 137*4882a593Smuzhiyun accelerometer@1e { 138*4882a593Smuzhiyun compatible = "fsl,fxls8471"; 139*4882a593Smuzhiyun position = <0>; 140*4882a593Smuzhiyun reg = <0x1e>; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun /* Audio codec (SAI2) */ 144*4882a593Smuzhiyun audio-codec@2a { 145*4882a593Smuzhiyun compatible = "fsl,sgtl5000"; 146*4882a593Smuzhiyun VDDIO-supply = <®_vddio_codec>; 147*4882a593Smuzhiyun VDDA-supply = <®_vdda_codec>; 148*4882a593Smuzhiyun #sound-dai-cells = <0>; 149*4882a593Smuzhiyun clocks = <&sys_mclk>; 150*4882a593Smuzhiyun reg = <0x2a>; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun /* Current sensing circuit for 1V VDDCORE PMIC rail */ 154*4882a593Smuzhiyun current-sensor@44 { 155*4882a593Smuzhiyun compatible = "ti,ina220"; 156*4882a593Smuzhiyun shunt-resistor = <1000>; 157*4882a593Smuzhiyun reg = <0x44>; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun /* Current sensing circuit for 12V VCC rail */ 161*4882a593Smuzhiyun current-sensor@45 { 162*4882a593Smuzhiyun compatible = "ti,ina220"; 163*4882a593Smuzhiyun shunt-resistor = <1000>; 164*4882a593Smuzhiyun reg = <0x45>; 165*4882a593Smuzhiyun }; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun /* Thermal monitor - case */ 168*4882a593Smuzhiyun temperature-sensor@48 { 169*4882a593Smuzhiyun compatible = "national,lm75"; 170*4882a593Smuzhiyun reg = <0x48>; 171*4882a593Smuzhiyun }; 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun /* Thermal monitor - chip */ 174*4882a593Smuzhiyun temperature-sensor@4c { 175*4882a593Smuzhiyun compatible = "ti,tmp451"; 176*4882a593Smuzhiyun reg = <0x4c>; 177*4882a593Smuzhiyun }; 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun eeprom@51 { 180*4882a593Smuzhiyun compatible = "atmel,24c32"; 181*4882a593Smuzhiyun reg = <0x51>; 182*4882a593Smuzhiyun }; 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun /* Unsupported devices: 185*4882a593Smuzhiyun * - FXAS21002C Gyroscope at 0x20 186*4882a593Smuzhiyun * - TI ADS7924 4-channel ADC at 0x49 187*4882a593Smuzhiyun */ 188*4882a593Smuzhiyun}; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun&ifc { 191*4882a593Smuzhiyun status = "disabled"; 192*4882a593Smuzhiyun}; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun&lpuart0 { 195*4882a593Smuzhiyun status = "okay"; 196*4882a593Smuzhiyun}; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun&lpuart3 { 199*4882a593Smuzhiyun status = "okay"; 200*4882a593Smuzhiyun}; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun&mdio0 { 203*4882a593Smuzhiyun /* AR8031 */ 204*4882a593Smuzhiyun sgmii_phy1: ethernet-phy@1 { 205*4882a593Smuzhiyun reg = <0x1>; 206*4882a593Smuzhiyun /* SGMII1_PHY_INT_B: connected to IRQ2, active low */ 207*4882a593Smuzhiyun interrupts-extended = <&extirq 2 IRQ_TYPE_LEVEL_LOW>; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun /* AR8031 */ 211*4882a593Smuzhiyun sgmii_phy2: ethernet-phy@2 { 212*4882a593Smuzhiyun reg = <0x2>; 213*4882a593Smuzhiyun /* SGMII2_PHY_INT_B: connected to IRQ2, active low */ 214*4882a593Smuzhiyun interrupts-extended = <&extirq 2 IRQ_TYPE_LEVEL_LOW>; 215*4882a593Smuzhiyun }; 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun /* BCM5464 quad PHY */ 218*4882a593Smuzhiyun rgmii_phy3: ethernet-phy@3 { 219*4882a593Smuzhiyun reg = <0x3>; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun rgmii_phy4: ethernet-phy@4 { 223*4882a593Smuzhiyun reg = <0x4>; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun rgmii_phy5: ethernet-phy@5 { 227*4882a593Smuzhiyun reg = <0x5>; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun rgmii_phy6: ethernet-phy@6 { 231*4882a593Smuzhiyun reg = <0x6>; 232*4882a593Smuzhiyun }; 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun /* SGMII PCS for enet0 */ 235*4882a593Smuzhiyun tbi0: tbi-phy@1f { 236*4882a593Smuzhiyun reg = <0x1f>; 237*4882a593Smuzhiyun device_type = "tbi-phy"; 238*4882a593Smuzhiyun }; 239*4882a593Smuzhiyun}; 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun&mdio1 { 242*4882a593Smuzhiyun /* SGMII PCS for enet1 */ 243*4882a593Smuzhiyun tbi1: tbi-phy@1f { 244*4882a593Smuzhiyun reg = <0x1f>; 245*4882a593Smuzhiyun device_type = "tbi-phy"; 246*4882a593Smuzhiyun }; 247*4882a593Smuzhiyun}; 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun&qspi { 250*4882a593Smuzhiyun status = "okay"; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun flash@0 { 253*4882a593Smuzhiyun /* Rev. A uses 64MB flash, Rev. B & C use 32MB flash */ 254*4882a593Smuzhiyun compatible = "jedec,spi-nor"; 255*4882a593Smuzhiyun spi-max-frequency = <20000000>; 256*4882a593Smuzhiyun #address-cells = <1>; 257*4882a593Smuzhiyun #size-cells = <1>; 258*4882a593Smuzhiyun reg = <0>; 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun partitions { 261*4882a593Smuzhiyun compatible = "fixed-partitions"; 262*4882a593Smuzhiyun #address-cells = <1>; 263*4882a593Smuzhiyun #size-cells = <1>; 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun partition@0 { 266*4882a593Smuzhiyun label = "RCW"; 267*4882a593Smuzhiyun reg = <0x0 0x40000>; 268*4882a593Smuzhiyun }; 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun partition@40000 { 271*4882a593Smuzhiyun label = "U-Boot"; 272*4882a593Smuzhiyun reg = <0x40000 0x300000>; 273*4882a593Smuzhiyun }; 274*4882a593Smuzhiyun 275*4882a593Smuzhiyun partition@340000 { 276*4882a593Smuzhiyun label = "U-Boot Env"; 277*4882a593Smuzhiyun reg = <0x340000 0x100000>; 278*4882a593Smuzhiyun }; 279*4882a593Smuzhiyun }; 280*4882a593Smuzhiyun }; 281*4882a593Smuzhiyun}; 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun&sai2 { 284*4882a593Smuzhiyun status = "okay"; 285*4882a593Smuzhiyun}; 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun&sata { 288*4882a593Smuzhiyun status = "okay"; 289*4882a593Smuzhiyun}; 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun&uart0 { 292*4882a593Smuzhiyun status = "okay"; 293*4882a593Smuzhiyun}; 294