// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* lan966x-pcb8290.dts - Device Tree file for LAN966X-PCB8290 board
*
* Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
*
* Author: Horatiu Vultur <[email protected]>
*/
/dts-v1/;
#include "lan966x.dtsi"
#include "dt-bindings/phy/phy-lan966x-serdes.h"
/ {
model = "Microchip EVB LAN9668";
compatible = "microchip,lan9668-pcb8290", "microchip,lan9668", "microchip,lan966";
gpio-restart {
compatible = "gpio-restart";
gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
priority = <200>;
};
};
&aes {
status = "disabled"; /* Reserved by secure OS */
};
&gpio {
miim_a_pins: mdio-pins {
/* MDC, MDIO */
pins = "GPIO_28", "GPIO_29";
function = "miim_a";
};
pps_out_pins: pps-out-pins {
/* 1pps output */
pins = "GPIO_38";
function = "ptpsync_3";
};
ptp_ext_pins: ptp-ext-pins {
/* 1pps input */
pins = "GPIO_35";
function = "ptpsync_0";
};
udc_pins: ucd-pins {
/* VBUS_DET B */
pins = "GPIO_8";
function = "usb_slave_b";
};
};
&mdio0 {
pinctrl-0 = <&miim_a_pins>;
pinctrl-names = "default";
status = "okay";
ext_phy0: ethernet-phy@7 {
reg = <7>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio>;
coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
};
ext_phy1: ethernet-phy@8 {
reg = <8>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio>;
coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
};
ext_phy2: ethernet-phy@9 {
reg = <9>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio>;
coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
};
ext_phy3: ethernet-phy@10 {
reg = <10>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio>;
coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
};
ext_phy4: ethernet-phy@15 {
reg = <15>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio>;
coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
};
ext_phy5: ethernet-phy@16 {
reg = <16>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio>;
coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
};
ext_phy6: ethernet-phy@17 {
reg = <17>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio>;
coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
};
ext_phy7: ethernet-phy@18 {
reg = <18>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gpio>;
coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
};
};
&port0 {
reg = <2>;
phy-handle = <&ext_phy2>;
phy-mode = "qsgmii";
phys = <&serdes 0 SERDES6G(1)>;
status = "okay";
};
&port1 {
reg = <3>;
phy-handle = <&ext_phy3>;
phy-mode = "qsgmii";
phys = <&serdes 1 SERDES6G(1)>;
status = "okay";
};
&port2 {
reg = <0>;
phy-handle = <&ext_phy0>;
phy-mode = "qsgmii";
phys = <&serdes 2 SERDES6G(1)>;
status = "okay";
};
&port3 {
reg = <1>;
phy-handle = <&ext_phy1>;
phy-mode = "qsgmii";
phys = <&serdes 3 SERDES6G(1)>;
status = "okay";
};
&port4 {
reg = <6>;
phy-handle = <&ext_phy6>;
phy-mode = "qsgmii";
phys = <&serdes 4 SERDES6G(2)>;
status = "okay";
};
&port5 {
reg = <7>;
phy-handle = <&ext_phy7>;
phy-mode = "qsgmii";
phys = <&serdes 5 SERDES6G(2)>;
status = "okay";
};
&port6 {
reg = <4>;
phy-handle = <&ext_phy4>;
phy-mode = "qsgmii";
phys = <&serdes 6 SERDES6G(2)>;
status = "okay";
};
&port7 {
reg = <5>;
phy-handle = <&ext_phy5>;
phy-mode = "qsgmii";
phys = <&serdes 7 SERDES6G(2)>;
status = "okay";
};
&serdes {
status = "okay";
};
&switch {
pinctrl-0 = <&pps_out_pins>, <&ptp_ext_pins>;
pinctrl-names = "default";
status = "okay";
};
&udc {
pinctrl-0 = <&udc_pins>;
pinctrl-names = "default";
atmel,vbus-gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
status = "okay";
};