Lines Matching defs:pd
84 static bool sun50i_h6_ppu_power_status(const struct sun50i_h6_ppu_pd *pd)
86 bool bit = readl(pd->reg) & pd->gate_mask;
88 return bit ^ pd->negated;
91 static int sun50i_h6_ppu_pd_set_power(const struct sun50i_h6_ppu_pd *pd,
94 u32 reg = readl(pd->reg);
97 writel(reg | pd->gate_mask, pd->reg);
99 writel(reg & ~pd->gate_mask, pd->reg);
106 const struct sun50i_h6_ppu_pd *pd = to_sun50i_h6_ppu_pd(genpd);
108 return sun50i_h6_ppu_pd_set_power(pd, !pd->negated);
113 const struct sun50i_h6_ppu_pd *pd = to_sun50i_h6_ppu_pd(genpd);
115 return sun50i_h6_ppu_pd_set_power(pd, pd->negated);
152 struct sun50i_h6_ppu_pd *pd = &pds[i];
155 pd->genpd.name = desc->name;
156 pd->genpd.power_off = sun50i_h6_ppu_pd_power_off;
157 pd->genpd.power_on = sun50i_h6_ppu_pd_power_on;
159 pd->genpd.flags = GENPD_FLAG_ALWAYS_ON;
160 pd->negated = !!(desc->flags & FLAG_PPU_NEGATED);
161 pd->reg = base + desc->offset - PD_H6_PPU_OFFSET;
162 pd->gate_mask = desc->mask;
164 ret = pm_genpd_init(&pd->genpd, NULL,
165 !sun50i_h6_ppu_power_status(pd));
171 ppu->domains[i] = &pd->genpd;