// 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"; };