* [PATCH v2 0/2] serial: 8250_dw: Add support for UltraRISC DP1000 uart
@ 2026-03-16 6:33 Jia Wang via B4 Relay
2026-03-16 6:33 ` [PATCH v2 1/2] dt-bindings: serial: update bindings of ultrarisc dp1000 uart Jia Wang via B4 Relay
2026-03-16 6:33 ` [PATCH v2 2/2] riscv: ultrarisc: 8250_dw: support DP1000 uart Jia Wang via B4 Relay
0 siblings, 2 replies; 6+ messages in thread
From: Jia Wang via B4 Relay @ 2026-03-16 6:33 UTC (permalink / raw)
To: Ilpo Järvinen, Andy Shevchenko, Greg Kroah-Hartman,
Jiri Slaby, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-kernel, linux-serial, linux-riscv, devicetree, Jia Wang,
Yao Zi, Zhang Xincheng
This is version 2 of the patch series.
Previous version was sent via local SMTP, some recipients received it.
This series is now sent via official web endpoint.
This patch series adds support for the UltraRISC DP1000 UART controller.
The series includes two patches:
1. Update device tree bindings to document the DP1000 UART compatible string
and required properties.
2. Add driver support in the 8250_dw driver by handling the DP1000-specific
initialization and configuration.
The patches have been tested on Ultrarisc DP1000 development board with
Linux v7.0-rc2, verifying basic UART functionality and runtime suspend/resume.
Signed-off-by: Jia Wang <wangjia@ultrarisc.com>
---
Changes in v2:
- Rebased on Linux v7.0-rc4 (previously on v7.0-rc2).
- Reordered patch series: DT binding patch comes before driver changes.
- Updated commit message for DT binding patch.
- Link to v1: https://patch.msgid.link/20260316-ultrarisc-serial-v1-0-c464f3e933a5@ultrarisc.com
---
Jia Wang (1):
dt-bindings: serial: update bindings of ultrarisc dp1000 uart
Zhang Xincheng (1):
riscv: ultrarisc: 8250_dw: support DP1000 uart
.../devicetree/bindings/serial/snps-dw-apb-uart.yaml | 2 ++
drivers/tty/serial/8250/8250_dw.c | 12 ++++++++++++
2 files changed, 14 insertions(+)
---
base-commit: f338e77383789c0cae23ca3d48adcc5e9e137e3c
change-id: 20260309-ultrarisc-serial-64ff637edf26
Best regards,
--
Jia Wang <wangjia@ultrarisc.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] dt-bindings: serial: update bindings of ultrarisc dp1000 uart
2026-03-16 6:33 [PATCH v2 0/2] serial: 8250_dw: Add support for UltraRISC DP1000 uart Jia Wang via B4 Relay
@ 2026-03-16 6:33 ` Jia Wang via B4 Relay
2026-03-16 8:11 ` Krzysztof Kozlowski
2026-03-16 8:12 ` Krzysztof Kozlowski
2026-03-16 6:33 ` [PATCH v2 2/2] riscv: ultrarisc: 8250_dw: support DP1000 uart Jia Wang via B4 Relay
1 sibling, 2 replies; 6+ messages in thread
From: Jia Wang via B4 Relay @ 2026-03-16 6:33 UTC (permalink / raw)
To: Ilpo Järvinen, Andy Shevchenko, Greg Kroah-Hartman,
Jiri Slaby, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-kernel, linux-serial, linux-riscv, devicetree, Jia Wang,
Yao Zi
From: Jia Wang <wangjia@ultrarisc.com>
Add DP1000 UART compatible information
Signed-off-by: Jia Wang <wangjia@ultrarisc.com>
Reviewed-by: Yao Zi <me@ziyao.cc>
---
Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
index 6efe43089a74..0040ed28e35b 100644
--- a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
+++ b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
@@ -78,6 +78,8 @@ properties:
- starfive,jh7100-uart
- starfive,jh7110-uart
- const: snps,dw-apb-uart
+ - items:
+ - const: ultrarisc,dp1000-uart
- const: snps,dw-apb-uart
reg:
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] riscv: ultrarisc: 8250_dw: support DP1000 uart
2026-03-16 6:33 [PATCH v2 0/2] serial: 8250_dw: Add support for UltraRISC DP1000 uart Jia Wang via B4 Relay
2026-03-16 6:33 ` [PATCH v2 1/2] dt-bindings: serial: update bindings of ultrarisc dp1000 uart Jia Wang via B4 Relay
@ 2026-03-16 6:33 ` Jia Wang via B4 Relay
2026-03-16 11:35 ` Andy Shevchenko
1 sibling, 1 reply; 6+ messages in thread
From: Jia Wang via B4 Relay @ 2026-03-16 6:33 UTC (permalink / raw)
To: Ilpo Järvinen, Andy Shevchenko, Greg Kroah-Hartman,
Jiri Slaby, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-kernel, linux-serial, linux-riscv, devicetree, Jia Wang,
Zhang Xincheng
From: Zhang Xincheng <zhangxincheng@ultrarisc.com>
The UART of DP1000 does not support automatic detection of
buffer size. skip_autocfg needs to be set to true
Signed-off-by: Zhang Xincheng <zhangxincheng@ultrarisc.com>
Signed-off-by: Jia Wang <wangjia@ultrarisc.com>
---
drivers/tty/serial/8250/8250_dw.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index db73b2ae17fa..6a2acf173331 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -56,6 +56,7 @@
#define DW_UART_QUIRK_IS_DMA_FC BIT(3)
#define DW_UART_QUIRK_APMC0D08 BIT(4)
#define DW_UART_QUIRK_CPR_VALUE BIT(5)
+#define DW_UART_QUIRK_FIXED_TYPE BIT(6)
struct dw8250_platform_data {
u8 usr_reg;
@@ -514,6 +515,11 @@ static void dw8250_quirks(struct uart_port *p, struct dw8250_data *data)
data->data.dma.prepare_tx_dma = dw8250_prepare_tx_dma;
data->data.dma.prepare_rx_dma = dw8250_prepare_rx_dma;
}
+ if (quirks & DW_UART_QUIRK_FIXED_TYPE) {
+ p->flags |= UPF_FIXED_TYPE;
+ p->type = PORT_16550A;
+ data->skip_autocfg = true;
+ }
if (quirks & DW_UART_QUIRK_APMC0D08) {
p->iotype = UPIO_MEM32;
p->regshift = 2;
@@ -789,6 +795,11 @@ static const struct dw8250_platform_data dw8250_skip_set_rate_data = {
.quirks = DW_UART_QUIRK_SKIP_SET_RATE,
};
+static const struct dw8250_platform_data dw8250_ultrarisc_dp1000_data = {
+ .usr_reg = DW_UART_USR,
+ .quirks = DW_UART_QUIRK_FIXED_TYPE,
+};
+
static const struct of_device_id dw8250_of_match[] = {
{ .compatible = "snps,dw-apb-uart", .data = &dw8250_dw_apb },
{ .compatible = "cavium,octeon-3860-uart", .data = &dw8250_octeon_3860_data },
@@ -796,6 +807,7 @@ static const struct of_device_id dw8250_of_match[] = {
{ .compatible = "renesas,rzn1-uart", .data = &dw8250_renesas_rzn1_data },
{ .compatible = "sophgo,sg2044-uart", .data = &dw8250_skip_set_rate_data },
{ .compatible = "starfive,jh7100-uart", .data = &dw8250_skip_set_rate_data },
+ { .compatible = "ultrarisc,dp1000-uart", .data = &dw8250_ultrarisc_dp1000_data },
{ /* Sentinel */ }
};
MODULE_DEVICE_TABLE(of, dw8250_of_match);
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: serial: update bindings of ultrarisc dp1000 uart
2026-03-16 6:33 ` [PATCH v2 1/2] dt-bindings: serial: update bindings of ultrarisc dp1000 uart Jia Wang via B4 Relay
@ 2026-03-16 8:11 ` Krzysztof Kozlowski
2026-03-16 8:12 ` Krzysztof Kozlowski
1 sibling, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-16 8:11 UTC (permalink / raw)
To: Jia Wang
Cc: Ilpo Järvinen, Andy Shevchenko, Greg Kroah-Hartman,
Jiri Slaby, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-kernel, linux-serial, linux-riscv, devicetree, Yao Zi
On Mon, Mar 16, 2026 at 02:33:22PM +0800, Jia Wang wrote:
> Add DP1000 UART compatible information
We see this from the diff. Why this is not compatible with
snps,dw-apb-uart? What are the differences. You have entire commit msg
to explain the hardware.
>
> Signed-off-by: Jia Wang <wangjia@ultrarisc.com>
> Reviewed-by: Yao Zi <me@ziyao.cc>
> ---
> Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> index 6efe43089a74..0040ed28e35b 100644
> --- a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> +++ b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> @@ -78,6 +78,8 @@ properties:
> - starfive,jh7100-uart
> - starfive,jh7110-uart
> - const: snps,dw-apb-uart
> + - items:
Drop, not needed.
> + - const: ultrarisc,dp1000-uart
> - const: snps,dw-apb-uart
So just enum with the snps one.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: serial: update bindings of ultrarisc dp1000 uart
2026-03-16 6:33 ` [PATCH v2 1/2] dt-bindings: serial: update bindings of ultrarisc dp1000 uart Jia Wang via B4 Relay
2026-03-16 8:11 ` Krzysztof Kozlowski
@ 2026-03-16 8:12 ` Krzysztof Kozlowski
1 sibling, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-16 8:12 UTC (permalink / raw)
To: Jia Wang
Cc: Ilpo Järvinen, Andy Shevchenko, Greg Kroah-Hartman,
Jiri Slaby, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-kernel, linux-serial, linux-riscv, devicetree, Yao Zi
On Mon, Mar 16, 2026 at 02:33:22PM +0800, Jia Wang wrote:
> Add DP1000 UART compatible information
>
A nit, subject: drop second/last, redundant "bindings". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
And anything can be "update". Be specific. Look at other commits how
commits and their subjects are written.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] riscv: ultrarisc: 8250_dw: support DP1000 uart
2026-03-16 6:33 ` [PATCH v2 2/2] riscv: ultrarisc: 8250_dw: support DP1000 uart Jia Wang via B4 Relay
@ 2026-03-16 11:35 ` Andy Shevchenko
0 siblings, 0 replies; 6+ messages in thread
From: Andy Shevchenko @ 2026-03-16 11:35 UTC (permalink / raw)
To: wangjia
Cc: Ilpo Järvinen, Greg Kroah-Hartman, Jiri Slaby, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-kernel, linux-serial,
linux-riscv, devicetree, Zhang Xincheng
On Mon, Mar 16, 2026 at 02:33:23PM +0800, Jia Wang via B4 Relay wrote:
> The UART of DP1000 does not support automatic detection of
> buffer size. skip_autocfg needs to be set to true
Missed period at the end.
...
> +#define DW_UART_QUIRK_FIXED_TYPE BIT(6)
Seems unrequired.
But to make sure, can you elaborate what's going on here?
What is the reads from UCV and CPR registers?
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-03-16 11:35 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-16 6:33 [PATCH v2 0/2] serial: 8250_dw: Add support for UltraRISC DP1000 uart Jia Wang via B4 Relay
2026-03-16 6:33 ` [PATCH v2 1/2] dt-bindings: serial: update bindings of ultrarisc dp1000 uart Jia Wang via B4 Relay
2026-03-16 8:11 ` Krzysztof Kozlowski
2026-03-16 8:12 ` Krzysztof Kozlowski
2026-03-16 6:33 ` [PATCH v2 2/2] riscv: ultrarisc: 8250_dw: support DP1000 uart Jia Wang via B4 Relay
2026-03-16 11:35 ` Andy Shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox