Thread (16 messages) 16 messages, 4 authors, 2024-07-09

Re: [PATCH v2 4/5] dt-bindings: gpio: convert Atmel GPIO to json-schema

From: Conor Dooley <conor@kernel.org>
Date: 2024-06-26 08:59:55
Also in: linux-devicetree, linux-gpio, lkml

On Wed, Jun 26, 2024 at 08:32:41AM +0000, Manikandan.M@microchip.com wrote:
On 25/06/24 10:04 pm, Conor Dooley wrote:
quoted
Re: [PATCH v2 4/5] dt-bindings: gpio: convert Atmel GPIO to json-schema
From: Conor Dooley <conor@kernel.org>
On Tue, Jun 25, 2024 at 10:05:24AM +0530, Manikandan Muralidharan wrote:
quoted
Convert the Atmel GPIO controller binding document to DT schema format
using json-schema.
The compatible string "microchip,sam9x7-gpio" is added as well.

Signed-off-by: Manikandan Muralidharan<manikandan.m@microchip.com>
---
changes in v2:
- Fix bot errors with 'make dt_binding_check', missed to add
"atmel,at91rm9200-gpio" as separate compatible for devices that uses it
- Remove label from example
- Add default entry for #gpio-lines property
- Add new compatible string details in commit message
---
  .../bindings/gpio/atmel,at91rm9200-gpio.yaml  | 81 +++++++++++++++++++
  .../devicetree/bindings/gpio/gpio_atmel.txt   | 31 -------
  2 files changed, 81 insertions(+), 31 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/gpio/atmel,at91rm9200-gpio.yaml
  delete mode 100644 Documentation/devicetree/bindings/gpio/gpio_atmel.txt
diff --git a/Documentation/devicetree/bindings/gpio/atmel,at91rm9200-gpio.yaml b/Documentation/devicetree/bindings/gpio/atmel,at91rm9200-gpio.yaml
new file mode 100644
index 000000000000..3dd70933ed8e
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/atmel,at91rm9200-gpio.yaml
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id:http://devicetree.org/schemas/gpio/atmel,at91rm9200-gpio.yaml#
+$schema:http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip GPIO controller (PIO)
+
+maintainers:
+  - Manikandan Muralidharan<manikandan.m@microchip.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - atmel,at91sam9x5-gpio
+              - microchip,sam9x60-gpio
+          - const: atmel,at91rm9200-gpio
+      - items:
+          - enum:
+              - microchip,sam9x7-gpio
+          - const: microchip,sam9x60-gpio
+          - const: atmel,at91rm9200-gpio
It's worth pointing out that this is required, because the driver
implements a different set of ops for the sam9x60. There's not just more
of them, they're different too.
Are the sam9x60 and at91rm9200 are actually compatible, or is the
fallback here some mistake that originated in the dts?
The PIO3 pinctrl driver uses the compatible "atmel,at91rm9200-gpio" to 
find the number of active GPIO banks and also to differentiate them from 
the pinmux child nodes.The driver probe fails if the at91rm9200 is not 
present in the GPIO bank compatible property list.
For sam9x7, "microchip,sam9x60-gpio" is used as the fallback compatible 
and "atmel,at91rm9200-gpio" is added by default to avoid probe issues 
and help find the number of GPIO banks by the driver.
That's unfortunately not what I asked. Forget about
at91_pinctrl_child_count() for a minute and answer the question again:
Are the sam9x60 and at91rm9200 actually compatible?

Hints:
- Do the registers that are in the at91rm9200 have the same behaviour in
  the sam9x60?
- Are the new registers in sam9x60 optional, so that if all sam9x60 code
  was deleted from the driver, the driver would still work for the subset
  of features that the at91rm9200 already supports?

Thanks,
Conor.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help