Lines Matching refs:iod
72 struct rockchip_iodomain *iod; member
81 void (*init)(struct rockchip_iodomain *iod);
95 struct rockchip_iodomain *iod = supply->iod; in rk3568_iodomain_write() local
109 regmap_write(iod->grf, RK3568_PMU_GRF_IO_VSEL2, val0); in rk3568_iodomain_write()
110 regmap_write(iod->grf, RK3568_PMU_GRF_IO_VSEL2, val1); in rk3568_iodomain_write()
124 regmap_write(iod->grf, RK3568_PMU_GRF_IO_VSEL0, val0); in rk3568_iodomain_write()
125 regmap_write(iod->grf, RK3568_PMU_GRF_IO_VSEL1, val1); in rk3568_iodomain_write()
137 struct rockchip_iodomain *iod = supply->iod; in rockchip_iodomain_write() local
148 ret = regmap_write(iod->grf, iod->soc_data->grf_offset, val); in rockchip_iodomain_write()
150 dev_err(iod->dev, "Couldn't write to GRF\n"); in rockchip_iodomain_write()
188 dev_dbg(supply->iod->dev, "Setting to %d\n", uV); in rockchip_iodomain_notify()
191 dev_err(supply->iod->dev, "Voltage too high: %d\n", uV); in rockchip_iodomain_notify()
197 ret = supply->iod->write(supply, uV); in rockchip_iodomain_notify()
201 dev_dbg(supply->iod->dev, "Setting to %d done\n", uV); in rockchip_iodomain_notify()
205 static void px30_iodomain_init(struct rockchip_iodomain *iod) in px30_iodomain_init() argument
211 if (!iod->supplies[PX30_IO_VSEL_VCCIO6_SUPPLY_NUM].reg) in px30_iodomain_init()
219 ret = regmap_write(iod->grf, PX30_IO_VSEL, val); in px30_iodomain_init()
221 dev_warn(iod->dev, "couldn't update vccio6 ctrl\n"); in px30_iodomain_init()
224 static void rk3288_iodomain_init(struct rockchip_iodomain *iod) in rk3288_iodomain_init() argument
230 if (!iod->supplies[RK3288_SOC_FLASH_SUPPLY_NUM].reg) in rk3288_iodomain_init()
238 ret = regmap_write(iod->grf, RK3288_SOC_CON2, val); in rk3288_iodomain_init()
240 dev_warn(iod->dev, "couldn't update flash0 ctrl\n"); in rk3288_iodomain_init()
243 static void rk3308_iodomain_init(struct rockchip_iodomain *iod) in rk3308_iodomain_init() argument
249 if (!iod->supplies[RK3308_SOC_VCCIO3_SUPPLY_NUM].reg) in rk3308_iodomain_init()
257 ret = regmap_write(iod->grf, RK3308_SOC_CON0, val); in rk3308_iodomain_init()
259 dev_warn(iod->dev, "couldn't update vccio3 vsel ctrl\n"); in rk3308_iodomain_init()
262 static void rk3328_iodomain_init(struct rockchip_iodomain *iod) in rk3328_iodomain_init() argument
268 if (!iod->supplies[RK3328_SOC_VCCIO2_SUPPLY_NUM].reg) in rk3328_iodomain_init()
276 ret = regmap_write(iod->grf, RK3328_SOC_CON4, val); in rk3328_iodomain_init()
278 dev_warn(iod->dev, "couldn't update vccio2 vsel ctrl\n"); in rk3328_iodomain_init()
281 static void rk3368_iodomain_init(struct rockchip_iodomain *iod) in rk3368_iodomain_init() argument
287 if (!iod->supplies[RK3368_SOC_FLASH_SUPPLY_NUM].reg) in rk3368_iodomain_init()
295 ret = regmap_write(iod->grf, RK3368_SOC_CON15, val); in rk3368_iodomain_init()
297 dev_warn(iod->dev, "couldn't update flash0 ctrl\n"); in rk3368_iodomain_init()
300 static void rk3399_pmu_iodomain_init(struct rockchip_iodomain *iod) in rk3399_pmu_iodomain_init() argument
306 if (!iod->supplies[RK3399_PMUGRF_VSEL_SUPPLY_NUM].reg) in rk3399_pmu_iodomain_init()
314 ret = regmap_write(iod->grf, RK3399_PMUGRF_CON0, val); in rk3399_pmu_iodomain_init()
316 dev_warn(iod->dev, "couldn't update pmu io iodomain ctrl\n"); in rk3399_pmu_iodomain_init()
696 struct rockchip_iodomain *iod = supply->iod; in rockchip_iodomain_dump() local
697 const char *name = iod->soc_data->supply_names[supply->idx]; in rockchip_iodomain_dump()
698 struct device *dev = iod->dev; in rockchip_iodomain_dump()
747 dev_err(supply->iod->dev, "Voltage invalid: %d\n", uV); in rv1126_iodomain_notify()
751 dev_dbg(supply->iod->dev, "Setting to %d\n", uV); in rv1126_iodomain_notify()
754 dev_err(supply->iod->dev, "Voltage too high: %d\n", uV); in rv1126_iodomain_notify()
760 ret = supply->iod->write(supply, uV); in rv1126_iodomain_notify()
764 dev_dbg(supply->iod->dev, "Setting to %d done\n", uV); in rv1126_iodomain_notify()
772 struct rockchip_iodomain *iod; in rockchip_iodomain_probe() local
779 iod = devm_kzalloc(&pdev->dev, sizeof(*iod), GFP_KERNEL); in rockchip_iodomain_probe()
780 if (!iod) in rockchip_iodomain_probe()
783 iod->dev = &pdev->dev; in rockchip_iodomain_probe()
784 platform_set_drvdata(pdev, iod); in rockchip_iodomain_probe()
787 iod->soc_data = match->data; in rockchip_iodomain_probe()
789 if (iod->soc_data->write) in rockchip_iodomain_probe()
790 iod->write = iod->soc_data->write; in rockchip_iodomain_probe()
792 iod->write = rockchip_iodomain_write; in rockchip_iodomain_probe()
796 iod->grf = syscon_node_to_regmap(parent->of_node); in rockchip_iodomain_probe()
799 iod->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); in rockchip_iodomain_probe()
802 if (IS_ERR(iod->grf)) { in rockchip_iodomain_probe()
804 return PTR_ERR(iod->grf); in rockchip_iodomain_probe()
808 const char *supply_name = iod->soc_data->supply_names[i]; in rockchip_iodomain_probe()
809 struct rockchip_iodomain_supply *supply = &iod->supplies[i]; in rockchip_iodomain_probe()
820 reg = devm_regulator_get_optional(iod->dev, supply_name); in rockchip_iodomain_probe()
828 dev_err(iod->dev, "couldn't get regulator %s\n", in rockchip_iodomain_probe()
838 dev_err(iod->dev, "Can't determine voltage: %s\n", in rockchip_iodomain_probe()
845 dev_crit(iod->dev, in rockchip_iodomain_probe()
854 supply->iod = iod; in rockchip_iodomain_probe()
860 ret = iod->write(supply, uV); in rockchip_iodomain_probe()
878 if (iod->soc_data->init) in rockchip_iodomain_probe()
879 iod->soc_data->init(iod); in rockchip_iodomain_probe()
885 struct rockchip_iodomain_supply *io_supply = &iod->supplies[i]; in rockchip_iodomain_probe()
897 struct rockchip_iodomain *iod = platform_get_drvdata(pdev); in rockchip_iodomain_remove() local
901 struct rockchip_iodomain_supply *io_supply = &iod->supplies[i]; in rockchip_iodomain_remove()