Message ID | 20211210114222.26581-3-zajec5@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dt-bindings: pinctrl: pins, groups & functions | expand |
On Fri, 10 Dec 2021 12:42:22 +0100, Rafał Miłecki wrote: > From: Rafał Miłecki <rafal@milecki.pl> > > Use and extend generic pinctrl binding to include info about pins, > groups & functions. > > Northstar platform pins have numbers assigned to them (they are needed > for mux programming) so add a custom "number" property for that. > > Extend example to provide a complete binding of a single / random > function. > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl> > --- > .../bindings/pinctrl/brcm,ns-pinmux.yaml | 38 ++++++++++++++++++- > 1 file changed, 37 insertions(+), 1 deletion(-) > 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/linux-dt-review/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml: 'additionalProperties' is a required property hint: A schema without a "$ref" to another schema must define all properties and use "additionalProperties" from schema $id: http://devicetree.org/meta-schemas/base.yaml# schemas/pinctrl/brcm,ns-pinmux.yaml: ignoring, error in schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml: ignoring, error in schema: warning: no schema found in file: ./Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.example.dt.yaml:0:0: /example-0/pin-controller@1800c1c0: failed to match any schema with compatible: ['brcm,bcm4708-pinmux'] make[1]: *** Deleting file 'Documentation/devicetree/bindings/mfd/brcm,cru.example.dt.yaml' schemas/pinctrl/brcm,ns-pinmux.yaml: ignoring, error in schema: Traceback (most recent call last): File "/usr/local/bin/dt-validate", line 170, in <module> sg.check_trees(filename, testtree) File "/usr/local/bin/dt-validate", line 119, in check_trees self.check_subtree(dt, subtree, False, "/", "/", filename) File "/usr/local/bin/dt-validate", line 110, in check_subtree self.check_subtree(tree, value, disabled, name, fullname + name, filename) File "/usr/local/bin/dt-validate", line 110, in check_subtree self.check_subtree(tree, value, disabled, name, fullname + name, filename) File "/usr/local/bin/dt-validate", line 105, in check_subtree self.check_node(tree, subtree, disabled, nodename, fullname, filename) File "/usr/local/bin/dt-validate", line 49, in check_node errors = sorted(dtschema.DTValidator(schema).iter_errors(node), key=lambda e: e.linecol) File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 766, in iter_errors for error in super().iter_errors(instance, _schema): File "/usr/local/lib/python3.8/dist-packages/jsonschema/validators.py", line 224, in iter_errors for error in errors: File "/usr/local/lib/python3.8/dist-packages/jsonschema/_validators.py", line 25, in patternProperties yield from validator.descend( File "/usr/local/lib/python3.8/dist-packages/jsonschema/validators.py", line 240, in descend for error in self.evolve(schema=schema).iter_errors(instance): File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 766, in iter_errors for error in super().iter_errors(instance, _schema): File "/usr/local/lib/python3.8/dist-packages/jsonschema/validators.py", line 224, in iter_errors for error in errors: File "/usr/local/lib/python3.8/dist-packages/jsonschema/_validators.py", line 298, in ref yield from validator.descend(instance, resolved) File "/usr/local/lib/python3.8/dist-packages/jsonschema/validators.py", line 240, in descend for error in self.evolve(schema=schema).iter_errors(instance): File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 766, in iter_errors for error in super().iter_errors(instance, _schema): File "/usr/local/lib/python3.8/dist-packages/jsonschema/validators.py", line 214, in iter_errors scope = id_of(_schema) File "/usr/local/lib/python3.8/dist-packages/jsonschema/validators.py", line 90, in _id_of return schema.get("$id", "") AttributeError: 'NoneType' object has no attribute 'get' make[1]: *** [scripts/Makefile.lib:373: Documentation/devicetree/bindings/mfd/brcm,cru.example.dt.yaml] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:1413: dt_binding_check] Error 2 doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/patch/1566458 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.
* Rafał Miłecki <zajec5@gmail.com> [211210 11:43]: > @@ -83,6 +97,28 @@ examples: > reg = <0x1800c1c0 0x24>; > reg-names = "cru_gpio_control"; > > + pins { > + i2c_scl: i2c_scl { > + number = <4>; > + }; > + > + i2c_sda: i2c_sda { > + number = <5>; > + }; > + }; Please don't add custom properties for something that can be done with standard register based addressing using a hardware offset based reg property. Your driver can easily translate it. Also, please don't use custom node names, instead do: pins { i2c_scl: pin@0x1234 { /* Any generic standard properties or numbers here please :)d */ }; ... }; I think I've already commented on the register addressing twice before.. Regards, Tony
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml index 8d1e5b1cdd5f..82d3e52a2229 100644 --- a/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml +++ b/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml @@ -30,6 +30,20 @@ properties: reg-names: const: cru_gpio_control + pins: + type: object + + patternProperties: + "^.*$": + type: object + + properties: + number: + description: Pin number + $ref: /schemas/types.yaml#/definitions/uint32 + + unevaluatedProperties: false + patternProperties: '-pins$': type: object @@ -74,7 +88,7 @@ required: - reg - reg-names -additionalProperties: false +unevaluatedProperties: false examples: - | @@ -83,6 +97,28 @@ examples: reg = <0x1800c1c0 0x24>; reg-names = "cru_gpio_control"; + pins { + i2c_scl: i2c_scl { + number = <4>; + }; + + i2c_sda: i2c_sda { + number = <5>; + }; + }; + + groups { + i2c_grp: i2c_grp { + pins = <&i2c_scl &i2c_sda>; + }; + }; + + functions { + i2c { + groups = <&i2c_grp>; + }; + }; + spi-pins { function = "spi"; groups = "spi_grp";