2024-05-17 06:33:45

by Hal Feng

[permalink] [raw]
Subject: [PATCH v1 0/3] Add the core reset for UARTs of StarFive JH7110

The UART of StarFive JH7110 needs two reset signals (apb, core) to
initialize. This patch series adds the missing core reset.

Hal Feng (3):
dt-bindings: serial: snps-dw-apb-uart: Add one more reset signal for
StarFive JH7110 SoC
serial: 8250_dw: Use reset array API to get resets
riscv: dts: starfive: jh7110: Add the core reset and jh7110 compatible
for uarts

.../bindings/serial/snps-dw-apb-uart.yaml | 14 ++++++++-
arch/riscv/boot/dts/starfive/jh7110.dtsi | 30 +++++++++++--------
drivers/tty/serial/8250/8250_dw.c | 2 +-
3 files changed, 32 insertions(+), 14 deletions(-)


base-commit: a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6
--
2.43.2



2024-05-17 06:33:53

by Hal Feng

[permalink] [raw]
Subject: [PATCH v1 1/3] dt-bindings: serial: snps-dw-apb-uart: Add one more reset signal for StarFive JH7110 SoC

The UART of StarFive JH7110 has two reset signals.
Both of them are necessary for JH7110 to initialize UART.

Signed-off-by: Hal Feng <[email protected]>
---
.../bindings/serial/snps-dw-apb-uart.yaml | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
index 1001d2a6ace8..a6396c5cbfb1 100644
--- a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
+++ b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
@@ -13,6 +13,16 @@ allOf:
- $ref: serial.yaml#
- $ref: rs485.yaml#

+ - if:
+ properties:
+ compatible:
+ contains:
+ const: starfive,jh7110-uart
+ then:
+ properties:
+ resets:
+ minItems: 2
+
properties:
compatible:
oneOf:
@@ -48,6 +58,7 @@ properties:
- enum:
- starfive,jh7100-hsuart
- starfive,jh7100-uart
+ - starfive,jh7110-uart
- const: snps,dw-apb-uart
- const: snps,dw-apb-uart

@@ -82,7 +93,8 @@ properties:
type: boolean

resets:
- maxItems: 1
+ minItems: 1
+ maxItems: 2

reg-shift: true

--
2.43.2


2024-05-17 06:49:58

by Hal Feng

[permalink] [raw]
Subject: [PATCH v1 2/3] serial: 8250_dw: Use reset array API to get resets

Some SoCs like StarFive JH7110 require two or more resets.
So change to use the reset array API to get resets.

Signed-off-by: Hal Feng <[email protected]>
---
drivers/tty/serial/8250/8250_dw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index 1300c92b8702..425a63b67f1d 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -597,7 +597,7 @@ static int dw8250_probe(struct platform_device *pdev)
if (IS_ERR(data->pclk))
return PTR_ERR(data->pclk);

- data->rst = devm_reset_control_get_optional_exclusive(dev, NULL);
+ data->rst = devm_reset_control_array_get_optional_exclusive(dev);
if (IS_ERR(data->rst))
return PTR_ERR(data->rst);

--
2.43.2


2024-05-17 16:17:00

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH v1 1/3] dt-bindings: serial: snps-dw-apb-uart: Add one more reset signal for StarFive JH7110 SoC

On Fri, May 17, 2024 at 02:17:11PM +0800, Hal Feng wrote:
> The UART of StarFive JH7110 has two reset signals.
> Both of them are necessary for JH7110 to initialize UART.
>
> Signed-off-by: Hal Feng <[email protected]>
> ---
> .../bindings/serial/snps-dw-apb-uart.yaml | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> index 1001d2a6ace8..a6396c5cbfb1 100644
> --- a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> +++ b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> @@ -13,6 +13,16 @@ allOf:
> - $ref: serial.yaml#
> - $ref: rs485.yaml#
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: starfive,jh7110-uart
> + then:
> + properties:
> + resets:
> + minItems: 2

else:
properties:
resets:
maxItems: 1

Thanks,
Conor.

> +
> properties:
> compatible:
> oneOf:
> @@ -48,6 +58,7 @@ properties:
> - enum:
> - starfive,jh7100-hsuart
> - starfive,jh7100-uart
> + - starfive,jh7110-uart
> - const: snps,dw-apb-uart
> - const: snps,dw-apb-uart
>
> @@ -82,7 +93,8 @@ properties:
> type: boolean
>
> resets:
> - maxItems: 1
> + minItems: 1
> + maxItems: 2
>
> reg-shift: true
>
> --
> 2.43.2
>
>
> _______________________________________________
> linux-riscv mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-riscv


Attachments:
(No filename) (1.71 kB)
signature.asc (235.00 B)
Download all attachments

2024-05-20 02:21:49

by Hal Feng

[permalink] [raw]
Subject: RE: [PATCH v1 1/3] dt-bindings: serial: snps-dw-apb-uart: Add one more reset signal for StarFive JH7110 SoC

> On 18.05.24 00:17, Conor Dooley wrote:
> On Fri, May 17, 2024 at 02:17:11PM +0800, Hal Feng wrote:
> > The UART of StarFive JH7110 has two reset signals.
> > Both of them are necessary for JH7110 to initialize UART.
> >
> > Signed-off-by: Hal Feng <[email protected]>
> > ---
> > .../bindings/serial/snps-dw-apb-uart.yaml | 14 +++++++++++++-
> > 1 file changed, 13 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> > index 1001d2a6ace8..a6396c5cbfb1 100644
> > --- a/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> > +++ b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml
> > @@ -13,6 +13,16 @@ allOf:
> > - $ref: serial.yaml#
> > - $ref: rs485.yaml#
> >
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: starfive,jh7110-uart
> > + then:
> > + properties:
> > + resets:
> > + minItems: 2
>
> else:
> properties:
> resets:
> maxItems: 1

Will fix it later. Thanks for your review.

Best regards,
Hal