[PATCH 1/2] soc: imx: gpc: Add i.MX6SX PCI power domain
Lucas Stach
l.stach at pengutronix.de
Fri Dec 15 01:25:46 PST 2017
Am Freitag, den 15.12.2017, 00:24 -0200 schrieb Fabio Estevam:
> > From: Fabio Estevam <fabio.estevam at nxp.com>
>
> i.MX6SX has a PCI power domain in PGC. Add support for it.
>
> Signed-off-by: Fabio Estevam <fabio.estevam at nxp.com>
Seems like the GPC rework did turn out to work as expected by making it
easy to add additional power domains. :)
I didn't validate the register offsets, so this is:
Acked-by: Lucas Stach <l.stach at pengutronix.de>
> ---
> Documentation/devicetree/bindings/power/fsl,imx-gpc.txt | 3 +++
> drivers/soc/imx/gpc.c | 16 +++++++++++++++-
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/power/fsl,imx-gpc.txt b/Documentation/devicetree/bindings/power/fsl,imx-gpc.txt
> index e371b26..441f71e 100644
> --- a/Documentation/devicetree/bindings/power/fsl,imx-gpc.txt
> +++ b/Documentation/devicetree/bindings/power/fsl,imx-gpc.txt
> @@ -9,6 +9,7 @@ Required properties:
> - fsl,imx6q-gpc
> - fsl,imx6qp-gpc
> - fsl,imx6sl-gpc
> + - fsl,imx6sx-gpc
> - reg: should be register base and length as documented in the
> datasheet
> - interrupts: Should contain one interrupt specifier for the GPC interrupt
> @@ -29,6 +30,8 @@ Required properties:
> PU_DOMAIN 1
> The following additional DOMAIN_INDEX value is valid for i.MX6SL:
> DISPLAY_DOMAIN 2
> + The following additional DOMAIN_INDEX value is valid for i.MX6SX:
> + PCI_DOMAIN 3
>
> - #power-domain-cells: Should be 0
>
> diff --git a/drivers/soc/imx/gpc.c b/drivers/soc/imx/gpc.c
> index 47e7aa9..53f7275 100644
> --- a/drivers/soc/imx/gpc.c
> +++ b/drivers/soc/imx/gpc.c
> @@ -273,7 +273,15 @@ static struct imx_pm_domain imx_gpc_domains[] = {
> > },
> > .reg_offs = 0x240,
> > .cntr_pdn_bit = 4,
> > - }
> > + }, {
> > + .base = {
> > + .name = "PCI",
> > + .power_off = imx6_pm_domain_power_off,
> > + .power_on = imx6_pm_domain_power_on,
> > + },
> > + .reg_offs = 0x200,
> > + .cntr_pdn_bit = 6,
> > + },
> };
>
> struct imx_gpc_dt_data {
> @@ -296,10 +304,16 @@ static const struct imx_gpc_dt_data imx6sl_dt_data = {
> > .err009619_present = false,
> };
>
> +static const struct imx_gpc_dt_data imx6sx_dt_data = {
> > + .num_domains = 4,
> > + .err009619_present = false,
> +};
> +
> static const struct of_device_id imx_gpc_dt_ids[] = {
> > { .compatible = "fsl,imx6q-gpc", .data = &imx6q_dt_data },
> > { .compatible = "fsl,imx6qp-gpc", .data = &imx6qp_dt_data },
> > { .compatible = "fsl,imx6sl-gpc", .data = &imx6sl_dt_data },
> > + { .compatible = "fsl,imx6sx-gpc", .data = &imx6sx_dt_data },
> > { }
> };
>
More information about the linux-arm-kernel
mailing list