2021-04-06 13:55:37

by Erwan Le Ray

[permalink] [raw]
Subject: [PATCH 1/2] dt-bindings: serial: stm32: add fifo threshold configuration

Add two optional DT properties, to configure RX and TX fifo threshold:
- st,rx-fifo-threshold-bytes
- st,tx-fifo-threshold-bytes

This patch depends on patch ("dt-bindings: serial: Add rx-tx-swap to stm32-usart").

Signed-off-by: Fabrice Gasnier <[email protected]>
Signed-off-by: Erwan Le Ray <[email protected]>

diff --git a/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml b/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml
index c69f8464cdf3..e163449bf39e 100644
--- a/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml
+++ b/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml
@@ -65,6 +65,22 @@ properties:
linux,rs485-enabled-at-boot-time: true
rs485-rx-during-tx: true

+ st,rx-fifo-threshold-bytes:
+ description:
+ RX FIFO threshold configuration in bytes.
+ If value is set to 1, RX FIFO threshold is disabled.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [1, 2, 4, 8, 12, 14, 16]
+ default: 8
+
+ st,tx-fifo-threshold-bytes:
+ description:
+ TX FIFO threshold configuration in bytes.
+ If value is set to 1, TX FIFO threshold is disabled.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [1, 2, 4, 8, 12, 14, 16]
+ default: 8
+
allOf:
- $ref: rs485.yaml#
- $ref: serial.yaml#
@@ -82,6 +98,17 @@ allOf:
then:
properties:
rx-tx-swap: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - st,stm32-uart
+ - st,stm32f7-uart
+ then:
+ properties:
+ st,rx-fifo-threshold-bytes: false
+ st,tx-fifo-threshold-bytes: false

required:
- compatible
@@ -96,13 +123,15 @@ examples:
- |
#include <dt-bindings/clock/stm32mp1-clks.h>
usart1: serial@40011000 {
- compatible = "st,stm32-uart";
+ compatible = "st,stm32h7-uart";
reg = <0x40011000 0x400>;
interrupts = <37>;
clocks = <&rcc 0 164>;
dmas = <&dma2 2 4 0x414 0x0>,
<&dma2 7 4 0x414 0x0>;
dma-names = "rx", "tx";
+ st,rx-fifo-threshold-bytes = <4>;
+ st,tx-fifo-threshold-bytes = <4>;
rs485-rts-active-low;
};

--
2.17.1


2021-04-09 16:20:21

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH 1/2] dt-bindings: serial: stm32: add fifo threshold configuration

On Tue, Apr 06, 2021 at 09:21:21AM +0200, Erwan Le Ray wrote:
> Add two optional DT properties, to configure RX and TX fifo threshold:
> - st,rx-fifo-threshold-bytes
> - st,tx-fifo-threshold-bytes
>
> This patch depends on patch ("dt-bindings: serial: Add rx-tx-swap to stm32-usart").
>
> Signed-off-by: Fabrice Gasnier <[email protected]>
> Signed-off-by: Erwan Le Ray <[email protected]>
>
> diff --git a/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml b/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml
> index c69f8464cdf3..e163449bf39e 100644
> --- a/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml
> +++ b/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml
> @@ -65,6 +65,22 @@ properties:
> linux,rs485-enabled-at-boot-time: true
> rs485-rx-during-tx: true
>
> + st,rx-fifo-threshold-bytes:
> + description:
> + RX FIFO threshold configuration in bytes.
> + If value is set to 1, RX FIFO threshold is disabled.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [1, 2, 4, 8, 12, 14, 16]
> + default: 8
> +
> + st,tx-fifo-threshold-bytes:
> + description:
> + TX FIFO threshold configuration in bytes.
> + If value is set to 1, TX FIFO threshold is disabled.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [1, 2, 4, 8, 12, 14, 16]
> + default: 8

We already have 'tx-threshold' for 8250, so reuse that and add
'rx-threshold'.

Rob