23 #define SPDCR IOMEM(0xe6180008)
24 #define SWUCR IOMEM(0xe6180014)
25 #define PSTR IOMEM(0xe6180080)
27 #define PSTR_RETRIES 100
28 #define PSTR_DELAY_US 10
55 pr_debug(
"%s: Power off, 0x%08x -> PSTR = 0x%08x\n",
85 pr_debug(
"%s: Power on, 0x%08x -> PSTR = 0x%08x\n",
89 if (ret == 0 && rmobile_pd->
resume && do_resume)
97 return __rmobile_pd_power_up(to_rmobile_pd(genpd),
true);
100 static bool rmobile_pd_active_wakeup(
struct device *
dev)
104 active_wakeup = dev_gpd_data(dev)->ops.active_wakeup;
105 return active_wakeup ? active_wakeup(dev) :
true;
108 static int rmobile_pd_stop_dev(
struct device *dev)
112 stop = dev_gpd_data(dev)->ops.stop;
121 static int rmobile_pd_start_dev(
struct device *dev)
130 start = dev_gpd_data(dev)->ops.start;
143 genpd->
dev_ops.stop = rmobile_pd_stop_dev;
144 genpd->
dev_ops.start = rmobile_pd_start_dev;
145 genpd->
dev_ops.active_wakeup = rmobile_pd_active_wakeup;
147 genpd->
power_off = rmobile_pd_power_down;
148 genpd->
power_on = rmobile_pd_power_up;
149 __rmobile_pd_power_up(rmobile_pd,
false);
156 for (j = 0; j < num; j++)
157 rmobile_init_pm_domain(&domains[j]);
167 if (pm_clk_no_clocks(dev))
168 pm_clk_add(dev,
NULL);
182 for (j = 0; j <
size; j++)
184 data[j].pdev, &latencies);