diff mbox series

dt-bindings: serial: Move omap-serial.txt to YAML schema

Message ID 20210527165636.939-1-vigneshr@ti.com
State New
Headers show
Series dt-bindings: serial: Move omap-serial.txt to YAML schema | expand

Commit Message

Vignesh Raghavendra May 27, 2021, 4:56 p.m. UTC
Convert serial-omap.txt to YAML schema for better checks and documentation.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
---
 .../bindings/serial/omap_serial.txt           |  40 ------
 .../bindings/serial/ti,omap4-uart.yaml        | 116 ++++++++++++++++++
 2 files changed, 116 insertions(+), 40 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt
 create mode 100644 Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml

Comments

Rob Herring (Arm) June 4, 2021, 8:48 p.m. UTC | #1
On Fri, May 28, 2021 at 10:05:47AM +0300, Tony Lindgren wrote:
> * Grygorii Strashko <grygorii.strashko@ti.com> [210527 17:49]:
> > 
> > 
> > On 27/05/2021 19:56, Vignesh Raghavendra wrote:
> > > Convert serial-omap.txt to YAML schema for better checks and documentation.
> > > 
> > > Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
> > > ---
> > >   .../bindings/serial/omap_serial.txt           |  40 ------
> > >   .../bindings/serial/ti,omap4-uart.yaml        | 116 ++++++++++++++++++
> > >   2 files changed, 116 insertions(+), 40 deletions(-)
> > >   delete mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt
> > >   create mode 100644 Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml
> > 
> > Why omap4? Seems ti,omap-uart.yaml is more suitable.
> 
> Additionally omap-serial should be deprecated in favor of 8250_omap and
> omap-serial not used at all in general.

That's the driver, I assume the binding works with either?
Rob Herring (Arm) June 4, 2021, 8:52 p.m. UTC | #2
On Thu, May 27, 2021 at 10:26:36PM +0530, Vignesh Raghavendra wrote:
> Convert serial-omap.txt to YAML schema for better checks and documentation.

> 

> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>

> ---

>  .../bindings/serial/omap_serial.txt           |  40 ------

>  .../bindings/serial/ti,omap4-uart.yaml        | 116 ++++++++++++++++++

>  2 files changed, 116 insertions(+), 40 deletions(-)

>  delete mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt

>  create mode 100644 Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml

> 

> diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt

> deleted file mode 100644

> index c2db8cabf2ab..000000000000

> --- a/Documentation/devicetree/bindings/serial/omap_serial.txt

> +++ /dev/null

> @@ -1,40 +0,0 @@

> -OMAP UART controller

> -

> -Required properties:

> -- compatible : should be "ti,am64-uart", "ti,am654-uart" for AM64 controllers

> -- compatible : should be "ti,j721e-uart", "ti,am654-uart" for J721E controllers

> -- compatible : should be "ti,am654-uart" for AM654 controllers

> -- compatible : should be "ti,omap2-uart" for OMAP2 controllers

> -- compatible : should be "ti,omap3-uart" for OMAP3 controllers

> -- compatible : should be "ti,omap4-uart" for OMAP4 controllers

> -- compatible : should be "ti,am4372-uart" for AM437x controllers

> -- compatible : should be "ti,am3352-uart" for AM335x controllers

> -- compatible : should be "ti,dra742-uart" for DRA7x controllers

> -- reg : address and length of the register space

> -- interrupts or interrupts-extended : Should contain the uart interrupt

> -                                      specifier or both the interrupt

> -                                      controller phandle and interrupt

> -                                      specifier.

> -- ti,hwmods : Must be "uart<n>", n being the instance number (1-based)

> -

> -Optional properties:

> -- clock-frequency : frequency of the clock input to the UART

> -- dmas : DMA specifier, consisting of a phandle to the DMA controller

> -         node and a DMA channel number.

> -- dma-names : "rx" for receive channel, "tx" for transmit channel.

> -- rs485-rts-delay, rs485-rx-during-tx, linux,rs485-enabled-at-boot-time: see rs485.txt

> -- rs485-rts-active-high: drive RTS high when sending (default is low).

> -- clocks: phandle to the functional clock as per

> -  Documentation/devicetree/bindings/clock/clock-bindings.txt

> -

> -Example:

> -

> -                uart4: serial@49042000 {

> -                        compatible = "ti,omap3-uart";

> -                        reg = <0x49042000 0x400>;

> -                        interrupts = <80>;

> -                        dmas = <&sdma 81 &sdma 82>;

> -                        dma-names = "tx", "rx";

> -                        ti,hwmods = "uart4";

> -                        clock-frequency = <48000000>;

> -                };

> diff --git a/Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml b/Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml

