Symbol: scpsys
drivers/pmdomain/mediatek/mtk-pm-domains.c
1055
scpsys->bus_prot = devm_kmalloc_array(dev, num_regmaps,
drivers/pmdomain/mediatek/mtk-pm-domains.c
1056
sizeof(*scpsys->bus_prot), GFP_KERNEL);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1057
if (!scpsys->bus_prot)
drivers/pmdomain/mediatek/mtk-pm-domains.c
1067
scpsys->bus_prot_index[bp_type] = j;
drivers/pmdomain/mediatek/mtk-pm-domains.c
1068
scpsys->bus_prot[j] = regmap[i];
drivers/pmdomain/mediatek/mtk-pm-domains.c
1076
static int scpsys_get_bus_protection(struct device *dev, struct scpsys *scpsys)
drivers/pmdomain/mediatek/mtk-pm-domains.c
1078
const struct scpsys_soc_data *soc = scpsys->soc_data;
drivers/pmdomain/mediatek/mtk-pm-domains.c
108
regmap_multi_reg_read(pd->scpsys->base, regs, val, 2);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1088
scpsys->bus_prot = devm_kmalloc_array(dev, soc->num_bus_prot_blocks,
drivers/pmdomain/mediatek/mtk-pm-domains.c
1089
sizeof(*scpsys->bus_prot), GFP_KERNEL);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1090
if (!scpsys->bus_prot)
drivers/pmdomain/mediatek/mtk-pm-domains.c
1107
scpsys->bus_prot_index[bp_type] = i;
drivers/pmdomain/mediatek/mtk-pm-domains.c
1109
scpsys->bus_prot[i] = device_node_to_regmap(node);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1111
if (IS_ERR_OR_NULL(scpsys->bus_prot[i]))
drivers/pmdomain/mediatek/mtk-pm-domains.c
1112
return dev_err_probe(dev, scpsys->bus_prot[i] ?
drivers/pmdomain/mediatek/mtk-pm-domains.c
1113
PTR_ERR(scpsys->bus_prot[i]) : -ENXIO,
drivers/pmdomain/mediatek/mtk-pm-domains.c
1187
struct scpsys *scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
1198
scpsys = devm_kzalloc(dev, struct_size(scpsys, domains, num_domains), GFP_KERNEL);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1199
if (!scpsys)
drivers/pmdomain/mediatek/mtk-pm-domains.c
1202
scpsys->dev = dev;
drivers/pmdomain/mediatek/mtk-pm-domains.c
1203
scpsys->soc_data = soc;
drivers/pmdomain/mediatek/mtk-pm-domains.c
1205
scpsys->pd_data.domains = scpsys->domains;
drivers/pmdomain/mediatek/mtk-pm-domains.c
1206
scpsys->pd_data.num_domains = num_domains;
drivers/pmdomain/mediatek/mtk-pm-domains.c
121
regmap_multi_reg_read(pd->scpsys->base, regs, val, 3);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1214
scpsys->base = syscon_node_to_regmap(parent->of_node);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1215
if (IS_ERR(scpsys->base)) {
drivers/pmdomain/mediatek/mtk-pm-domains.c
1217
return PTR_ERR(scpsys->base);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1221
ret = scpsys_get_bus_protection(dev, scpsys);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1223
ret = scpsys_get_bus_protection_legacy(dev, scpsys);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1232
domain = scpsys_add_one_domain(scpsys, node);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1239
ret = scpsys_add_subdomain(scpsys, node);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1251
ret = of_genpd_add_provider_onecell(np, &scpsys->pd_data);
drivers/pmdomain/mediatek/mtk-pm-domains.c
1260
scpsys_domain_cleanup(scpsys);
drivers/pmdomain/mediatek/mtk-pm-domains.c
139
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
144
regmap_set_bits(scpsys->base, pd->data->ctl_offs, pd->data->sram_pdn_bits);
drivers/pmdomain/mediatek/mtk-pm-domains.c
147
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, pd->data->sram_pdn_bits);
drivers/pmdomain/mediatek/mtk-pm-domains.c
152
ret = regmap_read_poll_timeout(scpsys->base, pd->data->ctl_offs, tmp,
drivers/pmdomain/mediatek/mtk-pm-domains.c
159
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_SRAM_ISOINT_B_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
161
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_SRAM_CLKISO_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
170
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
174
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_SRAM_CLKISO_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
176
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_SRAM_ISOINT_B_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
180
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, pd->data->sram_pdn_bits);
drivers/pmdomain/mediatek/mtk-pm-domains.c
183
regmap_set_bits(scpsys->base, pd->data->ctl_offs, pd->data->sram_pdn_bits);
drivers/pmdomain/mediatek/mtk-pm-domains.c
188
return regmap_read_poll_timeout(scpsys->base, pd->data->ctl_offs, tmp,
drivers/pmdomain/mediatek/mtk-pm-domains.c
196
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
197
unsigned short block_idx = scpsys->bus_prot_index[bpd->bus_prot_block];
drivers/pmdomain/mediatek/mtk-pm-domains.c
199
return scpsys->bus_prot[block_idx];
drivers/pmdomain/mediatek/mtk-pm-domains.c
205
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
206
int block_idx = scpsys->bus_prot_index[bpd->bus_prot_sta_block];
drivers/pmdomain/mediatek/mtk-pm-domains.c
208
return scpsys->bus_prot[block_idx];
drivers/pmdomain/mediatek/mtk-pm-domains.c
307
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
331
ret = regmap_read_poll_timeout_atomic(scpsys->base, hwv->done, val,
drivers/pmdomain/mediatek/mtk-pm-domains.c
336
dev_err(scpsys->dev, "Failed to power on: HW Voter busy.\n");
drivers/pmdomain/mediatek/mtk-pm-domains.c
344
regmap_write(scpsys->base, hwv->set, BIT(hwv->setclr_bit));
drivers/pmdomain/mediatek/mtk-pm-domains.c
350
ret = regmap_read_poll_timeout_atomic(scpsys->base, hwv->set, val,
drivers/pmdomain/mediatek/mtk-pm-domains.c
355
dev_err(scpsys->dev, "Failed to power on: HW Voter not starting.\n");
drivers/pmdomain/mediatek/mtk-pm-domains.c
363
dev_err(scpsys->dev, "Failed to power on: HW Voter ACK timeout.\n");
drivers/pmdomain/mediatek/mtk-pm-domains.c
391
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
406
ret = regmap_read_poll_timeout_atomic(scpsys->base, hwv->done, val,
drivers/pmdomain/mediatek/mtk-pm-domains.c
418
regmap_write(scpsys->base, hwv->clr, BIT(hwv->setclr_bit));
drivers/pmdomain/mediatek/mtk-pm-domains.c
424
ret = regmap_read_poll_timeout_atomic(scpsys->base, hwv->clr, val,
drivers/pmdomain/mediatek/mtk-pm-domains.c
460
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
465
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_ON_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
466
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_ON_2ND_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
475
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
477
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_CLK_DIS_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
478
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ISO_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
484
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
499
regmap_read(scpsys->base, pd->data->ctl_offs, &ctl_status);
drivers/pmdomain/mediatek/mtk-pm-domains.c
518
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_SAVE_FLAG);
drivers/pmdomain/mediatek/mtk-pm-domains.c
519
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
520
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_NRESTORE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
521
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_NRESTORE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
522
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
525
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_SAVE_FLAG);
drivers/pmdomain/mediatek/mtk-pm-domains.c
526
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_NRESTORE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
527
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_NRESTORE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
528
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
531
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_UFS_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
532
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_NRESTORE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
533
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_NRESTORE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
534
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_UFS_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
545
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
550
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
551
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_SAVE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
552
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_SAVE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
553
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
554
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_SAVE_FLAG);
drivers/pmdomain/mediatek/mtk-pm-domains.c
557
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_UFS_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
558
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_SAVE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
559
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_SAVE);
drivers/pmdomain/mediatek/mtk-pm-domains.c
560
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RTFF_UFS_CLK_DIS);
drivers/pmdomain/mediatek/mtk-pm-domains.c
567
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_ISO_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
573
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_CLK_DIS_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
574
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
575
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ON_2ND_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
576
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ON_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
581
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
586
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
588
regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_ON_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
601
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
603
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ON_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
606
regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT);
drivers/pmdomain/mediatek/mtk-pm-domains.c
612
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
624
regmap_clear_bits(scpsys->base, pd->data->ext_buck_iso_offs,
drivers/pmdomain/mediatek/mtk-pm-domains.c
63
struct scpsys *scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
682
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
695
regmap_set_bits(scpsys->base, pd->data->ext_buck_iso_offs,
drivers/pmdomain/mediatek/mtk-pm-domains.c
719
generic_pm_domain *scpsys_add_one_domain(struct scpsys *scpsys, struct device_node *node)
drivers/pmdomain/mediatek/mtk-pm-domains.c
733
dev_err(scpsys->dev, "%pOF: failed to retrieve domain id from reg: %d\n",
drivers/pmdomain/mediatek/mtk-pm-domains.c
738
switch (scpsys->soc_data->type) {
drivers/pmdomain/mediatek/mtk-pm-domains.c
740
if (id >= scpsys->soc_data->num_domains) {
drivers/pmdomain/mediatek/mtk-pm-domains.c
741
dev_err(scpsys->dev, "%pOF: invalid domain id %d\n", node, id);
drivers/pmdomain/mediatek/mtk-pm-domains.c
745
domain_data = &scpsys->soc_data->domains_data[id];
drivers/pmdomain/mediatek/mtk-pm-domains.c
749
dev_err(scpsys->dev, "%pOF: undefined domain id %d\n", node, id);
drivers/pmdomain/mediatek/mtk-pm-domains.c
755
if (id >= scpsys->soc_data->num_hwv_domains) {
drivers/pmdomain/mediatek/mtk-pm-domains.c
756
dev_err(scpsys->dev, "%pOF: invalid HWV domain id %d\n", node, id);
drivers/pmdomain/mediatek/mtk-pm-domains.c
761
hwv_domain_data = &scpsys->soc_data->hwv_domains_data[id];
drivers/pmdomain/mediatek/mtk-pm-domains.c
768
pd = devm_kzalloc(scpsys->dev, sizeof(*pd), GFP_KERNEL);
drivers/pmdomain/mediatek/mtk-pm-domains.c
774
pd->scpsys = scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
777
pd->supply = devm_of_regulator_get_optional(scpsys->dev, node, "domain");
drivers/pmdomain/mediatek/mtk-pm-domains.c
779
return dev_err_cast_probe(scpsys->dev, pd->supply,
drivers/pmdomain/mediatek/mtk-pm-domains.c
797
pd->clks = devm_kcalloc(scpsys->dev, pd->num_clks, sizeof(*pd->clks), GFP_KERNEL);
drivers/pmdomain/mediatek/mtk-pm-domains.c
801
pd->subsys_clks = devm_kcalloc(scpsys->dev, pd->num_subsys_clks,
drivers/pmdomain/mediatek/mtk-pm-domains.c
812
dev_err_probe(scpsys->dev, ret,
drivers/pmdomain/mediatek/mtk-pm-domains.c
824
dev_err_probe(scpsys->dev, ret,
drivers/pmdomain/mediatek/mtk-pm-domains.c
833
if (scpsys->domains[id]) {
drivers/pmdomain/mediatek/mtk-pm-domains.c
835
dev_err(scpsys->dev,
drivers/pmdomain/mediatek/mtk-pm-domains.c
847
if (scpsys->soc_data->type == SCPSYS_MTCMOS_TYPE_DIRECT_CTL) {
drivers/pmdomain/mediatek/mtk-pm-domains.c
85
struct scpsys *scpsys = pd->scpsys;
drivers/pmdomain/mediatek/mtk-pm-domains.c
866
dev_warn(scpsys->dev,
drivers/pmdomain/mediatek/mtk-pm-domains.c
871
dev_err(scpsys->dev, "%pOF: failed to power on domain: %d\n", node, ret);
drivers/pmdomain/mediatek/mtk-pm-domains.c
887
scpsys->domains[id] = &pd->genpd;
drivers/pmdomain/mediatek/mtk-pm-domains.c
889
return scpsys->pd_data.domains[id];
drivers/pmdomain/mediatek/mtk-pm-domains.c
898
static int scpsys_add_subdomain(struct scpsys *scpsys, struct device_node *parent)
drivers/pmdomain/mediatek/mtk-pm-domains.c
909
dev_err(scpsys->dev, "%pOF: failed to get parent domain id\n", child);
drivers/pmdomain/mediatek/mtk-pm-domains.c
91
regmap_read(scpsys->base, pd->data->pwr_sta_offs, &status);
drivers/pmdomain/mediatek/mtk-pm-domains.c
913
if (!scpsys->pd_data.domains[id]) {
drivers/pmdomain/mediatek/mtk-pm-domains.c
915
dev_err(scpsys->dev, "power domain with id %d does not exist\n", id);
drivers/pmdomain/mediatek/mtk-pm-domains.c
919
parent_pd = scpsys->pd_data.domains[id];
drivers/pmdomain/mediatek/mtk-pm-domains.c
921
child_pd = scpsys_add_one_domain(scpsys, child);
drivers/pmdomain/mediatek/mtk-pm-domains.c
924
dev_err_probe(scpsys->dev, ret, "%pOF: failed to get child domain id\n",
drivers/pmdomain/mediatek/mtk-pm-domains.c
930
ret = scpsys_add_subdomain(scpsys, child);
drivers/pmdomain/mediatek/mtk-pm-domains.c
936
dev_err(scpsys->dev, "failed to add %s subdomain to parent %s\n",
drivers/pmdomain/mediatek/mtk-pm-domains.c
94
regmap_read(scpsys->base, pd->data->pwr_sta2nd_offs, &status2);
drivers/pmdomain/mediatek/mtk-pm-domains.c
940
dev_dbg(scpsys->dev, "%s add subdomain: %s\n", parent_pd->name,
drivers/pmdomain/mediatek/mtk-pm-domains.c
962
dev_err(pd->scpsys->dev,
drivers/pmdomain/mediatek/mtk-pm-domains.c
972
static void scpsys_domain_cleanup(struct scpsys *scpsys)
drivers/pmdomain/mediatek/mtk-pm-domains.c
978
for (i = scpsys->pd_data.num_domains - 1; i >= 0; i--) {
drivers/pmdomain/mediatek/mtk-pm-domains.c
979
genpd = scpsys->pd_data.domains[i];
drivers/pmdomain/mediatek/mtk-pm-domains.c
987
static int scpsys_get_bus_protection_legacy(struct device *dev, struct scpsys *scpsys)