Thread (11 messages) flat view 11 messages, 4 authors, 4d ago

Re: [PATCH v2 4/4] uart-routing: Add UART Routing driver for StarFive JHB100 SoC

From: Randy Dunlap <rdunlap@infradead.org>
Date: 2026-09-06 05:13:05
Also in: linux-arm-kernel, linux-aspeed, linux-doc, lkml, openbmc

Hi,

On 9/5/26 3:29 AM, Changhuang Liang wrote:
quoted hunk ↗ jump to hunk
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
+		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@lists.ozlabs.org
+
+What:		/sys/bus/platform/drivers/starfive-uart-routing/\*/io\*
+Date:		August 2026
+Contact:	Changhuang Liang <changhuang.liang@starfivetech.com>
+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@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-uart-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 <changhuang.liang@starfivetech.com>
 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.
 

-- 
~Randy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help