diff mbox series

dt-bindings: i2c: brcm,iproc-i2c: convert to the json-schema

Message ID 20210512160750.15183-1-zajec5@gmail.com (mailing list archive)
State New, archived
Headers show
Series dt-bindings: i2c: brcm,iproc-i2c: convert to the json-schema | expand

Commit Message

Rafał Miłecki May 12, 2021, 4:07 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

This helps validating DTS files.

Introduced changes:
1. Added arm-gic.h include

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 .../bindings/i2c/brcm,iproc-i2c.txt           | 46 ------------
 .../bindings/i2c/brcm,iproc-i2c.yaml          | 71 +++++++++++++++++++
 2 files changed, 71 insertions(+), 46 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.txt
 create mode 100644 Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.yaml

Comments

Rob Herring May 12, 2021, 6:35 p.m. UTC | #1
On Wed, 12 May 2021 18:07:50 +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> This helps validating DTS files.
> 
> Introduced changes:
> 1. Added arm-gic.h include
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
>  .../bindings/i2c/brcm,iproc-i2c.txt           | 46 ------------
>  .../bindings/i2c/brcm,iproc-i2c.yaml          | 71 +++++++++++++++++++
>  2 files changed, 71 insertions(+), 46 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.txt
>  create mode 100644 Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.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:
Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.example.dt.yaml:0:0: /example-0/i2c@18008000/wm8750@1a: failed to match any schema with compatible: ['wlf,wm8750']

See https://patchwork.ozlabs.org/patch/1477696

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

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.
Wolfram Sang May 28, 2021, 9:23 a.m. UTC | #2
Hi Rob,

> 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:
> Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.example.dt.yaml:0:0: /example-0/i2c@18008000/wm8750@1a: failed to match any schema with compatible: ['wlf,wm8750']

A generic question:

So sound/wm8750.txt was not converted yet. However, if this conversion
is fine otherwise, I'd vote to apply it nonetheless because it is one
conversion less to do then. Alternatively, we could change the example
to include a simple EEPROM which has an already converted binding doc.

What is the procedure here?

All the best and thanks for your work!

   Wolfram
Rafał Miłecki May 28, 2021, 9:37 a.m. UTC | #3
On 28.05.2021 11:23, Wolfram Sang wrote:
>> 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:
>> Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.example.dt.yaml:0:0: /example-0/i2c@18008000/wm8750@1a: failed to match any schema with compatible: ['wlf,wm8750']
> 
> A generic question:
> 
> So sound/wm8750.txt was not converted yet. However, if this conversion
> is fine otherwise, I'd vote to apply it nonetheless because it is one
> conversion less to do then. Alternatively, we could change the example
> to include a simple EEPROM which has an already converted binding doc.
> 
> What is the procedure here?
> 
> All the best and thanks for your work!

Let me try to answer this based on the discussion in the:
[PATCH V3 robh dt/next] dt-bindings: mfd: add Broadcom CRU
https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210519184041.563-1-zajec5@gmail.com/


Rob has stated he doesn't want maintainers to apply bindings that
introduce documentation warnings/errors:
https://patchwork.ozlabs.org/comment/2687693/

Lee Jones as MFD maintainer says it's wrong:
https://patchwork.ozlabs.org/comment/2687847/


I've already got wm8750 YAML binding queued for the 5.14, see linux-next:
ASoC: wm8750: convert to the json-schema
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=11480dbfe1d59eaa6382864acc476e7621b1da4c

Personally I think it's a bit too paranoid to reject such a patch if we
have a proof that its dependency is already part of the linux-next. If
you agree with Rob however I'll just resubmit this very same patch once
Rob updates his tree to the 5.14-rc1 (once it's released). I still think
it just makes the whole process take unnecessarily long.
Wolfram Sang May 28, 2021, 9:57 a.m. UTC | #4
> I've already got wm8750 YAML binding queued for the 5.14, see linux-next:
> ASoC: wm8750: convert to the json-schema
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=11480dbfe1d59eaa6382864acc476e7621b1da4c

My take is that we can surely accept this binding if there is no build
failure in -next. However, I usually wait for Rob's ack because I don't
know YAML well enough to review patches from other people.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.txt b/Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.txt
deleted file mode 100644
index d12cc33cca6c..000000000000
--- a/Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.txt
+++ /dev/null
@@ -1,46 +0,0 @@ 
-Broadcom iProc I2C controller
-
-Required properties:
-
-- compatible:
-    Must be "brcm,iproc-i2c" or "brcm,iproc-nic-i2c"
-
-- reg:
-    Define the base and range of the I/O address space that contain the iProc
-    I2C controller registers
-
-- clock-frequency:
-    This is the I2C bus clock. Need to be either 100000 or 400000
-
-- #address-cells:
-    Always 1 (for I2C addresses)
-
-- #size-cells:
-    Always 0
-
-Optional properties:
-
-- interrupts:
-    Should contain the I2C interrupt. For certain revisions of the I2C
-    controller, I2C interrupt is unwired to the interrupt controller. In such
-    case, this property should be left unspecified, and driver will fall back
-    to polling mode
-
-- brcm,ape-hsls-addr-mask:
-    Required for "brcm,iproc-nic-i2c". Host view of address mask into the
-    'APE' co-processor. Value must be unsigned, 32-bit
-
-Example:
-	i2c0: i2c@18008000 {
-		compatible = "brcm,iproc-i2c";
-		reg = <0x18008000 0x100>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-		interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
-		clock-frequency = <100000>;
-
-		codec: wm8750@1a {
-			compatible = "wlf,wm8750";
-			reg = <0x1a>;
-		};
-	};
diff --git a/Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.yaml b/Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.yaml
new file mode 100644
index 000000000000..2aa75b7add7b
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.yaml
@@ -0,0 +1,71 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/brcm,iproc-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom iProc I2C controller
+
+maintainers:
+  - Rafał Miłecki <rafal@milecki.pl>
+
+properties:
+  compatible:
+    enum:
+      - brcm,iproc-i2c
+      - brcm,iproc-nic-i2c
+
+  reg:
+    maxItems: 1
+
+  clock-frequency:
+    enum: [ 100000, 400000 ]
+
+  interrupts:
+    description: |
+      Should contain the I2C interrupt. For certain revisions of the I2C
+      controller, I2C interrupt is unwired to the interrupt controller. In such
+      case, this property should be left unspecified, and driver will fall back
+      to polling mode
+    maxItems: 1
+
+  brcm,ape-hsls-addr-mask:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Host view of address mask into the 'APE' co-processor
+
+allOf:
+  - $ref: /schemas/i2c/i2c-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,iproc-nic-i2c
+    then:
+      required:
+        - brcm,ape-hsls-addr-mask
+
+unevaluatedProperties: false
+
+required:
+  - reg
+  - clock-frequency
+  - '#address-cells'
+  - '#size-cells'
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    i2c@18008000 {
+        compatible = "brcm,iproc-i2c";
+        reg = <0x18008000 0x100>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
+        clock-frequency = <100000>;
+
+        wm8750@1a {
+            compatible = "wlf,wm8750";
+            reg = <0x1a>;
+        };
+    };