openwrt-6.x/target/linux/realtek/dts
Markus Stockhausen 7a7ee72c4d realtek: mdio: add SerDes driver
Until now the SerDes access is realized with some helper functions
in the mdio bus. These were moved around a lot and had no real home.
End that temporary solution to move them where they belong.

The target design for the different Realtek drivers is as follows:

- dsa driver manages switch
- pcs driver manages SerDes on high level (to be developed)
- mdio driver manages SerDes on low level (this commit)

This driver adds the low level SerDes access via mdio. For debugging
purposes the user can interact with the SerDes in different ways.

First, there is a debug interface in
/sys/kernel/debug/realtek_otto_serdes/serdes.X/registers.
With that a dump of all registers can be shown.

> cat /sys/kernel/debug/realtek_otto_serdes/serdes.4/registers
Back SDS  4:   00   01   02   03   04   05   06   07   08
SDS        : 0C03 0F00 7060 7106 074D 0EBF 0F0F 0359 5248
SDS_EXT    : 0000 0000 85FA 8C6D 5CCC 0000 20D8 0003 79AA
...

Second, one can read/write registers via the mmd functions of the
mdio command line tool. Important to know: The registers are accessed
on the vendor specific MDIO_MMD_VEND1 device address (=30). Additionally
the SerDes page and register are concatenated into the the mmd register.
Top 8 bits are SerDes page and bottom 8 bits are SerDEs register.
E.g.

- mmd 0x0206 : SerDes page 0x02, SerDes register 0x06
- mmd 0x041f : SerDes page 0x04, SerDes register 0x1f

Read register 0x02 on page 0x03 of SerDes 0
> mdio realtek-serdes-mdio mmd 0:30 raw 0x0302

Write register 0x12 on page 0x02 of SerDes 1
> mdio realtek-serdes-mdio mmd 1:30 raw 0x0212 0x2222

