2023-03-29 17:08:15

by Brenda Streiff

[permalink] [raw]
Subject: [PATCH tty-next 1/2] dt-bindings: serial: ni,ni16650: add bindings

Add bindings for the NI 16550 UART.

Signed-off-by: Brenda Streiff <[email protected]>
Cc: Gratian Crisan <[email protected]>
Cc: Jason Smith <[email protected]>
---
.../bindings/serial/ni,ni16550.yaml | 53 +++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 Documentation/devicetree/bindings/serial/ni,ni16550.yaml

diff --git a/Documentation/devicetree/bindings/serial/ni,ni16550.yaml b/Documentation/devicetree/bindings/serial/ni,ni16550.yaml
new file mode 100644
index 000000000000..4ac1c96726f8
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/ni,ni16550.yaml
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/ni,ni16550.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NI 16550 asynchronous serial interface (UART)
+
+maintainers:
+ - Brenda Streiff <[email protected]>
+
+allOf:
+ - $ref: serial.yaml#
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - ni,ni16550
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clock-frequency: true
+
+ transceiver:
+ items:
+ - enum:
+ - RS-232
+ - RS-485
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clock-frequency
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ serial@80000000 {
+ compatible = "ni,ni16550", "ns16550a";
+ reg = <0x80000000 0x8>;
+ interrupts = <0 30 4>;
+ clock-frequency = <58824000>;
+ transceiver = "RS-485";
+ };
+
+...
--
2.30.2


2023-03-29 21:47:00

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH tty-next 1/2] dt-bindings: serial: ni,ni16650: add bindings


On Wed, 29 Mar 2023 10:42:34 -0500, Brenda Streiff wrote:
> Add bindings for the NI 16550 UART.
>
> Signed-off-by: Brenda Streiff <[email protected]>
> Cc: Gratian Crisan <[email protected]>
> Cc: Jason Smith <[email protected]>
> ---
> .../bindings/serial/ni,ni16550.yaml | 53 +++++++++++++++++++
> 1 file changed, 53 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/serial/ni,ni16550.yaml
>

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/serial/ni,ni16550.example.dtb: serial@80000000: compatible: ['ni,ni16550', 'ns16550a'] is too long
From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/serial/ni,ni16550.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/serial/ni,ni16550.example.dtb: serial@80000000: Unevaluated properties are not allowed ('compatible' was unexpected)
From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/serial/ni,ni16550.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/serial/ni,ni16550.example.dtb: serial@80000000: compatible: 'oneOf' conditional failed, one must be fixed:
['ni,ni16550', 'ns16550a'] is too long
['ni,ni16550', 'ns16550a'] is too short
'ns8250' was expected
'ns16450' was expected
'ns16550' was expected
'ns16550a' was expected
'ns16850' was expected
'aspeed,ast2400-vuart' was expected
'aspeed,ast2500-vuart' was expected
'intel,xscale-uart' was expected
'mrvl,pxa-uart' was expected
'nuvoton,wpcm450-uart' was expected
'nuvoton,npcm750-uart' was expected
'nvidia,tegra20-uart' was expected
'nxp,lpc3220-uart' was expected
'ni,ni16550' is not one of ['exar,xr16l2552', 'exar,xr16l2551', 'exar,xr16l2550']
'ni,ni16550' is not one of ['altr,16550-FIFO32', 'altr,16550-FIFO64', 'altr,16550-FIFO128', 'fsl,16550-FIFO64', 'fsl,ns16550', 'andestech,uart16550', 'nxp,lpc1850-uart', 'opencores,uart16550-rtlsvn105', 'ti,da830-uart']
'ni,ni16550' is not one of ['ns16750', 'cavium,octeon-3860-uart', 'xlnx,xps-uart16550-2.00.b', 'ralink,rt2880-uart']
'ni,ni16550' is not one of ['nuvoton,npcm845-uart']
'ni,ni16550' is not one of ['ralink,mt7620a-uart', 'ralink,rt3052-uart', 'ralink,rt3883-uart']
'ni,ni16550' is not one of ['mediatek,mt7622-btif', 'mediatek,mt7623-btif']
'mrvl,mmp-uart' was expected
'ni,ni16550' is not one of ['nvidia,tegra30-uart', 'nvidia,tegra114-uart', 'nvidia,tegra124-uart', 'nvidia,tegra210-uart', 'nvidia,tegra186-uart', 'nvidia,tegra194-uart', 'nvidia,tegra234-uart']
'ralink,rt2880-uart' was expected
'mediatek,mtk-btif' was expected
From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/serial/8250.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/serial/ni,ni16550.example.dtb: serial@80000000: Unevaluated properties are not allowed ('compatible', 'transceiver' were unexpected)
From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/serial/8250.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/[email protected]

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.

