Re: [PATCH v2 4/4] uart-routing: Add UART Routing driver for StarFive JHB100 SoC
From: Changhuang Liang
Date: Sun Sep 06 2026 - 21:28:21 EST
Hi, Randy
Thanks for the review.
> Hi,
>
> On 9/5/26 3:29 AM, Changhuang Liang wrote:
> > Add driver support for JHB100 UART Routing control, allowing runtime
> > configuration of RX muxes between UART controllers and I/O pins.
> >
> > A sysfs interface is provided for easy checking and updating of
> > routing paths.
> >
> > Signed-off-by: Changhuang Liang <changhuang.liang@xxxxxxxxxxxxxxxx>
> > ---
> > .../sysfs-driver-starfive-uart-routing | 45 ++++
> > MAINTAINERS | 8 +
> > drivers/uart-routing/Kconfig | 13 ++
> > drivers/uart-routing/Makefile | 1 +
> > drivers/uart-routing/starfive-uart-routing.c | 192
> > ++++++++++++++++++
> > 5 files changed, 259 insertions(+)
> > create mode 100644
> > Documentation/ABI/testing/sysfs-driver-starfive-uart-routing
> > create mode 100644 drivers/uart-routing/starfive-uart-routing.c
> >
> > diff --git
> > a/Documentation/ABI/testing/sysfs-driver-starfive-uart-routing
> > b/Documentation/ABI/testing/sysfs-driver-starfive-uart-routing
> > new file mode 100644
> > index 000000000000..737afdf428bc
> > --- /dev/null
> > +++ b/Documentation/ABI/testing/sysfs-driver-starfive-uart-routing
> > @@ -0,0 +1,45 @@
> > +What: /sys/bus/platform/drivers/starfive-uart-routing/\*/uart\*
> > +Date: August 2026
> > +Contact: Changhuang Liang <changhuang.liang@xxxxxxxxxxxxxxxx>
> > +Description: Selects the RX source of the UARTx device.
> > +
> > + When read, each file shows the list of available options with
> currently
> > + selected option marked by brackets "[]". The list of available options
> > + depends on the selected file.
> > +
> > + e.g.
> > + cat
> /sys/bus/platform/drivers/starfive-uart-routing/\*.uart-routing/uart1
> > + io0 [io1] io2 io3 io4 io5 io6 io7 io8 io9 io10 io11 io12 io13 io14 uart0
> uart1
> > + uart2 uart3 uart4 uart5 uart6 uart7 uart8 uart9 uart10 uart11
> > +uart12 uart13 uart14
> > +
> > + In this case, UART1 gets its input from IO1 (physical serial port 1).
> > +
> > + To switch the RX source of UART1 to UART2, write the desired
> source to the file:
> > + echo uart2 >
> > +/sys/bus/platform/drivers/starfive-uart-routing/*.uart-routing/uart1
> > +
> > + This indicates that UART1 now receives its input from UART2.
> > +
> > +Users: OpenBMC. Proposed changes should be mailed to
> > + openbmc@xxxxxxxxxxxxxxxx
> > +
> > +What: /sys/bus/platform/drivers/starfive-uart-routing/\*/io\*
> > +Date: August 2026
> > +Contact: Changhuang Liang <changhuang.liang@xxxxxxxxxxxxxxxx>
> > +Description: Selects the RX source of IOx serial port. The current
> selection
> > + will be marked by brackets "[]". The list of available options
> > + depends on the selected file.
> > +
> > + e.g.
> > + cat
> /sys/bus/platform/drivers/starfive-uart-routing/\*.uart-routing/io9
> > + uart0 uart1 uart2 uart3 uart4 uart5 uart6 uart7 uart8 [uart9] uart10
> uart11 uart12
> > + uart13 uart14 io0 io1 io2 io3 io4 io5 io6 io7 io8 io9 io10 io11
> > +io12 io13 io14
> > +
> > + In this case, IO9 (physical serial port 9) gets its input from UART9.
> > +
> > + To switch the RX source of IO9 to UART10, write the desired source
> to the file:
> > + echo uart10 >
> > +/sys/bus/platform/drivers/starfive-uart-routing/*.uart-routing/io9
> > +
> > + This indicates that IO9 now receives its input from UART10.
> > +
> > +Users: OpenBMC. Proposed changes should be mailed to
> > + openbmc@xxxxxxxxxxxxxxxx
>
> Please consider the following changes to this ABI file documentation (or make
> your own).
>
> ---
> Avoid 'make htmldocs' warnings (from docutils) and make console input or
> output be presented more clearly and in a monospace font.
>
> Documentation/ABI/testing/sysfs-driver-starfive-uart-routing:25: WARNING:
> Inline emphasis start-string without end-string. [docutils]
> Documentation/ABI/testing/sysfs-driver-starfive-uart-routing:1: WARNING:
> Inline emphasis start-string without end-string. [docutils]
>
> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> ---
> Documentation/ABI/testing/sysfs-driver-starfive-uart-routing | 32
> +++++-----
> 1 file changed, 18 insertions(+), 14 deletions(-)
>
> ---
> linux-next-20260902.orig/Documentation/ABI/testing/sysfs-driver-starfive-u
> art-routing
> +++ linux-next-20260902/Documentation/ABI/testing/sysfs-driver-starfive-
> +++ uart-routing
> @@ -1,4 +1,4 @@
> -What: /sys/bus/platform/drivers/starfive-uart-routing/\*/uart\*
> +What: /sys/bus/platform/drivers/starfive-uart-routing/*/uart*
> Date: August 2026
> Contact: Changhuang Liang <changhuang.liang@xxxxxxxxxxxxxxxx>
> Description: Selects the RX source of the UARTx device.
> @@ -7,37 +7,41 @@ Description: Selects the RX source of th
> selected option marked by brackets "[]". The list of available options
> depends on the selected file.
>
> - e.g.
> - cat
> /sys/bus/platform/drivers/starfive-uart-routing/\*.uart-routing/uart1
> - io0 [io1] io2 io3 io4 io5 io6 io7 io8 io9 io10 io11 io12 io13 io14 uart0
> uart1
> - uart2 uart3 uart4 uart5 uart6 uart7 uart8 uart9 uart10 uart11
> uart12 uart13 uart14
> + E.g.::
> +
> + cat
> /sys/bus/platform/drivers/starfive-uart-routing/*.uart-routing/uart1
> + io0 [io1] io2 io3 io4 io5 io6 io7 io8 io9 io10 io11 io12 io13 io14
> uart0 uart1
> + uart2 uart3 uart4 uart5 uart6 uart7 uart8 uart9 uart10 uart11
> +uart12 uart13 uart14
>
> In this case, UART1 gets its input from IO1 (physical serial port 1).
>
> - To switch the RX source of UART1 to UART2, write the desired
> source to the file:
> - echo uart2 >
> /sys/bus/platform/drivers/starfive-uart-routing/*.uart-routing/uart1
> + To switch the RX source of UART1 to UART2, write the desired
> source to the file::
> +
> + echo uart2 >
> +/sys/bus/platform/drivers/starfive-uart-routing/*.uart-routing/uart1
>
> This indicates that UART1 now receives its input from UART2.
>
> Users: OpenBMC. Proposed changes should be mailed to
> openbmc@xxxxxxxxxxxxxxxx
>
> -What: /sys/bus/platform/drivers/starfive-uart-routing/\*/io\*
> +What: /sys/bus/platform/drivers/starfive-uart-routing/*/io*
> Date: August 2026
> Contact: Changhuang Liang <changhuang.liang@xxxxxxxxxxxxxxxx>
> Description: Selects the RX source of IOx serial port. The current selection
> will be marked by brackets "[]". The list of available options
> depends on the selected file.
>
> - e.g.
> - cat
> /sys/bus/platform/drivers/starfive-uart-routing/\*.uart-routing/io9
> - uart0 uart1 uart2 uart3 uart4 uart5 uart6 uart7 uart8 [uart9] uart10
> uart11 uart12
> - uart13 uart14 io0 io1 io2 io3 io4 io5 io6 io7 io8 io9 io10 io11 io12
> io13 io14
> + E.g.::
> +
> + cat
> /sys/bus/platform/drivers/starfive-uart-routing/*.uart-routing/io9
> + uart0 uart1 uart2 uart3 uart4 uart5 uart6 uart7 uart8 [uart9]
> uart10 uart11 uart12
> + uart13 uart14 io0 io1 io2 io3 io4 io5 io6 io7 io8 io9 io10 io11
> +io12 io13 io14
>
> In this case, IO9 (physical serial port 9) gets its input from UART9.
>
> - To switch the RX source of IO9 to UART10, write the desired source
> to the file:
> - echo uart10 >
> /sys/bus/platform/drivers/starfive-uart-routing/*.uart-routing/io9
> + To switch the RX source of IO9 to UART10, write the desired source
> to the file::
> +
> + echo uart10 >
> +/sys/bus/platform/drivers/starfive-uart-routing/*.uart-routing/io9
>
> This indicates that IO9 now receives its input from UART10.
>
Thank you for pointing out the issues and providing the revision plan.
Best Regards,
Changhuang