Commit 1619a094 authored by Peng Fan's avatar Peng Fan Committed by Bartosz Golaszewski
Browse files

dt-bindings: gpio: vf610: correct i.MX8ULP and i.MX93



i.MX8ULP and i.MX93 actually has two interrupts for each gpio
controller, one for Trustzone non-secure world, one for secure world.

And they has one register based, not two as i.MX7ULP or VF610.

Although the Linux Kernel driver gpio-vf610.c could work with
fsl,imx7ulp-gpio compatible, it is based on some tricks did in
device tree with some offset added to base address.

So actually i.MX8ULP/i.MX93 is not compatible with i.MX7ULP.

Last, i.MX93 is directly derived from i.MX8ULP, so make i.MX93 GPIO
compatible with i.MX8ULP

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent 690acef3
Loading
Loading
Loading
Loading
+31 −5
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ description: |
properties:
  compatible:
    oneOf:
      - const: fsl,imx8ulp-gpio
      - const: fsl,vf610-gpio
      - items:
          - const: fsl,imx7ulp-gpio
@@ -27,16 +28,17 @@ properties:
      - items:
          - enum:
              - fsl,imx93-gpio
              - fsl,imx8ulp-gpio
          - const: fsl,imx7ulp-gpio
          - const: fsl,imx8ulp-gpio

  reg:
    description: The first reg tuple represents the PORT module, the second tuple
      represents the GPIO module.
    minItems: 1
    maxItems: 2

  interrupts:
    maxItems: 1
    items:
      - description: GPIO Trustzone non-secure interrupt number
      - description: GPIO Trustzone secure interrupt number
    minItems: 1

  interrupt-controller: true

@@ -78,6 +80,30 @@ required:
  - "#gpio-cells"
  - gpio-controller

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,vf610-gpio
              - fsl,imx7ulp-gpio
    then:
      properties:
        interrupts:
          maxItems: 1
        reg:
          items:
            - description: PORT register base address
            - description: GPIO register base address
    else:
      properties:
        interrupts:
          minItems: 2
        reg:
          items:
            - description: GPIO register base address

additionalProperties: false

examples: