* [PATCH 0/8] ARM: ux500: Add initial support for PM domains
@ 2014-10-14 9:12 Ulf Hansson
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
0 siblings, 1 reply; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:12 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
This patchset enables initial support for PM domains for ux500.
The implementation is based upon the generic PM domain and its corresponding
DT support, which is used to decribe PM domains and tell what devices resides
in what PM domain.
In this initial step, the VAPE PM domain is added and the devices with
corresponding drivers that properly implements runtime PM support. Especially,
to gate the VAPE PM domain drivers must implement register context save/restore.
Typically that must be done from the driver's runtime PM callbacks.
Currently the generic PM domain, doesn't handle IRQ safe devices very well. For
example, having such device in a PM domain would keep it always powered. The
DMA controller in ux500, handled by the ste_dma40 driver is configured as IRQ
safe. That limitation in the generic PM domain needs to be fixed, prior we can
add the DMA device to the VAPE PM domain.
Ulf Hansson (8):
dt: bindings: ux500: Add documentation for PM domains
dt: bindings: ux500: Add header for PM domains specifiers
ARM: ux500: Initial support for PM domains
ARM: ux500: Enable Kconfig for the generic PM domain
ARM: ux500: Add DT node for ux500 PM domains
ARM: ux500: Add sdi devices to the VAPE PM domain
ARM: ux500: Add spi and ssp devices to the VAPE PM domain
ARM: ux500: Add i2c devices to the VAPE PM domain
.../devicetree/bindings/arm/ux500/power_domain.txt | 35 ++++++++++
arch/arm/boot/dts/ste-dbx5x0.dtsi | 22 ++++++
arch/arm/mach-ux500/Kconfig | 1 +
arch/arm/mach-ux500/Makefile | 1 +
arch/arm/mach-ux500/pm.c | 4 ++
arch/arm/mach-ux500/pm_domains.c | 79 ++++++++++++++++++++++
arch/arm/mach-ux500/pm_domains.h | 17 +++++
include/dt-bindings/arm/ux500_pm_domains.h | 15 ++++
8 files changed, 174 insertions(+)
create mode 100644 Documentation/devicetree/bindings/arm/ux500/power_domain.txt
create mode 100644 arch/arm/mach-ux500/pm_domains.c
create mode 100644 arch/arm/mach-ux500/pm_domains.h
create mode 100644 include/dt-bindings/arm/ux500_pm_domains.h
--
1.9.1
--
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] 10+ messages in thread
* [PATCH 1/8] dt: bindings: ux500: Add documentation for PM domains
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
@ 2014-10-14 9:12 ` Ulf Hansson
2014-10-14 9:12 ` [PATCH 2/8] dt: bindings: ux500: Add header for PM domains specifiers Ulf Hansson
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:12 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
Signed-off-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
.../devicetree/bindings/arm/ux500/power_domain.txt | 35 ++++++++++++++++++++++
1 file changed, 35 insertions(+)
create mode 100644 Documentation/devicetree/bindings/arm/ux500/power_domain.txt
diff --git a/Documentation/devicetree/bindings/arm/ux500/power_domain.txt b/Documentation/devicetree/bindings/arm/ux500/power_domain.txt
new file mode 100644
index 0000000..5679d17
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/ux500/power_domain.txt
@@ -0,0 +1,35 @@
+* ST-Ericsson UX500 PM Domains
+
+UX500 supports multiple PM domains which are used to gate power to one or
+more peripherals on the SOC.
+
+The implementation of PM domains for UX500 are based upon the generic PM domain
+and use the corresponding DT bindings.
+
+==PM domain providers==
+
+Required properties:
+ - compatible: Must be "stericsson,ux500-pm-domains".
+ - #power-domain-cells : Number of cells in a power domain specifier, must be 1.
+
+Example:
+ pm_domains: pm_domains0 {
+ compatible = "stericsson,ux500-pm-domains";
+ #power-domain-cells = <1>;
+ };
+
+==PM domain consumers==
+
+Required properties:
+ - power-domains: A phandle and PM domain specifier. Below are the list of
+ valid specifiers:
+
+ Index Specifier
+ ----- ---------
+ 0 DOMAIN_VAPE
+
+Example:
+ sdi0_per1@80126000 {
+ compatible = "arm,pl18x", "arm,primecell";
+ power-domains = <&pm_domains DOMAIN_VAPE>
+ };
--
1.9.1
--
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 related [flat|nested] 10+ messages in thread
* [PATCH 2/8] dt: bindings: ux500: Add header for PM domains specifiers
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-10-14 9:12 ` [PATCH 1/8] dt: bindings: ux500: Add documentation " Ulf Hansson
@ 2014-10-14 9:12 ` Ulf Hansson
2014-10-14 9:12 ` [PATCH 3/8] ARM: ux500: Initial support for PM domains Ulf Hansson
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:12 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
Signed-off-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
include/dt-bindings/arm/ux500_pm_domains.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 include/dt-bindings/arm/ux500_pm_domains.h
diff --git a/include/dt-bindings/arm/ux500_pm_domains.h b/include/dt-bindings/arm/ux500_pm_domains.h
new file mode 100644
index 0000000..398a6c0
--- /dev/null
+++ b/include/dt-bindings/arm/ux500_pm_domains.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2014 Linaro Ltd.
+ *
+ * Author: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
+ * License terms: GNU General Public License (GPL) version 2
+ */
+#ifndef _DT_BINDINGS_ARM_UX500_PM_DOMAINS_H
+#define _DT_BINDINGS_ARM_UX500_PM_DOMAINS_H
+
+#define DOMAIN_VAPE 0
+
+/* Number of PM domains. */
+#define NR_DOMAINS (DOMAIN_VAPE + 1)
+
+#endif
--
1.9.1
--
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 related [flat|nested] 10+ messages in thread
* [PATCH 3/8] ARM: ux500: Initial support for PM domains
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-10-14 9:12 ` [PATCH 1/8] dt: bindings: ux500: Add documentation " Ulf Hansson
2014-10-14 9:12 ` [PATCH 2/8] dt: bindings: ux500: Add header for PM domains specifiers Ulf Hansson
@ 2014-10-14 9:12 ` Ulf Hansson
2014-10-14 9:12 ` [PATCH 4/8] ARM: ux500: Enable Kconfig for the generic PM domain Ulf Hansson
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:12 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
The ux500 SoC uses the generic PM domain and requires the domains to be
specified through DT.
Currently the genpd callbacks for handling power gating|ungating are
implemented as dummy functions. To be able to enable those to perform
PM domain gating/ungating, each device that resides in the VAPE domain
must be properly handled from a runtime PM perspective.
Signed-off-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
arch/arm/mach-ux500/Makefile | 1 +
arch/arm/mach-ux500/pm.c | 4 ++
arch/arm/mach-ux500/pm_domains.c | 79 ++++++++++++++++++++++++++++++++++++++++
arch/arm/mach-ux500/pm_domains.h | 17 +++++++++
4 files changed, 101 insertions(+)
create mode 100644 arch/arm/mach-ux500/pm_domains.c
create mode 100644 arch/arm/mach-ux500/pm_domains.h
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile
index 9741de95..4418a50 100644
--- a/arch/arm/mach-ux500/Makefile
+++ b/arch/arm/mach-ux500/Makefile
@@ -9,5 +9,6 @@ obj-$(CONFIG_MACH_MOP500) += board-mop500-regulators.o \
board-mop500-audio.o
obj-$(CONFIG_SMP) += platsmp.o headsmp.o
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
+obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
CFLAGS_hotplug.o += -march=armv7-a
diff --git a/arch/arm/mach-ux500/pm.c b/arch/arm/mach-ux500/pm.c
index b80a9a2..2cb587b 100644
--- a/arch/arm/mach-ux500/pm.c
+++ b/arch/arm/mach-ux500/pm.c
@@ -17,6 +17,7 @@
#include <linux/platform_data/arm-ux500-pm.h>
#include "db8500-regs.h"
+#include "pm_domains.h"
/* ARM WFI Standby signal register */
#define PRCM_ARM_WFI_STANDBY (prcmu_base + 0x130)
@@ -191,4 +192,7 @@ void __init ux500_pm_init(u32 phy_base, u32 size)
/* Set up ux500 suspend callbacks. */
suspend_set_ops(UX500_SUSPEND_OPS);
+
+ /* Initialize ux500 power domains */
+ ux500_pm_domains_init();
}
diff --git a/arch/arm/mach-ux500/pm_domains.c b/arch/arm/mach-ux500/pm_domains.c
new file mode 100644
index 0000000..0d4b5b4
--- /dev/null
+++ b/arch/arm/mach-ux500/pm_domains.c
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2014 Linaro Ltd.
+ *
+ * Author: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
+ * License terms: GNU General Public License (GPL) version 2
+ *
+ * Implements PM domains using the generic PM domain for ux500.
+ */
+#include <linux/printk.h>
+#include <linux/slab.h>
+#include <linux/err.h>
+#include <linux/of.h>
+#include <linux/pm_domain.h>
+
+#include <dt-bindings/arm/ux500_pm_domains.h>
+#include "pm_domains.h"
+
+static int pd_power_off(struct generic_pm_domain *domain)
+{
+ /*
+ * Handle the gating of the PM domain regulator here.
+ *
+ * Drivers/subsystems handling devices in the PM domain needs to perform
+ * register context save/restore from their respective runtime PM
+ * callbacks, to be able to enable PM domain gating/ungating.
+ */
+ return 0;
+}
+
+static int pd_power_on(struct generic_pm_domain *domain)
+{
+ /*
+ * Handle the ungating of the PM domain regulator here.
+ *
+ * Drivers/subsystems handling devices in the PM domain needs to perform
+ * register context save/restore from their respective runtime PM
+ * callbacks, to be able to enable PM domain gating/ungating.
+ */
+ return 0;
+}
+
+static struct generic_pm_domain ux500_pm_domain_vape = {
+ .name = "VAPE",
+ .power_off = pd_power_off,
+ .power_on = pd_power_on,
+};
+
+static struct generic_pm_domain *ux500_pm_domains[NR_DOMAINS] = {
+ [DOMAIN_VAPE] = &ux500_pm_domain_vape,
+};
+
+static struct of_device_id ux500_pm_domain_matches[] = {
+ { .compatible = "stericsson,ux500-pm-domains", },
+ { },
+};
+
+int __init ux500_pm_domains_init(void)
+{
+ struct device_node *np;
+ struct genpd_onecell_data *genpd_data;
+ int i;
+
+ np = of_find_matching_node(NULL, ux500_pm_domain_matches);
+ if (!np)
+ return -ENODEV;
+
+ genpd_data = kzalloc(sizeof(*genpd_data), GFP_KERNEL);
+ if (!genpd_data)
+ return -ENOMEM;
+
+ genpd_data->domains = ux500_pm_domains;
+ genpd_data->num_domains = ARRAY_SIZE(ux500_pm_domains);
+
+ for (i = 0; i < ARRAY_SIZE(ux500_pm_domains); ++i)
+ pm_genpd_init(ux500_pm_domains[i], NULL, false);
+
+ of_genpd_add_provider_onecell(np, genpd_data);
+ return 0;
+}
diff --git a/arch/arm/mach-ux500/pm_domains.h b/arch/arm/mach-ux500/pm_domains.h
new file mode 100644
index 0000000..263d3ba
--- /dev/null
+++ b/arch/arm/mach-ux500/pm_domains.h
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2014 Linaro Ltd.
+ *
+ * Author: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
+ * License terms: GNU General Public License (GPL) version 2
+ */
+
+#ifndef __MACH_UX500_PM_DOMAINS_H
+#define __MACH_UX500_PM_DOMAINS_H
+
+#ifdef CONFIG_PM_GENERIC_DOMAINS
+extern int __init ux500_pm_domains_init(void);
+#else
+static inline int ux500_pm_domains_init(void) { return 0; }
+#endif
+
+#endif
--
1.9.1
--
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 related [flat|nested] 10+ messages in thread
* [PATCH 4/8] ARM: ux500: Enable Kconfig for the generic PM domain
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
` (2 preceding siblings ...)
2014-10-14 9:12 ` [PATCH 3/8] ARM: ux500: Initial support for PM domains Ulf Hansson
@ 2014-10-14 9:12 ` Ulf Hansson
2014-10-14 9:12 ` [PATCH 5/8] ARM: ux500: Add DT node for ux500 PM domains Ulf Hansson
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:12 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
Since ux500 uses the generic PM domain, let's enable the corresponding
Kconfig as long as CONFIG_PM also is enabled.
Signed-off-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
arch/arm/mach-ux500/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index 699e860..c9ac19b 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -32,6 +32,7 @@ config UX500_SOC_DB8500
select PINCTRL_AB8540
select REGULATOR
select REGULATOR_DB8500_PRCMU
+ select PM_GENERIC_DOMAINS if PM
config MACH_MOP500
bool "U8500 Development platform, MOP500 versions"
--
1.9.1
--
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 related [flat|nested] 10+ messages in thread
* [PATCH 5/8] ARM: ux500: Add DT node for ux500 PM domains
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
` (3 preceding siblings ...)
2014-10-14 9:12 ` [PATCH 4/8] ARM: ux500: Enable Kconfig for the generic PM domain Ulf Hansson
@ 2014-10-14 9:12 ` Ulf Hansson
2014-10-14 9:12 ` [PATCH 6/8] ARM: ux500: Add sdi devices to the VAPE PM domain Ulf Hansson
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:12 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
Add a DT node for the ux500 PM domains. Follow the DT semantics of the
generic PM domain.
Signed-off-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
arch/arm/boot/dts/ste-dbx5x0.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi
index 9d23230..d416974 100644
--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi
+++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi
@@ -43,6 +43,10 @@
interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
};
+ pm_domains: pm_domains0 {
+ compatible = "stericsson,ux500-pm-domains";
+ #power-domain-cells = <1>;
+ };
clocks {
compatible = "stericsson,u8500-clks";
--
1.9.1
--
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 related [flat|nested] 10+ messages in thread
* [PATCH 6/8] ARM: ux500: Add sdi devices to the VAPE PM domain
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
` (4 preceding siblings ...)
2014-10-14 9:12 ` [PATCH 5/8] ARM: ux500: Add DT node for ux500 PM domains Ulf Hansson
@ 2014-10-14 9:12 ` Ulf Hansson
2014-10-14 9:13 ` [PATCH 7/8] ARM: ux500: Add spi and ssp " Ulf Hansson
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:12 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
The mmci driver handle these devices properly from a runtime PM
perspective, including register context save/restore. Therefore let's
add them into VAPE PM domain for ux500.
Signed-off-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
arch/arm/boot/dts/ste-dbx5x0.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi
index d416974..41009c1 100644
--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi
+++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi
@@ -11,6 +11,7 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/mfd/dbx500-prcmu.h>
+#include <dt-bindings/arm/ux500_pm_domains.h>
#include "skeleton.dtsi"
/ {
@@ -840,6 +841,7 @@
clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
clock-names = "sdi", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
status = "disabled";
};
@@ -855,6 +857,7 @@
clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>;
clock-names = "sdi", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
status = "disabled";
};
@@ -870,6 +873,7 @@
clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>;
clock-names = "sdi", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
status = "disabled";
};
@@ -885,6 +889,7 @@
clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>;
clock-names = "sdi", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
status = "disabled";
};
@@ -900,6 +905,7 @@
clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>;
clock-names = "sdi", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
status = "disabled";
};
@@ -915,6 +921,7 @@
clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>;
clock-names = "sdi", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
status = "disabled";
};
--
1.9.1
--
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 related [flat|nested] 10+ messages in thread
* [PATCH 7/8] ARM: ux500: Add spi and ssp devices to the VAPE PM domain
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
` (5 preceding siblings ...)
2014-10-14 9:12 ` [PATCH 6/8] ARM: ux500: Add sdi devices to the VAPE PM domain Ulf Hansson
@ 2014-10-14 9:13 ` Ulf Hansson
2014-10-14 9:13 ` [PATCH 8/8] ARM: ux500: Add i2c " Ulf Hansson
2014-10-28 9:51 ` [PATCH 0/8] ARM: ux500: Add initial support for PM domains Linus Walleij
8 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:13 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
The spi-pl022 driver handle these devices properly from a runtime PM
perspective. Therefore, let's add them into VAPE PM domain for ux500.
Signed-off-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
arch/arm/boot/dts/ste-dbx5x0.dtsi | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi
index 41009c1..c51c11f 100644
--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi
+++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi
@@ -714,6 +714,7 @@
dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */
<&dma 8 0 0x0>; /* Logical - MemToDev */
dma-names = "rx", "tx";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
ssp@80003000 {
@@ -727,6 +728,7 @@
dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */
<&dma 9 0 0x0>; /* Logical - MemToDev */
dma-names = "rx", "tx";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
spi@8011a000 {
@@ -741,6 +743,7 @@
dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */
<&dma 0 0 0x0>; /* Logical - MemToDev */
dma-names = "rx", "tx";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
spi@80112000 {
@@ -755,6 +758,7 @@
dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */
<&dma 35 0 0x0>; /* Logical - MemToDev */
dma-names = "rx", "tx";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
spi@80111000 {
@@ -769,6 +773,7 @@
dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */
<&dma 33 0 0x0>; /* Logical - MemToDev */
dma-names = "rx", "tx";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
spi@80129000 {
@@ -783,6 +788,7 @@
dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */
<&dma 40 0 0x0>; /* Logical - MemToDev */
dma-names = "rx", "tx";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
uart@80120000 {
--
1.9.1
--
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 related [flat|nested] 10+ messages in thread
* [PATCH 8/8] ARM: ux500: Add i2c devices to the VAPE PM domain
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
` (6 preceding siblings ...)
2014-10-14 9:13 ` [PATCH 7/8] ARM: ux500: Add spi and ssp " Ulf Hansson
@ 2014-10-14 9:13 ` Ulf Hansson
2014-10-28 9:51 ` [PATCH 0/8] ARM: ux500: Add initial support for PM domains Linus Walleij
8 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2014-10-14 9:13 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Linus Walleij
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Rafael J. Wysocki,
Tomasz Figa, Kevin Hilman, Russell King, Geert Uytterhoeven,
Philipp Zabel, Jack Dai, Jinkun Hong, Ulf Hansson
The i2c-nomadik driver handle these devices properly from a runtime PM
perspective. Therefore, let's add them into VAPE PM domain for ux500.
Signed-off-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
arch/arm/boot/dts/ste-dbx5x0.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi
index c51c11f..bfd3f1c 100644
--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi
+++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi
@@ -641,6 +641,7 @@
clock-frequency = <400000>;
clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
clock-names = "i2cclk", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
i2c@80122000 {
@@ -656,6 +657,7 @@
clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>;
clock-names = "i2cclk", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
i2c@80128000 {
@@ -671,6 +673,7 @@
clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>;
clock-names = "i2cclk", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
i2c@80110000 {
@@ -686,6 +689,7 @@
clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>;
clock-names = "i2cclk", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
i2c@8012a000 {
@@ -701,6 +705,7 @@
clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>;
clock-names = "i2cclk", "apb_pclk";
+ power-domains = <&pm_domains DOMAIN_VAPE>;
};
ssp@80002000 {
--
1.9.1
--
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 related [flat|nested] 10+ messages in thread
* Re: [PATCH 0/8] ARM: ux500: Add initial support for PM domains
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
` (7 preceding siblings ...)
2014-10-14 9:13 ` [PATCH 8/8] ARM: ux500: Add i2c " Ulf Hansson
@ 2014-10-28 9:51 ` Linus Walleij
8 siblings, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2014-10-28 9:51 UTC (permalink / raw)
To: Ulf Hansson
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Herring,
Rafael J. Wysocki, Tomasz Figa, Kevin Hilman, Russell King,
Geert Uytterhoeven, Philipp Zabel, Jack Dai, Jinkun Hong
On Tue, Oct 14, 2014 at 11:12 AM, Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote:
> This patchset enables initial support for PM domains for ux500.
>
> The implementation is based upon the generic PM domain and its corresponding
> DT support, which is used to decribe PM domains and tell what devices resides
> in what PM domain.
>
> In this initial step, the VAPE PM domain is added and the devices with
> corresponding drivers that properly implements runtime PM support. Especially,
> to gate the VAPE PM domain drivers must implement register context save/restore.
> Typically that must be done from the driver's runtime PM callbacks.
>
> Currently the generic PM domain, doesn't handle IRQ safe devices very well. For
> example, having such device in a PM domain would keep it always powered. The
> DMA controller in ux500, handled by the ste_dma40 driver is configured as IRQ
> safe. That limitation in the generic PM domain needs to be fixed, prior we can
> add the DMA device to the VAPE PM domain.
All patches applied and will send a pull request to ARM SoC ASAP.
Yours,
Linus Walleij
--
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] 10+ messages in thread
end of thread, other threads:[~2014-10-28 9:51 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
[not found] ` <1413277981-27451-1-git-send-email-ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-10-14 9:12 ` [PATCH 1/8] dt: bindings: ux500: Add documentation " Ulf Hansson
2014-10-14 9:12 ` [PATCH 2/8] dt: bindings: ux500: Add header for PM domains specifiers Ulf Hansson
2014-10-14 9:12 ` [PATCH 3/8] ARM: ux500: Initial support for PM domains Ulf Hansson
2014-10-14 9:12 ` [PATCH 4/8] ARM: ux500: Enable Kconfig for the generic PM domain Ulf Hansson
2014-10-14 9:12 ` [PATCH 5/8] ARM: ux500: Add DT node for ux500 PM domains Ulf Hansson
2014-10-14 9:12 ` [PATCH 6/8] ARM: ux500: Add sdi devices to the VAPE PM domain Ulf Hansson
2014-10-14 9:13 ` [PATCH 7/8] ARM: ux500: Add spi and ssp " Ulf Hansson
2014-10-14 9:13 ` [PATCH 8/8] ARM: ux500: Add i2c " Ulf Hansson
2014-10-28 9:51 ` [PATCH 0/8] ARM: ux500: Add initial support for PM domains Linus Walleij
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).