diff mbox series

[v4,2/4] dt-bindings: soc: Add i.MX6SX General Purpose Register

Message ID 20230519125236.352050-2-festevam@gmail.com
State Superseded, archived
Headers show
Series [v4,1/4] dt-bindings: display: bridge: ldb: Adjust imx6sx entries | expand

Checks

Context Check Description
robh/checkpatch success
robh/patch-applied success
robh/dt-meta-schema fail build log

Commit Message

Fabio Estevam May 19, 2023, 12:52 p.m. UTC
From: Fabio Estevam <festevam@denx.de>

The i.MX6SX General Purpose Registers is a set of register that serves
various different purposes and in particular, IOMUXC_GPR_GPR6, at
offset 0x18, can be used to configure the LDB block.

Signed-off-by: Fabio Estevam <festevam@denx.de>
---
Changes since v3:
- Fixed error reported by Rob's bot.

 .../bindings/soc/imx/fsl,imx6sx-gpr.yaml      | 84 +++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml

Comments

Rob Herring May 19, 2023, 1:24 p.m. UTC | #1
On Fri, 19 May 2023 09:52:34 -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@denx.de>
> 
> The i.MX6SX General Purpose Registers is a set of register that serves
> various different purposes and in particular, IOMUXC_GPR_GPR6, at
> offset 0x18, can be used to configure the LDB block.
> 
> Signed-off-by: Fabio Estevam <festevam@denx.de>
> ---
> Changes since v3:
> - Fixed error reported by Rob's bot.
> 
>  .../bindings/soc/imx/fsl,imx6sx-gpr.yaml      | 84 +++++++++++++++++++
>  1 file changed, 84 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.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/soc/imx/fsl,imx6sx-gpr.example.dtb: iomuxc-gpr@20e4000: bridge@18:compatible:0: 'fsl,imx6sx-ldb' is not one of ['fsl,imx8mp-ldb', 'fsl,imx93-ldb']
	From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230519125236.352050-2-festevam@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.
Fabio Estevam May 19, 2023, 3:45 p.m. UTC | #2
Hi Rob,

On Fri, May 19, 2023 at 10:24 AM Rob Herring <robh@kernel.org> 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:
> /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.example.dtb: iomuxc-gpr@20e4000: bridge@18:compatible:0: 'fsl,imx6sx-ldb' is not one of ['fsl,imx8mp-ldb', 'fsl,imx93-ldb']
>         From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml
>
> doc reference errors (make refcheckdocs):
>
> See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230519125236.352050-2-festevam@gmail.com
>
> The base for the series is generally the latest rc1. A different dependency
> should be noted in *this* patch.

This patch is against linux-next.

6.4-rc1 does not contain f85f2ce57783 ("dt-bindings: display: bridge:
ldb: Add an i.MX6SX entry"), which
is a pre-requisite for this series.

'make DT_CHECKER_FLAGS=-m dt_binding_check' does not show errors for
this patch series against linux-next.
Conor Dooley May 19, 2023, 7:23 p.m. UTC | #3
Hey Fabio,

On Fri, May 19, 2023 at 09:52:34AM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@denx.de>
> 
> The i.MX6SX General Purpose Registers is a set of register that serves
> various different purposes and in particular, IOMUXC_GPR_GPR6, at
> offset 0x18, can be used to configure the LDB block.
> 
> Signed-off-by: Fabio Estevam <festevam@denx.de>
> +  bridge@18:
> +    type: object
> +    $ref: /schemas/display/bridge/fsl,ldb.yaml#
> +    unevaluatedProperties: false

How come you need to upgrade the additionaProperties: false, and the
"plain old" $ref is not sufficient?

> +examples:
> +  - |
> +    #include <dt-bindings/clock/imx6sx-clock.h>
> +
> +    iomuxc-gpr@20e4000 {

syscon@ please.

Thanks,
Conor.
Fabio Estevam May 22, 2023, 11:49 a.m. UTC | #4
Hi Conor,

On 19/05/2023 16:23, Conor Dooley wrote:

>> +  bridge@18:
>> +    type: object
>> +    $ref: /schemas/display/bridge/fsl,ldb.yaml#
>> +    unevaluatedProperties: false
> 
> How come you need to upgrade the additionaProperties: false, and the
> "plain old" $ref is not sufficient?

I am passing unevaluatedProperties: false, not additionaProperties: 
false here,
so I am not sure I understood your comment.

If additionaProperties: false is not present:

$ make dt_binding_check DT_SCHEMA_FILES=fsl,imx6sx-gpr.yaml
   LINT    Documentation/devicetree/bindings
   CHKDT   Documentation/devicetree/bindings/processed-schema.json
/home/fabio/linux-next/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml: 
'oneOf' conditional failed, one must be fixed:
	'unevaluatedProperties' is a required property
	'additionalProperties' is a required property
	hint: Either unevaluatedProperties or additionalProperties must be 
present
	from schema $id: http://devicetree.org/meta-schemas/core.yaml#
   SCHEMA  Documentation/devicetree/bindings/processed-schema.json
   DTEX    
Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.example.dts
   DTC_CHK 
Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.example.dtb

So I will keep it like this.

I have taken all of your other feedback into account and will submit a 
v5.

Thanks,

Fabio Estevam
Conor Dooley May 22, 2023, 12:07 p.m. UTC | #5
On Mon, May 22, 2023 at 08:49:35AM -0300, Fabio Estevam wrote:
> On 19/05/2023 16:23, Conor Dooley wrote:
> 
> > > +  bridge@18:
> > > +    type: object
> > > +    $ref: /schemas/display/bridge/fsl,ldb.yaml#
> > > +    unevaluatedProperties: false
> > 
> > How come you need to upgrade the additionaProperties: false, and the
> > "plain old" $ref is not sufficient?
> 
> I am passing unevaluatedProperties: false, not additionaProperties: false
> here,
> so I am not sure I understood your comment.

I was referring to the additionalProperties: false in the schema in the
$ref:, but I had myself confused and doing s/unevaluated/additional/
here would cause complaints about the properties being undefined.

> So I will keep it like this.

Yeah, sorry for the confusion!
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml
new file mode 100644
index 000000000000..22777ecfb56b
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml
@@ -0,0 +1,84 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/imx/fsl,imx6sx-gpr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX6SX General Purpose Register
+
+maintainers:
+  - Fabio Estevam <festevam@denx.de>
+
+description:
+  The i.MX6SX General Purpose Registers is a set of register that serves
+  for various purposes and in particular, IOMUXC_GPR_GPR6, at offset 0x18,
+  can be used to configure the LDB block.
+
+properties:
+  compatible:
+    items:
+      - const: fsl,imx6sx-iomuxc-gpr
+      - const: fsl,imx6q-iomuxc-gpr
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+  bridge@18:
+    type: object
+    $ref: /schemas/display/bridge/fsl,ldb.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx6sx-clock.h>
+
+    iomuxc-gpr@20e4000 {
+        compatible = "fsl,imx6sx-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon";
+        reg = <0x020e4000 0x4000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        bridge@18 {
+            compatible = "fsl,imx6sx-ldb";
+            reg = <0x18 0x4>;
+            reg-names = "ldb";
+            clocks = <&clks IMX6SX_CLK_LDB_DI0>;
+            clock-names = "ldb";
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+
+                    ldb_from_lcdif1: endpoint {
+                        remote-endpoint = <&lcdif1_to_ldb>;
+                    };
+                };
+
+               port@1 {
+                   reg = <1>;
+
+                   ldb_lvds_ch0: endpoint {
+                   };
+               };
+            };
+        };
+    };
+...