2021-05-19 16:25:47

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 0/3] tty: serial: meson: add amlogic,uart-fifosize property

On most of the Amlogic SoCs, the first UART controller in the "Everything-Else"
power domain has 128bytes of RX & TX FIFO, so add an optional property to describe
a different FIFO size from the other ports (64bytes).

This adds a property in the bindings, reads the property from the driver and updates
the DT with the new property.

Changes since v2:
- removed spurious blank line from bindings

Changes since v1:
- switched to a more generic "fifo-size"

Neil Armstrong (3):
dt-bindings: serial: amlogic,meson-uart: add fifo-size property
tty: serial: meson: retrieve port FIFO size from DT
arm64: dts: meson: set 128bytes FIFO size on uart A

.../devicetree/bindings/serial/amlogic,meson-uart.yaml | 5 +++++
arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
drivers/tty/serial/meson_uart.c | 5 ++++-
5 files changed, 12 insertions(+), 1 deletion(-)

--
2.25.1



2021-05-19 16:25:57

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 1/3] dt-bindings: serial: amlogic,meson-uart: add fifo-size property

On most of the Amlogic SoCs, the first UART controller in the "Everything-Else"
power domain has 128bytes of RX & TX FIFO, so add an optional property to describe
a different FIFO size from the other ports (64bytes).

Signed-off-by: Neil Armstrong <[email protected]>
Reviewed-by: Martin Blumenstingl <[email protected]>
---
.../devicetree/bindings/serial/amlogic,meson-uart.yaml | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
index 75ebc9952a99..7487aa6ef849 100644
--- a/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
+++ b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
@@ -55,6 +55,11 @@ properties:
- const: pclk
- const: baud

+ fifo-size:
+ description: The fifo size supported by the UART channel.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [64, 128]
+
required:
- compatible
- reg
--
2.25.1


2021-05-19 16:26:05

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 2/3] tty: serial: meson: retrieve port FIFO size from DT

Now the DT bindings has a property to get the FIFO size for a particular port,
retrieve it and use to setup the FIFO interrupts threshold.

Signed-off-by: Neil Armstrong <[email protected]>
Reviewed-by: Kevin Hilman <[email protected]>
---
drivers/tty/serial/meson_uart.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
index 529cd0289056..10bb29202e43 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
@@ -715,6 +715,7 @@ static int meson_uart_probe(struct platform_device *pdev)
{
struct resource *res_mem, *res_irq;
struct uart_port *port;
+ u32 fifosize = 64; /* Default is 64, 128 for EE UART_0 */
int ret = 0;
int id = -1;

@@ -741,6 +742,8 @@ static int meson_uart_probe(struct platform_device *pdev)
if (!res_irq)
return -ENODEV;

+ of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize);
+
if (meson_ports[pdev->id]) {
dev_err(&pdev->dev, "port %d already allocated\n", pdev->id);
return -EBUSY;
@@ -770,7 +773,7 @@ static int meson_uart_probe(struct platform_device *pdev)
port->type = PORT_MESON;
port->x_char = 0;
port->ops = &meson_uart_ops;
- port->fifosize = 64;
+ port->fifosize = fifosize;

meson_ports[pdev->id] = port;
platform_set_drvdata(pdev, port);
--
2.25.1


2021-05-19 16:26:08

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 3/3] arm64: dts: meson: set 128bytes FIFO size on uart A

The first UART controller in "Everything-Else" power domain, usually used
for Bluetooth HCI has 128bytes FIFO depth.

Signed-off-by: Neil Armstrong <[email protected]>
---
arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
3 files changed, 3 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
index 895c43c7af9f..3f5254eeb47b 100644
--- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
@@ -1871,6 +1871,7 @@ uart_A: serial@24000 {
status = "disabled";
clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
clock-names = "xtal", "pclk", "baud";
+ fifo-size = <128>;
};
};

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 793d48f72390..00c6f53290d4 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -2317,6 +2317,7 @@ uart_A: serial@24000 {
clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
clock-names = "xtal", "pclk", "baud";
status = "disabled";
+ fifo-size = <128>;
};
};

diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index 3d00404aae0f..6b457b2c30a4 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -301,6 +301,7 @@ uart_A: serial@84c0 {
reg = <0x0 0x84c0 0x0 0x18>;
interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
status = "disabled";
+ fifo-size = <128>;
};

uart_B: serial@84dc {
--
2.25.1


2021-05-19 21:37:57

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH 1/3] dt-bindings: serial: amlogic, meson-uart: add fifo-size property

On Tue, 18 May 2021 09:58:31 +0200, Neil Armstrong wrote:
> On most of the Amlogic SoCs, the first UART controller in the "Everything-Else"
> power domain has 128bytes of RX & TX FIFO, so add an optional property to describe
> a different FIFO size from the other ports (64bytes).
>
> Signed-off-by: Neil Armstrong <[email protected]>
> Reviewed-by: Martin Blumenstingl <[email protected]>
> ---
> .../devicetree/bindings/serial/amlogic,meson-uart.yaml | 5 +++++
> 1 file changed, 5 insertions(+)
>

