Skip to content

Commit

Permalink
realtek: rtl838x: Instantiate auxiliary MDIO bus
Browse files Browse the repository at this point in the history
Add a disabled node for the auxiliary MDIO bus, used to manage the
RTL8231 expanders. A simple-mfd parent node is added, at the same
(implied) address as the switch@1b000000 node, as the switch drivers
should anyway transistion to MFD subdivices at some point.

Additionally, two pinctrl-single node are added to allow the MDX pins to
be muxed correctly, in case the bootloader leaves these unconfigured.

Signed-off-by: Sander Vanheule <[email protected]>
  • Loading branch information
svanheule committed Jan 7, 2025
1 parent ae833c0 commit 92ae8cb
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 1 deletion.
56 changes: 56 additions & 0 deletions target/linux/realtek/dts/rtl838x.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,42 @@
};
};

switchcore@1b000000 {
compatible = "syscon", "simple-mfd";
reg = <0x1b000000 0x20000>;

mdio_aux: mdio-aux {
compatible = "realtek,rtl8380-aux-mdio";
#address-cells = <1>;
#size-cells = <0>;

status = "disabled";

pinctrl-names = "default";
pinctrl-0 = <&mdio_aux_mdx>, <&aux_mode_mdio>;
};
};

pinmux@1b000144 {
compatible = "pinctrl-single";
reg = <0x1b000144 0x4>;

pinctrl-single,bit-per-mux;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0x1>;
#pinctrl-cells = <2>;

/* I2C mode */
aux_mode_i2c: i2c-pins {
pinctrl-single,bits = <0x0 0x0 0x1>;
};

/* MDIO mode */
aux_mode_mdio: mdx-pins {
pinctrl-single,bits = <0x0 0x1 0x1>;
};
};

pinmux: pinmux@1b001000 {
compatible = "pinctrl-single";
reg = <0x1b001000 0x4>;
Expand Down Expand Up @@ -262,6 +298,26 @@
};
};

pinmux@1b00a0e0 {
compatible = "pinctrl-single";
reg = <0x1b00a0e0 0x4>;

pinctrl-single,bit-per-mux;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0x1>;
#pinctrl-cells = <2>;

/* Use SoC GPIO 2/3 as GPIO */
mdio_aux_gpio: gpio-pins {
pinctrl-single,bits = <0x0 0x0 0x1>;
};

/* Use SoC GPIO 2/3 as MDC/MDIO */
mdio_aux_mdx: mdx-pins {
pinctrl-single,bits = <0x0 0x1 0x1>;
};
};

ethernet0: ethernet@1b00a300 {
compatible = "realtek,rtl838x-eth";
reg = <0x1b00a300 0x100>;
Expand Down
2 changes: 1 addition & 1 deletion target/linux/realtek/rtl838x/config-6.6
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ CONFIG_MDIO_BUS=y
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_DEVRES=y
CONFIG_MDIO_I2C=y
# CONFIG_MDIO_REALTEK_OTTO_AUX is not set
CONFIG_MDIO_REALTEK_OTTO_AUX=y
CONFIG_MDIO_SMBUS=y
CONFIG_MFD_SYSCON=y
CONFIG_MIGRATION=y
Expand Down

0 comments on commit 92ae8cb

Please sign in to comment.