On Mon, Sep 18, 2023 at 04:16:06PM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@xxxxxxx> > > 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 > > Signed-off-by: Peng Fan <peng.fan@xxxxxxx> > --- > .../devicetree/bindings/gpio/gpio-vf610.yaml | 36 +++++++++++++++++++--- > 1 file changed, 31 insertions(+), 5 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml b/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml > index 59427d97adf5..5243b4cf1235 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml > +++ b/Documentation/devicetree/bindings/gpio/gpio-vf610.yaml > @@ -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: > + maxItems: 2 Doesn't this default to 2 because there are 2 items in your list of interrupts as things stand? Otherwise, this seems fine to me, provided the existing platforms are going to be broken as you implement the software side of this change. Thanks, Conor. > + reg: > + items: > + - description: GPIO register base address > + > additionalProperties: false > > examples: > > -- > 2.37.1 >
Attachment:
signature.asc
Description: PGP signature