Message ID | 20240627-mikrobus-scratch-spi-v5-3-9e6c148bf5f0@beagleboard.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | misc: Add mikroBUS driver | expand |
On Thu, 27 Jun 2024 21:56:13 +0530, Ayush Singh wrote: > Add bindings for MikroBUS boards using SPI interface. > > Almost all of the properties that are valid for SPI devices can be used > except reg. Since the goal is to allow use of the same MikroBUS board > across different connectors, config needs to be independent of the actual > SPI controller in mikroBUS port(s), it is not possible to define the > chipselect by number in advance. Thus, `spi-cs-apply` property is used to > specify the chipselect(s) by name. > > Another important fact is that while there is a CS pin in the mikroBUS > connector, some boards (eg SPI Extend Click) use additional pins as > chipselect. Thus we need a way to specify the CS pin(s) in terms of > mikcrobus-connector which can then handle bindings the actual CS pin(s). > > Link: https://www.mikroe.com/spi-extend-click SPI Extend Click > > Signed-off-by: Ayush Singh <ayush@beagleboard.org> > --- > .../devicetree/bindings/mikrobus/mikrobus-spi.yaml | 37 ++++++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 38 insertions(+) > 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/mikrobus/mikrobus-spi.example.dtb: thermo-click: compatible: ['maxim,max31855k', 'mikrobus,spi'] is too long from schema $id: http://devicetree.org/schemas/iio/temperature/maxim,max31855k.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.example.dtb: thermo-click: 'reg' is a required property from schema $id: http://devicetree.org/schemas/iio/temperature/maxim,max31855k.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.example.dtb: thermo-click: Unevaluated properties are not allowed ('compatible', 'pinctrl-apply', 'spi-cs-apply' were unexpected) from schema $id: http://devicetree.org/schemas/iio/temperature/maxim,max31855k.yaml# Documentation/devicetree/bindings/mikrobus/mikrobus-spi.example.dtb: /example-0/thermo-click: failed to match any schema with compatible: ['maxim,max31855k', 'mikrobus,spi'] doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240627-mikrobus-scratch-spi-v5-3-9e6c148bf5f0@beagleboard.org 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.
On Thu, Jun 27, 2024 at 09:56:13PM +0530, Ayush Singh wrote: > Add bindings for MikroBUS boards using SPI interface. > > Almost all of the properties that are valid for SPI devices can be used > except reg. Since the goal is to allow use of the same MikroBUS board > across different connectors, config needs to be independent of the actual > SPI controller in mikroBUS port(s), it is not possible to define the > chipselect by number in advance. Thus, `spi-cs-apply` property is used to > specify the chipselect(s) by name. > > Another important fact is that while there is a CS pin in the mikroBUS > connector, some boards (eg SPI Extend Click) use additional pins as > chipselect. Thus we need a way to specify the CS pin(s) in terms of > mikcrobus-connector which can then handle bindings the actual CS pin(s). > > Link: https://www.mikroe.com/spi-extend-click SPI Extend Click > > Signed-off-by: Ayush Singh <ayush@beagleboard.org> > --- > .../devicetree/bindings/mikrobus/mikrobus-spi.yaml | 37 ++++++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 38 insertions(+) > > diff --git a/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml b/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml > new file mode 100644 > index 000000000000..35ca2cce3b03 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml > @@ -0,0 +1,37 @@ > +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mikrobus/mikrobus-spi.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: mikroBUS add-on board using SPI > + > +maintainers: > + - Ayush Singh <ayush@beagleboard.org> > + > +allOf: > + - $ref: /schemas/mikrobus/mikrobus-board.yaml# > + > +properties: > + compatible: > + const: mikrobus-spi > + > + spi-cs-apply: > + minItems: 1 > + maxItems: 12 > + items: > + enum: [default, pwm, int, rx, tx, scl, sda, an, rst, sck, cipo, copi] Property descriptions belong in the property, not in the commit message. > + > +required: > + - compatible > + > +additionalProperties: false > + > +examples: > + - | > + thermo-click { > + compatible = "maxim,max31855k", "mikrobus,spi"; I am really not keen on what this implies, as I think Rob and I have already mentioned, the connector should handle the "mapping" and the regular SPI/I2C/whatever bindings for the SPI devices themselves should be usable. Also you clearly didn't test this binding - please test them. Thanks, Conor. > + spi-max-frequency = <1000000>; > + pinctrl-apply = "default", "spi_default"; > + spi-cs-apply = "default"; > + }; > diff --git a/MAINTAINERS b/MAINTAINERS > index 14eba18832d5..88f2b3adc824 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -15114,6 +15114,7 @@ M: Vaishnav M A <vaishnav@beagleboard.org> > S: Maintained > F: Documentation/devicetree/bindings/connector/mikrobus-connector.yaml > F: Documentation/devicetree/bindings/mikrobus/mikrobus-board.yaml > +F: Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml > > MIKROTIK CRS3XX 98DX3236 BOARD SUPPORT > M: Luka Kovacic <luka.kovacic@sartura.hr> > > -- > 2.45.2 >
On Fri, Jun 28, 2024 at 6:48 PM Conor Dooley <conor@kernel.org> wrote: > On Thu, Jun 27, 2024 at 09:56:13PM +0530, Ayush Singh wrote: > > Add bindings for MikroBUS boards using SPI interface. > > > > Almost all of the properties that are valid for SPI devices can be used > > except reg. Since the goal is to allow use of the same MikroBUS board > > across different connectors, config needs to be independent of the actual > > SPI controller in mikroBUS port(s), it is not possible to define the > > chipselect by number in advance. Thus, `spi-cs-apply` property is used to > > specify the chipselect(s) by name. > > > > Another important fact is that while there is a CS pin in the mikroBUS > > connector, some boards (eg SPI Extend Click) use additional pins as > > chipselect. Thus we need a way to specify the CS pin(s) in terms of > > mikcrobus-connector which can then handle bindings the actual CS pin(s). > > > > Link: https://www.mikroe.com/spi-extend-click SPI Extend Click > > > > Signed-off-by: Ayush Singh <ayush@beagleboard.org> Thanks for your patch! > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml > > + > > +required: > > + - compatible > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + thermo-click { > > + compatible = "maxim,max31855k", "mikrobus,spi"; > > I am really not keen on what this implies, as I think Rob and I have > already mentioned, the connector should handle the "mapping" and the > regular SPI/I2C/whatever bindings for the SPI devices themselves > should be usable. Indeed. The (thermocouple component on the) click itself is not compatible with "mikrobus,spi", but with "maxim,max31855k". "mikrobus,spi" here means SPI is used as the transport layer. I guess you need "mikrobus,spi" because the click is pointed to by the "board" phandle in the connector, instead of being a subnode of the connector, like it should be? Gr{oetje,eeting}s, Geert
diff --git a/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml b/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml new file mode 100644 index 000000000000..35ca2cce3b03 --- /dev/null +++ b/Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mikrobus/mikrobus-spi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: mikroBUS add-on board using SPI + +maintainers: + - Ayush Singh <ayush@beagleboard.org> + +allOf: + - $ref: /schemas/mikrobus/mikrobus-board.yaml# + +properties: + compatible: + const: mikrobus-spi + + spi-cs-apply: + minItems: 1 + maxItems: 12 + items: + enum: [default, pwm, int, rx, tx, scl, sda, an, rst, sck, cipo, copi] + +required: + - compatible + +additionalProperties: false + +examples: + - | + thermo-click { + compatible = "maxim,max31855k", "mikrobus,spi"; + spi-max-frequency = <1000000>; + pinctrl-apply = "default", "spi_default"; + spi-cs-apply = "default"; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 14eba18832d5..88f2b3adc824 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -15114,6 +15114,7 @@ M: Vaishnav M A <vaishnav@beagleboard.org> S: Maintained F: Documentation/devicetree/bindings/connector/mikrobus-connector.yaml F: Documentation/devicetree/bindings/mikrobus/mikrobus-board.yaml +F: Documentation/devicetree/bindings/mikrobus/mikrobus-spi.yaml MIKROTIK CRS3XX 98DX3236 BOARD SUPPORT M: Luka Kovacic <luka.kovacic@sartura.hr>
Add bindings for MikroBUS boards using SPI interface. Almost all of the properties that are valid for SPI devices can be used except reg. Since the goal is to allow use of the same MikroBUS board across different connectors, config needs to be independent of the actual SPI controller in mikroBUS port(s), it is not possible to define the chipselect by number in advance. Thus, `spi-cs-apply` property is used to specify the chipselect(s) by name. Another important fact is that while there is a CS pin in the mikroBUS connector, some boards (eg SPI Extend Click) use additional pins as chipselect. Thus we need a way to specify the CS pin(s) in terms of mikcrobus-connector which can then handle bindings the actual CS pin(s). Link: https://www.mikroe.com/spi-extend-click SPI Extend Click Signed-off-by: Ayush Singh <ayush@beagleboard.org> --- .../devicetree/bindings/mikrobus/mikrobus-spi.yaml | 37 ++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 38 insertions(+)