Skip to content

Commit

Permalink
realtek: rtl838x: Switch GS1900 rtl8231 driver
Browse files Browse the repository at this point in the history
Update the devicetree files to switch the GS1900 devices over to the new
pinctrl and GPIO driver. Enable the drivers to ensure the nodes can be
used.

This may fix issues caused by bad RMW behaviour on the GPIO data lines,
or glitches due to setting the pin direction before the pin level.

Although the driver supports retaining GPIO state after a warm boot,
some bootloaders appear to apply a default configuration on boot, which
may cause an interrupt in PoE-PSE support.

Signed-off-by: Sander Vanheule <[email protected]>
  • Loading branch information
svanheule committed Jan 7, 2025
1 parent 6ef6014 commit 5141e2d
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
25 changes: 21 additions & 4 deletions target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,35 @@
gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
};
};
};

&mdio_aux {
status = "okay";

// Reset GPIO is <&gpio0 1 GPIO_ACTIVE_LOW>
// Don't specify the reset info so the mdio subsystem doesn't reset the bus
//reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
//reset-delay-us = <1000>;
//reset-post-delay-us = <10000>;

gpio1: expander@0 {
compatible = "realtek,rtl8231";
reg = <0x0>;

gpio1: rtl8231-gpio {
compatible = "realtek,rtl8231-gpio";
#gpio-cells = <2>;
gpio-controller;
indirect-access-bus-id = <0>;
#gpio-cells = <2>;
gpio-ranges = <&gpio1 0 0 37>;

poe_enable {
gpio-hog;
gpios = <13 GPIO_ACTIVE_HIGH>;
output-high;
};

led-controller {
compatible = "realtek,rtl8231-leds";
status = "disabled";
};
};
};

Expand Down
7 changes: 6 additions & 1 deletion target/linux/realtek/rtl838x/config-6.6
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_REALTEK_OTTO=y
CONFIG_GPIO_REGMAP=y
CONFIG_GPIO_RTL8231=y
CONFIG_GPIO_WATCHDOG=y
# CONFIG_GPIO_WATCHDOG_ARCH_INITCALL is not set
Expand Down Expand Up @@ -122,6 +123,7 @@ CONFIG_IRQ_MIPS_CPU=y
CONFIG_IRQ_WORK=y
CONFIG_JFFS2_ZLIB=y
CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_RTL8231 is not set
CONFIG_LIBFDT=y
CONFIG_LOCK_DEBUGGING_SUPPORT=y
CONFIG_MACH_REALTEK_RTL=y
Expand All @@ -132,7 +134,8 @@ CONFIG_MDIO_DEVRES=y
CONFIG_MDIO_I2C=y
CONFIG_MDIO_REALTEK_OTTO_AUX=y
CONFIG_MDIO_SMBUS=y
# CONFIG_MFD_RTL8231 is not set
CONFIG_MFD_CORE=y
CONFIG_MFD_RTL8231=y
CONFIG_MFD_SYSCON=y
CONFIG_MIGRATION=y
CONFIG_MIPS=y
Expand Down Expand Up @@ -193,6 +196,7 @@ CONFIG_PHYLIB=y
CONFIG_PHYLIB_LEDS=y
CONFIG_PHYLINK=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_RTL8231=y
CONFIG_PM_OPP=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
Expand All @@ -207,6 +211,7 @@ CONFIG_REALTEK_PHY=y
CONFIG_REALTEK_SOC_PHY=y
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_MDIO=y
CONFIG_REGMAP_MMIO=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RTL838X=y
Expand Down

0 comments on commit 5141e2d

Please sign in to comment.