Thread (8 messages) flat view 8 messages, 3 authors, 2d ago

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 with
currently
quoted
+		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
quoted
+		io0 [io1] io2 io3 io4 io5 io6 io7 io8 io9 io10 io11 io12 io13 io14 uart0
uart1
quoted
+		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:
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 current
selection
quoted
+		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
quoted
+		uart0 uart1 uart2 uart3 uart4 uart5 uart6 uart7 uart8 [uart9] uart10
uart11 uart12
quoted
+		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:
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.org
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@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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help