Lines Matching refs:drv

25 	struct samsung_usb2_phy_driver *drv = inst->drv;  in samsung_usb2_phy_power_on()  local
28 dev_dbg(drv->dev, "Request to power_on \"%s\" usb phy\n", in samsung_usb2_phy_power_on()
31 if (drv->vbus) { in samsung_usb2_phy_power_on()
32 ret = regulator_enable(drv->vbus); in samsung_usb2_phy_power_on()
37 ret = clk_prepare_enable(drv->clk); in samsung_usb2_phy_power_on()
40 ret = clk_prepare_enable(drv->ref_clk); in samsung_usb2_phy_power_on()
44 spin_lock(&drv->lock); in samsung_usb2_phy_power_on()
46 spin_unlock(&drv->lock); in samsung_usb2_phy_power_on()
54 clk_disable_unprepare(drv->ref_clk); in samsung_usb2_phy_power_on()
56 clk_disable_unprepare(drv->clk); in samsung_usb2_phy_power_on()
58 if (drv->vbus) in samsung_usb2_phy_power_on()
59 regulator_disable(drv->vbus); in samsung_usb2_phy_power_on()
67 struct samsung_usb2_phy_driver *drv = inst->drv; in samsung_usb2_phy_power_off() local
70 dev_dbg(drv->dev, "Request to power_off \"%s\" usb phy\n", in samsung_usb2_phy_power_off()
73 spin_lock(&drv->lock); in samsung_usb2_phy_power_off()
75 spin_unlock(&drv->lock); in samsung_usb2_phy_power_off()
79 clk_disable_unprepare(drv->ref_clk); in samsung_usb2_phy_power_off()
80 clk_disable_unprepare(drv->clk); in samsung_usb2_phy_power_off()
81 if (drv->vbus) in samsung_usb2_phy_power_off()
82 ret = regulator_disable(drv->vbus); in samsung_usb2_phy_power_off()
96 struct samsung_usb2_phy_driver *drv; in samsung_usb2_phy_xlate() local
98 drv = dev_get_drvdata(dev); in samsung_usb2_phy_xlate()
99 if (!drv) in samsung_usb2_phy_xlate()
102 if (WARN_ON(args->args[0] >= drv->cfg->num_phys)) in samsung_usb2_phy_xlate()
105 return drv->instances[args->args[0]].phy; in samsung_usb2_phy_xlate()
150 struct samsung_usb2_phy_driver *drv; in samsung_usb2_phy_probe() local
165 drv = devm_kzalloc(dev, sizeof(struct samsung_usb2_phy_driver) + in samsung_usb2_phy_probe()
168 if (!drv) in samsung_usb2_phy_probe()
171 dev_set_drvdata(dev, drv); in samsung_usb2_phy_probe()
172 spin_lock_init(&drv->lock); in samsung_usb2_phy_probe()
174 drv->cfg = cfg; in samsung_usb2_phy_probe()
175 drv->dev = dev; in samsung_usb2_phy_probe()
178 drv->reg_phy = devm_ioremap_resource(dev, mem); in samsung_usb2_phy_probe()
179 if (IS_ERR(drv->reg_phy)) { in samsung_usb2_phy_probe()
181 return PTR_ERR(drv->reg_phy); in samsung_usb2_phy_probe()
184 drv->reg_pmu = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, in samsung_usb2_phy_probe()
186 if (IS_ERR(drv->reg_pmu)) { in samsung_usb2_phy_probe()
188 return PTR_ERR(drv->reg_pmu); in samsung_usb2_phy_probe()
191 if (drv->cfg->has_mode_switch) { in samsung_usb2_phy_probe()
192 drv->reg_sys = syscon_regmap_lookup_by_phandle( in samsung_usb2_phy_probe()
194 if (IS_ERR(drv->reg_sys)) { in samsung_usb2_phy_probe()
196 return PTR_ERR(drv->reg_sys); in samsung_usb2_phy_probe()
200 drv->clk = devm_clk_get(dev, "phy"); in samsung_usb2_phy_probe()
201 if (IS_ERR(drv->clk)) { in samsung_usb2_phy_probe()
203 return PTR_ERR(drv->clk); in samsung_usb2_phy_probe()
206 drv->ref_clk = devm_clk_get(dev, "ref"); in samsung_usb2_phy_probe()
207 if (IS_ERR(drv->ref_clk)) { in samsung_usb2_phy_probe()
209 return PTR_ERR(drv->ref_clk); in samsung_usb2_phy_probe()
212 drv->ref_rate = clk_get_rate(drv->ref_clk); in samsung_usb2_phy_probe()
213 if (drv->cfg->rate_to_clk) { in samsung_usb2_phy_probe()
214 ret = drv->cfg->rate_to_clk(drv->ref_rate, &drv->ref_reg_val); in samsung_usb2_phy_probe()
219 drv->vbus = devm_regulator_get(dev, "vbus"); in samsung_usb2_phy_probe()
220 if (IS_ERR(drv->vbus)) { in samsung_usb2_phy_probe()
221 ret = PTR_ERR(drv->vbus); in samsung_usb2_phy_probe()
224 drv->vbus = NULL; in samsung_usb2_phy_probe()
227 for (i = 0; i < drv->cfg->num_phys; i++) { in samsung_usb2_phy_probe()
228 char *label = drv->cfg->phys[i].label; in samsung_usb2_phy_probe()
229 struct samsung_usb2_phy_instance *p = &drv->instances[i]; in samsung_usb2_phy_probe()
234 dev_err(drv->dev, "Failed to create usb2_phy \"%s\"\n", in samsung_usb2_phy_probe()
239 p->cfg = &drv->cfg->phys[i]; in samsung_usb2_phy_probe()
240 p->drv = drv; in samsung_usb2_phy_probe()
248 dev_err(drv->dev, "Failed to register phy provider\n"); in samsung_usb2_phy_probe()