For now this driver is only defined in the devicetree and activated
in the kernel build. There is no current consumer but at least
the debugging interface is available. Cleanup of the currently used
SerDes functions will come later.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/20062
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-17 19:23:15 +02:00
..
macros.dtsi realtek: RTL930x/RTL931x led_set defines 2025-08-21 11:22:11 +02:00
rtl83xx_d-link_dgs-1210_common.dtsi realtek: Drop unused property on DGS-1210 gpio0 2025-01-28 07:30:32 +01:00
rtl83xx_d-link_dgs-1210_gpio_sfp.dtsi
rtl83xx_d-link_dgs-1210_gpio.dtsi realtek: switch RTL8231 driver for D-Link DGS-1210 2025-01-28 07:30:33 +01:00
rtl83xx_hpe_1920.dtsi
rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi
rtl838x.dtsi realtek: mdio: add SerDes driver 2025-09-17 19:23:15 +02:00
rtl839x.dtsi realtek: mdio: add SerDes driver 2025-09-17 19:23:15 +02:00
rtl930x.dtsi realtek: mdio: add SerDes driver 2025-09-17 19:23:15 +02:00
rtl931x.dtsi realtek: mdio: add SerDes driver 2025-09-17 19:23:15 +02:00
rtl8380_d-link_dgs-1210-10mp-f.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_engenius_ews2910p-v1.dts realtek: engenius_ews2910p: support multiple hardware versions 2025-05-31 23:19:01 +02:00
rtl8380_engenius_ews2910p-v3.dts realtek: support EnGenius EWS2910P v3 2025-05-31 23:19:01 +02:00
rtl8380_engenius_ews2910p.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_hpe_1920-8g-poe-65w.dts
rtl8380_hpe_1920-8g-poe-180w.dts
rtl8380_hpe_1920-8g.dts
rtl8380_hpe_1920-8g.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_linksys_lgs310c.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_netgear_gigabit.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_netgear_gs108t-v3.dts
rtl8380_netgear_gs110tpp-v1.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_netgear_gs110tup-v1.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_netgear_gs308t-v1.dts
rtl8380_netgear_gs310tp-v1.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_panasonic_m8eg-pn28080k.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_tplink_sg2xxx.dtsi realtek: make use of serdes helper for TP-Link SG2xxx 2025-06-22 16:37:33 +02:00
rtl8380_tplink_sg2008p-v1.dts
rtl8380_tplink_sg2210p-v3.dts
rtl8380_zyxel_gs1900_gpio_emulated.dtsi realtek: Move GS1900 external GPIO to new DTSI 2025-01-25 15:06:03 +01:00
rtl8380_zyxel_gs1900_gpio.dtsi realtek: Move GS1900 external GPIO to new DTSI 2025-01-25 15:06:03 +01:00
rtl8380_zyxel_gs1900-8-v1.dts realtek: Split Zyxel GS1900-8 into v1 and v2 2025-01-25 15:07:13 +01:00
rtl8380_zyxel_gs1900-8-v2.dts realtek: Split Zyxel GS1900-8 into v1 and v2 2025-01-25 15:07:13 +01:00
rtl8380_zyxel_gs1900-8hp-v1.dts realtek: Move GS1900 external GPIO to new DTSI 2025-01-25 15:06:03 +01:00
rtl8380_zyxel_gs1900-8hp-v2.dts realtek: Move GS1900 external GPIO to new DTSI 2025-01-25 15:06:03 +01:00
rtl8380_zyxel_gs1900-10hp.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8380_zyxel_gs1900.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_allnet_all-sg8208m.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_apresia_aplgs120gtss.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_d-link_dgs-1210-10p.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_d-link_dgs-1210-16.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_d-link_dgs-1210-20.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_d-link_dgs-1210-26.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_d-link_dgs-1210-28_common.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_d-link_dgs-1210-28.dts
rtl8382_d-link_dgs-1210-28mp-f.dts
rtl8382_d-link_dgs-1210-28p_common.dtsi
rtl8382_d-link_dgs-1210-28p-f.dts
rtl8382_hpe_1920-16g.dts
rtl8382_hpe_1920-24g-poe-180w.dts
rtl8382_hpe_1920-24g-poe-370w.dts
rtl8382_hpe_1920-24g.dts
rtl8382_hpe_1920-24g.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_hpe_1920.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_inaba_aml2-17gp.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_iodata_bsh-g24mb.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_panasonic_m16eg-pn28160k.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_panasonic_m24eg-pn28240k.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_tplink_t1600g-28ts-v3.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_zyxel_gs1900-16.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_zyxel_gs1900-24-v1.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_zyxel_gs1900-24e.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_zyxel_gs1900-24ep.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_zyxel_gs1900-24hp-v1.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8382_zyxel_gs1900-24hp-v2.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8393_d-link_dgs-1210-52.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8393_hpe_1920-48g-poe.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8393_hpe_1920-48g.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8393_hpe_1920.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8393_netgear_gs750e.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8393_panasonic_m48eg-pn28480k.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl8393_tplink_sg2452p-v4.dts realtek: align port names 2025-06-12 14:12:38 +02:00
rtl8393_zyxel_gs1900-48.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9302_plasmacloud_common.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9302_plasmacloud_psx8.dts realtek: rtl930x: Add support for Plasma Cloud PSX8 Switch 2025-08-28 21:07:57 +02:00
rtl9302_plasmacloud_psx10.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9302_zyxel_xgs1210-12-a1.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9302_zyxel_xgs1210-12-common.dtsi realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9302_zyxel_xgs1250-12.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9303_hasivo_s1100w-8xgt-se.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9303_tplink_tl-st1008f-v2.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9303_vimin_vm-s100-0800ms.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9303_xikestor_sks8300-8x.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00
rtl9303_xikestor_sks8310-8x.dts realtek: dts: rearrange mdio-bus below mdio-controller 2025-09-12 20:58:17 +02:00