mbox series

[0/5] imx: support noc settings with power domain

Message ID 20220406082330.2681591-1-peng.fan@oss.nxp.com
Headers show
Series imx: support noc settings with power domain | expand

Message

Peng Fan (OSS) April 6, 2022, 8:23 a.m. UTC
From: Peng Fan <peng.fan@nxp.com>

i.MX8MP has a design that NoC(Not main NoC) is distributed in multiple
blocks, such as vpumix, hsiomix and etc. The access to NoC requires
power domain on and blk ctrl settings configured.

So the design here is for mixes that not have blk-ctrl, configure
the NoC in gpcv2 driver, for mixes that have blk-ctrl, configure
the NoC in blk-ctrl drivers.

This v1 patchset not apply on Shawn's tree, I picked up Lucas's HSIO
and Laurent's mediablk patches, then worked out this patchset:
https://github.com/MrVan/linux/tree/noc-imx8mp

Note: This interconnect related functions not added. This patchset
is only to replace the function did in NXP downstream:
https://source.codeaurora.org/external/imx/imx-atf/tree/plat/imx/imx8m/imx8mp/gpc.c?h=lf_v2.4#n157

Peng Fan (5):
  dt-bindings: interconnect: imx8m: Add bindings for imx8mp noc
  arm64: dts: imx8mp: add noc node
  soc: imx: gpcv2: support i.MX8MP NoC settings
  soc: imx: imx8m-blk-ctrl: support i.MX8MP media blk ctrl noc settings
  soc: imx: imx8mp-blk-ctrl: introduce HSIO blk ctrl noc settings

 .../bindings/interconnect/fsl,imx8m-noc.yaml  |   6 +
 arch/arm64/boot/dts/freescale/imx8mp.dtsi     |   7 ++
 drivers/soc/imx/gpcv2.c                       |  56 ++++++++-
 drivers/soc/imx/imx8m-blk-ctrl.c              | 109 ++++++++++++++++++
 drivers/soc/imx/imx8mp-blk-ctrl.c             |  74 ++++++++++++
 5 files changed, 251 insertions(+), 1 deletion(-)

Comments

Laurent Pinchart April 6, 2022, 8:40 a.m. UTC | #1
Hi Peng,

Thank you for the patch.

On Wed, Apr 06, 2022 at 04:23:26PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@nxp.com>
> 
> i.MX8MP features same NoC/NIC as i.MX8MM/N/Q, and use two compatible
> strings.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  .../devicetree/bindings/interconnect/fsl,imx8m-noc.yaml     | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yaml b/Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yaml
> index b8204ed22dd5..0923cd28d6c6 100644
> --- a/Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yaml
> +++ b/Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yaml
> @@ -26,16 +26,22 @@ properties:
>      oneOf:
>        - items:
>            - enum:
> +              - fsl,imx8mp-nic
>                - fsl,imx8mn-nic
>                - fsl,imx8mm-nic
>                - fsl,imx8mq-nic

Alphabetical order would be nice here, maybe you could sort those
entries while at it ?

>            - const: fsl,imx8m-nic

Why do we need both -nic and -noc versions of the compatible string btw
? The imx-bus driver matches on

	{ .compatible = "fsl,imx8mq-noc", .data = "imx8mq-interconnect", },
	{ .compatible = "fsl,imx8mm-noc", .data = "imx8mm-interconnect", },
	{ .compatible = "fsl,imx8mn-noc", .data = "imx8mn-interconnect", },
	{ .compatible = "fsl,imx8m-noc", },
	{ .compatible = "fsl,imx8m-nic", },

>        - items:
>            - enum:
> +              - fsl,imx8mp-noc
>                - fsl,imx8mn-noc
>                - fsl,imx8mm-noc
>                - fsl,imx8mq-noc

Same here.

>            - const: fsl,imx8m-noc
> +      - items:
> +          - const: fsl,imx8mp-noc
> +          - const: fsl,imx8m-noc
> +          - const: syscon

Do we want to support both

	compatible = "fsl,imx8mp-noc", "fsl,imx8m-noc";

and

	compatible = "fsl,imx8mp-noc", "fsl,imx8m-noc", "syscon";

or we can pick one of the two (the latter one in that case I suppose) ?

>        - const: fsl,imx8m-nic
>  
>    reg:
Lucas Stach April 6, 2022, 9:47 a.m. UTC | #2
Hi Peng,

Am Mittwoch, dem 06.04.2022 um 16:23 +0800 schrieb Peng Fan (OSS):
> From: Peng Fan <peng.fan@nxp.com>
> 
> i.MX8MP has a design that NoC(Not main NoC) is distributed in multiple
> blocks, such as vpumix, hsiomix and etc. The access to NoC requires
> power domain on and blk ctrl settings configured.
> 
> So the design here is for mixes that not have blk-ctrl, configure
> the NoC in gpcv2 driver, for mixes that have blk-ctrl, configure
> the NoC in blk-ctrl drivers.
> 
> This v1 patchset not apply on Shawn's tree, I picked up Lucas's HSIO
> and Laurent's mediablk patches, then worked out this patchset:
> https://github.com/MrVan/linux/tree/noc-imx8mp
> 
> Note: This interconnect related functions not added. This patchset
> is only to replace the function did in NXP downstream:
> https://source.codeaurora.org/external/imx/imx-atf/tree/plat/imx/imx8m/imx8mp/gpc.c?h=lf_v2.4#n157

As a general comment I think this is implemented the wrong way around.

Neither GPC, nor the blk-ctrl should poke into the NoC registers
directly. The NoC driver should attach itself to the power domain via a
notifier (same as the blk-ctrl does with the GPC domains) and should do
the necessary NoC configuration when the power domain is powered up.

Regards,
Lucas
> 
> Peng Fan (5):
>   dt-bindings: interconnect: imx8m: Add bindings for imx8mp noc
>   arm64: dts: imx8mp: add noc node
>   soc: imx: gpcv2: support i.MX8MP NoC settings
>   soc: imx: imx8m-blk-ctrl: support i.MX8MP media blk ctrl noc settings
>   soc: imx: imx8mp-blk-ctrl: introduce HSIO blk ctrl noc settings
> 
>  .../bindings/interconnect/fsl,imx8m-noc.yaml  |   6 +
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi     |   7 ++
>  drivers/soc/imx/gpcv2.c                       |  56 ++++++++-
>  drivers/soc/imx/imx8m-blk-ctrl.c              | 109 ++++++++++++++++++
>  drivers/soc/imx/imx8mp-blk-ctrl.c             |  74 ++++++++++++
>  5 files changed, 251 insertions(+), 1 deletion(-)
>
Peng Fan April 6, 2022, 11:21 a.m. UTC | #3
> Subject: Re: [PATCH 1/5] dt-bindings: interconnect: imx8m: Add bindings for
> imx8mp noc
> 
> Hi Peng,
> 
> Thank you for the patch.
> 
> On Wed, Apr 06, 2022 at 04:23:26PM +0800, Peng Fan (OSS) wrote:
> > From: Peng Fan <peng.fan@nxp.com>
> >
> > i.MX8MP features same NoC/NIC as i.MX8MM/N/Q, and use two
> compatible
> > strings.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >  .../devicetree/bindings/interconnect/fsl,imx8m-noc.yaml     | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yaml
> > b/Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yaml
> > index b8204ed22dd5..0923cd28d6c6 100644
> > ---
> > a/Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yaml
> > +++
> b/Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yam
> > +++ l
> > @@ -26,16 +26,22 @@ properties:
> >      oneOf:
> >        - items:
> >            - enum:
> > +              - fsl,imx8mp-nic
> >                - fsl,imx8mn-nic
> >                - fsl,imx8mm-nic
> >                - fsl,imx8mq-nic
> 
> Alphabetical order would be nice here, maybe you could sort those entries
> while at it ?

Sure.

> 
> >            - const: fsl,imx8m-nic
> 
> Why do we need both -nic and -noc versions of the compatible string btw ?
> The imx-bus driver matches on

There is NoC and PL301 NIC in i.MX8M*.

> 
> 	{ .compatible = "fsl,imx8mq-noc", .data = "imx8mq-interconnect", },
> 	{ .compatible = "fsl,imx8mm-noc", .data = "imx8mm-interconnect", },
> 	{ .compatible = "fsl,imx8mn-noc", .data = "imx8mn-interconnect", },
> 	{ .compatible = "fsl,imx8m-noc", },
> 	{ .compatible = "fsl,imx8m-nic", },
> 
> >        - items:
> >            - enum:
> > +              - fsl,imx8mp-noc
> >                - fsl,imx8mn-noc
> >                - fsl,imx8mm-noc
> >                - fsl,imx8mq-noc
> 
> Same here.
> 
> >            - const: fsl,imx8m-noc
> > +      - items:
> > +          - const: fsl,imx8mp-noc
> > +          - const: fsl,imx8m-noc
> > +          - const: syscon
> 
> Do we want to support both
> 
> 	compatible = "fsl,imx8mp-noc", "fsl,imx8m-noc";
> 
> and
> 
> 	compatible = "fsl,imx8mp-noc", "fsl,imx8m-noc", "syscon";
> 
> or we can pick one of the two (the latter one in that case I suppose) ?

Latter one should be ok.

Thanks
Peng.

> 
> >        - const: fsl,imx8m-nic
> >
> >    reg:
> 
> --
> Regards,
> 
> Laurent Pinchart