On Thu, Feb 9, 2023 at 7:34 AM Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> wrote: > > Since R-Car Gen4 doens't have the main IPMMU IMSSTR register, update > the renesas,ipmmu-main property which sets maxItems as 1. > > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> > --- > Changes from v2: > https://lore.kernel.org/all/20230127140446.1728102-1-yoshihiro.shimoda.uh@xxxxxxxxxxx/ > - Set maxItems to renesas,ipmmu-main if R-Car Gen4. > > Changes from v1: > https://lore.kernel.org/all/20230123012940.1250879-1-yoshihiro.shimoda.uh@xxxxxxxxxxx/ > - Change number of argument for R-Car Gen4 instead of "module id". > On the discussion, using 'minItems' is a solution. But, it causes > "too short" errors on dtbs_check. So, using "oneOf" instead. > > .../bindings/iommu/renesas,ipmmu-vmsa.yaml | 19 ++++++++++++++----- > 1 file changed, 14 insertions(+), 5 deletions(-) > > diff --git a/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml b/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml > index 72308a4c14e7..cc81bce44f3f 100644 > --- a/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml > +++ b/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml > @@ -74,11 +74,10 @@ properties: > renesas,ipmmu-main: > $ref: /schemas/types.yaml#/definitions/phandle-array > items: > - - items: > - - description: phandle to main IPMMU > - - description: the interrupt bit number associated with the particular > - cache IPMMU device. The interrupt bit number needs to match the main > - IPMMU IMSSTR register. Only used by cache IPMMU instances. > + - description: phandle to main IPMMU > + - description: the interrupt bit number associated with the particular > + cache IPMMU device. The interrupt bit number needs to match the main > + IPMMU IMSSTR register. Only used by cache IPMMU instances. This is wrong. phandle-array is really a matrix. What you need is: items: - minItems: 1 items: - description: ... - description: ... > description: > Reference to the main IPMMU phandle plus 1 cell. The cell is > the interrupt bit number associated with the particular cache IPMMU > @@ -109,6 +108,16 @@ allOf: > required: > - power-domains > > + - if: > + properties: > + compatible: > + contains: > + const: renesas,rcar-gen4-ipmmu-vmsa > + then: > + properties: > + renesas,ipmmu-main: > + maxItems: 1 With the above, this is then: items: - maxItems: 1 Then an else with: items: - minItems: 2