Message ID | 20240918182117.86221-2-laurentiumihalcea111@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | configure imx8 dsp DT node for rproc usage | expand |
On Wed, Sep 18, 2024 at 02:21:13PM -0400, Laurentiu Mihalcea wrote: > From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > > Per the current binding, QM/QXP DSPs are supposed > to have 4 power domains, while the rest just 1. > For QM/QXP, the 4 power domains are: DSP, DSP_RAM, > MU13A, MU13B. > > First off, drop MU13A from the count. This is attached > to the platform device of lsio_mu13. This decreases the > count to 3. > > Secondly, drop DSP and DSP_RAM from the count for QXP. > These are attached to the platform devices of the lpcgs > (used as clock providers for the DSP). > > With this in mind, the number of required power domains for > QXP is 1 (MU13B), while for QM it's 3 (MU13B, DSP, DSP_RAM). > > Additionally, two extra power domains may be required in the > case of QM/QXP DSPs. These are IRQSTR_DSP and MU2A. For the nodes > using the "-hifi4" compatibles these PDs are optional, while for > nodes using the "-dsp" compatibles these are mandatory. > > These changes reflect all of this information. Can you wrap message to 75 char? > > Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > --- > .../devicetree/bindings/dsp/fsl,dsp.yaml | 62 +++++++++++++++---- > 1 file changed, 49 insertions(+), 13 deletions(-) > > diff --git a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml > index 9af40da5688e..e2f016af1048 100644 > --- a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml > +++ b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml > @@ -51,8 +51,6 @@ properties: > description: > List of phandle and PM domain specifier as documented in > Documentation/devicetree/bindings/power/power_domain.txt > - minItems: 1 > - maxItems: 4 > > mboxes: > description: > @@ -97,16 +95,55 @@ allOf: > properties: > compatible: > contains: > - enum: > - - fsl,imx8qxp-dsp > - - fsl,imx8qm-dsp > - - fsl,imx8qxp-hifi4 > - - fsl,imx8qm-hifi4 > + const: fsl,imx8qxp-hifi4 > then: > properties: > power-domains: > - minItems: 4 > - else: > + maxItems: 3 > + > + - if: > + properties: > + compatible: > + contains: > + const: fsl,imx8qxp-dsp > + then: > + properties: > + power-domains: > + minItems: 3 > + maxItems: 3 I remember only need maxItems, if minItems == maxItems. Frank > + > + - if: > + properties: > + compatible: > + contains: > + const: fsl,imx8qm-dsp > + then: > + properties: > + power-domains: > + minItems: 5 > + maxItems: 5 > + > + - if: > + properties: > + compatible: > + contains: > + const: fsl,imx8qm-hifi4 > + then: > + properties: > + power-domains: > + minItems: 3 > + maxItems: 5 > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - fsl,imx8mp-dsp > + - fsl,imx8mp-hifi4 > + - fsl,imx8ulp-dsp > + - fsl,imx8ulp-hifi4 > + then: > properties: > power-domains: > maxItems: 1 > @@ -157,10 +194,9 @@ examples: > <&adma_lpcg IMX_ADMA_LPCG_OCRAM_IPG_CLK>, > <&adma_lpcg IMX_ADMA_LPCG_DSP_CORE_CLK>; > clock-names = "ipg", "ocram", "core"; > - power-domains = <&pd IMX_SC_R_MU_13A>, > - <&pd IMX_SC_R_MU_13B>, > - <&pd IMX_SC_R_DSP>, > - <&pd IMX_SC_R_DSP_RAM>; > + power-domains = <&pd IMX_SC_R_MU_13B>, > + <&pd IMX_SC_R_IRQSTR_DSP>, > + <&pd IMX_SC_R_MU_2A>; > mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; > mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>; > memory-region = <&dsp_reserved>; > -- > 2.34.1 >
On Wed, 18 Sep 2024 14:21:13 -0400, Laurentiu Mihalcea wrote: > From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > > Per the current binding, QM/QXP DSPs are supposed > to have 4 power domains, while the rest just 1. > For QM/QXP, the 4 power domains are: DSP, DSP_RAM, > MU13A, MU13B. > > First off, drop MU13A from the count. This is attached > to the platform device of lsio_mu13. This decreases the > count to 3. > > Secondly, drop DSP and DSP_RAM from the count for QXP. > These are attached to the platform devices of the lpcgs > (used as clock providers for the DSP). > > With this in mind, the number of required power domains for > QXP is 1 (MU13B), while for QM it's 3 (MU13B, DSP, DSP_RAM). > > Additionally, two extra power domains may be required in the > case of QM/QXP DSPs. These are IRQSTR_DSP and MU2A. For the nodes > using the "-hifi4" compatibles these PDs are optional, while for > nodes using the "-dsp" compatibles these are mandatory. > > These changes reflect all of this information. > > Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > --- > .../devicetree/bindings/dsp/fsl,dsp.yaml | 62 +++++++++++++++---- > 1 file changed, 49 insertions(+), 13 deletions(-) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mailbox/arm,mhuv2.example.dtb: dsp@596e8000: power-domains: [[4294967295, 0], [4294967295, 1], [4294967295, 2], [4294967295, 3]] is too long from schema $id: http://devicetree.org/schemas/dsp/fsl,dsp.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240918182117.86221-2-laurentiumihalcea111@gmail.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Wed, Sep 18, 2024 at 02:21:13PM -0400, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The subject should say this is for fsl,dsp, not *all* dsp's.
On 9/18/2024 9:49 PM, Frank Li wrote: > On Wed, Sep 18, 2024 at 02:21:13PM -0400, Laurentiu Mihalcea wrote: >> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> >> >> Per the current binding, QM/QXP DSPs are supposed >> to have 4 power domains, while the rest just 1. >> For QM/QXP, the 4 power domains are: DSP, DSP_RAM, >> MU13A, MU13B. >> >> First off, drop MU13A from the count. This is attached >> to the platform device of lsio_mu13. This decreases the >> count to 3. >> >> Secondly, drop DSP and DSP_RAM from the count for QXP. >> These are attached to the platform devices of the lpcgs >> (used as clock providers for the DSP). >> >> With this in mind, the number of required power domains for >> QXP is 1 (MU13B), while for QM it's 3 (MU13B, DSP, DSP_RAM). >> >> Additionally, two extra power domains may be required in the >> case of QM/QXP DSPs. These are IRQSTR_DSP and MU2A. For the nodes >> using the "-hifi4" compatibles these PDs are optional, while for >> nodes using the "-dsp" compatibles these are mandatory. >> >> These changes reflect all of this information. > Can you wrap message to 75 char? Shall fix in V2. > >> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> >> --- >> .../devicetree/bindings/dsp/fsl,dsp.yaml | 62 +++++++++++++++---- >> 1 file changed, 49 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml >> index 9af40da5688e..e2f016af1048 100644 >> --- a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml >> +++ b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml >> @@ -51,8 +51,6 @@ properties: >> description: >> List of phandle and PM domain specifier as documented in >> Documentation/devicetree/bindings/power/power_domain.txt >> - minItems: 1 >> - maxItems: 4 >> >> mboxes: >> description: >> @@ -97,16 +95,55 @@ allOf: >> properties: >> compatible: >> contains: >> - enum: >> - - fsl,imx8qxp-dsp >> - - fsl,imx8qm-dsp >> - - fsl,imx8qxp-hifi4 >> - - fsl,imx8qm-hifi4 >> + const: fsl,imx8qxp-hifi4 >> then: >> properties: >> power-domains: >> - minItems: 4 >> - else: >> + maxItems: 3 >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + const: fsl,imx8qxp-dsp >> + then: >> + properties: >> + power-domains: >> + minItems: 3 >> + maxItems: 3 > I remember only need maxItems, if minItems == maxItems. Might be off here but from my own testing and from looking at dtschema/fixups.py it would seem that's not really applicable to subschemas under "then"/"else" blocks. > > Frank >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + const: fsl,imx8qm-dsp >> + then: >> + properties: >> + power-domains: >> + minItems: 5 >> + maxItems: 5 >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + const: fsl,imx8qm-hifi4 >> + then: >> + properties: >> + power-domains: >> + minItems: 3 >> + maxItems: 5 >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - fsl,imx8mp-dsp >> + - fsl,imx8mp-hifi4 >> + - fsl,imx8ulp-dsp >> + - fsl,imx8ulp-hifi4 >> + then: >> properties: >> power-domains: >> maxItems: 1 >> @@ -157,10 +194,9 @@ examples: >> <&adma_lpcg IMX_ADMA_LPCG_OCRAM_IPG_CLK>, >> <&adma_lpcg IMX_ADMA_LPCG_DSP_CORE_CLK>; >> clock-names = "ipg", "ocram", "core"; >> - power-domains = <&pd IMX_SC_R_MU_13A>, >> - <&pd IMX_SC_R_MU_13B>, >> - <&pd IMX_SC_R_DSP>, >> - <&pd IMX_SC_R_DSP_RAM>; >> + power-domains = <&pd IMX_SC_R_MU_13B>, >> + <&pd IMX_SC_R_IRQSTR_DSP>, >> + <&pd IMX_SC_R_MU_2A>; >> mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; >> mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>; >> memory-region = <&dsp_reserved>; >> -- >> 2.34.1 >>
diff --git a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml index 9af40da5688e..e2f016af1048 100644 --- a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml +++ b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml @@ -51,8 +51,6 @@ properties: description: List of phandle and PM domain specifier as documented in Documentation/devicetree/bindings/power/power_domain.txt - minItems: 1 - maxItems: 4 mboxes: description: @@ -97,16 +95,55 @@ allOf: properties: compatible: contains: - enum: - - fsl,imx8qxp-dsp - - fsl,imx8qm-dsp - - fsl,imx8qxp-hifi4 - - fsl,imx8qm-hifi4 + const: fsl,imx8qxp-hifi4 then: properties: power-domains: - minItems: 4 - else: + maxItems: 3 + + - if: + properties: + compatible: + contains: + const: fsl,imx8qxp-dsp + then: + properties: + power-domains: + minItems: 3 + maxItems: 3 + + - if: + properties: + compatible: + contains: + const: fsl,imx8qm-dsp + then: + properties: + power-domains: + minItems: 5 + maxItems: 5 + + - if: + properties: + compatible: + contains: + const: fsl,imx8qm-hifi4 + then: + properties: + power-domains: + minItems: 3 + maxItems: 5 + + - if: + properties: + compatible: + contains: + enum: + - fsl,imx8mp-dsp + - fsl,imx8mp-hifi4 + - fsl,imx8ulp-dsp + - fsl,imx8ulp-hifi4 + then: properties: power-domains: maxItems: 1 @@ -157,10 +194,9 @@ examples: <&adma_lpcg IMX_ADMA_LPCG_OCRAM_IPG_CLK>, <&adma_lpcg IMX_ADMA_LPCG_DSP_CORE_CLK>; clock-names = "ipg", "ocram", "core"; - power-domains = <&pd IMX_SC_R_MU_13A>, - <&pd IMX_SC_R_MU_13B>, - <&pd IMX_SC_R_DSP>, - <&pd IMX_SC_R_DSP_RAM>; + power-domains = <&pd IMX_SC_R_MU_13B>, + <&pd IMX_SC_R_IRQSTR_DSP>, + <&pd IMX_SC_R_MU_2A>; mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>; memory-region = <&dsp_reserved>;