* [PATCH 1/8] dt: bindings: ux500: Add documentation for PM domains
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
@ 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
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.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 at 80126000 {
+ compatible = "arm,pl18x", "arm,primecell";
+ power-domains = <&pm_domains DOMAIN_VAPE>
+ };
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 2/8] dt: bindings: ux500: Add header for PM domains specifiers
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
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
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.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@linaro.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
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 3/8] ARM: ux500: Initial support for PM domains
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
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
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@linaro.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@linaro.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@linaro.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
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 4/8] ARM: ux500: Enable Kconfig for the generic PM domain
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
` (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
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@linaro.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
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 5/8] ARM: ux500: Add DT node for ux500 PM domains
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
` (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
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@linaro.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
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 6/8] ARM: ux500: Add sdi devices to the VAPE PM domain
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
` (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
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@linaro.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
^ 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
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
` (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
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@linaro.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 at 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 at 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 at 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 at 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 at 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 at 80120000 {
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 8/8] ARM: ux500: Add i2c devices to the VAPE PM domain
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
` (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
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@linaro.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 at 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 at 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 at 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 at 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 at 80002000 {
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 0/8] ARM: ux500: Add initial support for PM domains
2014-10-14 9:12 [PATCH 0/8] ARM: ux500: Add initial support for PM domains Ulf Hansson
` (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: linux-arm-kernel
On Tue, Oct 14, 2014 at 11:12 AM, Ulf Hansson <ulf.hansson@linaro.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
^ permalink raw reply [flat|nested] 10+ messages in thread