Lines Matching refs:bpmp
30 struct tegra_bpmp *bpmp; member
40 static int tegra_bpmp_powergate_set_state(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_set_state() argument
57 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_set_state()
66 static int tegra_bpmp_powergate_get_state(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_get_state() argument
87 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_state()
96 static int tegra_bpmp_powergate_get_max_id(struct tegra_bpmp *bpmp) in tegra_bpmp_powergate_get_max_id() argument
115 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_max_id()
124 static char *tegra_bpmp_powergate_get_name(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_get_name() argument
145 err = tegra_bpmp_transfer(bpmp, &msg); in tegra_bpmp_powergate_get_name()
152 static inline bool tegra_bpmp_powergate_is_powered(struct tegra_bpmp *bpmp, in tegra_bpmp_powergate_is_powered() argument
155 return tegra_bpmp_powergate_get_state(bpmp, id) != PG_STATE_OFF; in tegra_bpmp_powergate_is_powered()
161 struct tegra_bpmp *bpmp = powergate->bpmp; in tegra_powergate_power_on() local
163 return tegra_bpmp_powergate_set_state(bpmp, powergate->id, in tegra_powergate_power_on()
170 struct tegra_bpmp *bpmp = powergate->bpmp; in tegra_powergate_power_off() local
172 return tegra_bpmp_powergate_set_state(bpmp, powergate->id, in tegra_powergate_power_off()
177 tegra_powergate_add(struct tegra_bpmp *bpmp, in tegra_powergate_add() argument
184 off = !tegra_bpmp_powergate_is_powered(bpmp, info->id); in tegra_powergate_add()
186 powergate = devm_kzalloc(bpmp->dev, sizeof(*powergate), GFP_KERNEL); in tegra_powergate_add()
191 powergate->bpmp = bpmp; in tegra_powergate_add()
209 struct tegra_bpmp *bpmp = powergate->bpmp; in tegra_powergate_remove() local
214 dev_err(bpmp->dev, "failed to remove power domain %s: %d\n", in tegra_powergate_remove()
221 tegra_bpmp_probe_powergates(struct tegra_bpmp *bpmp, in tegra_bpmp_probe_powergates() argument
229 err = tegra_bpmp_powergate_get_max_id(bpmp); in tegra_bpmp_probe_powergates()
235 dev_dbg(bpmp->dev, "maximum powergate ID: %u\n", max_id); in tegra_bpmp_probe_powergates()
244 info->name = tegra_bpmp_powergate_get_name(bpmp, id); in tegra_bpmp_probe_powergates()
254 dev_dbg(bpmp->dev, "holes: %u\n", num_holes); in tegra_bpmp_probe_powergates()
261 static int tegra_bpmp_add_powergates(struct tegra_bpmp *bpmp, in tegra_bpmp_add_powergates() argument
265 struct genpd_onecell_data *genpd = &bpmp->genpd; in tegra_bpmp_add_powergates()
276 powergate = tegra_powergate_add(bpmp, &powergates[i]); in tegra_bpmp_add_powergates()
282 dev_dbg(bpmp->dev, "added power domain %s\n", in tegra_bpmp_add_powergates()
302 static void tegra_bpmp_remove_powergates(struct tegra_bpmp *bpmp) in tegra_bpmp_remove_powergates() argument
304 struct genpd_onecell_data *genpd = &bpmp->genpd; in tegra_bpmp_remove_powergates()
309 dev_dbg(bpmp->dev, "removing power domain %s\n", in tegra_bpmp_remove_powergates()
336 int tegra_bpmp_init_powergates(struct tegra_bpmp *bpmp) in tegra_bpmp_init_powergates() argument
338 struct device_node *np = bpmp->dev->of_node; in tegra_bpmp_init_powergates()
340 struct device *dev = bpmp->dev; in tegra_bpmp_init_powergates()
344 err = tegra_bpmp_probe_powergates(bpmp, &powergates); in tegra_bpmp_init_powergates()
352 err = tegra_bpmp_add_powergates(bpmp, powergates, count); in tegra_bpmp_init_powergates()
356 bpmp->genpd.xlate = tegra_powergate_xlate; in tegra_bpmp_init_powergates()
358 err = of_genpd_add_provider_onecell(np, &bpmp->genpd); in tegra_bpmp_init_powergates()
361 tegra_bpmp_remove_powergates(bpmp); in tegra_bpmp_init_powergates()