| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| /* |
| * lan966x_pcb8309.dts - Device Tree file for PCB8309 |
| */ |
| /dts-v1/; |
| #include "lan966x.dtsi" |
| #include "dt-bindings/phy/phy-lan966x-serdes.h" |
| |
| / { |
| model = "Microchip EVB - LAN9662"; |
| compatible = "microchip,lan9662-pcb8309", "microchip,lan9662", "microchip,lan966"; |
| |
| aliases { |
| serial0 = &usart3; |
| i2c102 = &i2c102; |
| i2c103 = &i2c103; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| |
| gpio-restart { |
| compatible = "gpio-restart"; |
| gpios = <&gpio 56 GPIO_ACTIVE_LOW>; |
| priority = <200>; |
| }; |
| |
| i2c-mux { |
| compatible = "i2c-mux"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| mux-controls = <&mux>; |
| i2c-parent = <&i2c4>; |
| |
| i2c102: i2c-sfp@1 { |
| reg = <1>; |
| }; |
| |
| i2c103: i2c-sfp@2 { |
| reg = <2>; |
| }; |
| }; |
| |
| leds { |
| compatible = "gpio-leds"; |
| |
| led-s0-green { |
| label = "s0:green"; |
| gpios = <&sgpio_out 2 0 GPIO_ACTIVE_LOW>; |
| default-state = "off"; |
| }; |
| |
| led-s0-red { |
| label = "s0:red"; |
| gpios = <&sgpio_out 2 1 GPIO_ACTIVE_LOW>; |
| default-state = "off"; |
| }; |
| |
| led-s1-green { |
| label = "s1:green"; |
| gpios = <&sgpio_out 3 0 GPIO_ACTIVE_LOW>; |
| default-state = "off"; |
| }; |
| |
| led-s1-red { |
| label = "s1:red"; |
| gpios = <&sgpio_out 3 1 GPIO_ACTIVE_LOW>; |
| default-state = "off"; |
| }; |
| }; |
| |
| mux: mux-controller { |
| compatible = "gpio-mux"; |
| #mux-control-cells = <0>; |
| |
| mux-gpios = <&sgpio_out 11 0 GPIO_ACTIVE_HIGH>, /* p11b0 */ |
| <&sgpio_out 11 1 GPIO_ACTIVE_HIGH>; /* p11b1 */ |
| }; |
| |
| sfp2: sfp2 { |
| compatible = "sff,sfp"; |
| i2c-bus = <&i2c102>; |
| tx-disable-gpios = <&sgpio_out 10 0 GPIO_ACTIVE_LOW>; |
| los-gpios = <&sgpio_in 2 0 GPIO_ACTIVE_HIGH>; |
| mod-def0-gpios = <&sgpio_in 2 1 GPIO_ACTIVE_LOW>; |
| tx-fault-gpios = <&sgpio_in 1 0 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| sfp3: sfp3 { |
| compatible = "sff,sfp"; |
| i2c-bus = <&i2c103>; |
| tx-disable-gpios = <&sgpio_out 10 1 GPIO_ACTIVE_LOW>; |
| los-gpios = <&sgpio_in 3 0 GPIO_ACTIVE_HIGH>; |
| mod-def0-gpios = <&sgpio_in 3 1 GPIO_ACTIVE_LOW>; |
| tx-fault-gpios = <&sgpio_in 1 1 GPIO_ACTIVE_HIGH>; |
| }; |
| }; |
| |
| &aes { |
| status = "disabled"; /* Reserved by secure OS */ |
| }; |
| |
| &flx3 { |
| atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; |
| status = "okay"; |
| |
| usart3: serial@200 { |
| pinctrl-0 = <&fc3_b_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |
| }; |
| |
| &flx4 { |
| atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; |
| status = "okay"; |
| |
| i2c4: i2c@600 { |
| compatible = "microchip,sam9x60-i2c"; |
| reg = <0x600 0x200>; |
| interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&nic_clk>; |
| pinctrl-0 = <&fc4_b_pins>; |
| pinctrl-names = "default"; |
| i2c-analog-filter; |
| i2c-digital-filter; |
| i2c-digital-filter-width-ns = <35>; |
| i2c-sda-hold-time-ns = <1500>; |
| status = "okay"; |
| }; |
| }; |
| |
| &gpio { |
| fc3_b_pins: fc3-b-pins { |
| /* RXD, TXD */ |
| pins = "GPIO_52", "GPIO_53"; |
| function = "fc3_b"; |
| }; |
| |
| fc4_b_pins: fc4-b-pins { |
| /* SCL, SDA */ |
| pins = "GPIO_57", "GPIO_58"; |
| function = "fc4_b"; |
| }; |
| |
| pps_out_pins: pps-out-pins { |
| /* 1pps output */ |
| pins = "GPIO_38"; |
| function = "ptpsync_3"; |
| }; |
| |
| ptp_ext_pins: ptp-ext-pins { |
| /* 1pps input */ |
| pins = "GPIO_39"; |
| function = "ptpsync_4"; |
| }; |
| |
| sgpio_a_pins: sgpio-a-pins { |
| /* SCK, D0, D1, LD */ |
| pins = "GPIO_32", "GPIO_33", "GPIO_34", "GPIO_35"; |
| function = "sgpio_a"; |
| }; |
| }; |
| |
| &mdio1 { |
| status = "okay"; |
| }; |
| |
| &phy0 { |
| status = "okay"; |
| }; |
| |
| &phy1 { |
| status = "okay"; |
| }; |
| |
| &port0 { |
| phy-handle = <&phy0>; |
| phy-mode = "gmii"; |
| phys = <&serdes 0 CU(0)>; |
| status = "okay"; |
| }; |
| |
| &port1 { |
| phy-handle = <&phy1>; |
| phy-mode = "gmii"; |
| phys = <&serdes 1 CU(1)>; |
| status = "okay"; |
| }; |
| |
| &port2 { |
| sfp = <&sfp2>; |
| managed = "in-band-status"; |
| phy-mode = "sgmii"; |
| phys = <&serdes 2 SERDES6G(0)>; |
| status = "okay"; |
| }; |
| |
| &port3 { |
| sfp = <&sfp3>; |
| managed = "in-band-status"; |
| phy-mode = "sgmii"; |
| phys = <&serdes 3 SERDES6G(1)>; |
| status = "okay"; |
| }; |
| |
| &serdes { |
| status = "okay"; |
| }; |
| |
| &sgpio { |
| pinctrl-0 = <&sgpio_a_pins>; |
| pinctrl-names = "default"; |
| microchip,sgpio-port-ranges = <0 3>, <8 11>; |
| status = "okay"; |
| |
| gpio@0 { |
| ngpios = <64>; |
| }; |
| gpio@1 { |
| ngpios = <64>; |
| }; |
| }; |
| |
| &switch { |
| pinctrl-0 = <&pps_out_pins>, <&ptp_ext_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |