Re: [PATCH 2/8] dt-bindings: connector: Add MikorBUS connector

From: Ayush Singh
Date: Wed Sep 11 2024 - 14:00:31 EST


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@xxxxxxxxxxxxxxx>
---
.../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@xxxxxxxxxxxxxxx>
+%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@xxxxxxxxxxxxxxx>
+
+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@xxxxxxxxxxxxxxx/

[1]: https://lore.kernel.org/linux-arm-kernel/20240702164403.29067-1-afd@xxxxxx/

[2]: https://devicetree-specification.readthedocs.io/en/v0.3/devicetree-basics.html#nexus-nodes-and-specifier-mapping


Ayush Singh