diff mbox series

dt-bindings: net: bluetooth: convert MT7622 Bluetooth to the json-schema

Message ID 20240627054011.26621-1-zajec5@gmail.com (mailing list archive)
State Changes Requested
Headers show
Series dt-bindings: net: bluetooth: convert MT7622 Bluetooth to the json-schema | expand

Commit Message

Rafał Miłecki June 27, 2024, 5:40 a.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

This helps validating DTS files.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 .../bluetooth/mediatek,mt7622-bluetooth.yaml  | 61 +++++++++++++++++++
 .../bindings/net/mediatek-bluetooth.txt       | 36 -----------
 2 files changed, 61 insertions(+), 36 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml

Comments

Rob Herring (Arm) June 27, 2024, 6:18 a.m. UTC | #1
On Thu, 27 Jun 2024 07:40:11 +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> This helps validating DTS files.
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
>  .../bluetooth/mediatek,mt7622-bluetooth.yaml  | 61 +++++++++++++++++++
>  .../bindings/net/mediatek-bluetooth.txt       | 36 -----------
>  2 files changed, 61 insertions(+), 36 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.example.dtb: serial@1100c000: reg: [[0, 285261824], [0, 4096]] is too long
	from schema $id: http://devicetree.org/schemas/serial/8250.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.example.dtb: serial@1100c000: Unevaluated properties are not allowed ('clock-names' was unexpected)
	from schema $id: http://devicetree.org/schemas/serial/8250.yaml#

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240627054011.26621-1-zajec5@gmail.com

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.
Rafał Miłecki June 27, 2024, 6:45 a.m. UTC | #2
On 27.06.2024 08:18, Rob Herring (Arm) wrote:> On Thu, 27 Jun 2024 07:40:11 +0200, Rafał Miłecki wrote:
 >> From: Rafał Miłecki <rafal@milecki.pl>
 >>
 >> This helps validating DTS files.
 >>
 >> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 >> ---
 >>   .../bluetooth/mediatek,mt7622-bluetooth.yaml  | 61 +++++++++++++++++++
 >>   .../bindings/net/mediatek-bluetooth.txt       | 36 -----------
 >>   2 files changed, 61 insertions(+), 36 deletions(-)
 >>   create mode 100644 Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml
 >>
 >
 > My bot found errors running 'make dt_binding_check' on your patch:
 >
 > yamllint warnings/errors:
 >
 > dtschema/dtc warnings/errors:
 > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.example.dtb: serial@1100c000: reg: [[0, 285261824], [0, 4096]] is too long
 > 	from schema $id: http://devicetree.org/schemas/serial/8250.yaml#
 > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.example.dtb: serial@1100c000: Unevaluated properties are not allowed ('clock-names' was unexpected)
 > 	from schema $id: http://devicetree.org/schemas/serial/8250.yaml#
Oops, I really need to fix my yamllint

$ make ARCH=arm64 dt_binding_check DT_SCHEMA_FILES=net/bluetooth/mediatek,mt7622-bluetooth.yaml
   SCHEMA  Documentation/devicetree/bindings/processed-schema.json
   CHKDT   Documentation/devicetree/bindings
   DTEX    Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.example.dts
   DTC_CHK Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.example.dtb
   LINT    Documentation/devicetree/bindings
invalid config: unknown option "extra-allowed" for rule "quoted-strings"
xargs: /usr/bin/yamllint: exited with status 255; aborting
Rob Herring (Arm) June 27, 2024, 4:08 p.m. UTC | #3
On Thu, Jun 27, 2024 at 07:40:11AM +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> This helps validating DTS files.
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
>  .../bluetooth/mediatek,mt7622-bluetooth.yaml  | 61 +++++++++++++++++++
>  .../bindings/net/mediatek-bluetooth.txt       | 36 -----------
>  2 files changed, 61 insertions(+), 36 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml
> new file mode 100644
> index 000000000000..cb8ff93c93eb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml
> @@ -0,0 +1,61 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/bluetooth/mediatek,mt7622-bluetooth.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MediaTek SoC built-in Bluetooth
> +
> +description:
> +  This device is a serial attached device to BTIF device and thus it must be a
> +  child node of the serial node with BTIF. The dt-bindings details for BTIF
> +  device can be known via Documentation/devicetree/bindings/serial/8250.yaml.
> +
> +maintainers:
> +  - Sean Wang <sean.wang@mediatek.com>
> +
> +allOf:
> +  - $ref: bluetooth-controller.yaml#
> +
> +properties:
> +  compatible:
> +    const: mediatek,mt7622-bluetooth
> +
> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    const: ref
> +
> +  power-domains:
> +    maxItems: 1
> +
> +required:
> +  - clocks
> +  - clock-names
> +  - power-domains
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/mt7622-clk.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/power/mt7622-power.h>
> +
> +    serial@1100c000 {
> +        compatible = "mediatek,mt7622-btif", "mediatek,mtk-btif";
> +        reg = <0 0x1100c000 0 0x1000>;
> +        interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_LOW>;
> +        clocks = <&pericfg CLK_PERI_BTIF_PD>;
> +        clock-names = "main";
> +        reg-shift = <2>;
> +        reg-io-width = <4>;

Just drop all this. Not relevant to *this* example.

You just need:

serial {

> +
> +        bluetooth {
> +            compatible = "mediatek,mt7622-bluetooth";
> +            power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
> +            clocks = <&clk25m>;
> +            clock-names = "ref";
> +        };
> +    };
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml
new file mode 100644
index 000000000000..cb8ff93c93eb
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml
@@ -0,0 +1,61 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/mediatek,mt7622-bluetooth.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek SoC built-in Bluetooth
+
+description:
+  This device is a serial attached device to BTIF device and thus it must be a
+  child node of the serial node with BTIF. The dt-bindings details for BTIF
+  device can be known via Documentation/devicetree/bindings/serial/8250.yaml.
+
+maintainers:
+  - Sean Wang <sean.wang@mediatek.com>
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+
+properties:
+  compatible:
+    const: mediatek,mt7622-bluetooth
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: ref
+
+  power-domains:
+    maxItems: 1
+
+required:
+  - clocks
+  - clock-names
+  - power-domains
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mt7622-clk.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/mt7622-power.h>
+
+    serial@1100c000 {
+        compatible = "mediatek,mt7622-btif", "mediatek,mtk-btif";
+        reg = <0 0x1100c000 0 0x1000>;
+        interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_LOW>;
+        clocks = <&pericfg CLK_PERI_BTIF_PD>;
+        clock-names = "main";
+        reg-shift = <2>;
+        reg-io-width = <4>;
+
+        bluetooth {
+            compatible = "mediatek,mt7622-bluetooth";
+            power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
+            clocks = <&clk25m>;
+            clock-names = "ref";
+        };
+    };
diff --git a/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt b/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
index 9ef5bacda8c1..988c72685cbf 100644
--- a/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
+++ b/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
@@ -1,39 +1,3 @@ 
-MediaTek SoC built-in Bluetooth Devices
-==================================
-
-This device is a serial attached device to BTIF device and thus it must be a
-child node of the serial node with BTIF. The dt-bindings details for BTIF
-device can be known via Documentation/devicetree/bindings/serial/8250.yaml.
-
-Required properties:
-
-- compatible:	Must be
-		  "mediatek,mt7622-bluetooth": for MT7622 SoC
-- clocks:	Should be the clock specifiers corresponding to the entry in
-		clock-names property.
-- clock-names:	Should contain "ref" entries.
-- power-domains: Phandle to the power domain that the device is part of
-
-Example:
-
-	btif: serial@1100c000 {
-		compatible = "mediatek,mt7622-btif",
-			     "mediatek,mtk-btif";
-		reg = <0 0x1100c000 0 0x1000>;
-		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_LOW>;
-		clocks = <&pericfg CLK_PERI_BTIF_PD>;
-		clock-names = "main";
-		reg-shift = <2>;
-		reg-io-width = <4>;
-
-		bluetooth {
-			compatible = "mediatek,mt7622-bluetooth";
-			power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
-			clocks = <&clk25m>;
-			clock-names = "ref";
-		};
-	};
-
 MediaTek UART based Bluetooth Devices
 ==================================