Makes it possible to define a rockchip,pmu phandle in the cpus node directly
referencing the pmu syscon instead of searching for specific compatible.

The old way of finding the pmu stays of course available.

Signed-off-by: Heiko Stuebner <he...@sntech.de>
Signed-off-by: Kever Yang <kever.y...@rock-chips.com>
---

Changes in v3:
- add this patch

Changes in v2: None

 arch/arm/mach-rockchip/platsmp.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm/mach-rockchip/platsmp.c b/arch/arm/mach-rockchip/platsmp.c
index 4c36fbf..57b53b3 100644
--- a/arch/arm/mach-rockchip/platsmp.c
+++ b/arch/arm/mach-rockchip/platsmp.c
@@ -155,6 +155,19 @@ static int __init rockchip_smp_prepare_pmu(void)
        struct device_node *node;
        void __iomem *pmu_base;
 
+       /*
+        * This function is only called via smp_ops->smp_prepare_cpu().
+        * That only happens if a "/cpus" device tree node exists
+        * and has an "enable-method" property that selects the SMP
+        * operations defined herein.
+        */
+       node = of_find_node_by_path("/cpus");
+
+       pmu = syscon_regmap_lookup_by_phandle(node, "rockchip,pmu");
+       of_node_put(node);
+       if (!IS_ERR(pmu))
+               return 0;
+
        pmu = syscon_regmap_lookup_by_compatible("rockchip,rk3066-pmu");
        if (!IS_ERR(pmu))
                return 0;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to