Lines Matching +full:tune +full:- +full:usb2 +full:- +full:amplitude

1 // SPDX-License-Identifier: GPL-2.0
86 /* No PMIC-specific init sequence, only board level tuning via DT */
102 int num = rptr->cfg->num_vregs; in eusb2_repeater_init_vregs()
103 struct device *dev = rptr->dev; in eusb2_repeater_init_vregs()
106 rptr->vregs = devm_kcalloc(dev, num, sizeof(*rptr->vregs), GFP_KERNEL); in eusb2_repeater_init_vregs()
107 if (!rptr->vregs) in eusb2_repeater_init_vregs()
108 return -ENOMEM; in eusb2_repeater_init_vregs()
111 rptr->vregs[i].supply = rptr->cfg->vreg_list[i]; in eusb2_repeater_init_vregs()
113 return devm_regulator_bulk_get(dev, num, rptr->vregs); in eusb2_repeater_init_vregs()
119 struct device_node *np = rptr->dev->of_node; in eusb2_repeater_init()
120 struct regmap *regmap = rptr->regmap; in eusb2_repeater_init()
121 u32 base = rptr->base; in eusb2_repeater_init()
126 ret = regulator_bulk_enable(rptr->cfg->num_vregs, rptr->vregs); in eusb2_repeater_init()
133 for (int i = 0; i < rptr->cfg->init_tbl_num; i++) in eusb2_repeater_init()
134 regmap_write(regmap, base + rptr->cfg->init_tbl[i].reg, in eusb2_repeater_init()
135 rptr->cfg->init_tbl[i].value); in eusb2_repeater_init()
138 if (!of_property_read_u8(np, "qcom,tune-usb2-preem", &val)) in eusb2_repeater_init()
141 if (!of_property_read_u8(np, "qcom,tune-usb2-disc-thres", &val)) in eusb2_repeater_init()
144 if (!of_property_read_u8(np, "qcom,tune-usb2-amplitude", &val)) in eusb2_repeater_init()
147 if (!of_property_read_u8(np, "qcom,tune-res-fsdif", &val)) in eusb2_repeater_init()
154 dev_err(rptr->dev, "initialization timed-out\n"); in eusb2_repeater_init()
163 struct regmap *regmap = rptr->regmap; in eusb2_repeater_set_mode()
164 u32 base = rptr->base; in eusb2_repeater_set_mode()
181 * regulators (say host <-> device mode switch). in eusb2_repeater_set_mode()
187 return -EINVAL; in eusb2_repeater_set_mode()
197 return regulator_bulk_disable(rptr->cfg->num_vregs, rptr->vregs); in eusb2_repeater_exit()
210 struct device *dev = &pdev->dev; in eusb2_repeater_probe()
212 struct device_node *np = dev->of_node; in eusb2_repeater_probe()
218 return -ENOMEM; in eusb2_repeater_probe()
220 rptr->dev = dev; in eusb2_repeater_probe()
223 rptr->cfg = of_device_get_match_data(dev); in eusb2_repeater_probe()
224 if (!rptr->cfg) in eusb2_repeater_probe()
225 return -EINVAL; in eusb2_repeater_probe()
227 rptr->regmap = dev_get_regmap(dev->parent, NULL); in eusb2_repeater_probe()
228 if (!rptr->regmap) in eusb2_repeater_probe()
229 return -ENODEV; in eusb2_repeater_probe()
235 rptr->base = res; in eusb2_repeater_probe()
243 rptr->phy = devm_phy_create(dev, np, &eusb2_repeater_ops); in eusb2_repeater_probe()
244 if (IS_ERR(rptr->phy)) { in eusb2_repeater_probe()
246 return PTR_ERR(rptr->phy); in eusb2_repeater_probe()
249 phy_set_drvdata(rptr->phy, rptr); in eusb2_repeater_probe()
265 eusb2_repeater_exit(rptr->phy); in eusb2_repeater_remove()
270 .compatible = "qcom,pm8550b-eusb2-repeater",
274 .compatible = "qcom,pmiv0104-eusb2-repeater",
278 .compatible = "qcom,smb2360-eusb2-repeater",
289 .name = "qcom-eusb2-repeater",