> new file mode 100644

> index 000000000000..b3e426c24a9e

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml

> @@ -0,0 +1,116 @@

> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

> +%YAML 1.2

> +---

> +$id: http://devicetree.org/schemas/serial/ti,omap4-uart.yaml#

> +$schema: http://devicetree.org/meta-schemas/core.yaml#

> +

> +title: Bindings for 8250 compliant UARTs on TI's OMAP and K3 SoCs

> +

> +maintainers:

> +  - Vignesh Raghavendra <vigneshr@ti.com>

> +

> +allOf:

> +  - $ref: /schemas/serial/serial.yaml#

> +  - $ref: /schemas/serial/rs485.yaml#

> +

> +properties:

> +  compatible:

> +    oneOf:

> +      - enum:

> +          - ti,am3352-uart

> +          - ti,am4372-uart

> +          - ti,am654-uart

> +          - ti,dra742-uart

> +          - ti,omap2-uart

> +          - ti,omap3-uart

> +          - ti,omap4-uart

> +      - items:

> +          - enum:

> +              - ti,am64-uart

> +              - ti,j721e-uart

> +          - const: ti,am654-uart

> +

> +  ti,hwmods:

> +    description:

> +      Must be "uart<n>", n being the instance number (1-based)

> +      This property is applicable only on legacy platforms mainly omap2/3

> +      and ti81xx and should not be used on other platforms.

> +    $ref: /schemas/types.yaml#/definitions/string

> +    deprecated: true

> +

> +  dmas:

> +    minItems: 1

> +    maxItems: 2

> +

> +  dma-names:

> +    items:

> +      - const: tx

> +      - const: rx

> +

> +  reg:

> +    maxItems: 1

> +

> +  interrupts:

> +    minItems: 1

> +    maxItems: 2

> +

> +  clocks:

> +    maxItems: 1

> +

> +  clock-names:

> +    const: fclk

> +

> +  reg-shift:

> +    const: 2


blank line

> +  reg-io-width:

> +    const: 4


How are these 2 optional?

> +

> +  rts-gpios: true

> +  cts-gpios: true

> +  dtr-gpios: true

> +  dsr-gpios: true

> +  rng-gpios: true

> +  dcd-gpios: true

> +  rs485-rts-delay: true

> +  rs485-rts-active-low: true

> +  rs485-rx-during-tx: true

> +  rs485-rts-active-high: true

> +  linux,rs485-enabled-at-boot-time: true

> +  rts-gpio: true

> +  power-domains: true

> +  clock-frequency: true

> +  current-speed: true

> +

> +required:

> +  - compatible

> +  - reg

> +  - interrupts

> +

> +additionalProperties: false

> +

> +if:

> +  properties:

> +    compatible:

> +      oneOf:

> +        - const: ti,omap2-uart

> +        - const: ti,omap3-uart

> +        - const: ti,omap4-uart

> +

> +then:

> +  properties:

> +    ti,hwmods:

> +      items:

> +        - pattern: "^uart([1-9])$"

> +

> +else:

> +  properties:

> +    ti,hwmods: false

> +

> +examples:

> +  - |

> +          uart4: serial@49042000 {


Drop unused label.

> +                  compatible = "ti,omap3-uart";

> +                  reg = <0x49042000 0x400>;

> +                  interrupts = <80>;

> +                  clock-frequency = <48000000>;

> +          };

> -- 

> 2.31.1
Tony Lindgren June 7, 2021, 7:25 a.m. UTC | #3
* Rob Herring <robh@kernel.org> [210604 20:49]:
> On Fri, May 28, 2021 at 10:05:47AM +0300, Tony Lindgren wrote:

> > * Grygorii Strashko <grygorii.strashko@ti.com> [210527 17:49]:

> > > 

> > > 

> > > On 27/05/2021 19:56, Vignesh Raghavendra wrote:

> > > > Convert serial-omap.txt to YAML schema for better checks and documentation.

> > > > 

> > > > Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>

> > > > ---

> > > >   .../bindings/serial/omap_serial.txt           |  40 ------

> > > >   .../bindings/serial/ti,omap4-uart.yaml        | 116 ++++++++++++++++++

> > > >   2 files changed, 116 insertions(+), 40 deletions(-)

> > > >   delete mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt

> > > >   create mode 100644 Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml

> > > 

> > > Why omap4? Seems ti,omap-uart.yaml is more suitable.

> > 

> > Additionally omap-serial should be deprecated in favor of 8250_omap and

> > omap-serial not used at all in general.

> 

> That's the driver, I assume the binding works with either?


Yes both drivers work with this driver.

Regards,

