Re: [PATCH v2 4/4] uart-routing: Add UART Routing driver for StarFive JHB100 SoC
From: Changhuang Liang <changhuang.liang@starfivetech.com>
Date: 2026-09-07 01:25:26
Also in:
linux-arm-kernel, linux-devicetree, linux-doc, lkml, openbmc
Hi, Randy Thanks for the review.
quoted hunk ↗ jump to hunk
Hi, On 9/5/26 3:29 AM, Changhuang Liang wrote:quoted
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@starfivetech.com> --- .../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@starfivetech.com> +Description: Selects the RX source of the UARTx device. + + When read, each file shows the list of available options withcurrentlyquoted
+ 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/uart1quoted
+ io0 [io1] io2 io3 io4 io5 io6 io7 io8 io9 io10 io11 io12 io13 io14 uart0uart1quoted
+ 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 desiredsource to the file:quoted
+ 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@lists.ozlabs.org + +What: /sys/bus/platform/drivers/starfive-uart-routing/\*/io\* +Date: August 2026 +Contact: Changhuang Liang [off-list ref] +Description: Selects the RX source of IOx serial port. The currentselectionquoted
+ 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/io9quoted
+ uart0 uart1 uart2 uart3 uart4 uart5 uart6 uart7 uart8 [uart9] uart10uart11 uart12quoted
+ 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 sourceto the file:quoted
+ 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@lists.ozlabs.orgPlease 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@infradead.org> --- 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@starfivetech.com> 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@lists.ozlabs.org -What: /sys/bus/platform/drivers/starfive-uart-routing/\*/io\* +What: /sys/bus/platform/drivers/starfive-uart-routing/*/io* Date: August 2026 Contact: Changhuang Liang [off-list ref] 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