Lines Matching defs:bpmp

11 #include <soc/tegra/bpmp.h>
12 #include <soc/tegra/bpmp-abi.h>
21 struct tegra_bpmp *bpmp;
31 static int tegra_bpmp_powergate_set_state(struct tegra_bpmp *bpmp,
48 err = tegra_bpmp_transfer(bpmp, &msg);
57 static int tegra_bpmp_powergate_get_state(struct tegra_bpmp *bpmp,
78 err = tegra_bpmp_transfer(bpmp, &msg);
87 static int tegra_bpmp_powergate_get_max_id(struct tegra_bpmp *bpmp)
106 err = tegra_bpmp_transfer(bpmp, &msg);
115 static char *tegra_bpmp_powergate_get_name(struct tegra_bpmp *bpmp,
136 err = tegra_bpmp_transfer(bpmp, &msg);
143 static inline bool tegra_bpmp_powergate_is_powered(struct tegra_bpmp *bpmp,
146 return tegra_bpmp_powergate_get_state(bpmp, id) != PG_STATE_OFF;
152 struct tegra_bpmp *bpmp = powergate->bpmp;
154 return tegra_bpmp_powergate_set_state(bpmp, powergate->id,
161 struct tegra_bpmp *bpmp = powergate->bpmp;
163 return tegra_bpmp_powergate_set_state(bpmp, powergate->id,
168 tegra_powergate_add(struct tegra_bpmp *bpmp,
175 off = !tegra_bpmp_powergate_is_powered(bpmp, info->id);
177 powergate = devm_kzalloc(bpmp->dev, sizeof(*powergate), GFP_KERNEL);
182 powergate->bpmp = bpmp;
200 struct tegra_bpmp *bpmp = powergate->bpmp;
205 dev_err(bpmp->dev, "failed to remove power domain %s: %d\n",
212 tegra_bpmp_probe_powergates(struct tegra_bpmp *bpmp,
220 err = tegra_bpmp_powergate_get_max_id(bpmp);
226 dev_dbg(bpmp->dev, "maximum powergate ID: %u\n", max_id);
235 info->name = tegra_bpmp_powergate_get_name(bpmp, id);
245 dev_dbg(bpmp->dev, "holes: %u\n", num_holes);
252 static int tegra_bpmp_add_powergates(struct tegra_bpmp *bpmp,
256 struct genpd_onecell_data *genpd = &bpmp->genpd;
267 powergate = tegra_powergate_add(bpmp, &powergates[i]);
273 dev_dbg(bpmp->dev, "added power domain %s\n",
293 static void tegra_bpmp_remove_powergates(struct tegra_bpmp *bpmp)
295 struct genpd_onecell_data *genpd = &bpmp->genpd;
300 dev_dbg(bpmp->dev, "removing power domain %s\n",
327 int tegra_bpmp_init_powergates(struct tegra_bpmp *bpmp)
329 struct device_node *np = bpmp->dev->of_node;
331 struct device *dev = bpmp->dev;
335 err = tegra_bpmp_probe_powergates(bpmp, &powergates);
343 err = tegra_bpmp_add_powergates(bpmp, powergates, count);
347 bpmp->genpd.xlate = tegra_powergate_xlate;
349 err = of_genpd_add_provider_onecell(np, &bpmp->genpd);
352 tegra_bpmp_remove_powergates(bpmp);