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(+)
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>
--
2.46.0
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
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.
© 2016 - 2024 Red Hat, Inc.