[openwrt/openwrt] realtek: rtl838x: Switch GS1900 rtl8231 driver
LEDE Commits
lede-commits at lists.infradead.org
Tue Jan 7 05:38:45 PST 2025
svanheule pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5141e2d8617efa774b64f9ebc6d97cdc85487dc8
commit 5141e2d8617efa774b64f9ebc6d97cdc85487dc8
Author: Sander Vanheule <sander at svanheule.net>
AuthorDate: Thu Dec 26 22:26:33 2024 +0100
realtek: rtl838x: Switch GS1900 rtl8231 driver
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 <sander at svanheule.net>
---
target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi | 25 ++++++++++++++++++----
target/linux/realtek/rtl838x/config-6.6 | 7 +++++-
2 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi b/target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi
index 3889fe8859..927b9527a9 100644
--- a/target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi
+++ b/target/linux/realtek/dts/rtl8380_zyxel_gs1900.dtsi
@@ -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 at 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";
+ };
};
};
diff --git a/target/linux/realtek/rtl838x/config-6.6 b/target/linux/realtek/rtl838x/config-6.6
index 23f3d9adfb..58c15f7bb0 100644
--- a/target/linux/realtek/rtl838x/config-6.6
+++ b/target/linux/realtek/rtl838x/config-6.6
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
More information about the lede-commits
mailing list