Message ID | 20240911-mikrobus-dt-v1-2-3ded4dc879e7@beagleboard.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add generic overlay for MikroBUS addon boards | expand |
On Wed, 11 Sep 2024 19:57:19 +0530, Ayush Singh wrote: > Add DT bindings for mikroBUS interface. MikroBUS [0] is an open standard > developed by MikroElektronika for connecting add-on boards to > microcontrollers or microprocessors. > > MikroBUS connector node will optionally act as nexus nodes for routing > GPIOs and PWM. > > For GPIOs, the following pin numbering should be followed: > > 0: PWM > 1: INT > 2: RX > 3: TX > 4: SCL > 5: SDA > 6: MOSI > 7: MISO > 8: SCK > 9: CS > 10: RST > 11: AN > > For PWM, the PWM pin should be on channel 0. > > I am not quite sure how to deal with the nexus node properties > (#gpio-cells, gpio-map, gpio-map-mask, gpio-map-pass-thru) since they > seem to conflict with upstream gpio schema (gpio-controller is a > dependency of #gpio-cells). > > [0]: https://www.mikroe.com/ > > Signed-off-by: Ayush Singh <ayush@beagleboard.org> > --- > .../bindings/connector/mikrobus-connector.yaml | 40 ++++++++++++++++++++++ > MAINTAINERS | 5 +++ > 2 files changed, 45 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/connector/mikrobus-connector.example.dtb: mikrobus-connector0: 'gpio-controller' is a dependency of '#gpio-cells' from schema $id: http://devicetree.org/schemas/gpio/gpio.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240911-mikrobus-dt-v1-2-3ded4dc879e7@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 Wed, Sep 11, 2024 at 07:57:19PM +0530, Ayush Singh wrote: > Add DT bindings for mikroBUS interface. MikroBUS [0] is an open standard > developed by MikroElektronika for connecting add-on boards to > microcontrollers or microprocessors. Typo in the subject... Isn't this v6? Where's the revision history? > > MikroBUS connector node will optionally act as nexus nodes for routing > GPIOs and PWM. > > For GPIOs, the following pin numbering should be followed: > > 0: PWM > 1: INT > 2: RX > 3: TX > 4: SCL > 5: SDA > 6: MOSI > 7: MISO > 8: SCK > 9: CS > 10: RST > 11: AN > > For PWM, the PWM pin should be on channel 0. > > I am not quite sure how to deal with the nexus node properties > (#gpio-cells, gpio-map, gpio-map-mask, gpio-map-pass-thru) since they > seem to conflict with upstream gpio schema (gpio-controller is a > dependency of #gpio-cells). > > [0]: https://www.mikroe.com/ > > Signed-off-by: Ayush Singh <ayush@beagleboard.org> > --- > .../bindings/connector/mikrobus-connector.yaml | 40 ++++++++++++++++++++++ > MAINTAINERS | 5 +++ > 2 files changed, 45 insertions(+) > > diff --git a/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml b/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml > new file mode 100644 > index 000000000000..603e4627076c > --- /dev/null > +++ b/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml > @@ -0,0 +1,40 @@ > +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause > +# > +# Copyright (c) Ayush Singh <ayush@beagleboard.org> > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/connector/mikrobus-connector.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: mikroBUS add-on board socket > + > +maintainers: > + - Ayush Singh <ayush@beagleboard.org> > + > +properties: > + compatible: > + const: mikrobus-connector > + > +required: > + - compatible > + > +additionalProperties: true Cannot be true. You're schema must be complete. I don't understand what happened to everything else in the binding. > + > +examples: > + - | > + mikrobus_connector0: mikrobus-connector0 { > + status = "okay"; > + compatible = "mikrobus-connector"; > + > + #gpio-cells = <2>; > + gpio-map = > + <0 0 &main_gpio1 11 0>, <1 0 &main_gpio1 9 0>, > + <2 0 &main_gpio1 24 0>, <3 0 &main_gpio1 25 0>, > + <4 0 &main_gpio1 22 0>, <5 0 &main_gpio1 23 0>, > + <6 0 &main_gpio1 7 0>, <7 0 &main_gpio1 8 0>, > + <8 0 &main_gpio1 14 0>, <9 0 &main_gpio1 13 0>, > + <10 0 &main_gpio1 12 0>, <11 0 &main_gpio1 10 0>; > + gpio-map-mask = <0xf 0x0>; > + gpio-map-pass-thru = <0x0 0x1>; > + }; > + > diff --git a/MAINTAINERS b/MAINTAINERS > index 0a3d9e17295a..0cc27446b18a 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -15429,6 +15429,11 @@ M: Oliver Neukum <oliver@neukum.org> > S: Maintained > F: drivers/usb/image/microtek.* > > +MIKROBUS CONNECTOR > +M: Ayush Singh <ayush@beagleboard.org> > +S: Maintained > +F: Documentation/devicetree/bindings/connector/mikrobus-connector.yaml > + > MIKROTIK CRS3XX 98DX3236 BOARD SUPPORT > M: Luka Kovacic <luka.kovacic@sartura.hr> > M: Luka Perkov <luka.perkov@sartura.hr> > > -- > 2.46.0 >
On 9/11/24 22:56, Rob Herring wrote: > On Wed, Sep 11, 2024 at 07:57:19PM +0530, Ayush Singh wrote: >> Add DT bindings for mikroBUS interface. MikroBUS [0] is an open standard >> developed by MikroElektronika for connecting add-on boards to >> microcontrollers or microprocessors. > Typo in the subject... > > Isn't this v6? Where's the revision history? Well, at this point, it almost has nothing in common with [0] (the previous patch series was about making mikroBUS a Linux bus) and is more of a continuation of [1]. So I thought it would be better to treat it as a new patch series. >> MikroBUS connector node will optionally act as nexus nodes for routing >> GPIOs and PWM. >> >> For GPIOs, the following pin numbering should be followed: >> >> 0: PWM >> 1: INT >> 2: RX >> 3: TX >> 4: SCL >> 5: SDA >> 6: MOSI >> 7: MISO >> 8: SCK >> 9: CS >> 10: RST >> 11: AN >> >> For PWM, the PWM pin should be on channel 0. >> >> I am not quite sure how to deal with the nexus node properties >> (#gpio-cells, gpio-map, gpio-map-mask, gpio-map-pass-thru) since they >> seem to conflict with upstream gpio schema (gpio-controller is a >> dependency of #gpio-cells). >> >> [0]: https://www.mikroe.com/ >> >> Signed-off-by: Ayush Singh <ayush@beagleboard.org> >> --- >> .../bindings/connector/mikrobus-connector.yaml | 40 ++++++++++++++++++++++ >> MAINTAINERS | 5 +++ >> 2 files changed, 45 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml b/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml >> new file mode 100644 >> index 000000000000..603e4627076c >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml >> @@ -0,0 +1,40 @@ >> +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause >> +# >> +# Copyright (c) Ayush Singh <ayush@beagleboard.org> >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/connector/mikrobus-connector.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: mikroBUS add-on board socket >> + >> +maintainers: >> + - Ayush Singh <ayush@beagleboard.org> >> + >> +properties: >> + compatible: >> + const: mikrobus-connector >> + >> +required: >> + - compatible >> + >> +additionalProperties: true > Cannot be true. You're schema must be complete. I don't understand what > happened to everything else in the binding. So the current dtschema makes `gpio-controller` dependency of `#gpio-cells` which should not hold true for nexus node [2]. I also wanted to understand if the nexus node schema should go in upstream dtschema or be in kernel tree. I will try to figure out how nexus node properties should look by taking interrupt nexus node bindings as a starting point. [0]: https://lore.kernel.org/linux-arm-kernel/20240627-mikrobus-scratch-spi-v5-0-9e6c148bf5f0@beagleboard.org/ [1]: https://lore.kernel.org/linux-arm-kernel/20240702164403.29067-1-afd@ti.com/ [2]: https://devicetree-specification.readthedocs.io/en/v0.3/devicetree-basics.html#nexus-nodes-and-specifier-mapping Ayush Singh
diff --git a/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml b/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml new file mode 100644 index 000000000000..603e4627076c --- /dev/null +++ b/Documentation/devicetree/bindings/connector/mikrobus-connector.yaml @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause +# +# Copyright (c) Ayush Singh <ayush@beagleboard.org> +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/connector/mikrobus-connector.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: mikroBUS add-on board socket + +maintainers: + - Ayush Singh <ayush@beagleboard.org> + +properties: + compatible: + const: mikrobus-connector + +required: + - compatible + +additionalProperties: true + +examples: + - | + mikrobus_connector0: mikrobus-connector0 { + status = "okay"; + compatible = "mikrobus-connector"; + + #gpio-cells = <2>; + gpio-map = + <0 0 &main_gpio1 11 0>, <1 0 &main_gpio1 9 0>, + <2 0 &main_gpio1 24 0>, <3 0 &main_gpio1 25 0>, + <4 0 &main_gpio1 22 0>, <5 0 &main_gpio1 23 0>, + <6 0 &main_gpio1 7 0>, <7 0 &main_gpio1 8 0>, + <8 0 &main_gpio1 14 0>, <9 0 &main_gpio1 13 0>, + <10 0 &main_gpio1 12 0>, <11 0 &main_gpio1 10 0>; + gpio-map-mask = <0xf 0x0>; + gpio-map-pass-thru = <0x0 0x1>; + }; + diff --git a/MAINTAINERS b/MAINTAINERS index 0a3d9e17295a..0cc27446b18a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -15429,6 +15429,11 @@ M: Oliver Neukum <oliver@neukum.org> S: Maintained F: drivers/usb/image/microtek.* +MIKROBUS CONNECTOR +M: Ayush Singh <ayush@beagleboard.org> +S: Maintained +F: Documentation/devicetree/bindings/connector/mikrobus-connector.yaml + MIKROTIK CRS3XX 98DX3236 BOARD SUPPORT M: Luka Kovacic <luka.kovacic@sartura.hr> M: Luka Perkov <luka.perkov@sartura.hr>
Add DT bindings for mikroBUS interface. MikroBUS [0] is an open standard developed by MikroElektronika for connecting add-on boards to microcontrollers or microprocessors. MikroBUS connector node will optionally act as nexus nodes for routing GPIOs and PWM. For GPIOs, the following pin numbering should be followed: 0: PWM 1: INT 2: RX 3: TX 4: SCL 5: SDA 6: MOSI 7: MISO 8: SCK 9: CS 10: RST 11: AN For PWM, the PWM pin should be on channel 0. I am not quite sure how to deal with the nexus node properties (#gpio-cells, gpio-map, gpio-map-mask, gpio-map-pass-thru) since they seem to conflict with upstream gpio schema (gpio-controller is a dependency of #gpio-cells). [0]: https://www.mikroe.com/ Signed-off-by: Ayush Singh <ayush@beagleboard.org> --- .../bindings/connector/mikrobus-connector.yaml | 40 ++++++++++++++++++++++ MAINTAINERS | 5 +++ 2 files changed, 45 insertions(+)