Lines Matching defs:drv

21 	struct samsung_usb2_phy_driver *drv = inst->drv;
24 dev_dbg(drv->dev, "Request to power_on \"%s\" usb phy\n",
27 if (drv->vbus) {
28 ret = regulator_enable(drv->vbus);
33 ret = clk_prepare_enable(drv->clk);
36 ret = clk_prepare_enable(drv->ref_clk);
40 spin_lock(&drv->lock);
42 spin_unlock(&drv->lock);
50 clk_disable_unprepare(drv->ref_clk);
52 clk_disable_unprepare(drv->clk);
54 if (drv->vbus)
55 regulator_disable(drv->vbus);
63 struct samsung_usb2_phy_driver *drv = inst->drv;
66 dev_dbg(drv->dev, "Request to power_off \"%s\" usb phy\n",
69 spin_lock(&drv->lock);
71 spin_unlock(&drv->lock);
75 clk_disable_unprepare(drv->ref_clk);
76 clk_disable_unprepare(drv->clk);
77 if (drv->vbus)
78 ret = regulator_disable(drv->vbus);
92 struct samsung_usb2_phy_driver *drv;
94 drv = dev_get_drvdata(dev);
95 if (!drv)
98 if (WARN_ON(args->args[0] >= drv->cfg->num_phys))
101 return drv->instances[args->args[0]].phy;
148 struct samsung_usb2_phy_driver *drv;
160 drv = devm_kzalloc(dev, struct_size(drv, instances, cfg->num_phys),
162 if (!drv)
165 dev_set_drvdata(dev, drv);
166 spin_lock_init(&drv->lock);
168 drv->cfg = cfg;
169 drv->dev = dev;
171 drv->reg_phy = devm_platform_ioremap_resource(pdev, 0);
172 if (IS_ERR(drv->reg_phy)) {
174 return PTR_ERR(drv->reg_phy);
177 drv->reg_pmu = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
179 if (IS_ERR(drv->reg_pmu)) {
181 return PTR_ERR(drv->reg_pmu);
184 if (drv->cfg->has_mode_switch) {
185 drv->reg_sys = syscon_regmap_lookup_by_phandle(
187 if (IS_ERR(drv->reg_sys)) {
189 return PTR_ERR(drv->reg_sys);
193 drv->clk = devm_clk_get(dev, "phy");
194 if (IS_ERR(drv->clk)) {
196 return PTR_ERR(drv->clk);
199 drv->ref_clk = devm_clk_get(dev, "ref");
200 if (IS_ERR(drv->ref_clk)) {
202 return PTR_ERR(drv->ref_clk);
205 drv->ref_rate = clk_get_rate(drv->ref_clk);
206 if (drv->cfg->rate_to_clk) {
207 ret = drv->cfg->rate_to_clk(drv->ref_rate, &drv->ref_reg_val);
212 drv->vbus = devm_regulator_get(dev, "vbus");
213 if (IS_ERR(drv->vbus)) {
214 ret = PTR_ERR(drv->vbus);
217 drv->vbus = NULL;
220 for (i = 0; i < drv->cfg->num_phys; i++) {
221 char *label = drv->cfg->phys[i].label;
222 struct samsung_usb2_phy_instance *p = &drv->instances[i];
227 dev_err(drv->dev, "Failed to create usb2_phy \"%s\"\n",
232 p->cfg = &drv->cfg->phys[i];
233 p->drv = drv;
241 dev_err(drv->dev, "Failed to register phy provider\n");