* [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: linux-arm-kernel This patch adds device tree bindings document for ZTE zx2967 family power domain controller. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- .../devicetree/bindings/soc/zte/pd-2967xx.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt diff --git a/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt b/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt new file mode 100644 index 0000000..7629de1 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt @@ -0,0 +1,19 @@ +* ZTE zx2967 family Power Domains + +zx2967 family includes support for multiple power domains which are used +to gate power to one or more peripherals on the processor. + +Required Properties: + - compatible: should be one of the following. + * zte,zx296718-pcu - for zx296718 power domain. + - reg: physical base address of the controller and length of memory mapped + region. + - #power-domain-cells: Must be 1. + +Example: + + pcu_domain: pcu at 117000 { + compatible = "zte,zx296718-pcu"; + reg = <0x00117000 0x1000>; + #power-domain-cells = <1>; + }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, linux-kernel, Baoyou Xie This patch adds device tree bindings document for ZTE zx2967 family power domain controller. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- .../devicetree/bindings/soc/zte/pd-2967xx.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt diff --git a/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt b/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt new file mode 100644 index 0000000..7629de1 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt @@ -0,0 +1,19 @@ +* ZTE zx2967 family Power Domains + +zx2967 family includes support for multiple power domains which are used +to gate power to one or more peripherals on the processor. + +Required Properties: + - compatible: should be one of the following. + * zte,zx296718-pcu - for zx296718 power domain. + - reg: physical base address of the controller and length of memory mapped + region. + - #power-domain-cells: Must be 1. + +Example: + + pcu_domain: pcu@117000 { + compatible = "zte,zx296718-pcu"; + reg = <0x00117000 0x1000>; + #power-domain-cells = <1>; + }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: devicetree, Baoyou Xie, linux-kernel, linux-arm-kernel This patch adds device tree bindings document for ZTE zx2967 family power domain controller. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- .../devicetree/bindings/soc/zte/pd-2967xx.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt diff --git a/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt b/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt new file mode 100644 index 0000000..7629de1 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt @@ -0,0 +1,19 @@ +* ZTE zx2967 family Power Domains + +zx2967 family includes support for multiple power domains which are used +to gate power to one or more peripherals on the processor. + +Required Properties: + - compatible: should be one of the following. + * zte,zx296718-pcu - for zx296718 power domain. + - reg: physical base address of the controller and length of memory mapped + region. + - #power-domain-cells: Must be 1. + +Example: + + pcu_domain: pcu@117000 { + compatible = "zte,zx296718-pcu"; + reg = <0x00117000 0x1000>; + #power-domain-cells = <1>; + }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 2/5] MAINTAINERS: add zx2967 SoC drivers to ARM ZTE architecture 2017-01-06 9:16 ` Baoyou Xie (?) @ 2017-01-06 9:16 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: linux-arm-kernel Add the ZTE SoC drivers as maintained by ARM ZTE architecture maintainers, as they're parts of the core IP. By the way, this patch adds the maintainer for ARM ZTE architecture to Baoyou Xie. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- MAINTAINERS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index ad199da..64f04df 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1975,12 +1975,16 @@ F: arch/arm/mach-pxa/include/mach/z2.h ARM/ZTE ARCHITECTURE M: Jun Nie <jun.nie@linaro.org> +M: Baoyou Xie <baoyou.xie@linaro.org> L: linux-arm-kernel at lists.infradead.org (moderated for non-subscribers) S: Maintained F: arch/arm/mach-zx/ F: drivers/clk/zte/ +F: drivers/soc/zte/ F: Documentation/devicetree/bindings/arm/zte.txt F: Documentation/devicetree/bindings/clock/zx296702-clk.txt +F: Documentation/devicetree/bindings/soc/zte/ +F: include/dt-bindings/soc/zx*.h ARM/ZYNQ ARCHITECTURE M: Michal Simek <michal.simek@xilinx.com> -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 2/5] MAINTAINERS: add zx2967 SoC drivers to ARM ZTE architecture @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, linux-kernel, Baoyou Xie Add the ZTE SoC drivers as maintained by ARM ZTE architecture maintainers, as they're parts of the core IP. By the way, this patch adds the maintainer for ARM ZTE architecture to Baoyou Xie. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- MAINTAINERS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index ad199da..64f04df 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1975,12 +1975,16 @@ F: arch/arm/mach-pxa/include/mach/z2.h ARM/ZTE ARCHITECTURE M: Jun Nie <jun.nie@linaro.org> +M: Baoyou Xie <baoyou.xie@linaro.org> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained F: arch/arm/mach-zx/ F: drivers/clk/zte/ +F: drivers/soc/zte/ F: Documentation/devicetree/bindings/arm/zte.txt F: Documentation/devicetree/bindings/clock/zx296702-clk.txt +F: Documentation/devicetree/bindings/soc/zte/ +F: include/dt-bindings/soc/zx*.h ARM/ZYNQ ARCHITECTURE M: Michal Simek <michal.simek@xilinx.com> -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 2/5] MAINTAINERS: add zx2967 SoC drivers to ARM ZTE architecture @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: devicetree, Baoyou Xie, linux-kernel, linux-arm-kernel Add the ZTE SoC drivers as maintained by ARM ZTE architecture maintainers, as they're parts of the core IP. By the way, this patch adds the maintainer for ARM ZTE architecture to Baoyou Xie. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- MAINTAINERS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index ad199da..64f04df 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1975,12 +1975,16 @@ F: arch/arm/mach-pxa/include/mach/z2.h ARM/ZTE ARCHITECTURE M: Jun Nie <jun.nie@linaro.org> +M: Baoyou Xie <baoyou.xie@linaro.org> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained F: arch/arm/mach-zx/ F: drivers/clk/zte/ +F: drivers/soc/zte/ F: Documentation/devicetree/bindings/arm/zte.txt F: Documentation/devicetree/bindings/clock/zx296702-clk.txt +F: Documentation/devicetree/bindings/soc/zte/ +F: include/dt-bindings/soc/zx*.h ARM/ZYNQ ARCHITECTURE M: Michal Simek <michal.simek@xilinx.com> -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH v7 2/5] MAINTAINERS: add zx2967 SoC drivers to ARM ZTE architecture 2017-01-06 9:16 ` Baoyou Xie (?) (?) @ 2017-01-06 9:19 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:19 UTC (permalink / raw) To: Jun Nie, Rob Herring, mark.rutland, Greg KH, davem, geert+renesas, akpm, mchehab, krzk, Arnd Bergmann, claudiu.manoil, amit daniel, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, Linux Kernel Mailing List, Baoyou Xie, Shawn Guo, xie.baoyou, chen.chaokai, wang.qiang01 [-- Attachment #1: Type: text/plain, Size: 1187 bytes --] +Shawn On 6 January 2017 at 17:16, Baoyou Xie <baoyou.xie@linaro.org> wrote: > Add the ZTE SoC drivers as maintained by ARM ZTE > architecture maintainers, as they're parts of the core IP. > > By the way, this patch adds the maintainer for ARM > ZTE architecture to Baoyou Xie. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > --- > MAINTAINERS | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/MAINTAINERS b/MAINTAINERS > index ad199da..64f04df 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1975,12 +1975,16 @@ F: arch/arm/mach-pxa/include/mach/z2.h > > ARM/ZTE ARCHITECTURE > M: Jun Nie <jun.nie@linaro.org> > +M: Baoyou Xie <baoyou.xie@linaro.org> > L: linux-arm-kernel@lists.infradead.org (moderated for > non-subscribers) > S: Maintained > F: arch/arm/mach-zx/ > F: drivers/clk/zte/ > +F: drivers/soc/zte/ > F: Documentation/devicetree/bindings/arm/zte.txt > F: Documentation/devicetree/bindings/clock/zx296702-clk.txt > +F: Documentation/devicetree/bindings/soc/zte/ > +F: include/dt-bindings/soc/zx*.h > > ARM/ZYNQ ARCHITECTURE > M: Michal Simek <michal.simek@xilinx.com> > -- > 2.7.4 > > [-- Attachment #2: Type: text/html, Size: 1989 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v7 3/5] soc: zte: Add header for PM domains specifiers 2017-01-06 9:16 ` Baoyou Xie (?) @ 2017-01-06 9:16 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: linux-arm-kernel This patch adds header with values used for ZTE 2967 SoC's power domain driver. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- include/dt-bindings/soc/zte,pm_domains.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 include/dt-bindings/soc/zte,pm_domains.h diff --git a/include/dt-bindings/soc/zte,pm_domains.h b/include/dt-bindings/soc/zte,pm_domains.h new file mode 100644 index 0000000..a0b4019 --- /dev/null +++ b/include/dt-bindings/soc/zte,pm_domains.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2017 Linaro Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#ifndef _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H +#define _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H + +#define DM_ZX296718_SAPPU 0 +#define DM_ZX296718_VDE 1 /* g1v6 */ +#define DM_ZX296718_VCE 2 /* h1v6 */ +#define DM_ZX296718_HDE 3 /* g2v2 */ +#define DM_ZX296718_VIU 4 +#define DM_ZX296718_USB20 5 +#define DM_ZX296718_USB21 6 +#define DM_ZX296718_USB30 7 +#define DM_ZX296718_HSIC 8 +#define DM_ZX296718_GMAC 9 +#define DM_ZX296718_TS 10 +#define DM_ZX296718_VOU 11 + +#endif /* _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H */ -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 3/5] soc: zte: Add header for PM domains specifiers @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, linux-kernel, Baoyou Xie This patch adds header with values used for ZTE 2967 SoC's power domain driver. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- include/dt-bindings/soc/zte,pm_domains.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 include/dt-bindings/soc/zte,pm_domains.h diff --git a/include/dt-bindings/soc/zte,pm_domains.h b/include/dt-bindings/soc/zte,pm_domains.h new file mode 100644 index 0000000..a0b4019 --- /dev/null +++ b/include/dt-bindings/soc/zte,pm_domains.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2017 Linaro Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#ifndef _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H +#define _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H + +#define DM_ZX296718_SAPPU 0 +#define DM_ZX296718_VDE 1 /* g1v6 */ +#define DM_ZX296718_VCE 2 /* h1v6 */ +#define DM_ZX296718_HDE 3 /* g2v2 */ +#define DM_ZX296718_VIU 4 +#define DM_ZX296718_USB20 5 +#define DM_ZX296718_USB21 6 +#define DM_ZX296718_USB30 7 +#define DM_ZX296718_HSIC 8 +#define DM_ZX296718_GMAC 9 +#define DM_ZX296718_TS 10 +#define DM_ZX296718_VOU 11 + +#endif /* _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H */ -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 3/5] soc: zte: Add header for PM domains specifiers @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: devicetree, Baoyou Xie, linux-kernel, linux-arm-kernel This patch adds header with values used for ZTE 2967 SoC's power domain driver. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- include/dt-bindings/soc/zte,pm_domains.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 include/dt-bindings/soc/zte,pm_domains.h diff --git a/include/dt-bindings/soc/zte,pm_domains.h b/include/dt-bindings/soc/zte,pm_domains.h new file mode 100644 index 0000000..a0b4019 --- /dev/null +++ b/include/dt-bindings/soc/zte,pm_domains.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2017 Linaro Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#ifndef _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H +#define _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H + +#define DM_ZX296718_SAPPU 0 +#define DM_ZX296718_VDE 1 /* g1v6 */ +#define DM_ZX296718_VCE 2 /* h1v6 */ +#define DM_ZX296718_HDE 3 /* g2v2 */ +#define DM_ZX296718_VIU 4 +#define DM_ZX296718_USB20 5 +#define DM_ZX296718_USB21 6 +#define DM_ZX296718_USB30 7 +#define DM_ZX296718_HSIC 8 +#define DM_ZX296718_GMAC 9 +#define DM_ZX296718_TS 10 +#define DM_ZX296718_VOU 11 + +#endif /* _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H */ -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH v7 3/5] soc: zte: Add header for PM domains specifiers 2017-01-06 9:16 ` Baoyou Xie (?) (?) @ 2017-01-06 9:19 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:19 UTC (permalink / raw) To: Jun Nie, Rob Herring, mark.rutland, Greg KH, davem, geert+renesas, akpm, mchehab, krzk, Arnd Bergmann, claudiu.manoil, amit daniel, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, Linux Kernel Mailing List, Baoyou Xie, Shawn Guo, xie.baoyou, chen.chaokai, wang.qiang01 [-- Attachment #1: Type: text/plain, Size: 1480 bytes --] + Shawn On 6 January 2017 at 17:16, Baoyou Xie <baoyou.xie@linaro.org> wrote: > This patch adds header with values used for ZTE 2967 > SoC's power domain driver. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > --- > include/dt-bindings/soc/zte,pm_domains.h | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > create mode 100644 include/dt-bindings/soc/zte,pm_domains.h > > diff --git a/include/dt-bindings/soc/zte,pm_domains.h > b/include/dt-bindings/soc/zte,pm_domains.h > new file mode 100644 > index 0000000..a0b4019 > --- /dev/null > +++ b/include/dt-bindings/soc/zte,pm_domains.h > @@ -0,0 +1,24 @@ > +/* > + * Copyright (C) 2017 Linaro Ltd. > + * > + * Author: Baoyou Xie <baoyou.xie@linaro.org> > + * License terms: GNU General Public License (GPL) version 2 > + */ > + > +#ifndef _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H > +#define _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H > + > +#define DM_ZX296718_SAPPU 0 > +#define DM_ZX296718_VDE 1 /* g1v6 */ > +#define DM_ZX296718_VCE 2 /* h1v6 */ > +#define DM_ZX296718_HDE 3 /* g2v2 */ > +#define DM_ZX296718_VIU 4 > +#define DM_ZX296718_USB20 5 > +#define DM_ZX296718_USB21 6 > +#define DM_ZX296718_USB30 7 > +#define DM_ZX296718_HSIC 8 > +#define DM_ZX296718_GMAC 9 > +#define DM_ZX296718_TS 10 > +#define DM_ZX296718_VOU 11 > + > +#endif /* _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H */ > -- > 2.7.4 > > [-- Attachment #2: Type: text/html, Size: 2175 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v7 4/5] soc: zte: pm_domains: Prepare for supporting ARMv8 zx2967 family 2017-01-06 9:16 ` Baoyou Xie (?) @ 2017-01-06 9:16 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: linux-arm-kernel The ARMv8 zx2967 family (296718, 296716 etc) uses different value for controlling the power domain on/off registers, Choose the value depending on the compatible. Multiple domains are prepared for the family, this patch prepares the common functions. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/zte/Kconfig | 13 ++++ drivers/soc/zte/Makefile | 4 + drivers/soc/zte/zx2967_pm_domains.c | 143 ++++++++++++++++++++++++++++++++++++ drivers/soc/zte/zx2967_pm_domains.h | 44 +++++++++++ 6 files changed, 206 insertions(+) create mode 100644 drivers/soc/zte/Kconfig create mode 100644 drivers/soc/zte/Makefile create mode 100644 drivers/soc/zte/zx2967_pm_domains.c create mode 100644 drivers/soc/zte/zx2967_pm_domains.h diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index f31bceb..f09023f 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -11,5 +11,6 @@ source "drivers/soc/tegra/Kconfig" source "drivers/soc/ti/Kconfig" source "drivers/soc/ux500/Kconfig" source "drivers/soc/versatile/Kconfig" +source "drivers/soc/zte/Kconfig" endmenu diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 50c23d0..05eae52 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -16,3 +16,4 @@ obj-$(CONFIG_ARCH_TEGRA) += tegra/ obj-$(CONFIG_SOC_TI) += ti/ obj-$(CONFIG_ARCH_U8500) += ux500/ obj-$(CONFIG_PLAT_VERSATILE) += versatile/ +obj-$(CONFIG_ARCH_ZX) += zte/ diff --git a/drivers/soc/zte/Kconfig b/drivers/soc/zte/Kconfig new file mode 100644 index 0000000..20bde38 --- /dev/null +++ b/drivers/soc/zte/Kconfig @@ -0,0 +1,13 @@ +# +# ZTE SoC drivers +# +menuconfig SOC_ZTE + bool "ZTE SoC driver support" + +if SOC_ZTE + +config ZX2967_PM_DOMAINS + bool "ZX2967 PM domains" + depends on PM_GENERIC_DOMAINS + +endif diff --git a/drivers/soc/zte/Makefile b/drivers/soc/zte/Makefile new file mode 100644 index 0000000..8a37f2f --- /dev/null +++ b/drivers/soc/zte/Makefile @@ -0,0 +1,4 @@ +# +# ZTE SOC drivers +# +obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx2967_pm_domains.o diff --git a/drivers/soc/zte/zx2967_pm_domains.c b/drivers/soc/zte/zx2967_pm_domains.c new file mode 100644 index 0000000..61c8d84 --- /dev/null +++ b/drivers/soc/zte/zx2967_pm_domains.c @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/io.h> +#include <linux/of.h> + +#include "zx2967_pm_domains.h" + +#define PCU_DM_CLKEN(zpd) ((zpd)->reg_offset[REG_CLKEN]) +#define PCU_DM_ISOEN(zpd) ((zpd)->reg_offset[REG_ISOEN]) +#define PCU_DM_RSTEN(zpd) ((zpd)->reg_offset[REG_RSTEN]) +#define PCU_DM_PWREN(zpd) ((zpd)->reg_offset[REG_PWREN]) +#define PCU_DM_ACK_SYNC(zpd) ((zpd)->reg_offset[REG_ACK_SYNC]) + +static void __iomem *pcubase; + +static int zx2967_power_on(struct generic_pm_domain *domain) +{ + struct zx2967_pm_domain *zpd = (struct zx2967_pm_domain *)domain; + unsigned long loop = 1000; + u32 val; + + val = readl_relaxed(pcubase + PCU_DM_PWREN(zpd)); + if (zpd->polarity == PWREN) + val |= BIT(zpd->bit); + else + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_PWREN(zpd)); + + do { + udelay(1); + val = readl_relaxed(pcubase + PCU_DM_ACK_SYNC(zpd)) + & BIT(zpd->bit); + } while (--loop && !val); + + if (!loop) { + pr_err("Error: %s %s fail\n", __func__, domain->name); + return -EIO; + } + + val = readl_relaxed(pcubase + PCU_DM_RSTEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_RSTEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_ISOEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_ISOEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_CLKEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_CLKEN(zpd)); + udelay(5); + + pr_debug("poweron %s\n", domain->name); + + return 0; +} + +static int zx2967_power_off(struct generic_pm_domain *domain) +{ + struct zx2967_pm_domain *zpd = (struct zx2967_pm_domain *)domain; + unsigned long loop = 1000; + u32 val; + + val = readl_relaxed(pcubase + PCU_DM_CLKEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_CLKEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_ISOEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_ISOEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_RSTEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_RSTEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_PWREN(zpd)); + if (zpd->polarity == PWREN) + val &= ~BIT(zpd->bit); + else + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_PWREN(zpd)); + + do { + udelay(1); + val = readl_relaxed(pcubase + PCU_DM_ACK_SYNC(zpd)) + & BIT(zpd->bit); + } while (--loop && val); + + if (!loop) { + pr_err("Error: %s %s fail\n", __func__, domain->name); + return -EIO; + } + + pr_debug("poweroff %s\n", domain->name); + + return 0; +} + +int zx2967_pd_probe(struct platform_device *pdev, + struct generic_pm_domain **zx_pm_domains, + int domain_num) +{ + struct genpd_onecell_data *genpd_data; + struct resource *res; + int i; + + genpd_data = devm_kzalloc(&pdev->dev, sizeof(*genpd_data), GFP_KERNEL); + if (!genpd_data) + return -ENOMEM; + + genpd_data->domains = zx_pm_domains; + genpd_data->num_domains = domain_num; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + pcubase = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(pcubase)) { + dev_err(&pdev->dev, "ioremap fail.\n"); + return PTR_ERR(pcubase); + } + + for (i = 0; i < domain_num; ++i) { + zx_pm_domains[i]->power_on = zx2967_power_on; + zx_pm_domains[i]->power_off = zx2967_power_off; + + pm_genpd_init(zx_pm_domains[i], NULL, false); + } + + of_genpd_add_provider_onecell(pdev->dev.of_node, genpd_data); + dev_info(&pdev->dev, "powerdomain init ok\n"); + return 0; +} diff --git a/drivers/soc/zte/zx2967_pm_domains.h b/drivers/soc/zte/zx2967_pm_domains.h new file mode 100644 index 0000000..cb46595 --- /dev/null +++ b/drivers/soc/zte/zx2967_pm_domains.h @@ -0,0 +1,44 @@ +/* + * Header for ZTE's Power Domain Driver support + * + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#ifndef __ZTE_ZX2967_PM_DOMAIN_H +#define __ZTE_ZX2967_PM_DOMAIN_H + +#include <linux/platform_device.h> +#include <linux/pm_domain.h> + +enum { + REG_CLKEN, + REG_ISOEN, + REG_RSTEN, + REG_PWREN, + REG_PWRDN, + REG_ACK_SYNC, + + /* The size of the array - must be last */ + REG_ARRAY_SIZE, +}; + +enum zx2967_power_polarity { + PWREN, + PWRDN, +}; + +struct zx2967_pm_domain { + struct generic_pm_domain dm; + const u16 bit; + const enum zx2967_power_polarity polarity; + const u16 *reg_offset; +}; + +int zx2967_pd_probe(struct platform_device *pdev, + struct generic_pm_domain **zx_pm_domains, + int domain_num); + +#endif /* __ZTE_ZX2967_PM_DOMAIN_H */ -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 4/5] soc: zte: pm_domains: Prepare for supporting ARMv8 zx2967 family @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, linux-kernel, Baoyou Xie The ARMv8 zx2967 family (296718, 296716 etc) uses different value for controlling the power domain on/off registers, Choose the value depending on the compatible. Multiple domains are prepared for the family, this patch prepares the common functions. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/zte/Kconfig | 13 ++++ drivers/soc/zte/Makefile | 4 + drivers/soc/zte/zx2967_pm_domains.c | 143 ++++++++++++++++++++++++++++++++++++ drivers/soc/zte/zx2967_pm_domains.h | 44 +++++++++++ 6 files changed, 206 insertions(+) create mode 100644 drivers/soc/zte/Kconfig create mode 100644 drivers/soc/zte/Makefile create mode 100644 drivers/soc/zte/zx2967_pm_domains.c create mode 100644 drivers/soc/zte/zx2967_pm_domains.h diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index f31bceb..f09023f 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -11,5 +11,6 @@ source "drivers/soc/tegra/Kconfig" source "drivers/soc/ti/Kconfig" source "drivers/soc/ux500/Kconfig" source "drivers/soc/versatile/Kconfig" +source "drivers/soc/zte/Kconfig" endmenu diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 50c23d0..05eae52 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -16,3 +16,4 @@ obj-$(CONFIG_ARCH_TEGRA) += tegra/ obj-$(CONFIG_SOC_TI) += ti/ obj-$(CONFIG_ARCH_U8500) += ux500/ obj-$(CONFIG_PLAT_VERSATILE) += versatile/ +obj-$(CONFIG_ARCH_ZX) += zte/ diff --git a/drivers/soc/zte/Kconfig b/drivers/soc/zte/Kconfig new file mode 100644 index 0000000..20bde38 --- /dev/null +++ b/drivers/soc/zte/Kconfig @@ -0,0 +1,13 @@ +# +# ZTE SoC drivers +# +menuconfig SOC_ZTE + bool "ZTE SoC driver support" + +if SOC_ZTE + +config ZX2967_PM_DOMAINS + bool "ZX2967 PM domains" + depends on PM_GENERIC_DOMAINS + +endif diff --git a/drivers/soc/zte/Makefile b/drivers/soc/zte/Makefile new file mode 100644 index 0000000..8a37f2f --- /dev/null +++ b/drivers/soc/zte/Makefile @@ -0,0 +1,4 @@ +# +# ZTE SOC drivers +# +obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx2967_pm_domains.o diff --git a/drivers/soc/zte/zx2967_pm_domains.c b/drivers/soc/zte/zx2967_pm_domains.c new file mode 100644 index 0000000..61c8d84 --- /dev/null +++ b/drivers/soc/zte/zx2967_pm_domains.c @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/io.h> +#include <linux/of.h> + +#include "zx2967_pm_domains.h" + +#define PCU_DM_CLKEN(zpd) ((zpd)->reg_offset[REG_CLKEN]) +#define PCU_DM_ISOEN(zpd) ((zpd)->reg_offset[REG_ISOEN]) +#define PCU_DM_RSTEN(zpd) ((zpd)->reg_offset[REG_RSTEN]) +#define PCU_DM_PWREN(zpd) ((zpd)->reg_offset[REG_PWREN]) +#define PCU_DM_ACK_SYNC(zpd) ((zpd)->reg_offset[REG_ACK_SYNC]) + +static void __iomem *pcubase; + +static int zx2967_power_on(struct generic_pm_domain *domain) +{ + struct zx2967_pm_domain *zpd = (struct zx2967_pm_domain *)domain; + unsigned long loop = 1000; + u32 val; + + val = readl_relaxed(pcubase + PCU_DM_PWREN(zpd)); + if (zpd->polarity == PWREN) + val |= BIT(zpd->bit); + else + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_PWREN(zpd)); + + do { + udelay(1); + val = readl_relaxed(pcubase + PCU_DM_ACK_SYNC(zpd)) + & BIT(zpd->bit); + } while (--loop && !val); + + if (!loop) { + pr_err("Error: %s %s fail\n", __func__, domain->name); + return -EIO; + } + + val = readl_relaxed(pcubase + PCU_DM_RSTEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_RSTEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_ISOEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_ISOEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_CLKEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_CLKEN(zpd)); + udelay(5); + + pr_debug("poweron %s\n", domain->name); + + return 0; +} + +static int zx2967_power_off(struct generic_pm_domain *domain) +{ + struct zx2967_pm_domain *zpd = (struct zx2967_pm_domain *)domain; + unsigned long loop = 1000; + u32 val; + + val = readl_relaxed(pcubase + PCU_DM_CLKEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_CLKEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_ISOEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_ISOEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_RSTEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_RSTEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_PWREN(zpd)); + if (zpd->polarity == PWREN) + val &= ~BIT(zpd->bit); + else + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_PWREN(zpd)); + + do { + udelay(1); + val = readl_relaxed(pcubase + PCU_DM_ACK_SYNC(zpd)) + & BIT(zpd->bit); + } while (--loop && val); + + if (!loop) { + pr_err("Error: %s %s fail\n", __func__, domain->name); + return -EIO; + } + + pr_debug("poweroff %s\n", domain->name); + + return 0; +} + +int zx2967_pd_probe(struct platform_device *pdev, + struct generic_pm_domain **zx_pm_domains, + int domain_num) +{ + struct genpd_onecell_data *genpd_data; + struct resource *res; + int i; + + genpd_data = devm_kzalloc(&pdev->dev, sizeof(*genpd_data), GFP_KERNEL); + if (!genpd_data) + return -ENOMEM; + + genpd_data->domains = zx_pm_domains; + genpd_data->num_domains = domain_num; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + pcubase = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(pcubase)) { + dev_err(&pdev->dev, "ioremap fail.\n"); + return PTR_ERR(pcubase); + } + + for (i = 0; i < domain_num; ++i) { + zx_pm_domains[i]->power_on = zx2967_power_on; + zx_pm_domains[i]->power_off = zx2967_power_off; + + pm_genpd_init(zx_pm_domains[i], NULL, false); + } + + of_genpd_add_provider_onecell(pdev->dev.of_node, genpd_data); + dev_info(&pdev->dev, "powerdomain init ok\n"); + return 0; +} diff --git a/drivers/soc/zte/zx2967_pm_domains.h b/drivers/soc/zte/zx2967_pm_domains.h new file mode 100644 index 0000000..cb46595 --- /dev/null +++ b/drivers/soc/zte/zx2967_pm_domains.h @@ -0,0 +1,44 @@ +/* + * Header for ZTE's Power Domain Driver support + * + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#ifndef __ZTE_ZX2967_PM_DOMAIN_H +#define __ZTE_ZX2967_PM_DOMAIN_H + +#include <linux/platform_device.h> +#include <linux/pm_domain.h> + +enum { + REG_CLKEN, + REG_ISOEN, + REG_RSTEN, + REG_PWREN, + REG_PWRDN, + REG_ACK_SYNC, + + /* The size of the array - must be last */ + REG_ARRAY_SIZE, +}; + +enum zx2967_power_polarity { + PWREN, + PWRDN, +}; + +struct zx2967_pm_domain { + struct generic_pm_domain dm; + const u16 bit; + const enum zx2967_power_polarity polarity; + const u16 *reg_offset; +}; + +int zx2967_pd_probe(struct platform_device *pdev, + struct generic_pm_domain **zx_pm_domains, + int domain_num); + +#endif /* __ZTE_ZX2967_PM_DOMAIN_H */ -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 4/5] soc: zte: pm_domains: Prepare for supporting ARMv8 zx2967 family @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: devicetree, Baoyou Xie, linux-kernel, linux-arm-kernel The ARMv8 zx2967 family (296718, 296716 etc) uses different value for controlling the power domain on/off registers, Choose the value depending on the compatible. Multiple domains are prepared for the family, this patch prepares the common functions. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> --- drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/zte/Kconfig | 13 ++++ drivers/soc/zte/Makefile | 4 + drivers/soc/zte/zx2967_pm_domains.c | 143 ++++++++++++++++++++++++++++++++++++ drivers/soc/zte/zx2967_pm_domains.h | 44 +++++++++++ 6 files changed, 206 insertions(+) create mode 100644 drivers/soc/zte/Kconfig create mode 100644 drivers/soc/zte/Makefile create mode 100644 drivers/soc/zte/zx2967_pm_domains.c create mode 100644 drivers/soc/zte/zx2967_pm_domains.h diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index f31bceb..f09023f 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -11,5 +11,6 @@ source "drivers/soc/tegra/Kconfig" source "drivers/soc/ti/Kconfig" source "drivers/soc/ux500/Kconfig" source "drivers/soc/versatile/Kconfig" +source "drivers/soc/zte/Kconfig" endmenu diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 50c23d0..05eae52 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -16,3 +16,4 @@ obj-$(CONFIG_ARCH_TEGRA) += tegra/ obj-$(CONFIG_SOC_TI) += ti/ obj-$(CONFIG_ARCH_U8500) += ux500/ obj-$(CONFIG_PLAT_VERSATILE) += versatile/ +obj-$(CONFIG_ARCH_ZX) += zte/ diff --git a/drivers/soc/zte/Kconfig b/drivers/soc/zte/Kconfig new file mode 100644 index 0000000..20bde38 --- /dev/null +++ b/drivers/soc/zte/Kconfig @@ -0,0 +1,13 @@ +# +# ZTE SoC drivers +# +menuconfig SOC_ZTE + bool "ZTE SoC driver support" + +if SOC_ZTE + +config ZX2967_PM_DOMAINS + bool "ZX2967 PM domains" + depends on PM_GENERIC_DOMAINS + +endif diff --git a/drivers/soc/zte/Makefile b/drivers/soc/zte/Makefile new file mode 100644 index 0000000..8a37f2f --- /dev/null +++ b/drivers/soc/zte/Makefile @@ -0,0 +1,4 @@ +# +# ZTE SOC drivers +# +obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx2967_pm_domains.o diff --git a/drivers/soc/zte/zx2967_pm_domains.c b/drivers/soc/zte/zx2967_pm_domains.c new file mode 100644 index 0000000..61c8d84 --- /dev/null +++ b/drivers/soc/zte/zx2967_pm_domains.c @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/io.h> +#include <linux/of.h> + +#include "zx2967_pm_domains.h" + +#define PCU_DM_CLKEN(zpd) ((zpd)->reg_offset[REG_CLKEN]) +#define PCU_DM_ISOEN(zpd) ((zpd)->reg_offset[REG_ISOEN]) +#define PCU_DM_RSTEN(zpd) ((zpd)->reg_offset[REG_RSTEN]) +#define PCU_DM_PWREN(zpd) ((zpd)->reg_offset[REG_PWREN]) +#define PCU_DM_ACK_SYNC(zpd) ((zpd)->reg_offset[REG_ACK_SYNC]) + +static void __iomem *pcubase; + +static int zx2967_power_on(struct generic_pm_domain *domain) +{ + struct zx2967_pm_domain *zpd = (struct zx2967_pm_domain *)domain; + unsigned long loop = 1000; + u32 val; + + val = readl_relaxed(pcubase + PCU_DM_PWREN(zpd)); + if (zpd->polarity == PWREN) + val |= BIT(zpd->bit); + else + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_PWREN(zpd)); + + do { + udelay(1); + val = readl_relaxed(pcubase + PCU_DM_ACK_SYNC(zpd)) + & BIT(zpd->bit); + } while (--loop && !val); + + if (!loop) { + pr_err("Error: %s %s fail\n", __func__, domain->name); + return -EIO; + } + + val = readl_relaxed(pcubase + PCU_DM_RSTEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_RSTEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_ISOEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_ISOEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_CLKEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_CLKEN(zpd)); + udelay(5); + + pr_debug("poweron %s\n", domain->name); + + return 0; +} + +static int zx2967_power_off(struct generic_pm_domain *domain) +{ + struct zx2967_pm_domain *zpd = (struct zx2967_pm_domain *)domain; + unsigned long loop = 1000; + u32 val; + + val = readl_relaxed(pcubase + PCU_DM_CLKEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_CLKEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_ISOEN(zpd)); + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_ISOEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_RSTEN(zpd)); + val &= ~BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_RSTEN(zpd)); + udelay(5); + + val = readl_relaxed(pcubase + PCU_DM_PWREN(zpd)); + if (zpd->polarity == PWREN) + val &= ~BIT(zpd->bit); + else + val |= BIT(zpd->bit); + writel_relaxed(val, pcubase + PCU_DM_PWREN(zpd)); + + do { + udelay(1); + val = readl_relaxed(pcubase + PCU_DM_ACK_SYNC(zpd)) + & BIT(zpd->bit); + } while (--loop && val); + + if (!loop) { + pr_err("Error: %s %s fail\n", __func__, domain->name); + return -EIO; + } + + pr_debug("poweroff %s\n", domain->name); + + return 0; +} + +int zx2967_pd_probe(struct platform_device *pdev, + struct generic_pm_domain **zx_pm_domains, + int domain_num) +{ + struct genpd_onecell_data *genpd_data; + struct resource *res; + int i; + + genpd_data = devm_kzalloc(&pdev->dev, sizeof(*genpd_data), GFP_KERNEL); + if (!genpd_data) + return -ENOMEM; + + genpd_data->domains = zx_pm_domains; + genpd_data->num_domains = domain_num; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + pcubase = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(pcubase)) { + dev_err(&pdev->dev, "ioremap fail.\n"); + return PTR_ERR(pcubase); + } + + for (i = 0; i < domain_num; ++i) { + zx_pm_domains[i]->power_on = zx2967_power_on; + zx_pm_domains[i]->power_off = zx2967_power_off; + + pm_genpd_init(zx_pm_domains[i], NULL, false); + } + + of_genpd_add_provider_onecell(pdev->dev.of_node, genpd_data); + dev_info(&pdev->dev, "powerdomain init ok\n"); + return 0; +} diff --git a/drivers/soc/zte/zx2967_pm_domains.h b/drivers/soc/zte/zx2967_pm_domains.h new file mode 100644 index 0000000..cb46595 --- /dev/null +++ b/drivers/soc/zte/zx2967_pm_domains.h @@ -0,0 +1,44 @@ +/* + * Header for ZTE's Power Domain Driver support + * + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#ifndef __ZTE_ZX2967_PM_DOMAIN_H +#define __ZTE_ZX2967_PM_DOMAIN_H + +#include <linux/platform_device.h> +#include <linux/pm_domain.h> + +enum { + REG_CLKEN, + REG_ISOEN, + REG_RSTEN, + REG_PWREN, + REG_PWRDN, + REG_ACK_SYNC, + + /* The size of the array - must be last */ + REG_ARRAY_SIZE, +}; + +enum zx2967_power_polarity { + PWREN, + PWRDN, +}; + +struct zx2967_pm_domain { + struct generic_pm_domain dm; + const u16 bit; + const enum zx2967_power_polarity polarity; + const u16 *reg_offset; +}; + +int zx2967_pd_probe(struct platform_device *pdev, + struct generic_pm_domain **zx_pm_domains, + int domain_num); + +#endif /* __ZTE_ZX2967_PM_DOMAIN_H */ -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH v7 4/5] soc: zte: pm_domains: Prepare for supporting ARMv8 zx2967 family 2017-01-06 9:16 ` Baoyou Xie (?) (?) @ 2017-01-06 9:20 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:20 UTC (permalink / raw) To: Jun Nie, Rob Herring, mark.rutland, Greg KH, davem, geert+renesas, akpm, mchehab, krzk, Arnd Bergmann, claudiu.manoil, amit daniel, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, Linux Kernel Mailing List, Baoyou Xie, Shawn Guo, xie.baoyou, chen.chaokai, wang.qiang01 [-- Attachment #1: Type: text/plain, Size: 8686 bytes --] + Shawn On 6 January 2017 at 17:16, Baoyou Xie <baoyou.xie@linaro.org> wrote: > The ARMv8 zx2967 family (296718, 296716 etc) uses different value > for controlling the power domain on/off registers, Choose the > value depending on the compatible. > > Multiple domains are prepared for the family, this patch prepares > the common functions. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > --- > drivers/soc/Kconfig | 1 + > drivers/soc/Makefile | 1 + > drivers/soc/zte/Kconfig | 13 ++++ > drivers/soc/zte/Makefile | 4 + > drivers/soc/zte/zx2967_pm_domains.c | 143 ++++++++++++++++++++++++++++++ > ++++++ > drivers/soc/zte/zx2967_pm_domains.h | 44 +++++++++++ > 6 files changed, 206 insertions(+) > create mode 100644 drivers/soc/zte/Kconfig > create mode 100644 drivers/soc/zte/Makefile > create mode 100644 drivers/soc/zte/zx2967_pm_domains.c > create mode 100644 drivers/soc/zte/zx2967_pm_domains.h > > diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig > index f31bceb..f09023f 100644 > --- a/drivers/soc/Kconfig > +++ b/drivers/soc/Kconfig > @@ -11,5 +11,6 @@ source "drivers/soc/tegra/Kconfig" > source "drivers/soc/ti/Kconfig" > source "drivers/soc/ux500/Kconfig" > source "drivers/soc/versatile/Kconfig" > +source "drivers/soc/zte/Kconfig" > > endmenu > diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile > index 50c23d0..05eae52 100644 > --- a/drivers/soc/Makefile > +++ b/drivers/soc/Makefile > @@ -16,3 +16,4 @@ obj-$(CONFIG_ARCH_TEGRA) += tegra/ > obj-$(CONFIG_SOC_TI) += ti/ > obj-$(CONFIG_ARCH_U8500) += ux500/ > obj-$(CONFIG_PLAT_VERSATILE) += versatile/ > +obj-$(CONFIG_ARCH_ZX) += zte/ > diff --git a/drivers/soc/zte/Kconfig b/drivers/soc/zte/Kconfig > new file mode 100644 > index 0000000..20bde38 > --- /dev/null > +++ b/drivers/soc/zte/Kconfig > @@ -0,0 +1,13 @@ > +# > +# ZTE SoC drivers > +# > +menuconfig SOC_ZTE > + bool "ZTE SoC driver support" > + > +if SOC_ZTE > + > +config ZX2967_PM_DOMAINS > + bool "ZX2967 PM domains" > + depends on PM_GENERIC_DOMAINS > + > +endif > diff --git a/drivers/soc/zte/Makefile b/drivers/soc/zte/Makefile > new file mode 100644 > index 0000000..8a37f2f > --- /dev/null > +++ b/drivers/soc/zte/Makefile > @@ -0,0 +1,4 @@ > +# > +# ZTE SOC drivers > +# > +obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx2967_pm_domains.o > diff --git a/drivers/soc/zte/zx2967_pm_domains.c > b/drivers/soc/zte/zx2967_pm_domains.c > new file mode 100644 > index 0000000..61c8d84 > --- /dev/null > +++ b/drivers/soc/zte/zx2967_pm_domains.c > @@ -0,0 +1,143 @@ > +/* > + * Copyright (C) 2017 ZTE Ltd. > + * > + * Author: Baoyou Xie <baoyou.xie@linaro.org> > + * License terms: GNU General Public License (GPL) version 2 > + */ > + > +#include <linux/delay.h> > +#include <linux/err.h> > +#include <linux/io.h> > +#include <linux/of.h> > + > +#include "zx2967_pm_domains.h" > + > +#define PCU_DM_CLKEN(zpd) ((zpd)->reg_offset[REG_CLKEN]) > +#define PCU_DM_ISOEN(zpd) ((zpd)->reg_offset[REG_ISOEN]) > +#define PCU_DM_RSTEN(zpd) ((zpd)->reg_offset[REG_RSTEN]) > +#define PCU_DM_PWREN(zpd) ((zpd)->reg_offset[REG_PWREN]) > +#define PCU_DM_ACK_SYNC(zpd) ((zpd)->reg_offset[REG_ACK_SYNC]) > + > +static void __iomem *pcubase; > + > +static int zx2967_power_on(struct generic_pm_domain *domain) > +{ > + struct zx2967_pm_domain *zpd = (struct zx2967_pm_domain *)domain; > + unsigned long loop = 1000; > + u32 val; > + > + val = readl_relaxed(pcubase + PCU_DM_PWREN(zpd)); > + if (zpd->polarity == PWREN) > + val |= BIT(zpd->bit); > + else > + val &= ~BIT(zpd->bit); > + writel_relaxed(val, pcubase + PCU_DM_PWREN(zpd)); > + > + do { > + udelay(1); > + val = readl_relaxed(pcubase + PCU_DM_ACK_SYNC(zpd)) > + & BIT(zpd->bit); > + } while (--loop && !val); > + > + if (!loop) { > + pr_err("Error: %s %s fail\n", __func__, domain->name); > + return -EIO; > + } > + > + val = readl_relaxed(pcubase + PCU_DM_RSTEN(zpd)); > + val |= BIT(zpd->bit); > + writel_relaxed(val, pcubase + PCU_DM_RSTEN(zpd)); > + udelay(5); > + > + val = readl_relaxed(pcubase + PCU_DM_ISOEN(zpd)); > + val &= ~BIT(zpd->bit); > + writel_relaxed(val, pcubase + PCU_DM_ISOEN(zpd)); > + udelay(5); > + > + val = readl_relaxed(pcubase + PCU_DM_CLKEN(zpd)); > + val |= BIT(zpd->bit); > + writel_relaxed(val, pcubase + PCU_DM_CLKEN(zpd)); > + udelay(5); > + > + pr_debug("poweron %s\n", domain->name); > + > + return 0; > +} > + > +static int zx2967_power_off(struct generic_pm_domain *domain) > +{ > + struct zx2967_pm_domain *zpd = (struct zx2967_pm_domain *)domain; > + unsigned long loop = 1000; > + u32 val; > + > + val = readl_relaxed(pcubase + PCU_DM_CLKEN(zpd)); > + val &= ~BIT(zpd->bit); > + writel_relaxed(val, pcubase + PCU_DM_CLKEN(zpd)); > + udelay(5); > + > + val = readl_relaxed(pcubase + PCU_DM_ISOEN(zpd)); > + val |= BIT(zpd->bit); > + writel_relaxed(val, pcubase + PCU_DM_ISOEN(zpd)); > + udelay(5); > + > + val = readl_relaxed(pcubase + PCU_DM_RSTEN(zpd)); > + val &= ~BIT(zpd->bit); > + writel_relaxed(val, pcubase + PCU_DM_RSTEN(zpd)); > + udelay(5); > + > + val = readl_relaxed(pcubase + PCU_DM_PWREN(zpd)); > + if (zpd->polarity == PWREN) > + val &= ~BIT(zpd->bit); > + else > + val |= BIT(zpd->bit); > + writel_relaxed(val, pcubase + PCU_DM_PWREN(zpd)); > + > + do { > + udelay(1); > + val = readl_relaxed(pcubase + PCU_DM_ACK_SYNC(zpd)) > + & BIT(zpd->bit); > + } while (--loop && val); > + > + if (!loop) { > + pr_err("Error: %s %s fail\n", __func__, domain->name); > + return -EIO; > + } > + > + pr_debug("poweroff %s\n", domain->name); > + > + return 0; > +} > + > +int zx2967_pd_probe(struct platform_device *pdev, > + struct generic_pm_domain **zx_pm_domains, > + int domain_num) > +{ > + struct genpd_onecell_data *genpd_data; > + struct resource *res; > + int i; > + > + genpd_data = devm_kzalloc(&pdev->dev, sizeof(*genpd_data), > GFP_KERNEL); > + if (!genpd_data) > + return -ENOMEM; > + > + genpd_data->domains = zx_pm_domains; > + genpd_data->num_domains = domain_num; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + pcubase = devm_ioremap_resource(&pdev->dev, res); > + if (IS_ERR(pcubase)) { > + dev_err(&pdev->dev, "ioremap fail.\n"); > + return PTR_ERR(pcubase); > + } > + > + for (i = 0; i < domain_num; ++i) { > + zx_pm_domains[i]->power_on = zx2967_power_on; > + zx_pm_domains[i]->power_off = zx2967_power_off; > + > + pm_genpd_init(zx_pm_domains[i], NULL, false); > + } > + > + of_genpd_add_provider_onecell(pdev->dev.of_node, genpd_data); > + dev_info(&pdev->dev, "powerdomain init ok\n"); > + return 0; > +} > diff --git a/drivers/soc/zte/zx2967_pm_domains.h > b/drivers/soc/zte/zx2967_pm_domains.h > new file mode 100644 > index 0000000..cb46595 > --- /dev/null > +++ b/drivers/soc/zte/zx2967_pm_domains.h > @@ -0,0 +1,44 @@ > +/* > + * Header for ZTE's Power Domain Driver support > + * > + * Copyright (C) 2017 ZTE Ltd. > + * > + * Author: Baoyou Xie <baoyou.xie@linaro.org> > + * License terms: GNU General Public License (GPL) version 2 > + */ > + > +#ifndef __ZTE_ZX2967_PM_DOMAIN_H > +#define __ZTE_ZX2967_PM_DOMAIN_H > + > +#include <linux/platform_device.h> > +#include <linux/pm_domain.h> > + > +enum { > + REG_CLKEN, > + REG_ISOEN, > + REG_RSTEN, > + REG_PWREN, > + REG_PWRDN, > + REG_ACK_SYNC, > + > + /* The size of the array - must be last */ > + REG_ARRAY_SIZE, > +}; > + > +enum zx2967_power_polarity { > + PWREN, > + PWRDN, > +}; > + > +struct zx2967_pm_domain { > + struct generic_pm_domain dm; > + const u16 bit; > + const enum zx2967_power_polarity polarity; > + const u16 *reg_offset; > +}; > + > +int zx2967_pd_probe(struct platform_device *pdev, > + struct generic_pm_domain **zx_pm_domains, > + int domain_num); > + > +#endif /* __ZTE_ZX2967_PM_DOMAIN_H */ > -- > 2.7.4 > > [-- Attachment #2: Type: text/html, Size: 11064 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v7 5/5] soc: zte: pm_domains: Add support for zx296718 2017-01-06 9:16 ` Baoyou Xie (?) @ 2017-01-06 9:16 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: linux-arm-kernel This patch introduces the power domain driver of zx296718 which belongs to zte's zx2967 family. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> Reviewed-by: Jun Nie <jun.nie@linaro.org> --- drivers/soc/zte/Makefile | 1 + drivers/soc/zte/zx296718_pm_domains.c | 182 ++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 drivers/soc/zte/zx296718_pm_domains.c diff --git a/drivers/soc/zte/Makefile b/drivers/soc/zte/Makefile index 8a37f2f..96b7cd4 100644 --- a/drivers/soc/zte/Makefile +++ b/drivers/soc/zte/Makefile @@ -2,3 +2,4 @@ # ZTE SOC drivers # obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx2967_pm_domains.o +obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx296718_pm_domains.o diff --git a/drivers/soc/zte/zx296718_pm_domains.c b/drivers/soc/zte/zx296718_pm_domains.c new file mode 100644 index 0000000..5ed924f --- /dev/null +++ b/drivers/soc/zte/zx296718_pm_domains.c @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#include <dt-bindings/soc/zte,pm_domains.h> +#include "zx2967_pm_domains.h" + +static u16 zx296718_offsets[REG_ARRAY_SIZE] = { + [REG_CLKEN] = 0x18, + [REG_ISOEN] = 0x1c, + [REG_RSTEN] = 0x20, + [REG_PWREN] = 0x24, + [REG_ACK_SYNC] = 0x28, +}; + +enum { + PCU_DM_VOU = 0, + PCU_DM_SAPPU, + PCU_DM_VDE, + PCU_DM_VCE, + PCU_DM_HDE, + PCU_DM_VIU, + PCU_DM_USB20, + PCU_DM_USB21, + PCU_DM_USB30, + PCU_DM_HSIC, + PCU_DM_GMAC, + PCU_DM_TS, +}; + +static struct zx2967_pm_domain vou_domain = { + .dm = { + .name = "vou_domain", + }, + .bit = PCU_DM_VOU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain sappu_domain = { + .dm = { + .name = "sappu_domain", + }, + .bit = PCU_DM_SAPPU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain vde_domain = { + .dm = { + .name = "vde_domain", + }, + .bit = PCU_DM_VDE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain vce_domain = { + .dm = { + .name = "vce_domain", + }, + .bit = PCU_DM_VCE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain hde_domain = { + .dm = { + .name = "hde_domain", + }, + .bit = PCU_DM_HDE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain viu_domain = { + .dm = { + .name = "viu_domain", + }, + .bit = PCU_DM_VIU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb20_domain = { + .dm = { + .name = "usb20_domain", + }, + .bit = PCU_DM_USB20, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb21_domain = { + .dm = { + .name = "usb21_domain", + }, + .bit = PCU_DM_USB21, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb30_domain = { + .dm = { + .name = "usb30_domain", + }, + .bit = PCU_DM_USB30, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain hsic_domain = { + .dm = { + .name = "hsic_domain", + }, + .bit = PCU_DM_HSIC, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain gmac_domain = { + .dm = { + .name = "gmac_domain", + }, + .bit = PCU_DM_GMAC, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain ts_domain = { + .dm = { + .name = "ts_domain", + }, + .bit = PCU_DM_TS, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct generic_pm_domain *zx296718_pm_domains[] = { + [DM_ZX296718_VOU] = &vou_domain.dm, + [DM_ZX296718_SAPPU] = &sappu_domain.dm, + [DM_ZX296718_VDE] = &vde_domain.dm, + [DM_ZX296718_VCE] = &vce_domain.dm, + [DM_ZX296718_HDE] = &hde_domain.dm, + [DM_ZX296718_VIU] = &viu_domain.dm, + [DM_ZX296718_USB20] = &usb20_domain.dm, + [DM_ZX296718_USB21] = &usb21_domain.dm, + [DM_ZX296718_USB30] = &usb30_domain.dm, + [DM_ZX296718_HSIC] = &hsic_domain.dm, + [DM_ZX296718_GMAC] = &gmac_domain.dm, + [DM_ZX296718_TS] = &ts_domain.dm, +}; + +static int zx296718_pd_probe(struct platform_device *pdev) +{ + return zx2967_pd_probe(pdev, + zx296718_pm_domains, + ARRAY_SIZE(zx296718_pm_domains)); +} + +static const struct of_device_id zx296718_pm_domain_matches[] = { + { .compatible = "zte,zx296718-pcu", }, + { }, +}; + +static struct platform_driver zx296718_pd_driver = { + .driver = { + .name = "zx296718-powerdomain", + .owner = THIS_MODULE, + .of_match_table = zx296718_pm_domain_matches, + }, + .probe = zx296718_pd_probe, +}; + +static int __init zx296718_pd_init(void) +{ + return platform_driver_register(&zx296718_pd_driver); +} +subsys_initcall(zx296718_pd_init); -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 5/5] soc: zte: pm_domains: Add support for zx296718 @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, linux-kernel, Baoyou Xie This patch introduces the power domain driver of zx296718 which belongs to zte's zx2967 family. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> Reviewed-by: Jun Nie <jun.nie@linaro.org> --- drivers/soc/zte/Makefile | 1 + drivers/soc/zte/zx296718_pm_domains.c | 182 ++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 drivers/soc/zte/zx296718_pm_domains.c diff --git a/drivers/soc/zte/Makefile b/drivers/soc/zte/Makefile index 8a37f2f..96b7cd4 100644 --- a/drivers/soc/zte/Makefile +++ b/drivers/soc/zte/Makefile @@ -2,3 +2,4 @@ # ZTE SOC drivers # obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx2967_pm_domains.o +obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx296718_pm_domains.o diff --git a/drivers/soc/zte/zx296718_pm_domains.c b/drivers/soc/zte/zx296718_pm_domains.c new file mode 100644 index 0000000..5ed924f --- /dev/null +++ b/drivers/soc/zte/zx296718_pm_domains.c @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#include <dt-bindings/soc/zte,pm_domains.h> +#include "zx2967_pm_domains.h" + +static u16 zx296718_offsets[REG_ARRAY_SIZE] = { + [REG_CLKEN] = 0x18, + [REG_ISOEN] = 0x1c, + [REG_RSTEN] = 0x20, + [REG_PWREN] = 0x24, + [REG_ACK_SYNC] = 0x28, +}; + +enum { + PCU_DM_VOU = 0, + PCU_DM_SAPPU, + PCU_DM_VDE, + PCU_DM_VCE, + PCU_DM_HDE, + PCU_DM_VIU, + PCU_DM_USB20, + PCU_DM_USB21, + PCU_DM_USB30, + PCU_DM_HSIC, + PCU_DM_GMAC, + PCU_DM_TS, +}; + +static struct zx2967_pm_domain vou_domain = { + .dm = { + .name = "vou_domain", + }, + .bit = PCU_DM_VOU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain sappu_domain = { + .dm = { + .name = "sappu_domain", + }, + .bit = PCU_DM_SAPPU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain vde_domain = { + .dm = { + .name = "vde_domain", + }, + .bit = PCU_DM_VDE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain vce_domain = { + .dm = { + .name = "vce_domain", + }, + .bit = PCU_DM_VCE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain hde_domain = { + .dm = { + .name = "hde_domain", + }, + .bit = PCU_DM_HDE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain viu_domain = { + .dm = { + .name = "viu_domain", + }, + .bit = PCU_DM_VIU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb20_domain = { + .dm = { + .name = "usb20_domain", + }, + .bit = PCU_DM_USB20, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb21_domain = { + .dm = { + .name = "usb21_domain", + }, + .bit = PCU_DM_USB21, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb30_domain = { + .dm = { + .name = "usb30_domain", + }, + .bit = PCU_DM_USB30, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain hsic_domain = { + .dm = { + .name = "hsic_domain", + }, + .bit = PCU_DM_HSIC, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain gmac_domain = { + .dm = { + .name = "gmac_domain", + }, + .bit = PCU_DM_GMAC, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain ts_domain = { + .dm = { + .name = "ts_domain", + }, + .bit = PCU_DM_TS, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct generic_pm_domain *zx296718_pm_domains[] = { + [DM_ZX296718_VOU] = &vou_domain.dm, + [DM_ZX296718_SAPPU] = &sappu_domain.dm, + [DM_ZX296718_VDE] = &vde_domain.dm, + [DM_ZX296718_VCE] = &vce_domain.dm, + [DM_ZX296718_HDE] = &hde_domain.dm, + [DM_ZX296718_VIU] = &viu_domain.dm, + [DM_ZX296718_USB20] = &usb20_domain.dm, + [DM_ZX296718_USB21] = &usb21_domain.dm, + [DM_ZX296718_USB30] = &usb30_domain.dm, + [DM_ZX296718_HSIC] = &hsic_domain.dm, + [DM_ZX296718_GMAC] = &gmac_domain.dm, + [DM_ZX296718_TS] = &ts_domain.dm, +}; + +static int zx296718_pd_probe(struct platform_device *pdev) +{ + return zx2967_pd_probe(pdev, + zx296718_pm_domains, + ARRAY_SIZE(zx296718_pm_domains)); +} + +static const struct of_device_id zx296718_pm_domain_matches[] = { + { .compatible = "zte,zx296718-pcu", }, + { }, +}; + +static struct platform_driver zx296718_pd_driver = { + .driver = { + .name = "zx296718-powerdomain", + .owner = THIS_MODULE, + .of_match_table = zx296718_pm_domain_matches, + }, + .probe = zx296718_pd_probe, +}; + +static int __init zx296718_pd_init(void) +{ + return platform_driver_register(&zx296718_pd_driver); +} +subsys_initcall(zx296718_pd_init); -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v7 5/5] soc: zte: pm_domains: Add support for zx296718 @ 2017-01-06 9:16 ` Baoyou Xie 0 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:16 UTC (permalink / raw) To: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: devicetree, Baoyou Xie, linux-kernel, linux-arm-kernel This patch introduces the power domain driver of zx296718 which belongs to zte's zx2967 family. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> Reviewed-by: Jun Nie <jun.nie@linaro.org> --- drivers/soc/zte/Makefile | 1 + drivers/soc/zte/zx296718_pm_domains.c | 182 ++++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 drivers/soc/zte/zx296718_pm_domains.c diff --git a/drivers/soc/zte/Makefile b/drivers/soc/zte/Makefile index 8a37f2f..96b7cd4 100644 --- a/drivers/soc/zte/Makefile +++ b/drivers/soc/zte/Makefile @@ -2,3 +2,4 @@ # ZTE SOC drivers # obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx2967_pm_domains.o +obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx296718_pm_domains.o diff --git a/drivers/soc/zte/zx296718_pm_domains.c b/drivers/soc/zte/zx296718_pm_domains.c new file mode 100644 index 0000000..5ed924f --- /dev/null +++ b/drivers/soc/zte/zx296718_pm_domains.c @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2017 ZTE Ltd. + * + * Author: Baoyou Xie <baoyou.xie@linaro.org> + * License terms: GNU General Public License (GPL) version 2 + */ + +#include <dt-bindings/soc/zte,pm_domains.h> +#include "zx2967_pm_domains.h" + +static u16 zx296718_offsets[REG_ARRAY_SIZE] = { + [REG_CLKEN] = 0x18, + [REG_ISOEN] = 0x1c, + [REG_RSTEN] = 0x20, + [REG_PWREN] = 0x24, + [REG_ACK_SYNC] = 0x28, +}; + +enum { + PCU_DM_VOU = 0, + PCU_DM_SAPPU, + PCU_DM_VDE, + PCU_DM_VCE, + PCU_DM_HDE, + PCU_DM_VIU, + PCU_DM_USB20, + PCU_DM_USB21, + PCU_DM_USB30, + PCU_DM_HSIC, + PCU_DM_GMAC, + PCU_DM_TS, +}; + +static struct zx2967_pm_domain vou_domain = { + .dm = { + .name = "vou_domain", + }, + .bit = PCU_DM_VOU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain sappu_domain = { + .dm = { + .name = "sappu_domain", + }, + .bit = PCU_DM_SAPPU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain vde_domain = { + .dm = { + .name = "vde_domain", + }, + .bit = PCU_DM_VDE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain vce_domain = { + .dm = { + .name = "vce_domain", + }, + .bit = PCU_DM_VCE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain hde_domain = { + .dm = { + .name = "hde_domain", + }, + .bit = PCU_DM_HDE, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain viu_domain = { + .dm = { + .name = "viu_domain", + }, + .bit = PCU_DM_VIU, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb20_domain = { + .dm = { + .name = "usb20_domain", + }, + .bit = PCU_DM_USB20, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb21_domain = { + .dm = { + .name = "usb21_domain", + }, + .bit = PCU_DM_USB21, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain usb30_domain = { + .dm = { + .name = "usb30_domain", + }, + .bit = PCU_DM_USB30, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain hsic_domain = { + .dm = { + .name = "hsic_domain", + }, + .bit = PCU_DM_HSIC, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain gmac_domain = { + .dm = { + .name = "gmac_domain", + }, + .bit = PCU_DM_GMAC, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct zx2967_pm_domain ts_domain = { + .dm = { + .name = "ts_domain", + }, + .bit = PCU_DM_TS, + .polarity = PWREN, + .reg_offset = zx296718_offsets, +}; + +static struct generic_pm_domain *zx296718_pm_domains[] = { + [DM_ZX296718_VOU] = &vou_domain.dm, + [DM_ZX296718_SAPPU] = &sappu_domain.dm, + [DM_ZX296718_VDE] = &vde_domain.dm, + [DM_ZX296718_VCE] = &vce_domain.dm, + [DM_ZX296718_HDE] = &hde_domain.dm, + [DM_ZX296718_VIU] = &viu_domain.dm, + [DM_ZX296718_USB20] = &usb20_domain.dm, + [DM_ZX296718_USB21] = &usb21_domain.dm, + [DM_ZX296718_USB30] = &usb30_domain.dm, + [DM_ZX296718_HSIC] = &hsic_domain.dm, + [DM_ZX296718_GMAC] = &gmac_domain.dm, + [DM_ZX296718_TS] = &ts_domain.dm, +}; + +static int zx296718_pd_probe(struct platform_device *pdev) +{ + return zx2967_pd_probe(pdev, + zx296718_pm_domains, + ARRAY_SIZE(zx296718_pm_domains)); +} + +static const struct of_device_id zx296718_pm_domain_matches[] = { + { .compatible = "zte,zx296718-pcu", }, + { }, +}; + +static struct platform_driver zx296718_pd_driver = { + .driver = { + .name = "zx296718-powerdomain", + .owner = THIS_MODULE, + .of_match_table = zx296718_pm_domain_matches, + }, + .probe = zx296718_pd_probe, +}; + +static int __init zx296718_pd_init(void) +{ + return platform_driver_register(&zx296718_pd_driver); +} +subsys_initcall(zx296718_pd_init); -- 2.7.4 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH v7 5/5] soc: zte: pm_domains: Add support for zx296718 2017-01-06 9:16 ` Baoyou Xie (?) (?) @ 2017-01-06 9:20 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:20 UTC (permalink / raw) To: Jun Nie, Rob Herring, mark.rutland, Greg KH, davem, geert+renesas, akpm, mchehab, krzk, Arnd Bergmann, claudiu.manoil, amit daniel, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, Linux Kernel Mailing List, Baoyou Xie, Shawn Guo, xie.baoyou, chen.chaokai, wang.qiang01 [-- Attachment #1: Type: text/plain, Size: 6219 bytes --] + Shawn On 6 January 2017 at 17:16, Baoyou Xie <baoyou.xie@linaro.org> wrote: > This patch introduces the power domain driver of zx296718 > which belongs to zte's zx2967 family. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > Reviewed-by: Jun Nie <jun.nie@linaro.org> > --- > drivers/soc/zte/Makefile | 1 + > drivers/soc/zte/zx296718_pm_domains.c | 182 > ++++++++++++++++++++++++++++++++++ > 2 files changed, 183 insertions(+) > create mode 100644 drivers/soc/zte/zx296718_pm_domains.c > > diff --git a/drivers/soc/zte/Makefile b/drivers/soc/zte/Makefile > index 8a37f2f..96b7cd4 100644 > --- a/drivers/soc/zte/Makefile > +++ b/drivers/soc/zte/Makefile > @@ -2,3 +2,4 @@ > # ZTE SOC drivers > # > obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx2967_pm_domains.o > +obj-$(CONFIG_ZX2967_PM_DOMAINS) += zx296718_pm_domains.o > diff --git a/drivers/soc/zte/zx296718_pm_domains.c > b/drivers/soc/zte/zx296718_pm_domains.c > new file mode 100644 > index 0000000..5ed924f > --- /dev/null > +++ b/drivers/soc/zte/zx296718_pm_domains.c > @@ -0,0 +1,182 @@ > +/* > + * Copyright (C) 2017 ZTE Ltd. > + * > + * Author: Baoyou Xie <baoyou.xie@linaro.org> > + * License terms: GNU General Public License (GPL) version 2 > + */ > + > +#include <dt-bindings/soc/zte,pm_domains.h> > +#include "zx2967_pm_domains.h" > + > +static u16 zx296718_offsets[REG_ARRAY_SIZE] = { > + [REG_CLKEN] = 0x18, > + [REG_ISOEN] = 0x1c, > + [REG_RSTEN] = 0x20, > + [REG_PWREN] = 0x24, > + [REG_ACK_SYNC] = 0x28, > +}; > + > +enum { > + PCU_DM_VOU = 0, > + PCU_DM_SAPPU, > + PCU_DM_VDE, > + PCU_DM_VCE, > + PCU_DM_HDE, > + PCU_DM_VIU, > + PCU_DM_USB20, > + PCU_DM_USB21, > + PCU_DM_USB30, > + PCU_DM_HSIC, > + PCU_DM_GMAC, > + PCU_DM_TS, > +}; > + > +static struct zx2967_pm_domain vou_domain = { > + .dm = { > + .name = "vou_domain", > + }, > + .bit = PCU_DM_VOU, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain sappu_domain = { > + .dm = { > + .name = "sappu_domain", > + }, > + .bit = PCU_DM_SAPPU, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain vde_domain = { > + .dm = { > + .name = "vde_domain", > + }, > + .bit = PCU_DM_VDE, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain vce_domain = { > + .dm = { > + .name = "vce_domain", > + }, > + .bit = PCU_DM_VCE, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain hde_domain = { > + .dm = { > + .name = "hde_domain", > + }, > + .bit = PCU_DM_HDE, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain viu_domain = { > + .dm = { > + .name = "viu_domain", > + }, > + .bit = PCU_DM_VIU, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain usb20_domain = { > + .dm = { > + .name = "usb20_domain", > + }, > + .bit = PCU_DM_USB20, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain usb21_domain = { > + .dm = { > + .name = "usb21_domain", > + }, > + .bit = PCU_DM_USB21, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain usb30_domain = { > + .dm = { > + .name = "usb30_domain", > + }, > + .bit = PCU_DM_USB30, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain hsic_domain = { > + .dm = { > + .name = "hsic_domain", > + }, > + .bit = PCU_DM_HSIC, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain gmac_domain = { > + .dm = { > + .name = "gmac_domain", > + }, > + .bit = PCU_DM_GMAC, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct zx2967_pm_domain ts_domain = { > + .dm = { > + .name = "ts_domain", > + }, > + .bit = PCU_DM_TS, > + .polarity = PWREN, > + .reg_offset = zx296718_offsets, > +}; > + > +static struct generic_pm_domain *zx296718_pm_domains[] = { > + [DM_ZX296718_VOU] = &vou_domain.dm, > + [DM_ZX296718_SAPPU] = &sappu_domain.dm, > + [DM_ZX296718_VDE] = &vde_domain.dm, > + [DM_ZX296718_VCE] = &vce_domain.dm, > + [DM_ZX296718_HDE] = &hde_domain.dm, > + [DM_ZX296718_VIU] = &viu_domain.dm, > + [DM_ZX296718_USB20] = &usb20_domain.dm, > + [DM_ZX296718_USB21] = &usb21_domain.dm, > + [DM_ZX296718_USB30] = &usb30_domain.dm, > + [DM_ZX296718_HSIC] = &hsic_domain.dm, > + [DM_ZX296718_GMAC] = &gmac_domain.dm, > + [DM_ZX296718_TS] = &ts_domain.dm, > +}; > + > +static int zx296718_pd_probe(struct platform_device *pdev) > +{ > + return zx2967_pd_probe(pdev, > + zx296718_pm_domains, > + ARRAY_SIZE(zx296718_pm_domains)); > +} > + > +static const struct of_device_id zx296718_pm_domain_matches[] = { > + { .compatible = "zte,zx296718-pcu", }, > + { }, > +}; > + > +static struct platform_driver zx296718_pd_driver = { > + .driver = { > + .name = "zx296718-powerdomain", > + .owner = THIS_MODULE, > + .of_match_table = zx296718_pm_domain_matches, > + }, > + .probe = zx296718_pd_probe, > +}; > + > +static int __init zx296718_pd_init(void) > +{ > + return platform_driver_register(&zx296718_pd_driver); > +} > +subsys_initcall(zx296718_pd_init); > -- > 2.7.4 > > [-- Attachment #2: Type: text/html, Size: 9070 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v7 5/5] soc: zte: pm_domains: Add support for zx296718 2017-01-06 9:16 ` Baoyou Xie @ 2017-01-09 2:16 ` Shawn Guo -1 siblings, 0 replies; 31+ messages in thread From: Shawn Guo @ 2017-01-09 2:16 UTC (permalink / raw) To: linux-arm-kernel On Fri, Jan 06, 2017 at 05:16:04PM +0800, Baoyou Xie wrote: > This patch introduces the power domain driver of zx296718 > which belongs to zte's zx2967 family. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > Reviewed-by: Jun Nie <jun.nie@linaro.org> Except the need of PCU_DM_xxx enum (I'm not strong on that,so would leave it to author's decision), the patch series looks good to me. I'm going to queue it up for 4.11 after getting Rob's ACK on bindings. Let me know if anyone has any objections. Shawn ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v7 5/5] soc: zte: pm_domains: Add support for zx296718 @ 2017-01-09 2:16 ` Shawn Guo 0 siblings, 0 replies; 31+ messages in thread From: Shawn Guo @ 2017-01-09 2:16 UTC (permalink / raw) To: Baoyou Xie Cc: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman, devicetree, linux-kernel, linux-arm-kernel On Fri, Jan 06, 2017 at 05:16:04PM +0800, Baoyou Xie wrote: > This patch introduces the power domain driver of zx296718 > which belongs to zte's zx2967 family. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > Reviewed-by: Jun Nie <jun.nie@linaro.org> Except the need of PCU_DM_xxx enum (I'm not strong on that,so would leave it to author's decision), the patch series looks good to me. I'm going to queue it up for 4.11 after getting Rob's ACK on bindings. Let me know if anyone has any objections. Shawn ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller 2017-01-06 9:16 ` Baoyou Xie ` (5 preceding siblings ...) (?) @ 2017-01-06 9:19 ` Baoyou Xie -1 siblings, 0 replies; 31+ messages in thread From: Baoyou Xie @ 2017-01-06 9:19 UTC (permalink / raw) To: Jun Nie, Rob Herring, mark.rutland, Greg KH, davem, geert+renesas, akpm, mchehab, krzk, Arnd Bergmann, claudiu.manoil, amit daniel, pankaj.dubey, yangbo.lu, scott.branden, simon.horman Cc: linux-arm-kernel, devicetree, Linux Kernel Mailing List, Baoyou Xie, Shawn Guo, xie.baoyou, chen.chaokai, wang.qiang01 [-- Attachment #1: Type: text/plain, Size: 1397 bytes --] + Shawn On 6 January 2017 at 17:16, Baoyou Xie <baoyou.xie@linaro.org> wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > --- > .../devicetree/bindings/soc/zte/pd-2967xx.txt | 19 > +++++++++++++++++++ > 1 file changed, 19 insertions(+) > create mode 100644 Documentation/devicetree/ > bindings/soc/zte/pd-2967xx.txt > > diff --git a/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt > b/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt > new file mode 100644 > index 0000000..7629de1 > --- /dev/null > +++ b/Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt > @@ -0,0 +1,19 @@ > +* ZTE zx2967 family Power Domains > + > +zx2967 family includes support for multiple power domains which are used > +to gate power to one or more peripherals on the processor. > + > +Required Properties: > + - compatible: should be one of the following. > + * zte,zx296718-pcu - for zx296718 power domain. > + - reg: physical base address of the controller and length of memory > mapped > + region. > + - #power-domain-cells: Must be 1. > + > +Example: > + > + pcu_domain: pcu@117000 { > + compatible = "zte,zx296718-pcu"; > + reg = <0x00117000 0x1000>; > + #power-domain-cells = <1>; > + }; > -- > 2.7.4 > > [-- Attachment #2: Type: text/html, Size: 2002 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-09 2:09 ` Shawn Guo 0 siblings, 0 replies; 31+ messages in thread From: Shawn Guo @ 2017-01-09 2:09 UTC (permalink / raw) To: linux-arm-kernel On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> Hi Rob, Are you happy with the bindings? I plan to merge the series through arm-soc tree with your ACK on this patch. Shawn ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-09 2:09 ` Shawn Guo 0 siblings, 0 replies; 31+ messages in thread From: Shawn Guo @ 2017-01-09 2:09 UTC (permalink / raw) To: Baoyou Xie, robh+dt Cc: jun.nie, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman, devicetree, linux-kernel, linux-arm-kernel On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> Hi Rob, Are you happy with the bindings? I plan to merge the series through arm-soc tree with your ACK on this patch. Shawn ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-09 2:09 ` Shawn Guo 0 siblings, 0 replies; 31+ messages in thread From: Shawn Guo @ 2017-01-09 2:09 UTC (permalink / raw) To: Baoyou Xie, robh+dt-DgEjT+Ai2ygdnm+yROfE0A Cc: jun.nie-QSEj5FYQhm4dnm+yROfE0A, mark.rutland-5wv7dgnIgG8, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, davem-fT/PcQaiUtIeIZ0/mPfg9Q, geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, mchehab-DgEjT+Ai2ygdnm+yROfE0A, krzk-DgEjT+Ai2ygdnm+yROfE0A, arnd-r2nGTMty4D4, claudiu.manoil-3arQi8VN3Tc, amitdanielk-Re5JQEeQqe8AvxtiuMwx3w, pankaj.dubey-Sze3O3UU22JBDgjK7y7TUQ, yangbo.lu-3arQi8VN3Tc, scott.branden-dY08KVG/lbpWk0Htik3J/w, simon.horman-wFxRvT7yatFl57MIdRCFDg, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Hi Rob, Are you happy with the bindings? I plan to merge the series through arm-soc tree with your ACK on this patch. Shawn -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-10 5:35 ` Rob Herring 0 siblings, 0 replies; 31+ messages in thread From: Rob Herring @ 2017-01-10 5:35 UTC (permalink / raw) To: linux-arm-kernel On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > --- > .../devicetree/bindings/soc/zte/pd-2967xx.txt | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > create mode 100644 Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt Acked-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-10 5:35 ` Rob Herring 0 siblings, 0 replies; 31+ messages in thread From: Rob Herring @ 2017-01-10 5:35 UTC (permalink / raw) To: Baoyou Xie Cc: jun.nie, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman, linux-arm-kernel, devicetree, linux-kernel On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> > --- > .../devicetree/bindings/soc/zte/pd-2967xx.txt | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > create mode 100644 Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt Acked-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-10 5:35 ` Rob Herring 0 siblings, 0 replies; 31+ messages in thread From: Rob Herring @ 2017-01-10 5:35 UTC (permalink / raw) To: Baoyou Xie Cc: jun.nie-QSEj5FYQhm4dnm+yROfE0A, mark.rutland-5wv7dgnIgG8, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, davem-fT/PcQaiUtIeIZ0/mPfg9Q, geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, mchehab-DgEjT+Ai2ygdnm+yROfE0A, krzk-DgEjT+Ai2ygdnm+yROfE0A, arnd-r2nGTMty4D4, claudiu.manoil-3arQi8VN3Tc, amitdanielk-Re5JQEeQqe8AvxtiuMwx3w, pankaj.dubey-Sze3O3UU22JBDgjK7y7TUQ, yangbo.lu-3arQi8VN3Tc, scott.branden-dY08KVG/lbpWk0Htik3J/w, simon.horman-wFxRvT7yatFl57MIdRCFDg, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > --- > .../devicetree/bindings/soc/zte/pd-2967xx.txt | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > create mode 100644 Documentation/devicetree/bindings/soc/zte/pd-2967xx.txt Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-11 8:23 ` Shawn Guo 0 siblings, 0 replies; 31+ messages in thread From: Shawn Guo @ 2017-01-11 8:23 UTC (permalink / raw) To: linux-arm-kernel On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> Applied all, thanks. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-11 8:23 ` Shawn Guo 0 siblings, 0 replies; 31+ messages in thread From: Shawn Guo @ 2017-01-11 8:23 UTC (permalink / raw) To: Baoyou Xie Cc: jun.nie, robh+dt, mark.rutland, gregkh, davem, geert+renesas, akpm, mchehab, krzk, arnd, claudiu.manoil, amitdanielk, pankaj.dubey, yangbo.lu, scott.branden, simon.horman, devicetree, linux-kernel, linux-arm-kernel On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> Applied all, thanks. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller @ 2017-01-11 8:23 ` Shawn Guo 0 siblings, 0 replies; 31+ messages in thread From: Shawn Guo @ 2017-01-11 8:23 UTC (permalink / raw) To: Baoyou Xie Cc: jun.nie-QSEj5FYQhm4dnm+yROfE0A, robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, davem-fT/PcQaiUtIeIZ0/mPfg9Q, geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, mchehab-DgEjT+Ai2ygdnm+yROfE0A, krzk-DgEjT+Ai2ygdnm+yROfE0A, arnd-r2nGTMty4D4, claudiu.manoil-3arQi8VN3Tc, amitdanielk-Re5JQEeQqe8AvxtiuMwx3w, pankaj.dubey-Sze3O3UU22JBDgjK7y7TUQ, yangbo.lu-3arQi8VN3Tc, scott.branden-dY08KVG/lbpWk0Htik3J/w, simon.horman-wFxRvT7yatFl57MIdRCFDg, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Fri, Jan 06, 2017 at 05:16:00PM +0800, Baoyou Xie wrote: > This patch adds device tree bindings document for ZTE zx2967 > family power domain controller. > > Signed-off-by: Baoyou Xie <baoyou.xie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Applied all, thanks. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 31+ messages in thread
end of thread, other threads:[~2017-01-11 8:23 UTC | newest] Thread overview: 31+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-01-06 9:16 [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:16 ` [PATCH v7 2/5] MAINTAINERS: add zx2967 SoC drivers to ARM ZTE architecture Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:19 ` Baoyou Xie 2017-01-06 9:16 ` [PATCH v7 3/5] soc: zte: Add header for PM domains specifiers Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:19 ` Baoyou Xie 2017-01-06 9:16 ` [PATCH v7 4/5] soc: zte: pm_domains: Prepare for supporting ARMv8 zx2967 family Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:20 ` Baoyou Xie 2017-01-06 9:16 ` [PATCH v7 5/5] soc: zte: pm_domains: Add support for zx296718 Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:16 ` Baoyou Xie 2017-01-06 9:20 ` Baoyou Xie 2017-01-09 2:16 ` Shawn Guo 2017-01-09 2:16 ` Shawn Guo 2017-01-06 9:19 ` [PATCH v7 1/5] dt-bindings: zte: add bindings document for zx2967 power domain controller Baoyou Xie 2017-01-09 2:09 ` Shawn Guo 2017-01-09 2:09 ` Shawn Guo 2017-01-09 2:09 ` Shawn Guo 2017-01-10 5:35 ` Rob Herring 2017-01-10 5:35 ` Rob Herring 2017-01-10 5:35 ` Rob Herring 2017-01-11 8:23 ` Shawn Guo 2017-01-11 8:23 ` Shawn Guo 2017-01-11 8:23 ` Shawn Guo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.