mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-10 07:34:40 +01:00
After having moved the configuration code and sequences from PHY and DSA drivers to the PCS driver, add the hooks in PCS driver and remove calls in PHY and DSA drivers to let PCS driver setup the SerDes entirely on its own. Also add pcs-handle to device tree definitions for most of the switch ports because, due to the refactoring of the SerDes configuration, this is needed now for all SerDes-attached ports. Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com> Link: https://github.com/openwrt/openwrt/pull/20876 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
128 lines
2.8 KiB
Text
128 lines
2.8 KiB
Text
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#include "rtl8380_zyxel_gs1900.dtsi"
|
|
#include "rtl8380_zyxel_gs1900_gpio.dtsi"
|
|
|
|
/ {
|
|
compatible = "zyxel,gs1900-24hp-a1", "realtek,rtl838x-soc";
|
|
model = "Zyxel GS1900-24HP A1";
|
|
|
|
memory@0 {
|
|
reg = <0x0 0x4000000>;
|
|
};
|
|
|
|
/* i2c of the left SFP cage: port 25 */
|
|
i2c0: i2c-gpio-0 {
|
|
compatible = "i2c-gpio";
|
|
sda-gpios = <&gpio1 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
scl-gpios = <&gpio1 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
i2c-gpio,delay-us = <2>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
sfp0: sfp-p25 {
|
|
compatible = "sff,sfp";
|
|
i2c-bus = <&i2c0>;
|
|
los-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
|
|
tx-fault-gpio = <&gpio1 22 GPIO_ACTIVE_HIGH>;
|
|
mod-def0-gpio = <&gpio1 26 GPIO_ACTIVE_LOW>;
|
|
tx-disable-gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
/* i2c of the right SFP cage: port 26 */
|
|
i2c1: i2c-gpio-1 {
|
|
compatible = "i2c-gpio";
|
|
sda-gpios = <&gpio1 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
scl-gpios = <&gpio1 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
i2c-gpio,delay-us = <2>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
sfp1: sfp-p26 {
|
|
compatible = "sff,sfp";
|
|
i2c-bus = <&i2c1>;
|
|
los-gpio = <&gpio1 33 GPIO_ACTIVE_HIGH>;
|
|
tx-fault-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
|
|
mod-def0-gpio = <&gpio1 32 GPIO_ACTIVE_LOW>;
|
|
tx-disable-gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
&uart1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&mdio_bus0 {
|
|
EXTERNAL_PHY(0)
|
|
EXTERNAL_PHY(1)
|
|
EXTERNAL_PHY(2)
|
|
EXTERNAL_PHY(3)
|
|
EXTERNAL_PHY(4)
|
|
EXTERNAL_PHY(5)
|
|
EXTERNAL_PHY(6)
|
|
EXTERNAL_PHY(7)
|
|
|
|
EXTERNAL_PHY(16)
|
|
EXTERNAL_PHY(17)
|
|
EXTERNAL_PHY(18)
|
|
EXTERNAL_PHY(19)
|
|
EXTERNAL_PHY(20)
|
|
EXTERNAL_PHY(21)
|
|
EXTERNAL_PHY(22)
|
|
EXTERNAL_PHY(23)
|
|
|
|
INTERNAL_PHY(24)
|
|
INTERNAL_PHY(26)
|
|
};
|
|
|
|
&switch0 {
|
|
ports {
|
|
SWITCH_PORT_SDS(0, 1, 0, qsgmii)
|
|
SWITCH_PORT_SDS(1, 2, 0, qsgmii)
|
|
SWITCH_PORT_SDS(2, 3, 0, qsgmii)
|
|
SWITCH_PORT_SDS(3, 4, 0, qsgmii)
|
|
SWITCH_PORT_SDS(4, 5, 1, qsgmii)
|
|
SWITCH_PORT_SDS(5, 6, 1, qsgmii)
|
|
SWITCH_PORT_SDS(6, 7, 1, qsgmii)
|
|
SWITCH_PORT_SDS(7, 8, 1, qsgmii)
|
|
|
|
SWITCH_PORT(8, 9, internal)
|
|
SWITCH_PORT(9, 10, internal)
|
|
SWITCH_PORT(10, 11, internal)
|
|
SWITCH_PORT(11, 12, internal)
|
|
SWITCH_PORT(12, 13, internal)
|
|
SWITCH_PORT(13, 14, internal)
|
|
SWITCH_PORT(14, 15, internal)
|
|
SWITCH_PORT(15, 16, internal)
|
|
|
|
SWITCH_PORT_SDS(16, 17, 2, qsgmii)
|
|
SWITCH_PORT_SDS(17, 18, 2, qsgmii)
|
|
SWITCH_PORT_SDS(18, 19, 2, qsgmii)
|
|
SWITCH_PORT_SDS(19, 20, 2, qsgmii)
|
|
SWITCH_PORT_SDS(20, 21, 3, qsgmii)
|
|
SWITCH_PORT_SDS(21, 22, 3, qsgmii)
|
|
SWITCH_PORT_SDS(22, 23, 3, qsgmii)
|
|
SWITCH_PORT_SDS(23, 24, 3, qsgmii)
|
|
|
|
port@24 {
|
|
reg = <24>;
|
|
label = "lan25";
|
|
pcs-handle = <&serdes4>;
|
|
phy-mode = "1000base-x";
|
|
managed = "in-band-status";
|
|
sfp = <&sfp0>;
|
|
};
|
|
|
|
port@26 {
|
|
reg = <26>;
|
|
label = "lan26";
|
|
pcs-handle = <&serdes5>;
|
|
phy-mode = "1000base-x";
|
|
managed = "in-band-status";
|
|
sfp = <&sfp1>;
|
|
};
|
|
};
|
|
};
|
|
|