Re: [PATCH v1 2/2] soc: starfive: Add JHB100 UART Routing driver
From: Krzysztof Kozlowski
Date: Sun Aug 30 2026 - 04:38:22 EST
On 30/08/2026 08:51, 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-jhb100-uart-routing | 45 +++
> MAINTAINERS | 7 +
> drivers/soc/starfive/Kconfig | 1 +
> drivers/soc/starfive/Makefile | 1 +
> drivers/soc/starfive/uart-routing/Kconfig | 14 +
> drivers/soc/starfive/uart-routing/Makefile | 2 +
> .../uart-routing/jhb100-uart-routing.c | 262 ++++++++++++++++++
> 7 files changed, 332 insertions(+)
> create mode 100644 Documentation/ABI/testing/sysfs-driver-starfive-jhb100-uart-routing
> create mode 100644 drivers/soc/starfive/uart-routing/Kconfig
> create mode 100644 drivers/soc/starfive/uart-routing/Makefile
> create mode 100644 drivers/soc/starfive/uart-routing/jhb100-uart-routing.c
>
> diff --git a/Documentation/ABI/testing/sysfs-driver-starfive-jhb100-uart-routing b/Documentation/ABI/testing/sysfs-driver-starfive-jhb100-uart-routing
> new file mode 100644
> index 000000000000..2844133bea1b
> --- /dev/null
> +++ b/Documentation/ABI/testing/sysfs-driver-starfive-jhb100-uart-routing
> @@ -0,0 +1,45 @@
> +What: /sys/bus/platform/drivers/starfive-jhb100-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-jhb100-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-jhb100-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-jhb100-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-jhb100-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-jhb100-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
drivers/soc/ should not define user-space interfaces. This is not the
place for them. You need to route user-spaces interfaces only through
one of other approved subsystems, after their review.
This looks like pin multiplexing interface.
Best regards,
Krzysztof