summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSander Vanheule2025-01-21 18:40:11 +0000
committerSander Vanheule2025-01-25 14:06:03 +0000
commitd4bf16a9e1618347709b0dccae71c273e6291a61 (patch)
tree263732bcb2d21d80fa41b093ce13e3bd905791c7
parentb2d17dbb68c232393739e6fb48245f1f4bebb698 (diff)
downloadopenwrt-d4bf16a9e1618347709b0dccae71c273e6291a61.tar.gz
realtek: Add virtual MDIO bus on rtl838x
Some RTL8380M-based devices have been around for a long time and use an early A revision of the RTL8380M SoC. This revision has an issue with the auxiliary MDIO controller, causing it to malfunction. This may lead to device reboots when the controller is used. Provide a bit-banged MDIO bus, which muxes the auxiliary MDIO pins to their GPIO function. Although this will result in lower performance, there should otherwise be no functional differences. Link: https://github.com/openwrt/openwrt/issues/9534 Signed-off-by: Sander Vanheule <sander@svanheule.net>
-rw-r--r--target/linux/realtek/dts/rtl838x.dtsi18
1 files changed, 18 insertions, 0 deletions
diff --git a/target/linux/realtek/dts/rtl838x.dtsi b/target/linux/realtek/dts/rtl838x.dtsi
index ab034fc1bc..18da4c9380 100644
--- a/target/linux/realtek/dts/rtl838x.dtsi
+++ b/target/linux/realtek/dts/rtl838x.dtsi
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/clock/rtl83xx-clk.h>
+#include <dt-bindings/gpio/gpio.h>
/dts-v1/;
@@ -120,6 +121,7 @@
aliases {
serial0 = &uart0;
serial1 = &uart1;
+ mdio-gpio1 = &mdio_gpio;
};
chosen {
@@ -134,6 +136,22 @@
interrupt-controller;
};
+ /*
+ * Provided for devices with RTL838xM SoC with revision A silicon.
+ * Newer SoCs can use the &mdio_aux bus instead.
+ */
+ mdio_gpio: mdio {
+ compatible = "virtual,mdio-gpio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>,
+ <&gpio0 3 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&mdio_aux_gpio>;
+
+ status = "disabled";
+ };
+
soc: soc {
compatible = "simple-bus";
#address-cells = <1>;