* [PATCH 0/2] dt-bindings: serial: Convert generic and slave bindings to json-schema
@ 2020-03-03 13:43 Geert Uytterhoeven
2020-03-03 13:43 ` [PATCH 1/2] dt-bindings: serial: Convert generic " Geert Uytterhoeven
2020-03-03 13:43 ` [PATCH 2/2] dt-bindings: serial: Convert slave-device " Geert Uytterhoeven
0 siblings, 2 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2020-03-03 13:43 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman
Cc: linux-serial, devicetree, Geert Uytterhoeven
Hi Rob, Greg,
This patch series converts the generic serial interface and slave-device
Device Tree bindings to json-schema.
This is a dependency for converting more serial DT bindings that will
refer to properties defined in serial.yaml.
Thanks for your comments!
Geert Uytterhoeven (2):
dt-bindings: serial: Convert generic bindings to json-schema
dt-bindings: serial: Convert slave-device bindings to json-schema
.../devicetree/bindings/serial/serial.txt | 56 -------
.../devicetree/bindings/serial/serial.yaml | 148 ++++++++++++++++++
.../bindings/serial/slave-device.txt | 45 ------
MAINTAINERS | 2 +-
4 files changed, 149 insertions(+), 102 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/serial/serial.txt
create mode 100644 Documentation/devicetree/bindings/serial/serial.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/slave-device.txt
--
2.17.1
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] dt-bindings: serial: Convert generic bindings to json-schema
2020-03-03 13:43 [PATCH 0/2] dt-bindings: serial: Convert generic and slave bindings to json-schema Geert Uytterhoeven
@ 2020-03-03 13:43 ` Geert Uytterhoeven
2020-03-03 15:09 ` Geert Uytterhoeven
2020-03-04 14:03 ` Rob Herring
2020-03-03 13:43 ` [PATCH 2/2] dt-bindings: serial: Convert slave-device " Geert Uytterhoeven
1 sibling, 2 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2020-03-03 13:43 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman
Cc: linux-serial, devicetree, Geert Uytterhoeven
Convert the generic serial interface Device Tree binding documentation
to json-schema.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
.../devicetree/bindings/serial/serial.txt | 56 -----------
.../devicetree/bindings/serial/serial.yaml | 95 +++++++++++++++++++
2 files changed, 95 insertions(+), 56 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/serial/serial.txt
create mode 100644 Documentation/devicetree/bindings/serial/serial.yaml
diff --git a/Documentation/devicetree/bindings/serial/serial.txt b/Documentation/devicetree/bindings/serial/serial.txt
deleted file mode 100644
index 863c2893759e7151..0000000000000000
--- a/Documentation/devicetree/bindings/serial/serial.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-Generic Serial DT Bindings
-
-This document lists a set of generic properties for describing UARTs in a
-device tree. Whether these properties apply to a particular device depends on
-the DT bindings for the actual device.
-
-Optional properties:
- - cts-gpios: Must contain a GPIO specifier, referring to the GPIO pin to be
- used as the UART's CTS line.
- - dcd-gpios: Must contain a GPIO specifier, referring to the GPIO pin to be
- used as the UART's DCD line.
- - dsr-gpios: Must contain a GPIO specifier, referring to the GPIO pin to be
- used as the UART's DSR line.
- - dtr-gpios: Must contain a GPIO specifier, referring to the GPIO pin to be
- used as the UART's DTR line.
- - rng-gpios: Must contain a GPIO specifier, referring to the GPIO pin to be
- used as the UART's RNG line.
- - rts-gpios: Must contain a GPIO specifier, referring to the GPIO pin to be
- used as the UART's RTS line.
-
- - uart-has-rtscts: The presence of this property indicates that the
- UART has dedicated lines for RTS/CTS hardware flow control, and that
- they are available for use (wired and enabled by pinmux configuration).
- This depends on both the UART hardware and the board wiring.
- Note that this property is mutually-exclusive with "cts-gpios" and
- "rts-gpios" above, unless support is provided to switch between modes
- dynamically.
-
-
-Examples:
-
- uart1: serial@48022000 {
- compatible = "ti,am3352-uart", "ti,omap3-uart";
- ti,hwmods = "uart2";
- clock-frequency = <48000000>;
- reg = <0x48022000 0x2000>;
- interrupts = <73>;
- dmas = <&edma 28 0>, <&edma 29 0>;
- dma-names = "tx", "rx";
- dtr-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
- dsr-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
- dcd-gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
- rng-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
- cts-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
- rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
- };
-
- scifa4: serial@e6c80000 {
- compatible = "renesas,scifa-sh73a0", "renesas,scifa";
- reg = <0xe6c80000 0x100>;
- interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&mstp2_clks SH73A0_CLK_SCIFA4>;
- clock-names = "fck";
- power-domains = <&pd_a3sp>;
- uart-has-rtscts;
- };
diff --git a/Documentation/devicetree/bindings/serial/serial.yaml b/Documentation/devicetree/bindings/serial/serial.yaml
new file mode 100644
index 0000000000000000..d408335319f00215
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/serial.yaml
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/serial/serial.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Serial Interface Generic DT Bindings
+
+maintainers:
+ - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+description:
+ This document lists a set of generic properties for describing UARTs in a
+ device tree. Whether these properties apply to a particular device depends
+ on the DT bindings for the actual device.
+
+properties:
+ $nodename:
+ pattern: "^serial@[0-9a-f]+$"
+
+ cts-gpios:
+ description:
+ Must contain a GPIO specifier, referring to the GPIO pin to be used as
+ the UART's CTS line.
+
+ dcd-gpios:
+ description:
+ Must contain a GPIO specifier, referring to the GPIO pin to be used as
+ the UART's DCD line.
+
+ dsr-gpios:
+ description:
+ Must contain a GPIO specifier, referring to the GPIO pin to be used as
+ the UART's DSR line.
+
+ dtr-gpios:
+ description:
+ Must contain a GPIO specifier, referring to the GPIO pin to be used as
+ the UART's DTR line.
+
+ rng-gpios:
+ description:
+ Must contain a GPIO specifier, referring to the GPIO pin to be used as
+ the UART's RNG line.
+
+ rts-gpios:
+ description:
+ Must contain a GPIO specifier, referring to the GPIO pin to be used as
+ the UART's RTS line.
+
+ uart-has-rtscts:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description:
+ The presence of this property indicates that the UART has dedicated lines
+ for RTS/CTS hardware flow control, and that they are available for use
+ (wired and enabled by pinmux configuration). This depends on both the
+ UART hardware and the board wiring.
+ Note that this property is mutually-exclusive with "cts-gpios" and
+ "rts-gpios" above, unless support is provided to switch between modes
+ dynamically.
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ serial@48022000 {
+ compatible = "ti,am3352-uart", "ti,omap3-uart";
+ ti,hwmods = "uart2";
+ clock-frequency = <48000000>;
+ reg = <0x48022000 0x2000>;
+ interrupts = <73>;
+ dmas = <&edma 28 0>, <&edma 29 0>;
+ dma-names = "tx", "rx";
+ dtr-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
+ dsr-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
+ dcd-gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
+ rng-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
+ cts-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+ rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+ };
+
+ - |
+ #include <dt-bindings/clock/sh73a0-clock.h>
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ serial@e6c80000 {
+ compatible = "renesas,scifa-sh73a0", "renesas,scifa";
+ reg = <0xe6c80000 0x100>;
+ interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&mstp2_clks SH73A0_CLK_SCIFA4>;
+ clock-names = "fck";
+ power-domains = <&pd_a3sp>;
+ uart-has-rtscts;
+ };
--
2.17.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] dt-bindings: serial: Convert slave-device bindings to json-schema
2020-03-03 13:43 [PATCH 0/2] dt-bindings: serial: Convert generic and slave bindings to json-schema Geert Uytterhoeven
2020-03-03 13:43 ` [PATCH 1/2] dt-bindings: serial: Convert generic " Geert Uytterhoeven
@ 2020-03-03 13:43 ` Geert Uytterhoeven
2020-03-03 15:10 ` Geert Uytterhoeven
2020-03-04 14:44 ` Rob Herring
1 sibling, 2 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2020-03-03 13:43 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman
Cc: linux-serial, devicetree, Geert Uytterhoeven
Convert the serial slave-device Device Tree binding documentation to
json-schema, and incorporate it into the generic serial bindings.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
.../devicetree/bindings/serial/serial.yaml | 53 +++++++++++++++++++
.../bindings/serial/slave-device.txt | 45 ----------------
MAINTAINERS | 2 +-
3 files changed, 54 insertions(+), 46 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/serial/slave-device.txt
diff --git a/Documentation/devicetree/bindings/serial/serial.yaml b/Documentation/devicetree/bindings/serial/serial.yaml
index d408335319f00215..7381966449b62deb 100644
--- a/Documentation/devicetree/bindings/serial/serial.yaml
+++ b/Documentation/devicetree/bindings/serial/serial.yaml
@@ -7,6 +7,7 @@ $schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Serial Interface Generic DT Bindings
maintainers:
+ - Rob Herring <robh@kernel.org>
- Greg Kroah-Hartman <gregkh@linuxfoundation.org>
description:
@@ -59,6 +60,45 @@ properties:
"rts-gpios" above, unless support is provided to switch between modes
dynamically.
+patternProperties:
+ "^(bluetooth|ethernet|gnss|nfc|wifi)$":
+ type: object
+
+ description:
+ Serial attached devices shall be a child node of the host UART device the
+ slave device is attached to. It is expected that the attached device is
+ the only child node of the UART device. The slave device node name shall
+ reflect the generic type of device for the node.
+
+ properties:
+ compatible:
+ description:
+ Compatible of the device connnected to the serial port.
+
+ max-speed:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ The maximum baud rate the device operates at. This should only be
+ present if the maximum is less than the slave device can support. For
+ example, a particular board has some signal quality issue or the host
+ processor can't support higher baud rates.
+
+ current-speed:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ The current baud rate the device operates at. This should only be
+ present in case a driver has no chance to know the baud rate of the
+ slave device.
+ Examples:
+ * device supports auto-baud
+ * the rate is setup by a bootloader and there is no way to reset
+ the device
+ * device baud rate is configured by its firmware but there is no
+ way to request the actual settings
+
+ required:
+ - compatible
+
examples:
- |
#include <dt-bindings/gpio/gpio.h>
@@ -93,3 +133,16 @@ examples:
power-domains = <&pd_a3sp>;
uart-has-rtscts;
};
+
+ - |
+ serial@1234 {
+ compatible = "ns16550a";
+ reg = <0x1234 0x20>;
+ interrupts = <1>;
+
+ bluetooth {
+ compatible = "brcm,bcm43341-bt";
+ interrupt-parent = <&gpio>;
+ interrupts = <10>;
+ };
+ };
diff --git a/Documentation/devicetree/bindings/serial/slave-device.txt b/Documentation/devicetree/bindings/serial/slave-device.txt
deleted file mode 100644
index 40110e0196209fde..0000000000000000
--- a/Documentation/devicetree/bindings/serial/slave-device.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-Serial Slave Device DT binding
-
-This documents the binding structure and common properties for serial
-attached devices. Common examples include Bluetooth, WiFi, NFC and GPS
-devices.
-
-Serial attached devices shall be a child node of the host UART device the
-slave device is attached to. It is expected that the attached device is
-the only child node of the UART device. The slave device node name shall
-reflect the generic type of device for the node.
-
-Required Properties:
-
-- compatible : A string reflecting the vendor and specific device the node
- represents.
-
-Optional Properties:
-
-- max-speed : The maximum baud rate the device operates at. This should
- only be present if the maximum is less than the slave device
- can support. For example, a particular board has some signal
- quality issue or the host processor can't support higher
- baud rates.
-- current-speed : The current baud rate the device operates at. This should
- only be present in case a driver has no chance to know
- the baud rate of the slave device.
- Examples:
- * device supports auto-baud
- * the rate is setup by a bootloader and there is no
- way to reset the device
- * device baud rate is configured by its firmware but
- there is no way to request the actual settings
-
-Example:
-
-serial@1234 {
- compatible = "ns16550a";
- interrupts = <1>;
-
- bluetooth {
- compatible = "brcm,bcm43341-bt";
- interrupt-parent = <&gpio>;
- interrupts = <10>;
- };
-};
diff --git a/MAINTAINERS b/MAINTAINERS
index 59c14ee9a917a794..5f5d074c7b3927a5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15034,7 +15034,7 @@ SERIAL DEVICE BUS
M: Rob Herring <robh@kernel.org>
L: linux-serial@vger.kernel.org
S: Maintained
-F: Documentation/devicetree/bindings/serial/slave-device.txt
+F: Documentation/devicetree/bindings/serial/serial.yaml
F: drivers/tty/serdev/
F: include/linux/serdev.h
--
2.17.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: serial: Convert generic bindings to json-schema
2020-03-03 13:43 ` [PATCH 1/2] dt-bindings: serial: Convert generic " Geert Uytterhoeven
@ 2020-03-03 15:09 ` Geert Uytterhoeven
2020-03-04 14:03 ` Rob Herring
1 sibling, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2020-03-03 15:09 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman
Cc: open list:SERIAL DRIVERS,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Geert Uytterhoeven
On Tue, Mar 3, 2020 at 2:44 PM Geert Uytterhoeven
<geert+renesas@glider.be> wrote:
> Convert the generic serial interface Device Tree binding documentation
> to json-schema.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> .../devicetree/bindings/serial/serial.txt | 56 -----------
> .../devicetree/bindings/serial/serial.yaml | 95 +++++++++++++++++++
> 2 files changed, 95 insertions(+), 56 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/serial/serial.txt
> create mode 100644 Documentation/devicetree/bindings/serial/serial.yaml
There are a few references to serial.txt that need to be updated.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] dt-bindings: serial: Convert slave-device bindings to json-schema
2020-03-03 13:43 ` [PATCH 2/2] dt-bindings: serial: Convert slave-device " Geert Uytterhoeven
@ 2020-03-03 15:10 ` Geert Uytterhoeven
2020-03-04 14:44 ` Rob Herring
1 sibling, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2020-03-03 15:10 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Rob Herring, Greg Kroah-Hartman, open list:SERIAL DRIVERS,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
On Tue, Mar 3, 2020 at 2:43 PM Geert Uytterhoeven
<geert+renesas@glider.be> wrote:
> Convert the serial slave-device Device Tree binding documentation to
> json-schema, and incorporate it into the generic serial bindings.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> .../devicetree/bindings/serial/serial.yaml | 53 +++++++++++++++++++
> .../bindings/serial/slave-device.txt | 45 ----------------
> MAINTAINERS | 2 +-
> 3 files changed, 54 insertions(+), 46 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/serial/slave-device.txt
There are a few references to slave-device.txt that need to be updated.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: serial: Convert generic bindings to json-schema
2020-03-03 13:43 ` [PATCH 1/2] dt-bindings: serial: Convert generic " Geert Uytterhoeven
2020-03-03 15:09 ` Geert Uytterhoeven
@ 2020-03-04 14:03 ` Rob Herring
2020-03-04 14:44 ` Geert Uytterhoeven
1 sibling, 1 reply; 8+ messages in thread
From: Rob Herring @ 2020-03-04 14:03 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Greg Kroah-Hartman, open list:SERIAL DRIVERS, devicetree
On Tue, Mar 3, 2020 at 7:43 AM Geert Uytterhoeven
<geert+renesas@glider.be> wrote:
>
> Convert the generic serial interface Device Tree binding documentation
> to json-schema.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> .../devicetree/bindings/serial/serial.txt | 56 -----------
> .../devicetree/bindings/serial/serial.yaml | 95 +++++++++++++++++++
> 2 files changed, 95 insertions(+), 56 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/serial/serial.txt
> create mode 100644 Documentation/devicetree/bindings/serial/serial.yaml
> diff --git a/Documentation/devicetree/bindings/serial/serial.yaml b/Documentation/devicetree/bindings/serial/serial.yaml
> new file mode 100644
> index 0000000000000000..d408335319f00215
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/serial/serial.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/serial/serial.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Serial Interface Generic DT Bindings
> +
> +maintainers:
> + - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> +
> +description:
> + This document lists a set of generic properties for describing UARTs in a
> + device tree. Whether these properties apply to a particular device depends
> + on the DT bindings for the actual device.
> +
> +properties:
> + $nodename:
> + pattern: "^serial@[0-9a-f]+$"
',' is also possible in unit-address. Probably shouldn't be defining
unit-address format at all here, so:
"^serial(@.*)?$"
> +
> + cts-gpios:
> + description:
> + Must contain a GPIO specifier, referring to the GPIO pin to be used as
> + the UART's CTS line.
These all need a 'maxItems: 1'.
> +
> + dcd-gpios:
> + description:
> + Must contain a GPIO specifier, referring to the GPIO pin to be used as
> + the UART's DCD line.
> +
> + dsr-gpios:
> + description:
> + Must contain a GPIO specifier, referring to the GPIO pin to be used as
> + the UART's DSR line.
> +
> + dtr-gpios:
> + description:
> + Must contain a GPIO specifier, referring to the GPIO pin to be used as
> + the UART's DTR line.
> +
> + rng-gpios:
> + description:
> + Must contain a GPIO specifier, referring to the GPIO pin to be used as
> + the UART's RNG line.
> +
> + rts-gpios:
> + description:
> + Must contain a GPIO specifier, referring to the GPIO pin to be used as
> + the UART's RTS line.
> +
> + uart-has-rtscts:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + The presence of this property indicates that the UART has dedicated lines
> + for RTS/CTS hardware flow control, and that they are available for use
> + (wired and enabled by pinmux configuration). This depends on both the
> + UART hardware and the board wiring.
> + Note that this property is mutually-exclusive with "cts-gpios" and
> + "rts-gpios" above, unless support is provided to switch between modes
> + dynamically.
This can be expressed as:
oneOf:
- {} # None of the properties present
- required:
- uart-has-rtscts
- anyOf:
- required:
- cts-gpios
- required:
- rts-gpios
Or probably more clearly:
if:
required:
- uart-has-rtscts
then:
properties:
rts-gpios: false
cts-gpios: false
(Untested)
> +
> +examples:
Personally, I'd just drop examples from schemas that aren't complete.
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + serial@48022000 {
> + compatible = "ti,am3352-uart", "ti,omap3-uart";
> + ti,hwmods = "uart2";
> + clock-frequency = <48000000>;
> + reg = <0x48022000 0x2000>;
> + interrupts = <73>;
> + dmas = <&edma 28 0>, <&edma 29 0>;
> + dma-names = "tx", "rx";
> + dtr-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
> + dsr-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
> + dcd-gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
> + rng-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
> + cts-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
> + rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
> + };
> +
> + - |
> + #include <dt-bindings/clock/sh73a0-clock.h>
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + serial@e6c80000 {
> + compatible = "renesas,scifa-sh73a0", "renesas,scifa";
> + reg = <0xe6c80000 0x100>;
> + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&mstp2_clks SH73A0_CLK_SCIFA4>;
> + clock-names = "fck";
> + power-domains = <&pd_a3sp>;
> + uart-has-rtscts;
> + };
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] dt-bindings: serial: Convert slave-device bindings to json-schema
2020-03-03 13:43 ` [PATCH 2/2] dt-bindings: serial: Convert slave-device " Geert Uytterhoeven
2020-03-03 15:10 ` Geert Uytterhoeven
@ 2020-03-04 14:44 ` Rob Herring
1 sibling, 0 replies; 8+ messages in thread
From: Rob Herring @ 2020-03-04 14:44 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Greg Kroah-Hartman, open list:SERIAL DRIVERS, devicetree
On Tue, Mar 3, 2020 at 7:43 AM Geert Uytterhoeven
<geert+renesas@glider.be> wrote:
>
> Convert the serial slave-device Device Tree binding documentation to
> json-schema, and incorporate it into the generic serial bindings.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> .../devicetree/bindings/serial/serial.yaml | 53 +++++++++++++++++++
> .../bindings/serial/slave-device.txt | 45 ----------------
> MAINTAINERS | 2 +-
> 3 files changed, 54 insertions(+), 46 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/serial/slave-device.txt
>
> diff --git a/Documentation/devicetree/bindings/serial/serial.yaml b/Documentation/devicetree/bindings/serial/serial.yaml
> index d408335319f00215..7381966449b62deb 100644
> --- a/Documentation/devicetree/bindings/serial/serial.yaml
> +++ b/Documentation/devicetree/bindings/serial/serial.yaml
> @@ -7,6 +7,7 @@ $schema: "http://devicetree.org/meta-schemas/core.yaml#"
> title: Serial Interface Generic DT Bindings
>
> maintainers:
> + - Rob Herring <robh@kernel.org>
> - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> description:
> @@ -59,6 +60,45 @@ properties:
> "rts-gpios" above, unless support is provided to switch between modes
> dynamically.
>
> +patternProperties:
> + "^(bluetooth|ethernet|gnss|nfc|wifi)$":
A bit fragile, but okay. There's also some serial attached board
control micro-controllers. See the Zodiac i.MX board "rave-sp" node.
The only other way I've come up to handle this is:
".*":
if:
type: object
then:
...
> + type: object
> +
> + description:
> + Serial attached devices shall be a child node of the host UART device the
> + slave device is attached to. It is expected that the attached device is
> + the only child node of the UART device. The slave device node name shall
> + reflect the generic type of device for the node.
> +
> + properties:
> + compatible:
> + description:
> + Compatible of the device connnected to the serial port.
typo
> +
> + max-speed:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + The maximum baud rate the device operates at. This should only be
> + present if the maximum is less than the slave device can support. For
> + example, a particular board has some signal quality issue or the host
> + processor can't support higher baud rates.
> +
> + current-speed:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + The current baud rate the device operates at. This should only be
> + present in case a driver has no chance to know the baud rate of the
> + slave device.
> + Examples:
> + * device supports auto-baud
> + * the rate is setup by a bootloader and there is no way to reset
> + the device
> + * device baud rate is configured by its firmware but there is no
> + way to request the actual settings
> +
> + required:
> + - compatible
> +
> examples:
> - |
> #include <dt-bindings/gpio/gpio.h>
> @@ -93,3 +133,16 @@ examples:
> power-domains = <&pd_a3sp>;
> uart-has-rtscts;
> };
> +
> + - |
> + serial@1234 {
> + compatible = "ns16550a";
> + reg = <0x1234 0x20>;
> + interrupts = <1>;
> +
> + bluetooth {
> + compatible = "brcm,bcm43341-bt";
> + interrupt-parent = <&gpio>;
> + interrupts = <10>;
> + };
> + };
> diff --git a/Documentation/devicetree/bindings/serial/slave-device.txt b/Documentation/devicetree/bindings/serial/slave-device.txt
> deleted file mode 100644
> index 40110e0196209fde..0000000000000000
> --- a/Documentation/devicetree/bindings/serial/slave-device.txt
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -Serial Slave Device DT binding
> -
> -This documents the binding structure and common properties for serial
> -attached devices. Common examples include Bluetooth, WiFi, NFC and GPS
> -devices.
> -
> -Serial attached devices shall be a child node of the host UART device the
> -slave device is attached to. It is expected that the attached device is
> -the only child node of the UART device. The slave device node name shall
> -reflect the generic type of device for the node.
> -
> -Required Properties:
> -
> -- compatible : A string reflecting the vendor and specific device the node
> - represents.
> -
> -Optional Properties:
> -
> -- max-speed : The maximum baud rate the device operates at. This should
> - only be present if the maximum is less than the slave device
> - can support. For example, a particular board has some signal
> - quality issue or the host processor can't support higher
> - baud rates.
> -- current-speed : The current baud rate the device operates at. This should
> - only be present in case a driver has no chance to know
> - the baud rate of the slave device.
> - Examples:
> - * device supports auto-baud
> - * the rate is setup by a bootloader and there is no
> - way to reset the device
> - * device baud rate is configured by its firmware but
> - there is no way to request the actual settings
> -
> -Example:
> -
> -serial@1234 {
> - compatible = "ns16550a";
> - interrupts = <1>;
> -
> - bluetooth {
> - compatible = "brcm,bcm43341-bt";
> - interrupt-parent = <&gpio>;
> - interrupts = <10>;
> - };
> -};
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 59c14ee9a917a794..5f5d074c7b3927a5 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -15034,7 +15034,7 @@ SERIAL DEVICE BUS
> M: Rob Herring <robh@kernel.org>
> L: linux-serial@vger.kernel.org
> S: Maintained
> -F: Documentation/devicetree/bindings/serial/slave-device.txt
> +F: Documentation/devicetree/bindings/serial/serial.yaml
> F: drivers/tty/serdev/
> F: include/linux/serdev.h
>
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: serial: Convert generic bindings to json-schema
2020-03-04 14:03 ` Rob Herring
@ 2020-03-04 14:44 ` Geert Uytterhoeven
0 siblings, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2020-03-04 14:44 UTC (permalink / raw)
To: Rob Herring
Cc: Geert Uytterhoeven, Greg Kroah-Hartman, open list:SERIAL DRIVERS,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
Hi Rob,
On Wed, Mar 4, 2020 at 3:03 PM Rob Herring <robh+dt@kernel.org> wrote:
> On Tue, Mar 3, 2020 at 7:43 AM Geert Uytterhoeven
> <geert+renesas@glider.be> wrote:
> > Convert the generic serial interface Device Tree binding documentation
> > to json-schema.
> >
> > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > + cts-gpios:
> > + description:
> > + Must contain a GPIO specifier, referring to the GPIO pin to be used as
> > + the UART's CTS line.
> > + rts-gpios:
> > + description:
> > + Must contain a GPIO specifier, referring to the GPIO pin to be used as
> > + the UART's RTS line.
> > +
> > + uart-has-rtscts:
> > + $ref: /schemas/types.yaml#/definitions/flag
> > + description:
> > + The presence of this property indicates that the UART has dedicated lines
> > + for RTS/CTS hardware flow control, and that they are available for use
> > + (wired and enabled by pinmux configuration). This depends on both the
> > + UART hardware and the board wiring.
> > + Note that this property is mutually-exclusive with "cts-gpios" and
> > + "rts-gpios" above, unless support is provided to switch between modes
> > + dynamically.
>
> This can be expressed as:
>
> oneOf:
> - {} # None of the properties present
> - required:
> - uart-has-rtscts
> - anyOf:
> - required:
> - cts-gpios
> - required:
> - rts-gpios
>
> Or probably more clearly:
>
> if:
> required:
> - uart-has-rtscts
> then:
> properties:
> rts-gpios: false
> cts-gpios: false
>
> (Untested)
Thanks. Note that when adding this, the note above must be removed.
>
> > +
> > +examples:
>
> Personally, I'd just drop examples from schemas that aren't complete.
OK.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-03-04 14:44 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-03 13:43 [PATCH 0/2] dt-bindings: serial: Convert generic and slave bindings to json-schema Geert Uytterhoeven
2020-03-03 13:43 ` [PATCH 1/2] dt-bindings: serial: Convert generic " Geert Uytterhoeven
2020-03-03 15:09 ` Geert Uytterhoeven
2020-03-04 14:03 ` Rob Herring
2020-03-04 14:44 ` Geert Uytterhoeven
2020-03-03 13:43 ` [PATCH 2/2] dt-bindings: serial: Convert slave-device " Geert Uytterhoeven
2020-03-03 15:10 ` Geert Uytterhoeven
2020-03-04 14:44 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).