1*711cca0fSRobert Marko// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) 2*711cca0fSRobert Marko/* 3*711cca0fSRobert Marko * Copyright (c) 2025 Microchip Technology Inc. and its subsidiaries. 4*711cca0fSRobert Marko */ 5*711cca0fSRobert Marko 6*711cca0fSRobert Marko/dts-v1/; 7*711cca0fSRobert Marko 8*711cca0fSRobert Marko#include <dt-bindings/gpio/gpio.h> 9*711cca0fSRobert Marko#include <dt-bindings/leds/common.h> 10*711cca0fSRobert Marko#include "lan9691.dtsi" 11*711cca0fSRobert Marko 12*711cca0fSRobert Marko/ { 13*711cca0fSRobert Marko model = "Microchip EV23X71A"; 14*711cca0fSRobert Marko compatible = "microchip,ev23x71a", "microchip,lan9696", "microchip,lan9691"; 15*711cca0fSRobert Marko 16*711cca0fSRobert Marko aliases { 17*711cca0fSRobert Marko serial0 = &usart0; 18*711cca0fSRobert Marko }; 19*711cca0fSRobert Marko 20*711cca0fSRobert Marko chosen { 21*711cca0fSRobert Marko stdout-path = "serial0:115200n8"; 22*711cca0fSRobert Marko }; 23*711cca0fSRobert Marko 24*711cca0fSRobert Marko gpio-restart { 25*711cca0fSRobert Marko compatible = "gpio-restart"; 26*711cca0fSRobert Marko gpios = <&gpio 60 GPIO_ACTIVE_LOW>; 27*711cca0fSRobert Marko open-source; 28*711cca0fSRobert Marko priority = <200>; 29*711cca0fSRobert Marko }; 30*711cca0fSRobert Marko 31*711cca0fSRobert Marko i2c-mux { 32*711cca0fSRobert Marko compatible = "i2c-mux-gpio"; 33*711cca0fSRobert Marko #address-cells = <1>; 34*711cca0fSRobert Marko #size-cells = <0>; 35*711cca0fSRobert Marko i2c-parent = <&i2c3>; 36*711cca0fSRobert Marko idle-state = <0x8>; 37*711cca0fSRobert Marko mux-gpios = <&sgpio_out 0 1 GPIO_ACTIVE_HIGH>, 38*711cca0fSRobert Marko <&sgpio_out 0 2 GPIO_ACTIVE_HIGH>, 39*711cca0fSRobert Marko <&sgpio_out 0 3 GPIO_ACTIVE_HIGH>; 40*711cca0fSRobert Marko settle-time-us = <100>; 41*711cca0fSRobert Marko 42*711cca0fSRobert Marko i2c_sfp0: i2c@0 { 43*711cca0fSRobert Marko reg = <0x0>; 44*711cca0fSRobert Marko }; 45*711cca0fSRobert Marko 46*711cca0fSRobert Marko i2c_sfp1: i2c@1 { 47*711cca0fSRobert Marko reg = <0x1>; 48*711cca0fSRobert Marko }; 49*711cca0fSRobert Marko 50*711cca0fSRobert Marko i2c_sfp2: i2c@2 { 51*711cca0fSRobert Marko reg = <0x2>; 52*711cca0fSRobert Marko }; 53*711cca0fSRobert Marko 54*711cca0fSRobert Marko i2c_sfp3: i2c@3 { 55*711cca0fSRobert Marko reg = <0x3>; 56*711cca0fSRobert Marko }; 57*711cca0fSRobert Marko 58*711cca0fSRobert Marko i2c_poe: i2c@7 { 59*711cca0fSRobert Marko reg = <0x7>; 60*711cca0fSRobert Marko }; 61*711cca0fSRobert Marko }; 62*711cca0fSRobert Marko 63*711cca0fSRobert Marko leds { 64*711cca0fSRobert Marko compatible = "gpio-leds"; 65*711cca0fSRobert Marko 66*711cca0fSRobert Marko led-status { 67*711cca0fSRobert Marko color = <LED_COLOR_ID_GREEN>; 68*711cca0fSRobert Marko function = LED_FUNCTION_STATUS; 69*711cca0fSRobert Marko gpios = <&gpio 61 GPIO_ACTIVE_LOW>; 70*711cca0fSRobert Marko }; 71*711cca0fSRobert Marko 72*711cca0fSRobert Marko led-sfp1-green { 73*711cca0fSRobert Marko color = <LED_COLOR_ID_GREEN>; 74*711cca0fSRobert Marko function = LED_FUNCTION_LAN; 75*711cca0fSRobert Marko function-enumerator = <0>; 76*711cca0fSRobert Marko gpios = <&sgpio_out 6 0 GPIO_ACTIVE_LOW>; 77*711cca0fSRobert Marko default-state = "off"; 78*711cca0fSRobert Marko }; 79*711cca0fSRobert Marko 80*711cca0fSRobert Marko led-sfp1-yellow { 81*711cca0fSRobert Marko color = <LED_COLOR_ID_YELLOW>; 82*711cca0fSRobert Marko function = LED_FUNCTION_LAN; 83*711cca0fSRobert Marko function-enumerator = <0>; 84*711cca0fSRobert Marko gpios = <&sgpio_out 6 1 GPIO_ACTIVE_LOW>; 85*711cca0fSRobert Marko default-state = "off"; 86*711cca0fSRobert Marko }; 87*711cca0fSRobert Marko 88*711cca0fSRobert Marko led-sfp2-green { 89*711cca0fSRobert Marko color = <LED_COLOR_ID_GREEN>; 90*711cca0fSRobert Marko function = LED_FUNCTION_LAN; 91*711cca0fSRobert Marko function-enumerator = <1>; 92*711cca0fSRobert Marko gpios = <&sgpio_out 7 0 GPIO_ACTIVE_LOW>; 93*711cca0fSRobert Marko default-state = "off"; 94*711cca0fSRobert Marko }; 95*711cca0fSRobert Marko 96*711cca0fSRobert Marko led-sfp2-yellow { 97*711cca0fSRobert Marko color = <LED_COLOR_ID_YELLOW>; 98*711cca0fSRobert Marko function = LED_FUNCTION_LAN; 99*711cca0fSRobert Marko function-enumerator = <1>; 100*711cca0fSRobert Marko gpios = <&sgpio_out 7 1 GPIO_ACTIVE_LOW>; 101*711cca0fSRobert Marko default-state = "off"; 102*711cca0fSRobert Marko }; 103*711cca0fSRobert Marko 104*711cca0fSRobert Marko led-sfp3-green { 105*711cca0fSRobert Marko color = <LED_COLOR_ID_GREEN>; 106*711cca0fSRobert Marko function = LED_FUNCTION_LAN; 107*711cca0fSRobert Marko function-enumerator = <2>; 108*711cca0fSRobert Marko gpios = <&sgpio_out 8 0 GPIO_ACTIVE_LOW>; 109*711cca0fSRobert Marko default-state = "off"; 110*711cca0fSRobert Marko }; 111*711cca0fSRobert Marko 112*711cca0fSRobert Marko led-sfp3-yellow { 113*711cca0fSRobert Marko color = <LED_COLOR_ID_YELLOW>; 114*711cca0fSRobert Marko function = LED_FUNCTION_LAN; 115*711cca0fSRobert Marko function-enumerator = <2>; 116*711cca0fSRobert Marko gpios = <&sgpio_out 8 1 GPIO_ACTIVE_LOW>; 117*711cca0fSRobert Marko default-state = "off"; 118*711cca0fSRobert Marko }; 119*711cca0fSRobert Marko 120*711cca0fSRobert Marko led-sfp4-green { 121*711cca0fSRobert Marko color = <LED_COLOR_ID_GREEN>; 122*711cca0fSRobert Marko function = LED_FUNCTION_LAN; 123*711cca0fSRobert Marko function-enumerator = <3>; 124*711cca0fSRobert Marko gpios = <&sgpio_out 9 0 GPIO_ACTIVE_LOW>; 125*711cca0fSRobert Marko default-state = "off"; 126*711cca0fSRobert Marko }; 127*711cca0fSRobert Marko 128*711cca0fSRobert Marko led-sfp4-yellow { 129*711cca0fSRobert Marko color = <LED_COLOR_ID_YELLOW>; 130*711cca0fSRobert Marko function = LED_FUNCTION_LAN; 131*711cca0fSRobert Marko function-enumerator = <3>; 132*711cca0fSRobert Marko gpios = <&sgpio_out 9 1 GPIO_ACTIVE_LOW>; 133*711cca0fSRobert Marko default-state = "off"; 134*711cca0fSRobert Marko }; 135*711cca0fSRobert Marko }; 136*711cca0fSRobert Marko 137*711cca0fSRobert Marko mux-controller { 138*711cca0fSRobert Marko compatible = "gpio-mux"; 139*711cca0fSRobert Marko #mux-control-cells = <0>; 140*711cca0fSRobert Marko mux-gpios = <&sgpio_out 1 2 GPIO_ACTIVE_LOW>, 141*711cca0fSRobert Marko <&sgpio_out 1 3 GPIO_ACTIVE_LOW>; 142*711cca0fSRobert Marko }; 143*711cca0fSRobert Marko 144*711cca0fSRobert Marko sfp0: sfp0 { 145*711cca0fSRobert Marko compatible = "sff,sfp"; 146*711cca0fSRobert Marko i2c-bus = <&i2c_sfp0>; 147*711cca0fSRobert Marko tx-disable-gpios = <&sgpio_out 6 2 GPIO_ACTIVE_HIGH>; 148*711cca0fSRobert Marko los-gpios = <&sgpio_in 6 0 GPIO_ACTIVE_HIGH>; 149*711cca0fSRobert Marko mod-def0-gpios = <&sgpio_in 6 1 GPIO_ACTIVE_LOW>; 150*711cca0fSRobert Marko tx-fault-gpios = <&sgpio_in 6 2 GPIO_ACTIVE_HIGH>; 151*711cca0fSRobert Marko }; 152*711cca0fSRobert Marko 153*711cca0fSRobert Marko sfp1: sfp1 { 154*711cca0fSRobert Marko compatible = "sff,sfp"; 155*711cca0fSRobert Marko i2c-bus = <&i2c_sfp1>; 156*711cca0fSRobert Marko tx-disable-gpios = <&sgpio_out 7 2 GPIO_ACTIVE_HIGH>; 157*711cca0fSRobert Marko los-gpios = <&sgpio_in 7 0 GPIO_ACTIVE_HIGH>; 158*711cca0fSRobert Marko mod-def0-gpios = <&sgpio_in 7 1 GPIO_ACTIVE_LOW>; 159*711cca0fSRobert Marko tx-fault-gpios = <&sgpio_in 7 2 GPIO_ACTIVE_HIGH>; 160*711cca0fSRobert Marko }; 161*711cca0fSRobert Marko 162*711cca0fSRobert Marko sfp2: sfp2 { 163*711cca0fSRobert Marko compatible = "sff,sfp"; 164*711cca0fSRobert Marko i2c-bus = <&i2c_sfp2>; 165*711cca0fSRobert Marko tx-disable-gpios = <&sgpio_out 8 2 GPIO_ACTIVE_HIGH>; 166*711cca0fSRobert Marko los-gpios = <&sgpio_in 8 0 GPIO_ACTIVE_HIGH>; 167*711cca0fSRobert Marko mod-def0-gpios = <&sgpio_in 8 1 GPIO_ACTIVE_LOW>; 168*711cca0fSRobert Marko tx-fault-gpios = <&sgpio_in 8 2 GPIO_ACTIVE_HIGH>; 169*711cca0fSRobert Marko }; 170*711cca0fSRobert Marko 171*711cca0fSRobert Marko sfp3: sfp3 { 172*711cca0fSRobert Marko compatible = "sff,sfp"; 173*711cca0fSRobert Marko i2c-bus = <&i2c_sfp3>; 174*711cca0fSRobert Marko tx-disable-gpios = <&sgpio_out 9 2 GPIO_ACTIVE_HIGH>; 175*711cca0fSRobert Marko los-gpios = <&sgpio_in 9 0 GPIO_ACTIVE_HIGH>; 176*711cca0fSRobert Marko mod-def0-gpios = <&sgpio_in 9 1 GPIO_ACTIVE_LOW>; 177*711cca0fSRobert Marko tx-fault-gpios = <&sgpio_in 9 2 GPIO_ACTIVE_HIGH>; 178*711cca0fSRobert Marko }; 179*711cca0fSRobert Marko}; 180*711cca0fSRobert Marko 181*711cca0fSRobert Marko&gpio { 182*711cca0fSRobert Marko emmc_sd_pins: emmc-sd-pins { 183*711cca0fSRobert Marko /* eMMC_SD - CMD, CLK, D0, D1, D2, D3, D4, D5, D6, D7, RSTN */ 184*711cca0fSRobert Marko pins = "GPIO_14", "GPIO_15", "GPIO_16", "GPIO_17", 185*711cca0fSRobert Marko "GPIO_18", "GPIO_19", "GPIO_20", "GPIO_21", 186*711cca0fSRobert Marko "GPIO_22", "GPIO_23", "GPIO_24"; 187*711cca0fSRobert Marko function = "emmc_sd"; 188*711cca0fSRobert Marko }; 189*711cca0fSRobert Marko 190*711cca0fSRobert Marko fan_pins: fan-pins { 191*711cca0fSRobert Marko pins = "GPIO_25", "GPIO_26"; 192*711cca0fSRobert Marko function = "fan"; 193*711cca0fSRobert Marko }; 194*711cca0fSRobert Marko 195*711cca0fSRobert Marko fc0_pins: fc0-pins { 196*711cca0fSRobert Marko pins = "GPIO_3", "GPIO_4"; 197*711cca0fSRobert Marko function = "fc"; 198*711cca0fSRobert Marko }; 199*711cca0fSRobert Marko 200*711cca0fSRobert Marko fc2_pins: fc2-pins { 201*711cca0fSRobert Marko pins = "GPIO_64", "GPIO_65", "GPIO_66"; 202*711cca0fSRobert Marko function = "fc"; 203*711cca0fSRobert Marko }; 204*711cca0fSRobert Marko 205*711cca0fSRobert Marko fc3_pins: fc3-pins { 206*711cca0fSRobert Marko pins = "GPIO_55", "GPIO_56"; 207*711cca0fSRobert Marko function = "fc"; 208*711cca0fSRobert Marko }; 209*711cca0fSRobert Marko 210*711cca0fSRobert Marko mdio_irq_pins: mdio-irq-pins { 211*711cca0fSRobert Marko pins = "GPIO_11"; 212*711cca0fSRobert Marko function = "miim_irq"; 213*711cca0fSRobert Marko }; 214*711cca0fSRobert Marko 215*711cca0fSRobert Marko mdio_pins: mdio-pins { 216*711cca0fSRobert Marko pins = "GPIO_9", "GPIO_10"; 217*711cca0fSRobert Marko function = "miim"; 218*711cca0fSRobert Marko }; 219*711cca0fSRobert Marko 220*711cca0fSRobert Marko ptp_ext_pins: ptp-ext-pins { 221*711cca0fSRobert Marko pins = "GPIO_59"; 222*711cca0fSRobert Marko function = "ptpsync_5"; 223*711cca0fSRobert Marko }; 224*711cca0fSRobert Marko 225*711cca0fSRobert Marko ptp_out_pins: ptp-out-pins { 226*711cca0fSRobert Marko pins = "GPIO_58"; 227*711cca0fSRobert Marko function = "ptpsync_4"; 228*711cca0fSRobert Marko }; 229*711cca0fSRobert Marko 230*711cca0fSRobert Marko sgpio_pins: sgpio-pins { 231*711cca0fSRobert Marko /* SCK, D0, D1, LD */ 232*711cca0fSRobert Marko pins = "GPIO_5", "GPIO_6", "GPIO_7", "GPIO_8"; 233*711cca0fSRobert Marko function = "sgpio_a"; 234*711cca0fSRobert Marko }; 235*711cca0fSRobert Marko 236*711cca0fSRobert Marko usb_over_pins: usb-over-pins { 237*711cca0fSRobert Marko pins = "GPIO_13"; 238*711cca0fSRobert Marko function = "usb_over_detect"; 239*711cca0fSRobert Marko }; 240*711cca0fSRobert Marko 241*711cca0fSRobert Marko usb_power_pins: usb-power-pins { 242*711cca0fSRobert Marko pins = "GPIO_1"; 243*711cca0fSRobert Marko function = "usb_power"; 244*711cca0fSRobert Marko }; 245*711cca0fSRobert Marko 246*711cca0fSRobert Marko usb_rst_pins: usb-rst-pins { 247*711cca0fSRobert Marko pins = "GPIO_12"; 248*711cca0fSRobert Marko function = "usb2phy_rst"; 249*711cca0fSRobert Marko }; 250*711cca0fSRobert Marko 251*711cca0fSRobert Marko usb_ulpi_pins: usb-ulpi-pins { 252*711cca0fSRobert Marko pins = "GPIO_30", "GPIO_31", "GPIO_32", "GPIO_33", 253*711cca0fSRobert Marko "GPIO_34", "GPIO_35", "GPIO_36", "GPIO_37", 254*711cca0fSRobert Marko "GPIO_38", "GPIO_39", "GPIO_40", "GPIO_41"; 255*711cca0fSRobert Marko function = "usb_ulpi"; 256*711cca0fSRobert Marko }; 257*711cca0fSRobert Marko}; 258*711cca0fSRobert Marko 259*711cca0fSRobert Marko&flx0 { 260*711cca0fSRobert Marko atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; 261*711cca0fSRobert Marko status = "okay"; 262*711cca0fSRobert Marko}; 263*711cca0fSRobert Marko 264*711cca0fSRobert Marko&flx2 { 265*711cca0fSRobert Marko atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 266*711cca0fSRobert Marko status = "okay"; 267*711cca0fSRobert Marko}; 268*711cca0fSRobert Marko 269*711cca0fSRobert Marko&flx3 { 270*711cca0fSRobert Marko atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 271*711cca0fSRobert Marko status = "okay"; 272*711cca0fSRobert Marko}; 273*711cca0fSRobert Marko 274*711cca0fSRobert Marko&i2c3 { 275*711cca0fSRobert Marko pinctrl-0 = <&fc3_pins>; 276*711cca0fSRobert Marko pinctrl-names = "default"; 277*711cca0fSRobert Marko i2c-analog-filter; 278*711cca0fSRobert Marko i2c-digital-filter; 279*711cca0fSRobert Marko i2c-digital-filter-width-ns = <35>; 280*711cca0fSRobert Marko i2c-sda-hold-time-ns = <1500>; 281*711cca0fSRobert Marko status = "okay"; 282*711cca0fSRobert Marko}; 283*711cca0fSRobert Marko 284*711cca0fSRobert Marko&mdio0 { 285*711cca0fSRobert Marko pinctrl-0 = <&mdio_pins>, <&mdio_irq_pins>; 286*711cca0fSRobert Marko pinctrl-names = "default"; 287*711cca0fSRobert Marko reset-gpios = <&gpio 62 GPIO_ACTIVE_LOW>; 288*711cca0fSRobert Marko status = "okay"; 289*711cca0fSRobert Marko 290*711cca0fSRobert Marko phy3: phy@3 { 291*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 292*711cca0fSRobert Marko reg = <3>; 293*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 294*711cca0fSRobert Marko interrupt-parent = <&gpio>; 295*711cca0fSRobert Marko }; 296*711cca0fSRobert Marko 297*711cca0fSRobert Marko phy4: phy@4 { 298*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 299*711cca0fSRobert Marko reg = <4>; 300*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 301*711cca0fSRobert Marko interrupt-parent = <&gpio>; 302*711cca0fSRobert Marko }; 303*711cca0fSRobert Marko 304*711cca0fSRobert Marko phy5: phy@5 { 305*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 306*711cca0fSRobert Marko reg = <5>; 307*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 308*711cca0fSRobert Marko interrupt-parent = <&gpio>; 309*711cca0fSRobert Marko }; 310*711cca0fSRobert Marko 311*711cca0fSRobert Marko phy6: phy@6 { 312*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 313*711cca0fSRobert Marko reg = <6>; 314*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 315*711cca0fSRobert Marko interrupt-parent = <&gpio>; 316*711cca0fSRobert Marko }; 317*711cca0fSRobert Marko 318*711cca0fSRobert Marko phy7: phy@7 { 319*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 320*711cca0fSRobert Marko reg = <7>; 321*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 322*711cca0fSRobert Marko interrupt-parent = <&gpio>; 323*711cca0fSRobert Marko }; 324*711cca0fSRobert Marko 325*711cca0fSRobert Marko phy8: phy@8 { 326*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 327*711cca0fSRobert Marko reg = <8>; 328*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 329*711cca0fSRobert Marko interrupt-parent = <&gpio>; 330*711cca0fSRobert Marko }; 331*711cca0fSRobert Marko 332*711cca0fSRobert Marko phy9: phy@9 { 333*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 334*711cca0fSRobert Marko reg = <9>; 335*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 336*711cca0fSRobert Marko interrupt-parent = <&gpio>; 337*711cca0fSRobert Marko }; 338*711cca0fSRobert Marko 339*711cca0fSRobert Marko phy10: phy@10 { 340*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 341*711cca0fSRobert Marko reg = <10>; 342*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 343*711cca0fSRobert Marko interrupt-parent = <&gpio>; 344*711cca0fSRobert Marko }; 345*711cca0fSRobert Marko 346*711cca0fSRobert Marko phy11: phy@11 { 347*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 348*711cca0fSRobert Marko reg = <11>; 349*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 350*711cca0fSRobert Marko interrupt-parent = <&gpio>; 351*711cca0fSRobert Marko }; 352*711cca0fSRobert Marko 353*711cca0fSRobert Marko phy12: phy@12 { 354*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 355*711cca0fSRobert Marko reg = <12>; 356*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 357*711cca0fSRobert Marko interrupt-parent = <&gpio>; 358*711cca0fSRobert Marko }; 359*711cca0fSRobert Marko 360*711cca0fSRobert Marko phy13: phy@13 { 361*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 362*711cca0fSRobert Marko reg = <13>; 363*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 364*711cca0fSRobert Marko interrupt-parent = <&gpio>; 365*711cca0fSRobert Marko }; 366*711cca0fSRobert Marko 367*711cca0fSRobert Marko phy14: phy@14 { 368*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 369*711cca0fSRobert Marko reg = <14>; 370*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 371*711cca0fSRobert Marko interrupt-parent = <&gpio>; 372*711cca0fSRobert Marko }; 373*711cca0fSRobert Marko 374*711cca0fSRobert Marko phy15: phy@15 { 375*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 376*711cca0fSRobert Marko reg = <15>; 377*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 378*711cca0fSRobert Marko interrupt-parent = <&gpio>; 379*711cca0fSRobert Marko }; 380*711cca0fSRobert Marko 381*711cca0fSRobert Marko phy16: phy@16 { 382*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 383*711cca0fSRobert Marko reg = <16>; 384*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 385*711cca0fSRobert Marko interrupt-parent = <&gpio>; 386*711cca0fSRobert Marko }; 387*711cca0fSRobert Marko 388*711cca0fSRobert Marko phy17: phy@17 { 389*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 390*711cca0fSRobert Marko reg = <17>; 391*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 392*711cca0fSRobert Marko interrupt-parent = <&gpio>; 393*711cca0fSRobert Marko }; 394*711cca0fSRobert Marko 395*711cca0fSRobert Marko phy18: phy@18 { 396*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 397*711cca0fSRobert Marko reg = <18>; 398*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 399*711cca0fSRobert Marko interrupt-parent = <&gpio>; 400*711cca0fSRobert Marko }; 401*711cca0fSRobert Marko 402*711cca0fSRobert Marko phy19: phy@19 { 403*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 404*711cca0fSRobert Marko reg = <19>; 405*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 406*711cca0fSRobert Marko interrupt-parent = <&gpio>; 407*711cca0fSRobert Marko }; 408*711cca0fSRobert Marko 409*711cca0fSRobert Marko phy20: phy@20 { 410*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 411*711cca0fSRobert Marko reg = <20>; 412*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 413*711cca0fSRobert Marko interrupt-parent = <&gpio>; 414*711cca0fSRobert Marko }; 415*711cca0fSRobert Marko 416*711cca0fSRobert Marko phy21: phy@21 { 417*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 418*711cca0fSRobert Marko reg = <21>; 419*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 420*711cca0fSRobert Marko interrupt-parent = <&gpio>; 421*711cca0fSRobert Marko }; 422*711cca0fSRobert Marko 423*711cca0fSRobert Marko phy22: phy@22 { 424*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 425*711cca0fSRobert Marko reg = <22>; 426*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 427*711cca0fSRobert Marko interrupt-parent = <&gpio>; 428*711cca0fSRobert Marko }; 429*711cca0fSRobert Marko 430*711cca0fSRobert Marko phy23: phy@23 { 431*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 432*711cca0fSRobert Marko reg = <23>; 433*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 434*711cca0fSRobert Marko interrupt-parent = <&gpio>; 435*711cca0fSRobert Marko }; 436*711cca0fSRobert Marko 437*711cca0fSRobert Marko phy24: phy@24 { 438*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 439*711cca0fSRobert Marko reg = <24>; 440*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 441*711cca0fSRobert Marko interrupt-parent = <&gpio>; 442*711cca0fSRobert Marko }; 443*711cca0fSRobert Marko 444*711cca0fSRobert Marko phy25: phy@25 { 445*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 446*711cca0fSRobert Marko reg = <25>; 447*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 448*711cca0fSRobert Marko interrupt-parent = <&gpio>; 449*711cca0fSRobert Marko }; 450*711cca0fSRobert Marko 451*711cca0fSRobert Marko phy26: phy@26 { 452*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 453*711cca0fSRobert Marko reg = <26>; 454*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 455*711cca0fSRobert Marko interrupt-parent = <&gpio>; 456*711cca0fSRobert Marko }; 457*711cca0fSRobert Marko 458*711cca0fSRobert Marko phy27: phy@27 { 459*711cca0fSRobert Marko compatible = "ethernet-phy-ieee802.3-c22"; 460*711cca0fSRobert Marko reg = <27>; 461*711cca0fSRobert Marko interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 462*711cca0fSRobert Marko interrupt-parent = <&gpio>; 463*711cca0fSRobert Marko }; 464*711cca0fSRobert Marko}; 465*711cca0fSRobert Marko 466*711cca0fSRobert Marko&serdes { 467*711cca0fSRobert Marko status = "okay"; 468*711cca0fSRobert Marko}; 469*711cca0fSRobert Marko 470*711cca0fSRobert Marko&sgpio { 471*711cca0fSRobert Marko pinctrl-0 = <&sgpio_pins>; 472*711cca0fSRobert Marko pinctrl-names = "default"; 473*711cca0fSRobert Marko microchip,sgpio-port-ranges = <0 1>, <6 9>; 474*711cca0fSRobert Marko status = "okay"; 475*711cca0fSRobert Marko 476*711cca0fSRobert Marko gpio@0 { 477*711cca0fSRobert Marko ngpios = <128>; 478*711cca0fSRobert Marko }; 479*711cca0fSRobert Marko gpio@1 { 480*711cca0fSRobert Marko ngpios = <128>; 481*711cca0fSRobert Marko }; 482*711cca0fSRobert Marko}; 483*711cca0fSRobert Marko 484*711cca0fSRobert Marko&spi2 { 485*711cca0fSRobert Marko pinctrl-0 = <&fc2_pins>; 486*711cca0fSRobert Marko pinctrl-names = "default"; 487*711cca0fSRobert Marko cs-gpios = <&gpio 63 GPIO_ACTIVE_LOW>; 488*711cca0fSRobert Marko status = "okay"; 489*711cca0fSRobert Marko}; 490*711cca0fSRobert Marko 491*711cca0fSRobert Marko&switch { 492*711cca0fSRobert Marko pinctrl-0 = <&ptp_out_pins>, <&ptp_ext_pins>; 493*711cca0fSRobert Marko pinctrl-names = "default"; 494*711cca0fSRobert Marko status = "okay"; 495*711cca0fSRobert Marko 496*711cca0fSRobert Marko ethernet-ports { 497*711cca0fSRobert Marko #address-cells = <1>; 498*711cca0fSRobert Marko #size-cells = <0>; 499*711cca0fSRobert Marko 500*711cca0fSRobert Marko port0: port@0 { 501*711cca0fSRobert Marko reg = <0>; 502*711cca0fSRobert Marko phy-handle = <&phy4>; 503*711cca0fSRobert Marko phy-mode = "qsgmii"; 504*711cca0fSRobert Marko phys = <&serdes 0>; 505*711cca0fSRobert Marko microchip,bandwidth = <1000>; 506*711cca0fSRobert Marko }; 507*711cca0fSRobert Marko 508*711cca0fSRobert Marko port1: port@1 { 509*711cca0fSRobert Marko reg = <1>; 510*711cca0fSRobert Marko phy-handle = <&phy5>; 511*711cca0fSRobert Marko phy-mode = "qsgmii"; 512*711cca0fSRobert Marko phys = <&serdes 0>; 513*711cca0fSRobert Marko microchip,bandwidth = <1000>; 514*711cca0fSRobert Marko }; 515*711cca0fSRobert Marko 516*711cca0fSRobert Marko port2: port@2 { 517*711cca0fSRobert Marko reg = <2>; 518*711cca0fSRobert Marko phy-handle = <&phy6>; 519*711cca0fSRobert Marko phy-mode = "qsgmii"; 520*711cca0fSRobert Marko phys = <&serdes 0>; 521*711cca0fSRobert Marko microchip,bandwidth = <1000>; 522*711cca0fSRobert Marko }; 523*711cca0fSRobert Marko 524*711cca0fSRobert Marko port3: port@3 { 525*711cca0fSRobert Marko reg = <3>; 526*711cca0fSRobert Marko phy-handle = <&phy7>; 527*711cca0fSRobert Marko phy-mode = "qsgmii"; 528*711cca0fSRobert Marko phys = <&serdes 0>; 529*711cca0fSRobert Marko microchip,bandwidth = <1000>; 530*711cca0fSRobert Marko }; 531*711cca0fSRobert Marko 532*711cca0fSRobert Marko port4: port@4 { 533*711cca0fSRobert Marko reg = <4>; 534*711cca0fSRobert Marko phy-handle = <&phy8>; 535*711cca0fSRobert Marko phy-mode = "qsgmii"; 536*711cca0fSRobert Marko phys = <&serdes 1>; 537*711cca0fSRobert Marko microchip,bandwidth = <1000>; 538*711cca0fSRobert Marko }; 539*711cca0fSRobert Marko 540*711cca0fSRobert Marko port5: port@5 { 541*711cca0fSRobert Marko reg = <5>; 542*711cca0fSRobert Marko phy-handle = <&phy9>; 543*711cca0fSRobert Marko phy-mode = "qsgmii"; 544*711cca0fSRobert Marko phys = <&serdes 1>; 545*711cca0fSRobert Marko microchip,bandwidth = <1000>; 546*711cca0fSRobert Marko }; 547*711cca0fSRobert Marko 548*711cca0fSRobert Marko port6: port@6 { 549*711cca0fSRobert Marko reg = <6>; 550*711cca0fSRobert Marko phy-handle = <&phy10>; 551*711cca0fSRobert Marko phy-mode = "qsgmii"; 552*711cca0fSRobert Marko phys = <&serdes 1>; 553*711cca0fSRobert Marko microchip,bandwidth = <1000>; 554*711cca0fSRobert Marko }; 555*711cca0fSRobert Marko 556*711cca0fSRobert Marko port7: port@7 { 557*711cca0fSRobert Marko reg = <7>; 558*711cca0fSRobert Marko phy-handle = <&phy11>; 559*711cca0fSRobert Marko phy-mode = "qsgmii"; 560*711cca0fSRobert Marko phys = <&serdes 1>; 561*711cca0fSRobert Marko microchip,bandwidth = <1000>; 562*711cca0fSRobert Marko }; 563*711cca0fSRobert Marko 564*711cca0fSRobert Marko port8: port@8 { 565*711cca0fSRobert Marko reg = <8>; 566*711cca0fSRobert Marko phy-handle = <&phy12>; 567*711cca0fSRobert Marko phy-mode = "qsgmii"; 568*711cca0fSRobert Marko phys = <&serdes 2>; 569*711cca0fSRobert Marko microchip,bandwidth = <1000>; 570*711cca0fSRobert Marko }; 571*711cca0fSRobert Marko 572*711cca0fSRobert Marko port9: port@9 { 573*711cca0fSRobert Marko reg = <9>; 574*711cca0fSRobert Marko phy-handle = <&phy13>; 575*711cca0fSRobert Marko phy-mode = "qsgmii"; 576*711cca0fSRobert Marko phys = <&serdes 2>; 577*711cca0fSRobert Marko microchip,bandwidth = <1000>; 578*711cca0fSRobert Marko }; 579*711cca0fSRobert Marko 580*711cca0fSRobert Marko port10: port@10 { 581*711cca0fSRobert Marko reg = <10>; 582*711cca0fSRobert Marko phy-handle = <&phy14>; 583*711cca0fSRobert Marko phy-mode = "qsgmii"; 584*711cca0fSRobert Marko phys = <&serdes 2>; 585*711cca0fSRobert Marko microchip,bandwidth = <1000>; 586*711cca0fSRobert Marko }; 587*711cca0fSRobert Marko 588*711cca0fSRobert Marko port11: port@11 { 589*711cca0fSRobert Marko reg = <11>; 590*711cca0fSRobert Marko phy-handle = <&phy15>; 591*711cca0fSRobert Marko phy-mode = "qsgmii"; 592*711cca0fSRobert Marko phys = <&serdes 2>; 593*711cca0fSRobert Marko microchip,bandwidth = <1000>; 594*711cca0fSRobert Marko }; 595*711cca0fSRobert Marko 596*711cca0fSRobert Marko port12: port@12 { 597*711cca0fSRobert Marko reg = <12>; 598*711cca0fSRobert Marko phy-handle = <&phy16>; 599*711cca0fSRobert Marko phy-mode = "qsgmii"; 600*711cca0fSRobert Marko phys = <&serdes 3>; 601*711cca0fSRobert Marko microchip,bandwidth = <1000>; 602*711cca0fSRobert Marko }; 603*711cca0fSRobert Marko 604*711cca0fSRobert Marko port13: port@13 { 605*711cca0fSRobert Marko reg = <13>; 606*711cca0fSRobert Marko phy-handle = <&phy17>; 607*711cca0fSRobert Marko phy-mode = "qsgmii"; 608*711cca0fSRobert Marko phys = <&serdes 3>; 609*711cca0fSRobert Marko microchip,bandwidth = <1000>; 610*711cca0fSRobert Marko }; 611*711cca0fSRobert Marko 612*711cca0fSRobert Marko port14: port@14 { 613*711cca0fSRobert Marko reg = <14>; 614*711cca0fSRobert Marko phy-handle = <&phy18>; 615*711cca0fSRobert Marko phy-mode = "qsgmii"; 616*711cca0fSRobert Marko phys = <&serdes 3>; 617*711cca0fSRobert Marko microchip,bandwidth = <1000>; 618*711cca0fSRobert Marko }; 619*711cca0fSRobert Marko 620*711cca0fSRobert Marko port15: port@15 { 621*711cca0fSRobert Marko reg = <15>; 622*711cca0fSRobert Marko phy-handle = <&phy19>; 623*711cca0fSRobert Marko phy-mode = "qsgmii"; 624*711cca0fSRobert Marko phys = <&serdes 3>; 625*711cca0fSRobert Marko microchip,bandwidth = <1000>; 626*711cca0fSRobert Marko }; 627*711cca0fSRobert Marko 628*711cca0fSRobert Marko port16: port@16 { 629*711cca0fSRobert Marko reg = <16>; 630*711cca0fSRobert Marko phy-handle = <&phy20>; 631*711cca0fSRobert Marko phy-mode = "qsgmii"; 632*711cca0fSRobert Marko phys = <&serdes 4>; 633*711cca0fSRobert Marko microchip,bandwidth = <1000>; 634*711cca0fSRobert Marko }; 635*711cca0fSRobert Marko 636*711cca0fSRobert Marko port17: port@17 { 637*711cca0fSRobert Marko reg = <17>; 638*711cca0fSRobert Marko phy-handle = <&phy21>; 639*711cca0fSRobert Marko phy-mode = "qsgmii"; 640*711cca0fSRobert Marko phys = <&serdes 4>; 641*711cca0fSRobert Marko microchip,bandwidth = <1000>; 642*711cca0fSRobert Marko }; 643*711cca0fSRobert Marko 644*711cca0fSRobert Marko port18: port@18 { 645*711cca0fSRobert Marko reg = <18>; 646*711cca0fSRobert Marko phy-handle = <&phy22>; 647*711cca0fSRobert Marko phy-mode = "qsgmii"; 648*711cca0fSRobert Marko phys = <&serdes 4>; 649*711cca0fSRobert Marko microchip,bandwidth = <1000>; 650*711cca0fSRobert Marko }; 651*711cca0fSRobert Marko 652*711cca0fSRobert Marko port19: port@19 { 653*711cca0fSRobert Marko reg = <19>; 654*711cca0fSRobert Marko phy-handle = <&phy23>; 655*711cca0fSRobert Marko phy-mode = "qsgmii"; 656*711cca0fSRobert Marko phys = <&serdes 4>; 657*711cca0fSRobert Marko microchip,bandwidth = <1000>; 658*711cca0fSRobert Marko }; 659*711cca0fSRobert Marko 660*711cca0fSRobert Marko port20: port@20 { 661*711cca0fSRobert Marko reg = <20>; 662*711cca0fSRobert Marko phy-handle = <&phy24>; 663*711cca0fSRobert Marko phy-mode = "qsgmii"; 664*711cca0fSRobert Marko phys = <&serdes 5>; 665*711cca0fSRobert Marko microchip,bandwidth = <1000>; 666*711cca0fSRobert Marko }; 667*711cca0fSRobert Marko 668*711cca0fSRobert Marko port21: port@21 { 669*711cca0fSRobert Marko reg = <21>; 670*711cca0fSRobert Marko phy-handle = <&phy25>; 671*711cca0fSRobert Marko phy-mode = "qsgmii"; 672*711cca0fSRobert Marko phys = <&serdes 5>; 673*711cca0fSRobert Marko microchip,bandwidth = <1000>; 674*711cca0fSRobert Marko }; 675*711cca0fSRobert Marko 676*711cca0fSRobert Marko port22: port@22 { 677*711cca0fSRobert Marko reg = <22>; 678*711cca0fSRobert Marko phy-handle = <&phy26>; 679*711cca0fSRobert Marko phy-mode = "qsgmii"; 680*711cca0fSRobert Marko phys = <&serdes 5>; 681*711cca0fSRobert Marko microchip,bandwidth = <1000>; 682*711cca0fSRobert Marko }; 683*711cca0fSRobert Marko 684*711cca0fSRobert Marko port23: port@23 { 685*711cca0fSRobert Marko reg = <23>; 686*711cca0fSRobert Marko phy-handle = <&phy27>; 687*711cca0fSRobert Marko phy-mode = "qsgmii"; 688*711cca0fSRobert Marko phys = <&serdes 5>; 689*711cca0fSRobert Marko microchip,bandwidth = <1000>; 690*711cca0fSRobert Marko }; 691*711cca0fSRobert Marko 692*711cca0fSRobert Marko port24: port@24 { 693*711cca0fSRobert Marko reg = <24>; 694*711cca0fSRobert Marko phys = <&serdes 6>; 695*711cca0fSRobert Marko phy-mode = "10gbase-r"; 696*711cca0fSRobert Marko sfp = <&sfp0>; 697*711cca0fSRobert Marko managed = "in-band-status"; 698*711cca0fSRobert Marko microchip,bandwidth = <10000>; 699*711cca0fSRobert Marko microchip,sd-sgpio = <24>; 700*711cca0fSRobert Marko }; 701*711cca0fSRobert Marko 702*711cca0fSRobert Marko port25: port@25 { 703*711cca0fSRobert Marko reg = <25>; 704*711cca0fSRobert Marko phys = <&serdes 7>; 705*711cca0fSRobert Marko phy-mode = "10gbase-r"; 706*711cca0fSRobert Marko sfp = <&sfp1>; 707*711cca0fSRobert Marko managed = "in-band-status"; 708*711cca0fSRobert Marko microchip,bandwidth = <10000>; 709*711cca0fSRobert Marko microchip,sd-sgpio = <28>; 710*711cca0fSRobert Marko }; 711*711cca0fSRobert Marko 712*711cca0fSRobert Marko port26: port@26 { 713*711cca0fSRobert Marko reg = <26>; 714*711cca0fSRobert Marko phys = <&serdes 8>; 715*711cca0fSRobert Marko phy-mode = "10gbase-r"; 716*711cca0fSRobert Marko sfp = <&sfp2>; 717*711cca0fSRobert Marko managed = "in-band-status"; 718*711cca0fSRobert Marko microchip,bandwidth = <10000>; 719*711cca0fSRobert Marko microchip,sd-sgpio = <32>; 720*711cca0fSRobert Marko }; 721*711cca0fSRobert Marko 722*711cca0fSRobert Marko port27: port@27 { 723*711cca0fSRobert Marko reg = <27>; 724*711cca0fSRobert Marko phys = <&serdes 9>; 725*711cca0fSRobert Marko phy-mode = "10gbase-r"; 726*711cca0fSRobert Marko sfp = <&sfp3>; 727*711cca0fSRobert Marko managed = "in-band-status"; 728*711cca0fSRobert Marko microchip,bandwidth = <10000>; 729*711cca0fSRobert Marko microchip,sd-sgpio = <36>; 730*711cca0fSRobert Marko }; 731*711cca0fSRobert Marko 732*711cca0fSRobert Marko port29: port@29 { 733*711cca0fSRobert Marko reg = <29>; 734*711cca0fSRobert Marko phy-handle = <&phy3>; 735*711cca0fSRobert Marko phy-mode = "rgmii-id"; 736*711cca0fSRobert Marko microchip,bandwidth = <1000>; 737*711cca0fSRobert Marko }; 738*711cca0fSRobert Marko }; 739*711cca0fSRobert Marko}; 740*711cca0fSRobert Marko 741*711cca0fSRobert Marko&tmon { 742*711cca0fSRobert Marko pinctrl-0 = <&fan_pins>; 743*711cca0fSRobert Marko pinctrl-names = "default"; 744*711cca0fSRobert Marko}; 745*711cca0fSRobert Marko 746*711cca0fSRobert Marko&usart0 { 747*711cca0fSRobert Marko pinctrl-0 = <&fc0_pins>; 748*711cca0fSRobert Marko pinctrl-names = "default"; 749*711cca0fSRobert Marko status = "okay"; 750*711cca0fSRobert Marko}; 751*711cca0fSRobert Marko 752*711cca0fSRobert Marko&usb { 753*711cca0fSRobert Marko pinctrl-0 = <&usb_ulpi_pins>, <&usb_rst_pins>, <&usb_over_pins>, <&usb_power_pins>; 754*711cca0fSRobert Marko pinctrl-names = "default"; 755*711cca0fSRobert Marko status = "okay"; 756*711cca0fSRobert Marko}; 757