2023-03-30 07:38:11

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH tty-next 1/2] dt-bindings: serial: ni,ni16650: add bindings

On 29/03/2023 17:42, Brenda Streiff wrote:
> Add bindings for the NI 16550 UART.
>
> Signed-off-by: Brenda Streiff <[email protected]>
> Cc: Gratian Crisan <[email protected]>
> Cc: Jason Smith <[email protected]>
> ---
> .../bindings/serial/ni,ni16550.yaml | 53 +++++++++++++++++++
> 1 file changed, 53 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/serial/ni,ni16550.yaml
>
> diff --git a/Documentation/devicetree/bindings/serial/ni,ni16550.yaml b/Documentation/devicetree/bindings/serial/ni,ni16550.yaml
> new file mode 100644
> index 000000000000..4ac1c96726f8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/serial/ni,ni16550.yaml
> @@ -0,0 +1,53 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/serial/ni,ni16550.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NI 16550 asynchronous serial interface (UART)
> +
> +maintainers:
> + - Brenda Streiff <[email protected]>
> +
> +allOf:
> + - $ref: serial.yaml#
> +
> +properties:
> + compatible:
> + items:

You have one item, so remove item.

> + - enum:
> + - ni,ni16550

As Rob pointed out - you did not test it at all.

> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clock-frequency: true
> +
> + transceiver:

Missing description, type and maybe vendor prefix if this is not a
common property. Explain what's this.

> + items:

Not a list.

> + - enum:
> + - RS-232
> + - RS-485
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clock-frequency
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + serial@80000000 {

Broken indentation.

Use 4 spaces for example indentation.

> + compatible = "ni,ni16550", "ns16550a";
> + reg = <0x80000000 0x8>;
> + interrupts = <0 30 4>;
> + clock-frequency = <58824000>;
> + transceiver = "RS-485";
> + };
> +
> +...

Best regards,
Krzysztof

2023-03-31 18:01:14

by Brenda Streiff

[permalink] [raw]
Subject: Re: [PATCH tty-next 1/2] dt-bindings: serial: ni,ni16650: add bindings



On 3/30/23 02:28, Krzysztof Kozlowski wrote
>> + - enum:
>> + - ni,ni16550
>
> As Rob pointed out - you did not test it at all.
>

I did, with dt-schema 2023.1 and the 'make dt_binding_check' command as
described in Documentation/devicetree/bindings/writing-schema.rst
(with no DT_CHECKER_FLAGS, because I was unaware of it until Rob's post)

Is this a documentation gap, or is the DT_CHECKER_FLAGS option slated to
become the default for 'make dt_binding_check' in the future?

2023-03-31 20:01:35

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH tty-next 1/2] dt-bindings: serial: ni,ni16650: add bindings

On 31/03/2023 19:59, Brenda Streiff wrote:
>
>
> On 3/30/23 02:28, Krzysztof Kozlowski wrote
>>> + - enum:
>>> + - ni,ni16550
>>
>> As Rob pointed out - you did not test it at all.
>>
>
> I did, with dt-schema 2023.1 and the 'make dt_binding_check' command as
> described in Documentation/devicetree/bindings/writing-schema.rst
> (with no DT_CHECKER_FLAGS, because I was unaware of it until Rob's post)

No need to use it...

>
> Is this a documentation gap, or is the DT_CHECKER_FLAGS option slated to
> become the default for 'make dt_binding_check' in the future?

You shouldn't need any flags. Regular testing shows errors:

ni,ni16550.example.dtb: serial@80000000: compatible: 'oneOf' conditional
failed, one must be fixed:
['ni,ni16550', 'ns16550a'] is too long
['ni,ni16550', 'ns16550a'] is too short


Best regards,
Krzysztof