Hi, On 6/5/25 3:28 PM, John Ernberg wrote: > NXP SoCs like the iMX8QM, iMX8QXP or iMX8DXP use power domains for > resource management. > > Add compatible strings for these SoCs (QXP and DXP gets to share as their > only difference is a core-count, Q=Quad core and D=Dual core), and allow > power-domains for them only. Keep the old restriction for others. > > Signed-off-by: John Ernberg <john.ernberg@xxxxxxxx> > > --- > > v4: > - Reword commit message (Frank Li) > - Add explicit imx8qxp compatible (Frank Li) > - Move the job-ring constraints back to the job-ring section under an > 'allOf:' to avoid the warning from v2 (Rob Herring) > > v3: > - Fix warnings discovered by Rob Herring's bot > - Declare the compatibles correctly (Krzysztof Kozlowski) > > v2: > - Adjust commit message (Frank Li) > - Only allow power-domains when compatible with imx8qm (Frank Li) > --- > .../bindings/crypto/fsl,sec-v4.0.yaml | 41 ++++++++++++++++++- > 1 file changed, 40 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/crypto/fsl,sec-v4.0.yaml b/Documentation/devicetree/bindings/crypto/fsl,sec-v4.0.yaml > index 75afa441e019..eab43e7a354c 100644 > --- a/Documentation/devicetree/bindings/crypto/fsl,sec-v4.0.yaml > +++ b/Documentation/devicetree/bindings/crypto/fsl,sec-v4.0.yaml > @@ -46,6 +46,8 @@ properties: > - items: > - enum: > - fsl,imx6ul-caam > + - fsl,imx8qm-caam > + - fsl,imx8qxp-caam > - fsl,sec-v5.0 > - const: fsl,sec-v4.0 > - const: fsl,sec-v4.0 > @@ -77,6 +79,9 @@ properties: > interrupts: > maxItems: 1 > > + power-domains: > + maxItems: 1 > + > fsl,sec-era: > description: Defines the 'ERA' of the SEC device. > $ref: /schemas/types.yaml#/definitions/uint32 > @@ -106,7 +111,10 @@ patternProperties: > - const: fsl,sec-v5.0-job-ring > - const: fsl,sec-v4.0-job-ring > - items: > - - const: fsl,sec-v5.0-job-ring > + - enum: > + - fsl,imx8qm-job-ring > + - fsl,imx8qxp-job-ring > + - fsl,sec-v5.0-job-ring > - const: fsl,sec-v4.0-job-ring > - const: fsl,sec-v4.0-job-ring > > @@ -116,6 +124,9 @@ patternProperties: > interrupts: > maxItems: 1 > > + power-domains: > + maxItems: 1 > + > fsl,liodn: > description: > Specifies the LIODN to be used in conjunction with the ppid-to-liodn > @@ -125,6 +136,20 @@ patternProperties: > $ref: /schemas/types.yaml#/definitions/uint32-array > items: > - maximum: 0xfff > + allOf: > + - if: > + properties: > + compatible: > + contains: > + enum: > + - fsl,imx8qm-job-ring > + - fsl,imx8qxp-job-ring > + then: > + required: > + - power-domains > + else: > + properties: > + power-domains: false To dodge the allOf here I had to make some changes to dt-schema nodes.yaml. Is the allOf OK or does the changes look like something that should be submitted formally? Thanks! // John Ernberg ------------------>8------------------ From 39e3c85e53ab570fdd5d5a93156a8a486ef20f0c Mon Sep 17 00:00:00 2001 From: John Ernberg <john.ernberg@xxxxxxxx> Date: Wed, 4 Jun 2025 15:12:55 +0200 Subject: [PATCH] schemas: nodes: Allow if-then-else in patternProperties objects Having local if-then-else statements under e.g. a patternProperties object node causes a schema warning about an unexpected statement. Allow this construct to reduce size of if-then-else blocks that would otherwise need to occur at the top level, making them easier to read, and more localized to what they are controlling. Signed-off-by: John Ernberg <john.ernberg@xxxxxxxx> --- dtschema/meta-schemas/nodes.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dtschema/meta-schemas/nodes.yaml b/dtschema/meta-schemas/nodes.yaml index 0b2c8f7..e45cb45 100644 --- a/dtschema/meta-schemas/nodes.yaml +++ b/dtschema/meta-schemas/nodes.yaml @@ -27,6 +27,9 @@ propertyNames: - deprecated - required - not + - if + - else + - then - allOf - anyOf - oneOf