Lines Matching full:scp
130 struct scp;
134 struct scp *scp; member
145 struct scp { struct
171 struct scp *scp = scpd->scp; in scpsys_domain_is_on() argument
173 u32 status = readl(scp->base + scp->ctrl_reg.pwr_sta_offs) & in scpsys_domain_is_on()
175 u32 status2 = readl(scp->base + scp->ctrl_reg.pwr_sta2nd_offs) & in scpsys_domain_is_on()
194 struct scp *scp = scpd->scp; in scpsys_power_on() local
195 void __iomem *ctl_addr = scp->base + scpd->data->ctl_offs; in scpsys_power_on()
258 ret = mtk_infracfg_clear_bus_protection(scp->infracfg, in scpsys_power_on()
260 scp->bus_prot_reg_update); in scpsys_power_on()
276 dev_err(scp->dev, "Failed to power on domain %s\n", genpd->name); in scpsys_power_on()
284 struct scp *scp = scpd->scp; in scpsys_power_off() local
285 void __iomem *ctl_addr = scp->base + scpd->data->ctl_offs; in scpsys_power_off()
292 ret = mtk_infracfg_set_bus_protection(scp->infracfg, in scpsys_power_off()
294 scp->bus_prot_reg_update); in scpsys_power_off()
339 dev_err(scp->dev, "Failed to power off domain %s\n", genpd->name); in scpsys_power_off()
352 static struct scp *init_scp(struct platform_device *pdev, in init_scp()
360 struct scp *scp; in init_scp() local
363 scp = devm_kzalloc(&pdev->dev, sizeof(*scp), GFP_KERNEL); in init_scp()
364 if (!scp) in init_scp()
367 scp->ctrl_reg.pwr_sta_offs = scp_ctrl_reg->pwr_sta_offs; in init_scp()
368 scp->ctrl_reg.pwr_sta2nd_offs = scp_ctrl_reg->pwr_sta2nd_offs; in init_scp()
370 scp->bus_prot_reg_update = bus_prot_reg_update; in init_scp()
372 scp->dev = &pdev->dev; in init_scp()
375 scp->base = devm_ioremap_resource(&pdev->dev, res); in init_scp()
376 if (IS_ERR(scp->base)) in init_scp()
377 return ERR_CAST(scp->base); in init_scp()
379 scp->domains = devm_kcalloc(&pdev->dev, in init_scp()
380 num, sizeof(*scp->domains), GFP_KERNEL); in init_scp()
381 if (!scp->domains) in init_scp()
384 pd_data = &scp->pd_data; in init_scp()
391 scp->infracfg = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, in init_scp()
393 if (IS_ERR(scp->infracfg)) { in init_scp()
395 PTR_ERR(scp->infracfg)); in init_scp()
396 return ERR_CAST(scp->infracfg); in init_scp()
400 struct scp_domain *scpd = &scp->domains[i]; in init_scp()
417 struct scp_domain *scpd = &scp->domains[i]; in init_scp()
422 scpd->scp = scp; in init_scp()
445 return scp; in init_scp()
449 struct scp *scp, int num) in mtk_register_power_domains() argument
455 struct scp_domain *scpd = &scp->domains[i]; in mtk_register_power_domains()
475 pd_data = &scp->pd_data; in mtk_register_power_domains()
1041 struct scp *scp; in scpsys_probe() local
1047 scp = init_scp(pdev, soc->domains, soc->num_domains, &soc->regs, in scpsys_probe()
1049 if (IS_ERR(scp)) in scpsys_probe()
1050 return PTR_ERR(scp); in scpsys_probe()
1052 mtk_register_power_domains(pdev, scp, soc->num_domains); in scpsys_probe()
1054 pd_data = &scp->pd_data; in scpsys_probe()