Reviewed-by: Rob Herring <[email protected]>

2021-05-20 14:01:13

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH 0/3] tty: serial: meson: add amlogic,uart-fifosize property

Hi Greg,

On 18/05/2021 09:58, Neil Armstrong wrote:
> On most of the Amlogic SoCs, the first UART controller in the "Everything-Else"
> power domain has 128bytes of RX & TX FIFO, so add an optional property to describe
> a different FIFO size from the other ports (64bytes).
>
> This adds a property in the bindings, reads the property from the driver and updates
> the DT with the new property.
>
> Changes since v2:
> - removed spurious blank line from bindings
>
> Changes since v1:
> - switched to a more generic "fifo-size"
>
> Neil Armstrong (3):
> dt-bindings: serial: amlogic,meson-uart: add fifo-size property
> tty: serial: meson: retrieve port FIFO size from DT
> arm64: dts: meson: set 128bytes FIFO size on uart A
>
> .../devicetree/bindings/serial/amlogic,meson-uart.yaml | 5 +++++
> arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 +
> arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 1 +
> arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
> drivers/tty/serial/meson_uart.c | 5 ++++-
> 5 files changed, 12 insertions(+), 1 deletion(-)
>

Could you apply patches 1 & 2 ?

Thanks,
Neil

2021-05-20 14:13:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 0/3] tty: serial: meson: add amlogic,uart-fifosize property

On Thu, May 20, 2021 at 03:55:35PM +0200, Neil Armstrong wrote:
> Hi Greg,
>
> On 18/05/2021 09:58, Neil Armstrong wrote:
> > On most of the Amlogic SoCs, the first UART controller in the "Everything-Else"
> > power domain has 128bytes of RX & TX FIFO, so add an optional property to describe
> > a different FIFO size from the other ports (64bytes).
> >
> > This adds a property in the bindings, reads the property from the driver and updates
> > the DT with the new property.
> >
> > Changes since v2:
> > - removed spurious blank line from bindings
> >
> > Changes since v1:
> > - switched to a more generic "fifo-size"
> >
> > Neil Armstrong (3):
> > dt-bindings: serial: amlogic,meson-uart: add fifo-size property
> > tty: serial: meson: retrieve port FIFO size from DT
> > arm64: dts: meson: set 128bytes FIFO size on uart A
> >
> > .../devicetree/bindings/serial/amlogic,meson-uart.yaml | 5 +++++
> > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 +
> > arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 1 +
> > arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
> > drivers/tty/serial/meson_uart.c | 5 ++++-
> > 5 files changed, 12 insertions(+), 1 deletion(-)
> >
>
> Could you apply patches 1 & 2 ?

Sure, will go do so now...

2021-05-21 06:16:27

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH 0/3] tty: serial: meson: add amlogic,uart-fifosize property

On 20/05/2021 16:10, Greg KH wrote:
> On Thu, May 20, 2021 at 03:55:35PM +0200, Neil Armstrong wrote:
>> Hi Greg,
>>
>> On 18/05/2021 09:58, Neil Armstrong wrote:
>>> On most of the Amlogic SoCs, the first UART controller in the "Everything-Else"
>>> power domain has 128bytes of RX & TX FIFO, so add an optional property to describe
>>> a different FIFO size from the other ports (64bytes).
>>>
>>> This adds a property in the bindings, reads the property from the driver and updates
>>> the DT with the new property.
>>>
>>> Changes since v2:
>>> - removed spurious blank line from bindings
>>>
>>> Changes since v1:
>>> - switched to a more generic "fifo-size"
>>>
>>> Neil Armstrong (3):
>>> dt-bindings: serial: amlogic,meson-uart: add fifo-size property
>>> tty: serial: meson: retrieve port FIFO size from DT
>>> arm64: dts: meson: set 128bytes FIFO size on uart A
>>>
>>> .../devicetree/bindings/serial/amlogic,meson-uart.yaml | 5 +++++
>>> arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 +
>>> arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 1 +
>>> arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
>>> drivers/tty/serial/meson_uart.c | 5 ++++-
>>> 5 files changed, 12 insertions(+), 1 deletion(-)
>>>
>>
>> Could you apply patches 1 & 2 ?
>
> Sure, will go do so now...
>

thanks !

Neil

2021-06-01 08:31:32

by Neil Armstrong

[permalink] [raw]
Subject: Re: (subset) [PATCH 0/3] tty: serial: meson: add amlogic,uart-fifosize property

Hi,

On Tue, 18 May 2021 09:58:30 +0200, Neil Armstrong wrote:
> On most of the Amlogic SoCs, the first UART controller in the "Everything-Else"
> power domain has 128bytes of RX & TX FIFO, so add an optional property to describe
> a different FIFO size from the other ports (64bytes).
>
> This adds a property in the bindings, reads the property from the driver and updates
> the DT with the new property.
>
> [...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v5.14/dt64)

[3/3] arm64: dts: meson: set 128bytes FIFO size on uart A
https://git.kernel.org/amlogic/c/a270a2b24de5

--
Neil