1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2*f126890aSEmmanuel Vadot/* 3*f126890aSEmmanuel Vadot * Device tree for Winterland IceBoard 4*f126890aSEmmanuel Vadot * 5*f126890aSEmmanuel Vadot * https://mcgillcosmology.com 6*f126890aSEmmanuel Vadot * https://threespeedlogic.com 7*f126890aSEmmanuel Vadot * 8*f126890aSEmmanuel Vadot * This is an ARM + FPGA instrumentation board used at telescopes in 9*f126890aSEmmanuel Vadot * Antarctica (the South Pole Telescope), Chile (POLARBEAR), and at the DRAO 10*f126890aSEmmanuel Vadot * observatory in British Columbia (CHIME). 11*f126890aSEmmanuel Vadot * 12*f126890aSEmmanuel Vadot * Copyright (c) 2019 Three-Speed Logic, Inc. <gsmecher@threespeedlogic.com> 13*f126890aSEmmanuel Vadot */ 14*f126890aSEmmanuel Vadot 15*f126890aSEmmanuel Vadot/dts-v1/; 16*f126890aSEmmanuel Vadot 17*f126890aSEmmanuel Vadot#include "dm814x.dtsi" 18*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 19*f126890aSEmmanuel Vadot 20*f126890aSEmmanuel Vadot/ { 21*f126890aSEmmanuel Vadot model = "Winterland IceBoard"; 22*f126890aSEmmanuel Vadot compatible = "ti,dm8148", "ti,dm814"; 23*f126890aSEmmanuel Vadot 24*f126890aSEmmanuel Vadot chosen { 25*f126890aSEmmanuel Vadot stdout-path = "serial1:115200n8"; 26*f126890aSEmmanuel Vadot bootargs = "earlycon"; 27*f126890aSEmmanuel Vadot }; 28*f126890aSEmmanuel Vadot 29*f126890aSEmmanuel Vadot memory@80000000 { 30*f126890aSEmmanuel Vadot device_type = "memory"; 31*f126890aSEmmanuel Vadot reg = <0x80000000 0x40000000>; /* 1 GB */ 32*f126890aSEmmanuel Vadot }; 33*f126890aSEmmanuel Vadot 34*f126890aSEmmanuel Vadot vmmcsd_fixed: fixedregulator0 { 35*f126890aSEmmanuel Vadot compatible = "regulator-fixed"; 36*f126890aSEmmanuel Vadot regulator-name = "vmmcsd_fixed"; 37*f126890aSEmmanuel Vadot regulator-min-microvolt = <3300000>; 38*f126890aSEmmanuel Vadot regulator-max-microvolt = <3300000>; 39*f126890aSEmmanuel Vadot regulator-always-on; 40*f126890aSEmmanuel Vadot }; 41*f126890aSEmmanuel Vadot}; 42*f126890aSEmmanuel Vadot 43*f126890aSEmmanuel Vadot/* The MAC provides internal delay for the transmit path ONLY, which is enabled 44*f126890aSEmmanuel Vadot * provided no -id/-txid/-rxid suffix is provided to "phy-mode". 45*f126890aSEmmanuel Vadot * 46*f126890aSEmmanuel Vadot * The receive path is delayed at the PHY. The recommended register settings 47*f126890aSEmmanuel Vadot * are 0xf0 for the control bits, and 0x7777 for the data bits. However, the 48*f126890aSEmmanuel Vadot * conversion code in the kernel lies: the PHY's registers are 120 ps per tap, 49*f126890aSEmmanuel Vadot * and the kernel assumes 200 ps per tap. So we have fudged the numbers here to 50*f126890aSEmmanuel Vadot * obtain the correct register settings. 51*f126890aSEmmanuel Vadot */ 52*f126890aSEmmanuel Vadot&mac { dual_emac = <1>; }; 53*f126890aSEmmanuel Vadot&cpsw_emac0 { 54*f126890aSEmmanuel Vadot phy-handle = <ðphy0>; 55*f126890aSEmmanuel Vadot phy-mode = "rgmii"; 56*f126890aSEmmanuel Vadot dual_emac_res_vlan = <1>; 57*f126890aSEmmanuel Vadot}; 58*f126890aSEmmanuel Vadot&cpsw_emac1 { 59*f126890aSEmmanuel Vadot phy-handle = <ðphy1>; 60*f126890aSEmmanuel Vadot phy-mode = "rgmii"; 61*f126890aSEmmanuel Vadot dual_emac_res_vlan = <2>; 62*f126890aSEmmanuel Vadot}; 63*f126890aSEmmanuel Vadot 64*f126890aSEmmanuel Vadot&davinci_mdio { 65*f126890aSEmmanuel Vadot ethphy0: ethernet-phy@0 { 66*f126890aSEmmanuel Vadot reg = <0x2>; 67*f126890aSEmmanuel Vadot 68*f126890aSEmmanuel Vadot rxc-skew-ps = <3000>; 69*f126890aSEmmanuel Vadot rxdv-skew-ps = <0>; 70*f126890aSEmmanuel Vadot 71*f126890aSEmmanuel Vadot rxd3-skew-ps = <0>; 72*f126890aSEmmanuel Vadot rxd2-skew-ps = <0>; 73*f126890aSEmmanuel Vadot rxd1-skew-ps = <0>; 74*f126890aSEmmanuel Vadot rxd0-skew-ps = <0>; 75*f126890aSEmmanuel Vadot 76*f126890aSEmmanuel Vadot phy-reset-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>; 77*f126890aSEmmanuel Vadot }; 78*f126890aSEmmanuel Vadot 79*f126890aSEmmanuel Vadot ethphy1: ethernet-phy@1 { 80*f126890aSEmmanuel Vadot reg = <0x1>; 81*f126890aSEmmanuel Vadot 82*f126890aSEmmanuel Vadot rxc-skew-ps = <3000>; 83*f126890aSEmmanuel Vadot rxdv-skew-ps = <0>; 84*f126890aSEmmanuel Vadot 85*f126890aSEmmanuel Vadot rxd3-skew-ps = <0>; 86*f126890aSEmmanuel Vadot rxd2-skew-ps = <0>; 87*f126890aSEmmanuel Vadot rxd1-skew-ps = <0>; 88*f126890aSEmmanuel Vadot rxd0-skew-ps = <0>; 89*f126890aSEmmanuel Vadot 90*f126890aSEmmanuel Vadot phy-reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; 91*f126890aSEmmanuel Vadot }; 92*f126890aSEmmanuel Vadot}; 93*f126890aSEmmanuel Vadot 94*f126890aSEmmanuel Vadot&mmc1 { status = "disabled"; }; 95*f126890aSEmmanuel Vadot&mmc2 { 96*f126890aSEmmanuel Vadot pinctrl-names = "default"; 97*f126890aSEmmanuel Vadot pinctrl-0 = <&mmc2_pins>; 98*f126890aSEmmanuel Vadot vmmc-supply = <&vmmcsd_fixed>; 99*f126890aSEmmanuel Vadot bus-width = <4>; 100*f126890aSEmmanuel Vadot}; 101*f126890aSEmmanuel Vadot&mmc3 { status = "disabled"; }; 102*f126890aSEmmanuel Vadot 103*f126890aSEmmanuel Vadot&i2c1 { 104*f126890aSEmmanuel Vadot /* Most I2C activity happens through this port, with the sole exception 105*f126890aSEmmanuel Vadot * of the backplane. Since there are multiply assigned addresses, the 106*f126890aSEmmanuel Vadot * "i2c-mux-idle-disconnect" is important. 107*f126890aSEmmanuel Vadot */ 108*f126890aSEmmanuel Vadot 109*f126890aSEmmanuel Vadot i2c-mux@70 { 110*f126890aSEmmanuel Vadot compatible = "nxp,pca9548"; 111*f126890aSEmmanuel Vadot reg = <0x70>; 112*f126890aSEmmanuel Vadot #address-cells = <1>; 113*f126890aSEmmanuel Vadot #size-cells = <0>; 114*f126890aSEmmanuel Vadot i2c-mux-idle-disconnect; 115*f126890aSEmmanuel Vadot 116*f126890aSEmmanuel Vadot i2c@0 { 117*f126890aSEmmanuel Vadot /* FMC A */ 118*f126890aSEmmanuel Vadot #address-cells = <1>; 119*f126890aSEmmanuel Vadot #size-cells = <0>; 120*f126890aSEmmanuel Vadot reg = <0>; 121*f126890aSEmmanuel Vadot }; 122*f126890aSEmmanuel Vadot 123*f126890aSEmmanuel Vadot i2c@1 { 124*f126890aSEmmanuel Vadot /* FMC B */ 125*f126890aSEmmanuel Vadot #address-cells = <1>; 126*f126890aSEmmanuel Vadot #size-cells = <0>; 127*f126890aSEmmanuel Vadot reg = <1>; 128*f126890aSEmmanuel Vadot }; 129*f126890aSEmmanuel Vadot 130*f126890aSEmmanuel Vadot i2c@2 { 131*f126890aSEmmanuel Vadot /* QSFP A */ 132*f126890aSEmmanuel Vadot #address-cells = <1>; 133*f126890aSEmmanuel Vadot #size-cells = <0>; 134*f126890aSEmmanuel Vadot reg = <2>; 135*f126890aSEmmanuel Vadot }; 136*f126890aSEmmanuel Vadot 137*f126890aSEmmanuel Vadot i2c@3 { 138*f126890aSEmmanuel Vadot /* QSFP B */ 139*f126890aSEmmanuel Vadot #address-cells = <1>; 140*f126890aSEmmanuel Vadot #size-cells = <0>; 141*f126890aSEmmanuel Vadot reg = <3>; 142*f126890aSEmmanuel Vadot }; 143*f126890aSEmmanuel Vadot 144*f126890aSEmmanuel Vadot i2c@4 { 145*f126890aSEmmanuel Vadot /* SFP */ 146*f126890aSEmmanuel Vadot #address-cells = <1>; 147*f126890aSEmmanuel Vadot #size-cells = <0>; 148*f126890aSEmmanuel Vadot reg = <4>; 149*f126890aSEmmanuel Vadot }; 150*f126890aSEmmanuel Vadot 151*f126890aSEmmanuel Vadot i2c@5 { 152*f126890aSEmmanuel Vadot #address-cells = <1>; 153*f126890aSEmmanuel Vadot #size-cells = <0>; 154*f126890aSEmmanuel Vadot reg = <5>; 155*f126890aSEmmanuel Vadot 156*f126890aSEmmanuel Vadot ina230@40 { compatible = "ti,ina230"; reg = <0x40>; shunt-resistor = <5000>; }; 157*f126890aSEmmanuel Vadot ina230@41 { compatible = "ti,ina230"; reg = <0x41>; shunt-resistor = <5000>; }; 158*f126890aSEmmanuel Vadot ina230@42 { compatible = "ti,ina230"; reg = <0x42>; shunt-resistor = <5000>; }; 159*f126890aSEmmanuel Vadot 160*f126890aSEmmanuel Vadot ina230@44 { compatible = "ti,ina230"; reg = <0x44>; shunt-resistor = <5000>; }; 161*f126890aSEmmanuel Vadot ina230@45 { compatible = "ti,ina230"; reg = <0x45>; shunt-resistor = <5000>; }; 162*f126890aSEmmanuel Vadot ina230@46 { compatible = "ti,ina230"; reg = <0x46>; shunt-resistor = <5000>; }; 163*f126890aSEmmanuel Vadot 164*f126890aSEmmanuel Vadot ina230@47 { compatible = "ti,ina230"; reg = <0x47>; shunt-resistor = <5500>; }; 165*f126890aSEmmanuel Vadot ina230@48 { compatible = "ti,ina230"; reg = <0x48>; shunt-resistor = <2360>; }; 166*f126890aSEmmanuel Vadot ina230@49 { compatible = "ti,ina230"; reg = <0x49>; shunt-resistor = <2360>; }; 167*f126890aSEmmanuel Vadot ina230@43 { compatible = "ti,ina230"; reg = <0x43>; shunt-resistor = <2360>; }; 168*f126890aSEmmanuel Vadot ina230@4b { compatible = "ti,ina230"; reg = <0x4b>; shunt-resistor = <5500>; }; 169*f126890aSEmmanuel Vadot ina230@4c { compatible = "ti,ina230"; reg = <0x4c>; shunt-resistor = <2360>; }; 170*f126890aSEmmanuel Vadot ina230@4d { compatible = "ti,ina230"; reg = <0x4d>; shunt-resistor = <770>; }; 171*f126890aSEmmanuel Vadot ina230@4e { compatible = "ti,ina230"; reg = <0x4e>; shunt-resistor = <770>; }; 172*f126890aSEmmanuel Vadot ina230@4f { compatible = "ti,ina230"; reg = <0x4f>; shunt-resistor = <770>; }; 173*f126890aSEmmanuel Vadot }; 174*f126890aSEmmanuel Vadot 175*f126890aSEmmanuel Vadot i2c@6 { 176*f126890aSEmmanuel Vadot /* Backplane */ 177*f126890aSEmmanuel Vadot #address-cells = <1>; 178*f126890aSEmmanuel Vadot #size-cells = <0>; 179*f126890aSEmmanuel Vadot reg = <6>; 180*f126890aSEmmanuel Vadot }; 181*f126890aSEmmanuel Vadot 182*f126890aSEmmanuel Vadot i2c@7 { 183*f126890aSEmmanuel Vadot #address-cells = <1>; 184*f126890aSEmmanuel Vadot #size-cells = <0>; 185*f126890aSEmmanuel Vadot reg = <7>; 186*f126890aSEmmanuel Vadot 187*f126890aSEmmanuel Vadot u41: pca9575@20 { 188*f126890aSEmmanuel Vadot compatible = "nxp,pca9575"; 189*f126890aSEmmanuel Vadot reg = <0x20>; 190*f126890aSEmmanuel Vadot gpio-controller; 191*f126890aSEmmanuel Vadot #gpio-cells = <2>; 192*f126890aSEmmanuel Vadot 193*f126890aSEmmanuel Vadot gpio-line-names = 194*f126890aSEmmanuel Vadot "FMCA_EN_12V0", "FMCA_EN_3V3", "FMCA_EN_VADJ", "FMCA_PG_M2C", 195*f126890aSEmmanuel Vadot "FMCA_PG_C2M", "FMCA_PRSNT_M2C_L", "FMCA_CLK_DIR", "SFP_LOS", 196*f126890aSEmmanuel Vadot "FMCB_EN_12V0", "FMCB_EN_3V3", "FMCB_EN_VADJ", "FMCB_PG_M2C", 197*f126890aSEmmanuel Vadot "FMCB_PG_C2M", "FMCB_PRSNT_M2C_L", "FMCB_CLK_DIR", "SFP_ModPrsL"; 198*f126890aSEmmanuel Vadot reset-gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; 199*f126890aSEmmanuel Vadot }; 200*f126890aSEmmanuel Vadot 201*f126890aSEmmanuel Vadot u42: pca9575@21 { 202*f126890aSEmmanuel Vadot compatible = "nxp,pca9575"; 203*f126890aSEmmanuel Vadot reg = <0x21>; 204*f126890aSEmmanuel Vadot gpio-controller; 205*f126890aSEmmanuel Vadot #gpio-cells = <2>; 206*f126890aSEmmanuel Vadot gpio-line-names = 207*f126890aSEmmanuel Vadot "QSFPA_ModPrsL", "QSFPA_IntL", "QSFPA_ResetL", "QSFPA_ModSelL", 208*f126890aSEmmanuel Vadot "QSFPA_LPMode", "QSFPB_ModPrsL", "QSFPB_IntL", "QSFPB_ResetL", 209*f126890aSEmmanuel Vadot "SFP_TxFault", "SFP_TxDisable", "SFP_RS0", "SFP_RS1", 210*f126890aSEmmanuel Vadot "QSFPB_ModSelL", "QSFPB_LPMode", "SEL_SFP", "ARM_MR"; 211*f126890aSEmmanuel Vadot reset-gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; 212*f126890aSEmmanuel Vadot }; 213*f126890aSEmmanuel Vadot 214*f126890aSEmmanuel Vadot u48: pca9575@22 { 215*f126890aSEmmanuel Vadot compatible = "nxp,pca9575"; 216*f126890aSEmmanuel Vadot reg = <0x22>; 217*f126890aSEmmanuel Vadot gpio-controller; 218*f126890aSEmmanuel Vadot #gpio-cells = <2>; 219*f126890aSEmmanuel Vadot 220*f126890aSEmmanuel Vadot sw-gpios = <&u48 0 0>, <&u48 1 0>, <&u48 2 0>, <&u48 3 0>, 221*f126890aSEmmanuel Vadot <&u48 4 0>, <&u48 5 0>, <&u48 6 0>, <&u48 7 0>; 222*f126890aSEmmanuel Vadot led-gpios = <&u48 7 0>, <&u48 6 0>, <&u48 5 0>, <&u48 4 0>, 223*f126890aSEmmanuel Vadot <&u48 3 0>, <&u48 2 0>, <&u48 1 0>, <&u48 0 0>; 224*f126890aSEmmanuel Vadot 225*f126890aSEmmanuel Vadot gpio-line-names = 226*f126890aSEmmanuel Vadot "GP_SW1", "GP_SW2", "GP_SW3", "GP_SW4", 227*f126890aSEmmanuel Vadot "GP_SW5", "GP_SW6", "GP_SW7", "GP_SW8", 228*f126890aSEmmanuel Vadot "GP_LED8", "GP_LED7", "GP_LED6", "GP_LED5", 229*f126890aSEmmanuel Vadot "GP_LED4", "GP_LED3", "GP_LED2", "GP_LED1"; 230*f126890aSEmmanuel Vadot reset-gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; 231*f126890aSEmmanuel Vadot }; 232*f126890aSEmmanuel Vadot 233*f126890aSEmmanuel Vadot u59: pca9575@23 { 234*f126890aSEmmanuel Vadot compatible = "nxp,pca9575"; 235*f126890aSEmmanuel Vadot reg = <0x23>; 236*f126890aSEmmanuel Vadot gpio-controller; 237*f126890aSEmmanuel Vadot #gpio-cells = <2>; 238*f126890aSEmmanuel Vadot gpio-line-names = 239*f126890aSEmmanuel Vadot "GP_LED9", "GP_LED10", "GP_LED11", "GP_LED12", 240*f126890aSEmmanuel Vadot "GTX1V8PowerFault", "PHYAPowerFault", "PHYBPowerFault", "ArmPowerFault", 241*f126890aSEmmanuel Vadot "BP_SLOW_GPIO0", "BP_SLOW_GPIO1", "BP_SLOW_GPIO2", "BP_SLOW_GPIO3", 242*f126890aSEmmanuel Vadot "BP_SLOW_GPIO4", "BP_SLOW_GPIO5", "__unused_u59_p16", "__unused_u59_p17"; 243*f126890aSEmmanuel Vadot reset-gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; 244*f126890aSEmmanuel Vadot }; 245*f126890aSEmmanuel Vadot 246*f126890aSEmmanuel Vadot tmp100@48 { compatible = "ti,tmp100"; reg = <0x48>; }; 247*f126890aSEmmanuel Vadot tmp100@4a { compatible = "ti,tmp100"; reg = <0x4a>; }; 248*f126890aSEmmanuel Vadot tmp100@4b { compatible = "ti,tmp100"; reg = <0x4b>; }; 249*f126890aSEmmanuel Vadot tmp100@4c { compatible = "ti,tmp100"; reg = <0x4c>; }; 250*f126890aSEmmanuel Vadot 251*f126890aSEmmanuel Vadot /* EEPROM bank and serial number are treated as separate devices */ 252*f126890aSEmmanuel Vadot at24c01@57 { compatible = "atmel,24c01"; reg = <0x57>; }; 253*f126890aSEmmanuel Vadot at24cs01@5f { compatible = "atmel,24cs01"; reg = <0x5f>; }; 254*f126890aSEmmanuel Vadot }; 255*f126890aSEmmanuel Vadot }; 256*f126890aSEmmanuel Vadot}; 257*f126890aSEmmanuel Vadot 258*f126890aSEmmanuel Vadot&i2c2 { 259*f126890aSEmmanuel Vadot i2c-mux@71 { 260*f126890aSEmmanuel Vadot compatible = "nxp,pca9548"; 261*f126890aSEmmanuel Vadot reg = <0x71>; 262*f126890aSEmmanuel Vadot #address-cells = <1>; 263*f126890aSEmmanuel Vadot #size-cells = <0>; 264*f126890aSEmmanuel Vadot 265*f126890aSEmmanuel Vadot i2c@6 { 266*f126890aSEmmanuel Vadot /* Backplane */ 267*f126890aSEmmanuel Vadot #address-cells = <1>; 268*f126890aSEmmanuel Vadot #size-cells = <0>; 269*f126890aSEmmanuel Vadot reg = <6>; 270*f126890aSEmmanuel Vadot multi-master; 271*f126890aSEmmanuel Vadot 272*f126890aSEmmanuel Vadot /* All backplanes should have this -- it's how we know they're there. */ 273*f126890aSEmmanuel Vadot at24c08@54 { compatible="atmel,24c08"; reg=<0x54>; }; 274*f126890aSEmmanuel Vadot at24cs08@5c { compatible="atmel,24cs08"; reg=<0x5c>; }; 275*f126890aSEmmanuel Vadot 276*f126890aSEmmanuel Vadot /* 16 slot backplane */ 277*f126890aSEmmanuel Vadot tmp421@4d { compatible="ti,tmp421"; reg=<0x4d>; }; 278*f126890aSEmmanuel Vadot tmp421@4e { compatible="ti,tmp421"; reg=<0x4e>; }; 279*f126890aSEmmanuel Vadot ina230@40 { compatible = "ti,ina230"; reg = <0x40>; shunt-resistor = <2360>; }; 280*f126890aSEmmanuel Vadot amc6821@18 { compatible = "ti,amc6821"; reg = <0x18>; }; 281*f126890aSEmmanuel Vadot 282*f126890aSEmmanuel Vadot /* Single slot backplane */ 283*f126890aSEmmanuel Vadot }; 284*f126890aSEmmanuel Vadot }; 285*f126890aSEmmanuel Vadot}; 286*f126890aSEmmanuel Vadot 287*f126890aSEmmanuel Vadot&pincntl { 288*f126890aSEmmanuel Vadot mmc2_pins: mmc2-pins { 289*f126890aSEmmanuel Vadot pinctrl-single,pins = < 290*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0800, PIN_INPUT | 0x1) /* SD1_CLK */ 291*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0804, PIN_INPUT_PULLUP | 0x1) /* SD1_CMD */ 292*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0808, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[0] */ 293*f126890aSEmmanuel Vadot DM814X_IOPAD(0x080c, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[1] */ 294*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0810, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[2] */ 295*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0814, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[3] */ 296*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0924, PIN_INPUT_PULLUP | 0x40) /* SD1_POW */ 297*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0928, PIN_INPUT | 0x40) /* SD1_SDWP */ 298*f126890aSEmmanuel Vadot DM814X_IOPAD(0x093C, PIN_INPUT | 0x2) /* SD1_SDCD */ 299*f126890aSEmmanuel Vadot >; 300*f126890aSEmmanuel Vadot }; 301*f126890aSEmmanuel Vadot 302*f126890aSEmmanuel Vadot usb0_pins: usb0-pins { 303*f126890aSEmmanuel Vadot pinctrl-single,pins = < 304*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0c34, PIN_OUTPUT | 0x1) /* USB0_DRVVBUS */ 305*f126890aSEmmanuel Vadot >; 306*f126890aSEmmanuel Vadot }; 307*f126890aSEmmanuel Vadot 308*f126890aSEmmanuel Vadot usb1_pins: usb1-pins { 309*f126890aSEmmanuel Vadot pinctrl-single,pins = < 310*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0834, PIN_OUTPUT | 0x80) /* USB1_DRVVBUS */ 311*f126890aSEmmanuel Vadot >; 312*f126890aSEmmanuel Vadot }; 313*f126890aSEmmanuel Vadot 314*f126890aSEmmanuel Vadot gpio1_pins: gpio1-pins { 315*f126890aSEmmanuel Vadot pinctrl-single,pins = < 316*f126890aSEmmanuel Vadot DM814X_IOPAD(0x081c, PIN_OUTPUT | 0x80) /* PROGRAM_B */ 317*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0820, PIN_INPUT | 0x80) /* INIT_B */ 318*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0824, PIN_INPUT | 0x80) /* DONE */ 319*f126890aSEmmanuel Vadot 320*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0838, PIN_INPUT_PULLUP | 0x80) /* FMCA_TMS */ 321*f126890aSEmmanuel Vadot DM814X_IOPAD(0x083c, PIN_INPUT_PULLUP | 0x80) /* FMCA_TCK */ 322*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0898, PIN_INPUT_PULLUP | 0x80) /* FMCA_TDO */ 323*f126890aSEmmanuel Vadot DM814X_IOPAD(0x089c, PIN_INPUT_PULLUP | 0x80) /* FMCA_TDI */ 324*f126890aSEmmanuel Vadot DM814X_IOPAD(0x08ac, PIN_INPUT_PULLUP | 0x80) /* FMCA_TRST */ 325*f126890aSEmmanuel Vadot 326*f126890aSEmmanuel Vadot DM814X_IOPAD(0x08b0, PIN_INPUT_PULLUP | 0x80) /* FMCB_TMS */ 327*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0a88, PIN_INPUT_PULLUP | 0x80) /* FMCB_TCK */ 328*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0a8c, PIN_INPUT_PULLUP | 0x80) /* FMCB_TDO */ 329*f126890aSEmmanuel Vadot DM814X_IOPAD(0x08bc, PIN_INPUT_PULLUP | 0x80) /* FMCB_TDI */ 330*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0a94, PIN_INPUT_PULLUP | 0x80) /* FMCB_TRST */ 331*f126890aSEmmanuel Vadot 332*f126890aSEmmanuel Vadot DM814X_IOPAD(0x08d4, PIN_INPUT_PULLUP | 0x80) /* FPGA_TMS */ 333*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0aa8, PIN_INPUT_PULLUP | 0x80) /* FPGA_TCK */ 334*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0adc, PIN_INPUT_PULLUP | 0x80) /* FPGA_TDO */ 335*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0ab0, PIN_INPUT_PULLUP | 0x80) /* FPGA_TDI */ 336*f126890aSEmmanuel Vadot >; 337*f126890aSEmmanuel Vadot }; 338*f126890aSEmmanuel Vadot 339*f126890aSEmmanuel Vadot gpio2_pins: gpio2-pins { 340*f126890aSEmmanuel Vadot pinctrl-single,pins = < 341*f126890aSEmmanuel Vadot DM814X_IOPAD(0x090c, PIN_INPUT_PULLUP | 0x80) /* PHY A IRQ */ 342*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0910, PIN_INPUT_PULLUP | 0x80) /* PHY A RESET */ 343*f126890aSEmmanuel Vadot DM814X_IOPAD(0x08f4, PIN_INPUT_PULLUP | 0x80) /* PHY B IRQ */ 344*f126890aSEmmanuel Vadot DM814X_IOPAD(0x08f8, PIN_INPUT_PULLUP | 0x80) /* PHY B RESET */ 345*f126890aSEmmanuel Vadot 346*f126890aSEmmanuel Vadot //DM814X_IOPAD(0x0a14, PIN_INPUT_PULLUP | 0x80) /* ARM IRQ */ 347*f126890aSEmmanuel Vadot //DM814X_IOPAD(0x0900, PIN_INPUT | 0x80) /* GPIO IRQ */ 348*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0a2c, PIN_INPUT_PULLUP | 0x80) /* GPIO RESET */ 349*f126890aSEmmanuel Vadot >; 350*f126890aSEmmanuel Vadot }; 351*f126890aSEmmanuel Vadot 352*f126890aSEmmanuel Vadot gpio4_pins: gpio4-pins { 353*f126890aSEmmanuel Vadot pinctrl-single,pins = < 354*f126890aSEmmanuel Vadot /* The PLL doesn't react well to the SPI controller reset, so 355*f126890aSEmmanuel Vadot * we force the CS lines to pull up as GPIOs until we're ready. 356*f126890aSEmmanuel Vadot * See https://e2e.ti.com/support/processors/f/791/t/276011?Linux-support-for-AM3874-DM8148-in-Arago-linux-omap3 357*f126890aSEmmanuel Vadot */ 358*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b3c, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO0 */ 359*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b40, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO1 */ 360*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b44, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO2 */ 361*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b48, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO3 */ 362*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b4c, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO4 */ 363*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b50, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO5 */ 364*f126890aSEmmanuel Vadot >; 365*f126890aSEmmanuel Vadot }; 366*f126890aSEmmanuel Vadot 367*f126890aSEmmanuel Vadot spi2_pins: spi2-pins { 368*f126890aSEmmanuel Vadot pinctrl-single,pins = < 369*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0950, PIN_INPUT_PULLUP | 0x80) /* PLL SPI CS1 as GPIO */ 370*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0818, PIN_INPUT_PULLUP | 0x80) /* PLL SPI CS2 as GPIO */ 371*f126890aSEmmanuel Vadot >; 372*f126890aSEmmanuel Vadot }; 373*f126890aSEmmanuel Vadot 374*f126890aSEmmanuel Vadot spi4_pins: spi4-pins { 375*f126890aSEmmanuel Vadot pinctrl-single,pins = < 376*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0a7c, 0x20) 377*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b74, 0x20) 378*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b78, PIN_OUTPUT | 0x20) 379*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b7c, PIN_OUTPUT_PULLDOWN | 0x20) 380*f126890aSEmmanuel Vadot DM814X_IOPAD(0x0b80, PIN_INPUT | 0x20) 381*f126890aSEmmanuel Vadot >; 382*f126890aSEmmanuel Vadot }; 383*f126890aSEmmanuel Vadot}; 384*f126890aSEmmanuel Vadot 385*f126890aSEmmanuel Vadot&gpio1 { 386*f126890aSEmmanuel Vadot pinctrl-names = "default"; 387*f126890aSEmmanuel Vadot pinctrl-0 = <&gpio1_pins>; 388*f126890aSEmmanuel Vadot gpio-line-names = 389*f126890aSEmmanuel Vadot "", "PROGRAM_B", "INIT_B", "DONE", /* 0-3 */ 390*f126890aSEmmanuel Vadot "", "", "", "", /* 4-7 */ 391*f126890aSEmmanuel Vadot "FMCA_TMS", "FMCA_TCK", "FMCA_TDO", "FMCA_TDI", /* 8-11 */ 392*f126890aSEmmanuel Vadot "", "", "", "FMCA_TRST", /* 12-15 */ 393*f126890aSEmmanuel Vadot "FMCB_TMS", "FMCB_TCK", "FMCB_TDO", "FMCB_TDI", /* 16-19 */ 394*f126890aSEmmanuel Vadot "FMCB_TRST", "", "", "", /* 20-23 */ 395*f126890aSEmmanuel Vadot "FPGA_TMS", "FPGA_TCK", "FPGA_TDO", "FPGA_TDI", /* 24-27 */ 396*f126890aSEmmanuel Vadot "", "", "", ""; /* 28-31 */ 397*f126890aSEmmanuel Vadot}; 398*f126890aSEmmanuel Vadot 399*f126890aSEmmanuel Vadot&gpio2 { 400*f126890aSEmmanuel Vadot pinctrl-names = "default"; 401*f126890aSEmmanuel Vadot pinctrl-0 = <&gpio2_pins>; 402*f126890aSEmmanuel Vadot gpio-line-names = 403*f126890aSEmmanuel Vadot "PHYA_IRQ_N", "PHYA_RESET_N", "", "", /* 0-3 */ 404*f126890aSEmmanuel Vadot "", "", "", "PHYB_IRQ_N", /* 4-7 */ 405*f126890aSEmmanuel Vadot "PHYB_RESET_N", "ARM_IRQ", "GPIO_IRQ", ""; /* 8-11 */ 406*f126890aSEmmanuel Vadot}; 407*f126890aSEmmanuel Vadot 408*f126890aSEmmanuel Vadot&gpio3 { 409*f126890aSEmmanuel Vadot pinctrl-names = "default"; 410*f126890aSEmmanuel Vadot /*pinctrl-0 = <&gpio3_pins>;*/ 411*f126890aSEmmanuel Vadot gpio-line-names = 412*f126890aSEmmanuel Vadot "", "", "ARMClkSel0", "", /* 0-3 */ 413*f126890aSEmmanuel Vadot "EnFPGARef", "", "", "ARMClkSel1"; /* 4-7 */ 414*f126890aSEmmanuel Vadot}; 415*f126890aSEmmanuel Vadot 416*f126890aSEmmanuel Vadot&gpio4 { 417*f126890aSEmmanuel Vadot pinctrl-names = "default"; 418*f126890aSEmmanuel Vadot pinctrl-0 = <&gpio4_pins>; 419*f126890aSEmmanuel Vadot gpio-line-names = 420*f126890aSEmmanuel Vadot "BP_ARM_GPIO0", "BP_ARM_GPIO1", "BP_ARM_GPIO2", "BP_ARM_GPIO3", 421*f126890aSEmmanuel Vadot "BP_ARM_GPIO4", "BP_ARM_GPIO5"; 422*f126890aSEmmanuel Vadot}; 423*f126890aSEmmanuel Vadot 424*f126890aSEmmanuel Vadot&usb0 { 425*f126890aSEmmanuel Vadot pinctrl-names = "default"; 426*f126890aSEmmanuel Vadot pinctrl-0 = <&usb0_pins>; 427*f126890aSEmmanuel Vadot dr_mode = "host"; 428*f126890aSEmmanuel Vadot}; 429*f126890aSEmmanuel Vadot 430*f126890aSEmmanuel Vadot&usb1 { 431*f126890aSEmmanuel Vadot pinctrl-names = "default"; 432*f126890aSEmmanuel Vadot pinctrl-0 = <&usb1_pins>; 433*f126890aSEmmanuel Vadot dr_mode = "host"; 434*f126890aSEmmanuel Vadot}; 435*f126890aSEmmanuel Vadot 436*f126890aSEmmanuel Vadot&mcspi1 { 437*f126890aSEmmanuel Vadot flash@0 { 438*f126890aSEmmanuel Vadot #address-cells = <1>; 439*f126890aSEmmanuel Vadot #size-cells = <1>; 440*f126890aSEmmanuel Vadot compatible = "jedec,spi-nor"; 441*f126890aSEmmanuel Vadot reg = <0>; 442*f126890aSEmmanuel Vadot spi-max-frequency = <40000000>; 443*f126890aSEmmanuel Vadot 444*f126890aSEmmanuel Vadot fsbl@0 { 445*f126890aSEmmanuel Vadot /* 256 kB */ 446*f126890aSEmmanuel Vadot label = "U-Boot-min"; 447*f126890aSEmmanuel Vadot reg = <0 0x40000>; 448*f126890aSEmmanuel Vadot }; 449*f126890aSEmmanuel Vadot ssbl@1 { 450*f126890aSEmmanuel Vadot /* 512 kB */ 451*f126890aSEmmanuel Vadot label = "U-Boot"; 452*f126890aSEmmanuel Vadot reg = <0x40000 0x80000>; 453*f126890aSEmmanuel Vadot }; 454*f126890aSEmmanuel Vadot bootenv@2 { 455*f126890aSEmmanuel Vadot /* 256 kB */ 456*f126890aSEmmanuel Vadot label = "U-Boot Env"; 457*f126890aSEmmanuel Vadot reg = <0xc0000 0x40000>; 458*f126890aSEmmanuel Vadot }; 459*f126890aSEmmanuel Vadot kernel@3 { 460*f126890aSEmmanuel Vadot /* 4 MB */ 461*f126890aSEmmanuel Vadot label = "Kernel"; 462*f126890aSEmmanuel Vadot reg = <0x100000 0x400000>; 463*f126890aSEmmanuel Vadot }; 464*f126890aSEmmanuel Vadot ipmi@4 { 465*f126890aSEmmanuel Vadot label = "IPMI FRU"; 466*f126890aSEmmanuel Vadot reg = <0x500000 0x40000>; 467*f126890aSEmmanuel Vadot }; 468*f126890aSEmmanuel Vadot fs@5 { 469*f126890aSEmmanuel Vadot label = "File System"; 470*f126890aSEmmanuel Vadot reg = <0x540000 0x1ac0000>; 471*f126890aSEmmanuel Vadot }; 472*f126890aSEmmanuel Vadot }; 473*f126890aSEmmanuel Vadot}; 474*f126890aSEmmanuel Vadot 475*f126890aSEmmanuel Vadot&mcspi3 { 476*f126890aSEmmanuel Vadot /* DMA event numbers stolen from MCASP */ 477*f126890aSEmmanuel Vadot dmas = <&edma_xbar 8 0 16 &edma_xbar 9 0 17 478*f126890aSEmmanuel Vadot &edma_xbar 10 0 18 &edma_xbar 11 0 19>; 479*f126890aSEmmanuel Vadot dma-names = "tx0", "rx0", "tx1", "rx1"; 480*f126890aSEmmanuel Vadot}; 481*f126890aSEmmanuel Vadot 482*f126890aSEmmanuel Vadot&mcspi4 { 483*f126890aSEmmanuel Vadot pinctrl-names = "default"; 484*f126890aSEmmanuel Vadot pinctrl-0 = <&spi4_pins>; 485*f126890aSEmmanuel Vadot 486*f126890aSEmmanuel Vadot /* DMA event numbers stolen from MCASP, MCBSP */ 487*f126890aSEmmanuel Vadot dmas = <&edma_xbar 12 0 20 &edma_xbar 13 0 21>; 488*f126890aSEmmanuel Vadot dma-names = "tx0", "rx0"; 489*f126890aSEmmanuel Vadot}; 490