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>
223 lines
4.2 KiB
Plaintext
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 = <ðernet0>;
|
|
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>;
|
|
};
|