1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * lan966x_pcb8309.dts - Device Tree file for PCB8309 4 */ 5/dts-v1/; 6#include "lan966x.dtsi" 7#include "dt-bindings/phy/phy-lan966x-serdes.h" 8 9/ { 10 model = "Microchip EVB - LAN9662"; 11 compatible = "microchip,lan9662-pcb8309", "microchip,lan9662", "microchip,lan966"; 12 13 aliases { 14 serial0 = &usart3; 15 i2c102 = &i2c102; 16 i2c103 = &i2c103; 17 }; 18 19 chosen { 20 stdout-path = "serial0:115200n8"; 21 }; 22 23 gpio-restart { 24 compatible = "gpio-restart"; 25 gpios = <&gpio 56 GPIO_ACTIVE_LOW>; 26 priority = <200>; 27 }; 28 29 i2c-mux { 30 compatible = "i2c-mux"; 31 #address-cells = <1>; 32 #size-cells = <0>; 33 mux-controls = <&mux>; 34 i2c-parent = <&i2c4>; 35 36 i2c102: i2c-sfp@1 { 37 reg = <1>; 38 }; 39 40 i2c103: i2c-sfp@2 { 41 reg = <2>; 42 }; 43 }; 44 45 leds { 46 compatible = "gpio-leds"; 47 48 led-s0-green { 49 label = "s0:green"; 50 gpios = <&sgpio_out 2 0 GPIO_ACTIVE_LOW>; 51 default-state = "off"; 52 }; 53 54 led-s0-red { 55 label = "s0:red"; 56 gpios = <&sgpio_out 2 1 GPIO_ACTIVE_LOW>; 57 default-state = "off"; 58 }; 59 60 led-s1-green { 61 label = "s1:green"; 62 gpios = <&sgpio_out 3 0 GPIO_ACTIVE_LOW>; 63 default-state = "off"; 64 }; 65 66 led-s1-red { 67 label = "s1:red"; 68 gpios = <&sgpio_out 3 1 GPIO_ACTIVE_LOW>; 69 default-state = "off"; 70 }; 71 }; 72 73 mux: mux-controller { 74 compatible = "gpio-mux"; 75 #mux-control-cells = <0>; 76 77 mux-gpios = <&sgpio_out 11 0 GPIO_ACTIVE_HIGH>, /* p11b0 */ 78 <&sgpio_out 11 1 GPIO_ACTIVE_HIGH>; /* p11b1 */ 79 }; 80 81 sfp2: sfp2 { 82 compatible = "sff,sfp"; 83 i2c-bus = <&i2c102>; 84 tx-disable-gpios = <&sgpio_out 10 0 GPIO_ACTIVE_LOW>; 85 los-gpios = <&sgpio_in 2 0 GPIO_ACTIVE_HIGH>; 86 mod-def0-gpios = <&sgpio_in 2 1 GPIO_ACTIVE_LOW>; 87 tx-fault-gpios = <&sgpio_in 1 0 GPIO_ACTIVE_HIGH>; 88 }; 89 90 sfp3: sfp3 { 91 compatible = "sff,sfp"; 92 i2c-bus = <&i2c103>; 93 tx-disable-gpios = <&sgpio_out 10 1 GPIO_ACTIVE_LOW>; 94 los-gpios = <&sgpio_in 3 0 GPIO_ACTIVE_HIGH>; 95 mod-def0-gpios = <&sgpio_in 3 1 GPIO_ACTIVE_LOW>; 96 tx-fault-gpios = <&sgpio_in 1 1 GPIO_ACTIVE_HIGH>; 97 }; 98}; 99 100&aes { 101 status = "disabled"; /* Reserved by secure OS */ 102}; 103 104&flx3 { 105 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; 106 status = "okay"; 107 108 usart3: serial@200 { 109 pinctrl-0 = <&fc3_b_pins>; 110 pinctrl-names = "default"; 111 status = "okay"; 112 }; 113}; 114 115&flx4 { 116 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 117 status = "okay"; 118 119 i2c4: i2c@600 { 120 compatible = "microchip,sam9x60-i2c"; 121 reg = <0x600 0x200>; 122 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 123 clocks = <&nic_clk>; 124 pinctrl-0 = <&fc4_b_pins>; 125 pinctrl-names = "default"; 126 i2c-analog-filter; 127 i2c-digital-filter; 128 i2c-digital-filter-width-ns = <35>; 129 i2c-sda-hold-time-ns = <1500>; 130 status = "okay"; 131 }; 132}; 133 134&gpio { 135 fc3_b_pins: fc3-b-pins { 136 /* RXD, TXD */ 137 pins = "GPIO_52", "GPIO_53"; 138 function = "fc3_b"; 139 }; 140 141 fc4_b_pins: fc4-b-pins { 142 /* SCL, SDA */ 143 pins = "GPIO_57", "GPIO_58"; 144 function = "fc4_b"; 145 }; 146 147 pps_out_pins: pps-out-pins { 148 /* 1pps output */ 149 pins = "GPIO_38"; 150 function = "ptpsync_3"; 151 }; 152 153 ptp_ext_pins: ptp-ext-pins { 154 /* 1pps input */ 155 pins = "GPIO_39"; 156 function = "ptpsync_4"; 157 }; 158 159 sgpio_a_pins: sgpio-a-pins { 160 /* SCK, D0, D1, LD */ 161 pins = "GPIO_32", "GPIO_33", "GPIO_34", "GPIO_35"; 162 function = "sgpio_a"; 163 }; 164}; 165 166&mdio1 { 167 status = "okay"; 168}; 169 170&phy0 { 171 status = "okay"; 172}; 173 174&phy1 { 175 status = "okay"; 176}; 177 178&port0 { 179 phy-handle = <&phy0>; 180 phy-mode = "gmii"; 181 phys = <&serdes 0 CU(0)>; 182 status = "okay"; 183}; 184 185&port1 { 186 phy-handle = <&phy1>; 187 phy-mode = "gmii"; 188 phys = <&serdes 1 CU(1)>; 189 status = "okay"; 190}; 191 192&port2 { 193 sfp = <&sfp2>; 194 managed = "in-band-status"; 195 phy-mode = "sgmii"; 196 phys = <&serdes 2 SERDES6G(0)>; 197 status = "okay"; 198}; 199 200&port3 { 201 sfp = <&sfp3>; 202 managed = "in-band-status"; 203 phy-mode = "sgmii"; 204 phys = <&serdes 3 SERDES6G(1)>; 205 status = "okay"; 206}; 207 208&serdes { 209 status = "okay"; 210}; 211 212&sgpio { 213 pinctrl-0 = <&sgpio_a_pins>; 214 pinctrl-names = "default"; 215 microchip,sgpio-port-ranges = <0 3>, <8 11>; 216 status = "okay"; 217 218 gpio@0 { 219 ngpios = <64>; 220 }; 221 gpio@1 { 222 ngpios = <64>; 223 }; 224}; 225 226&switch { 227 pinctrl-0 = <&pps_out_pins>, <&ptp_ext_pins>; 228 pinctrl-names = "default"; 229 status = "okay"; 230}; 231