Lines Matching defs:soc_pm
46 static struct at91_soc_pm soc_pm = {
63 __raw_readl(soc_pm.data.ramc[id] + field)
66 __raw_writel(value, soc_pm.data.ramc[id] + field)
139 if (!soc_pm.data.pmc || !soc_pm.data.shdwc || !soc_pm.ws_ids)
143 writel(mode, soc_pm.data.pmc + AT91_PMC_FSMR);
147 if (soc_pm.config_shdwc_ws)
148 soc_pm.config_shdwc_ws(soc_pm.data.shdwc, &mode, &polarity);
151 val = readl(soc_pm.data.shdwc + 0x04);
154 for_each_matching_node_and_match(np, soc_pm.ws_ids, &match) {
176 if (soc_pm.config_pmc_ws)
177 soc_pm.config_pmc_ws(soc_pm.data.pmc, mode, polarity);
220 soc_pm.data.mode = soc_pm.data.suspend_mode;
224 soc_pm.data.mode = soc_pm.data.standby_mode;
228 soc_pm.data.mode = -1;
231 return at91_pm_config_ws(soc_pm.data.mode, true);
243 scsr = readl(soc_pm.data.pmc + AT91_PMC_SCSR);
246 if ((scsr & soc_pm.data.uhp_udp_mask) != 0) {
257 css = readl(soc_pm.data.pmc + AT91_PMC_PCKR(i)) & AT91_PMC_CSS;
279 return (soc_pm.data.mode >= AT91_PM_ULP0);
292 at91_suspend_sram_fn(&soc_pm.data);
299 if (soc_pm.data.mode == AT91_PM_BACKUP) {
338 if (soc_pm.data.mode >= AT91_PM_ULP0 &&
367 at91_pm_config_ws(soc_pm.data.mode, false);
400 : "r" (0), "r" (soc_pm.data.ramc[0]),
423 if (soc_pm.data.ramc[1]) {
441 if (soc_pm.data.ramc[1])
448 if (soc_pm.data.ramc[1]) {
478 if (soc_pm.data.ramc[1]) {
490 if (soc_pm.data.ramc[1])
496 if (soc_pm.data.ramc[1])
530 soc_pm.data.ramc[idx] = of_iomap(np, 0);
531 if (!soc_pm.data.ramc[idx]) {
540 soc_pm.data.memctrl = ramc->memctrl;
562 iounmap(soc_pm.data.ramc[--idx]);
573 writel(AT91_PMC_PCK, soc_pm.data.pmc + AT91_PMC_SCDR);
578 writel(AT91_PMC_PCK, soc_pm.data.pmc + AT91_PMC_SCDR);
635 return (soc_pm.data.standby_mode == pm_mode ||
636 soc_pm.data.suspend_mode == pm_mode);
658 soc_pm.data.sfrbu = of_iomap(np, 0);
694 iounmap(soc_pm.data.sfrbu);
695 soc_pm.data.sfrbu = NULL;
704 if (soc_pm.data.standby_mode == pm_mode)
705 soc_pm.data.standby_mode = AT91_PM_ULP0;
706 if (soc_pm.data.suspend_mode == pm_mode)
707 soc_pm.data.suspend_mode = AT91_PM_ULP0;
731 soc_pm.data.shdwc = of_iomap(np, 0);
745 iounmap(soc_pm.data.shdwc);
746 soc_pm.data.shdwc = NULL;
812 if (modes[i] == soc_pm.data.standby_mode && !standby) {
817 if (modes[i] == soc_pm.data.suspend_mode && !suspend) {
824 if (soc_pm.data.suspend_mode == AT91_PM_STANDBY)
830 pm_modes[soc_pm.data.standby_mode].pattern,
832 soc_pm.data.standby_mode = mode;
836 if (soc_pm.data.standby_mode == AT91_PM_ULP0)
842 pm_modes[soc_pm.data.suspend_mode].pattern,
844 soc_pm.data.suspend_mode = mode;
858 soc_pm.data.pmc = of_iomap(pmc_np, 0);
860 if (!soc_pm.data.pmc) {
866 soc_pm.data.uhp_udp_mask = pmc->uhp_udp_mask;
867 soc_pm.data.pmc_mckr_offset = pmc->mckr;
868 soc_pm.data.pmc_version = pmc->version;
878 pm_modes[soc_pm.data.standby_mode].pattern,
879 pm_modes[soc_pm.data.suspend_mode].pattern);
897 soc_pm.data.standby_mode = AT91_PM_STANDBY;
898 soc_pm.data.suspend_mode = AT91_PM_ULP0;
930 soc_pm.ws_ids = sam9x60_ws_ids;
931 soc_pm.config_pmc_ws = at91_sam9x60_config_pmc_ws;
946 soc_pm.data.standby_mode = AT91_PM_STANDBY;
947 soc_pm.data.suspend_mode = AT91_PM_ULP0;
993 soc_pm.ws_ids = sama5d2_ws_ids;
994 soc_pm.config_shdwc_ws = at91_sama5d2_config_shdwc_ws;
995 soc_pm.config_pmc_ws = at91_sama5d2_config_pmc_ws;
1016 soc_pm.data.standby_mode = standby;
1017 soc_pm.data.suspend_mode = suspend;