1
1
openwrt/target/linux/realtek/dts/rtl9313_zyxel_xs1930-10.dts
Jonas Jelonek d349945f82 realtek: move XS1930 LED definitions to common DTSI
The power, cloud and locator LEDs exist on all three XS1930 variants
with the same colors and roles, only the GPIOs differ. Declare them
once in the common DTSI with the -10/-12HP pinout and let -12F
override the gpios properties via phandle references. This removes
three near-identical led-node blocks from the device DTS files.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23428
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-05-21 12:08:41 +02:00

223 lines
4.2 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-or-later
/dts-v1/;
#include "rtl9313_zyxel_xs1930.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/mux/mux.h>
#include <dt-bindings/phy/phy.h>
/ {
compatible = "zyxel,xs1930-10", "realtek,rtl9313-soc";
model = "Zyxel XS1930-10";
led_set: led_set@0 {
compatible = "realtek,rtl9300-leds";
active-low;
/* Blue | Green | Red */
led_set0 = <(RTL93XX_LED_SET_10G | RTL93XX_LED_SET_5G | RTL93XX_LED_SET_2P5G |
RTL93XX_LED_SET_LINK | RTL93XX_LED_SET_ACT)
(RTL93XX_LED_SET_2P5G | RTL93XX_LED_SET_1G | RTL93XX_LED_SET_100M |
RTL93XX_LED_SET_LINK | RTL93XX_LED_SET_ACT)
(RTL93XX_LED_SET_5G | RTL93XX_LED_SET_100M | RTL93XX_LED_SET_LINK |
RTL93XX_LED_SET_ACT)>;
realtek,led-set0-force-port-mask = <0x00300000 0x00000000>;
};
sfp_gpio_mux: gpio-mux {
compatible = "gpio-mux";
mux-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>,
<&gpio0 14 GPIO_ACTIVE_HIGH>;
#mux-control-cells = <0>;
idle-state = <MUX_IDLE_AS_IS>;
};
sfp1_gpio: sfp-gpio-1 {
compatible = "gpio-line-mux";
gpio-controller;
#gpio-cells = <2>;
mux-controls = <&sfp_gpio_mux>;
muxed-gpio = <&gpio0 19 GPIO_ACTIVE_HIGH>;
gpio-line-names = "SFP1_LOS", "SFP1_MOD_ABS", "SFP1_TX_FAULT";
gpio-line-mux-states = <0>, <1>, <3>;
};
sfp2_gpio: sfp-gpio-2 {
compatible = "gpio-line-mux";
gpio-controller;
#gpio-cells = <2>;
mux-controls = <&sfp_gpio_mux>;
muxed-gpio = <&gpio0 27 GPIO_ACTIVE_HIGH>;
gpio-line-names = "SFP2_LOS", "SFP2_MOD_ABS", "SFP2_TX_FAULT";
gpio-line-mux-states = <0>, <1>, <3>;
};
sfp1: sfp-p1 {
compatible = "sff,sfp";
i2c-bus = <&i2c0>;
los-gpio = <&sfp1_gpio 0 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&sfp1_gpio 1 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>;
tx-fault-gpio = <&sfp1_gpio 2 GPIO_ACTIVE_HIGH>;
};
sfp2: sfp-p2 {
compatible = "sff,sfp";
i2c-bus = <&i2c1>;
los-gpio = <&sfp2_gpio 0 GPIO_ACTIVE_HIGH>;
mod-def0-gpio = <&sfp2_gpio 1 GPIO_ACTIVE_LOW>;
tx-disable-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
tx-fault-gpio = <&sfp2_gpio 2 GPIO_ACTIVE_HIGH>;
};
};
&gpio0 {
pinctrl-names = "default";
pinctrl-0 = <&pinmux_disable_jtag>;
sfp_enable_hog {
gpio-hog;
gpios = <6 GPIO_ACTIVE_LOW>,
<7 GPIO_ACTIVE_LOW>;
output-high;
line-name = "sfp-enable";
};
};
&i2c_mst1 {
status = "okay";
i2c0: i2c@0 {
reg = <0>;
};
i2c1: i2c@1 {
reg = <1>;
};
i2c2: i2c@2 {
reg = <2>;
lm96000: lm96000@2e {
compatible = "national,lm85";
reg = <0x2e>;
};
};
};
&mdio_ctrl {
pinctrl-names = "default";
pinctrl-0 = <&pinmux_enable_mdc_mdio_0>;
};
&mdio_bus0 {
/* External Aquantia AQR813 */
PHY_C45(0, 8)
PHY_C45(8, 9)
PHY_C45(16, 10)
PHY_C45(24, 11)
PHY_C45(32, 12)
PHY_C45(40, 13)
PHY_C45(48, 14)
PHY_C45(50, 15)
};
&switch0 {
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
/* Copper ports behind AQR813 */
SWITCH_PORT_LED(0, 1, 2, 0, usxgmii)
SWITCH_PORT_LED(8, 2, 3, 0, usxgmii)
SWITCH_PORT_LED(16, 3, 4, 0, usxgmii)
SWITCH_PORT_LED(24, 4, 5, 0, usxgmii)
SWITCH_PORT_LED(32, 5, 6, 0, usxgmii)
SWITCH_PORT_LED(40, 6, 7, 0, usxgmii)
SWITCH_PORT_LED(48, 7, 8, 0, usxgmii)
SWITCH_PORT_LED(50, 8, 9, 0, usxgmii)
/* SFP+ ports */
SWITCH_PORT_SFP(54, 9, 12, 0, 1)
SWITCH_PORT_SFP(55, 10, 13, 0, 2)
/* CPU port */
port@56 {
reg = <56>;
ethernet = <&ethernet0>;
phy-mode = "internal";
fixed-link {
speed = <1000>;
full-duplex;
};
};
};
};
&port0 {
managed = "in-band-status";
};
&port8 {
managed = "in-band-status";
};
&port16 {
managed = "in-band-status";
};
&port24 {
managed = "in-band-status";
};
&port32 {
managed = "in-band-status";
};
&port40 {
managed = "in-band-status";
};
&port48 {
managed = "in-band-status";
};
&port50 {
managed = "in-band-status";
};
&serdes6 {
rx-polarity = <PHY_POL_INVERT>;
tx-polarity = <PHY_POL_INVERT>;
};
&serdes7 {
rx-polarity = <PHY_POL_INVERT>;
tx-polarity = <PHY_POL_INVERT>;
};
&serdes8 {
rx-polarity = <PHY_POL_INVERT>;
tx-polarity = <PHY_POL_INVERT>;
};
&serdes9 {
rx-polarity = <PHY_POL_INVERT>;
tx-polarity = <PHY_POL_INVERT>;
};
&serdes12 {
tx-polarity = <PHY_POL_INVERT>;
};
&serdes13 {
tx-polarity = <PHY_POL_INVERT>;
};