Tony
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt
deleted file mode 100644
index c2db8cabf2ab..000000000000
--- a/Documentation/devicetree/bindings/serial/omap_serial.txt
+++ /dev/null
@@ -1,40 +0,0 @@ 
-OMAP UART controller
-
-Required properties:
-- compatible : should be "ti,am64-uart", "ti,am654-uart" for AM64 controllers
-- compatible : should be "ti,j721e-uart", "ti,am654-uart" for J721E controllers
-- compatible : should be "ti,am654-uart" for AM654 controllers
-- compatible : should be "ti,omap2-uart" for OMAP2 controllers
-- compatible : should be "ti,omap3-uart" for OMAP3 controllers
-- compatible : should be "ti,omap4-uart" for OMAP4 controllers
-- compatible : should be "ti,am4372-uart" for AM437x controllers
-- compatible : should be "ti,am3352-uart" for AM335x controllers
-- compatible : should be "ti,dra742-uart" for DRA7x controllers
-- reg : address and length of the register space
-- interrupts or interrupts-extended : Should contain the uart interrupt
-                                      specifier or both the interrupt
-                                      controller phandle and interrupt
-                                      specifier.
-- ti,hwmods : Must be "uart<n>", n being the instance number (1-based)
-
-Optional properties:
-- clock-frequency : frequency of the clock input to the UART
-- dmas : DMA specifier, consisting of a phandle to the DMA controller
-         node and a DMA channel number.
-- dma-names : "rx" for receive channel, "tx" for transmit channel.
-- rs485-rts-delay, rs485-rx-during-tx, linux,rs485-enabled-at-boot-time: see rs485.txt
-- rs485-rts-active-high: drive RTS high when sending (default is low).
-- clocks: phandle to the functional clock as per
-  Documentation/devicetree/bindings/clock/clock-bindings.txt
-
-Example:
-
-                uart4: serial@49042000 {
-                        compatible = "ti,omap3-uart";
-                        reg = <0x49042000 0x400>;
-                        interrupts = <80>;
-                        dmas = <&sdma 81 &sdma 82>;
-                        dma-names = "tx", "rx";
-                        ti,hwmods = "uart4";
-                        clock-frequency = <48000000>;
-                };
diff --git a/Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml b/Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml
new file mode 100644
index 000000000000..b3e426c24a9e
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/ti,omap4-uart.yaml
@@ -0,0 +1,116 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/ti,omap4-uart.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bindings for 8250 compliant UARTs on TI's OMAP and K3 SoCs
+
+maintainers:
+  - Vignesh Raghavendra <vigneshr@ti.com>
+
+allOf:
+  - $ref: /schemas/serial/serial.yaml#
+  - $ref: /schemas/serial/rs485.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - ti,am3352-uart
+          - ti,am4372-uart
+          - ti,am654-uart
+          - ti,dra742-uart
+          - ti,omap2-uart
+          - ti,omap3-uart
+          - ti,omap4-uart
+      - items:
+          - enum:
+              - ti,am64-uart
+              - ti,j721e-uart
+          - const: ti,am654-uart
+
+  ti,hwmods:
+    description:
+      Must be "uart<n>", n being the instance number (1-based)
+      This property is applicable only on legacy platforms mainly omap2/3
+      and ti81xx and should not be used on other platforms.
+    $ref: /schemas/types.yaml#/definitions/string
+    deprecated: true
+
+  dmas:
+    minItems: 1
+    maxItems: 2
+
+  dma-names:
+    items:
+      - const: tx
+      - const: rx
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    maxItems: 2
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: fclk
+
+  reg-shift:
+    const: 2
+  reg-io-width:
+    const: 4
+
+  rts-gpios: true
+  cts-gpios: true
+  dtr-gpios: true
+  dsr-gpios: true
+  rng-gpios: true
+  dcd-gpios: true
+  rs485-rts-delay: true
+  rs485-rts-active-low: true
+  rs485-rx-during-tx: true
+  rs485-rts-active-high: true
+  linux,rs485-enabled-at-boot-time: true
+  rts-gpio: true
+  power-domains: true
+  clock-frequency: true
+  current-speed: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+if:
+  properties:
+    compatible:
+      oneOf:
+        - const: ti,omap2-uart
+        - const: ti,omap3-uart
+        - const: ti,omap4-uart
+
+then:
+  properties:
+    ti,hwmods:
+      items:
+        - pattern: "^uart([1-9])$"
+
+else:
+  properties:
+    ti,hwmods: false
+
+examples:
+  - |
+          uart4: serial@49042000 {
+                  compatible = "ti,omap3-uart";
+                  reg = <0x49042000 0x400>;
+                  interrupts = <80>;
+                  clock-frequency = <48000000>;
+          };