Lines Matching defs:bc

84 	struct imx93_blk_ctrl *bc;
104 struct imx93_blk_ctrl *bc = domain->bc;
117 regmap_write_bits(bc->regmap, qos->reg, mask, val);
119 dev_dbg(bc->dev, "data->qos[i].reg 0x%x 0x%x\n", qos->reg, val);
129 struct imx93_blk_ctrl *bc = domain->bc;
132 ret = clk_bulk_prepare_enable(bc->num_clks, bc->clks);
134 dev_err(bc->dev, "failed to enable bus clocks\n");
140 clk_bulk_disable_unprepare(bc->num_clks, bc->clks);
141 dev_err(bc->dev, "failed to enable clocks\n");
145 ret = pm_runtime_get_sync(bc->dev);
147 pm_runtime_put_noidle(bc->dev);
148 dev_err(bc->dev, "failed to power up domain\n");
153 regmap_clear_bits(bc->regmap, BLK_CLK_EN, data->clk_mask);
156 regmap_set_bits(bc->regmap, BLK_SFT_RSTN, data->rst_mask);
158 dev_dbg(bc->dev, "pd_on: name: %s\n", genpd->name);
165 clk_bulk_disable_unprepare(bc->num_clks, bc->clks);
174 struct imx93_blk_ctrl *bc = domain->bc;
176 dev_dbg(bc->dev, "pd_off: name: %s\n", genpd->name);
178 regmap_clear_bits(bc->regmap, BLK_SFT_RSTN, data->rst_mask);
179 regmap_set_bits(bc->regmap, BLK_CLK_EN, data->clk_mask);
181 pm_runtime_put(bc->dev);
185 clk_bulk_disable_unprepare(bc->num_clks, bc->clks);
196 struct imx93_blk_ctrl *bc;
209 bc = devm_kzalloc(dev, sizeof(*bc), GFP_KERNEL);
210 if (!bc)
213 bc->dev = dev;
219 bc->regmap = devm_regmap_init_mmio(dev, base, &regmap_config);
220 if (IS_ERR(bc->regmap))
221 return dev_err_probe(dev, PTR_ERR(bc->regmap),
224 bc->domains = devm_kcalloc(dev, bc_data->num_domains,
227 if (!bc->domains)
230 bc->onecell_data.num_domains = bc_data->num_domains;
231 bc->onecell_data.domains =
234 if (!bc->onecell_data.domains)
238 bc->clks[i].id = bc_data->clk_names[i];
239 bc->num_clks = bc_data->num_clks;
241 ret = devm_clk_bulk_get(dev, bc->num_clks, bc->clks);
249 struct imx93_blk_ctrl_domain *domain = &bc->domains[i];
266 domain->bc = bc;
287 bc->onecell_data.domains[i] = &domain->genpd;
292 ret = of_genpd_add_provider_onecell(dev->of_node, &bc->onecell_data);
298 dev_set_drvdata(dev, bc);
304 pm_genpd_remove(&bc->domains[i].genpd);
311 struct imx93_blk_ctrl *bc = dev_get_drvdata(&pdev->dev);
316 for (i = 0; bc->onecell_data.num_domains; i++) {
317 struct imx93_blk_ctrl_domain *domain = &bc->domains[i];