Lines Matching refs:phy
48 static struct phy_counts *phy_get_counts(struct phy *phy) in phy_get_counts() argument
53 if (!generic_phy_valid(phy)) in phy_get_counts()
56 uc_priv = dev_get_uclass_priv(phy->dev); in phy_get_counts()
58 if (counts->id == phy->id) in phy_get_counts()
64 static int phy_alloc_counts(struct phy *phy, struct udevice *supply) in phy_alloc_counts() argument
69 if (!generic_phy_valid(phy)) in phy_alloc_counts()
71 if (phy_get_counts(phy)) in phy_alloc_counts()
74 uc_priv = dev_get_uclass_priv(phy->dev); in phy_alloc_counts()
79 counts->id = phy->id; in phy_alloc_counts()
108 static int generic_phy_xlate_offs_flags(struct phy *phy, in generic_phy_xlate_offs_flags() argument
111 debug("%s(phy=%p)\n", __func__, phy); in generic_phy_xlate_offs_flags()
119 phy->id = args->args[0]; in generic_phy_xlate_offs_flags()
121 phy->id = 0; in generic_phy_xlate_offs_flags()
126 int generic_phy_get_by_index_nodev(ofnode node, int index, struct phy *phy) in generic_phy_get_by_index_nodev() argument
134 __func__, ofnode_get_name(node), index, phy); in generic_phy_get_by_index_nodev()
136 assert(phy); in generic_phy_get_by_index_nodev()
137 phy->dev = NULL; in generic_phy_get_by_index_nodev()
166 phy->dev = phydev; in generic_phy_get_by_index_nodev()
171 ret = ops->of_xlate(phy, &args); in generic_phy_get_by_index_nodev()
173 ret = generic_phy_xlate_offs_flags(phy, &args); in generic_phy_get_by_index_nodev()
189 ret = phy_alloc_counts(phy, supply); in generic_phy_get_by_index_nodev()
198 phy->dev = NULL; in generic_phy_get_by_index_nodev()
203 struct phy *phy) in generic_phy_get_by_index() argument
205 return generic_phy_get_by_index_nodev(dev_ofnode(dev), index, phy); in generic_phy_get_by_index()
209 struct phy *phy) in generic_phy_get_by_name() argument
213 debug("%s(dev=%p, name=%s, phy=%p)\n", __func__, dev, phy_name, phy); in generic_phy_get_by_name()
215 assert(phy); in generic_phy_get_by_name()
216 phy->dev = NULL; in generic_phy_get_by_name()
224 return generic_phy_get_by_index(dev, index, phy); in generic_phy_get_by_name()
227 int generic_phy_init(struct phy *phy) in generic_phy_init() argument
233 if (!generic_phy_valid(phy)) in generic_phy_init()
235 counts = phy_get_counts(phy); in generic_phy_init()
241 ops = phy_dev_ops(phy->dev); in generic_phy_init()
243 ret = ops->init(phy); in generic_phy_init()
245 dev_err(phy->dev, "PHY: Failed to init %s: %d.\n", in generic_phy_init()
246 phy->dev->name, ret); in generic_phy_init()
255 int generic_phy_reset(struct phy *phy) in generic_phy_reset() argument
260 if (!generic_phy_valid(phy)) in generic_phy_reset()
262 ops = phy_dev_ops(phy->dev); in generic_phy_reset()
265 ret = ops->reset(phy); in generic_phy_reset()
267 dev_err(phy->dev, "PHY: Failed to reset %s: %d.\n", in generic_phy_reset()
268 phy->dev->name, ret); in generic_phy_reset()
273 int generic_phy_exit(struct phy *phy) in generic_phy_exit() argument
279 if (!generic_phy_valid(phy)) in generic_phy_exit()
281 counts = phy_get_counts(phy); in generic_phy_exit()
289 ops = phy_dev_ops(phy->dev); in generic_phy_exit()
291 ret = ops->exit(phy); in generic_phy_exit()
293 dev_err(phy->dev, "PHY: Failed to exit %s: %d.\n", in generic_phy_exit()
294 phy->dev->name, ret); in generic_phy_exit()
303 int generic_phy_power_on(struct phy *phy) in generic_phy_power_on() argument
309 if (!generic_phy_valid(phy)) in generic_phy_power_on()
311 counts = phy_get_counts(phy); in generic_phy_power_on()
319 dev_err(phy->dev, "PHY: Failed to enable regulator %s: %d.\n", in generic_phy_power_on()
324 ops = phy_dev_ops(phy->dev); in generic_phy_power_on()
326 ret = ops->power_on(phy); in generic_phy_power_on()
328 dev_err(phy->dev, "PHY: Failed to power on %s: %d.\n", in generic_phy_power_on()
329 phy->dev->name, ret); in generic_phy_power_on()
339 int generic_phy_power_off(struct phy *phy) in generic_phy_power_off() argument
345 if (!generic_phy_valid(phy)) in generic_phy_power_off()
347 counts = phy_get_counts(phy); in generic_phy_power_off()
355 ops = phy_dev_ops(phy->dev); in generic_phy_power_off()
357 ret = ops->power_off(phy); in generic_phy_power_off()
359 dev_err(phy->dev, "PHY: Failed to power off %s: %d.\n", in generic_phy_power_off()
360 phy->dev->name, ret); in generic_phy_power_off()
368 dev_err(phy->dev, "PHY: Failed to disable regulator %s: %d.\n", in generic_phy_power_off()
374 int generic_phy_configure(struct phy *phy, void *params) in generic_phy_configure() argument
378 if (!generic_phy_valid(phy)) in generic_phy_configure()
380 ops = phy_dev_ops(phy->dev); in generic_phy_configure()
382 return ops->configure ? ops->configure(phy, params) : 0; in generic_phy_configure()
385 int generic_phy_set_mode(struct phy *phy, enum phy_mode mode, int submode) in generic_phy_set_mode() argument
389 if (!generic_phy_valid(phy)) in generic_phy_set_mode()
391 ops = phy_dev_ops(phy->dev); in generic_phy_set_mode()
393 return ops->set_mode ? ops->set_mode(phy, mode, submode) : 0; in generic_phy_set_mode()
396 int generic_phy_set_speed(struct phy *phy, int speed) in generic_phy_set_speed() argument
400 if (!generic_phy_valid(phy)) in generic_phy_set_speed()
402 ops = phy_dev_ops(phy->dev); in generic_phy_set_speed()
404 return ops->set_speed ? ops->set_speed(phy, speed) : 0; in generic_phy_set_speed()
429 bulk->phys = devm_kcalloc(phydev, count, sizeof(struct phy), GFP_KERNEL); in generic_phy_get_bulk()
447 struct phy *phys = bulk->phys; in generic_phy_init_bulk()
469 struct phy *phys = bulk->phys; in generic_phy_exit_bulk()
480 struct phy *phys = bulk->phys; in generic_phy_power_on_bulk()
502 struct phy *phys = bulk->phys; in generic_phy_power_off_bulk()
511 int generic_setup_phy(struct udevice *dev, struct phy *phy, int index, in generic_setup_phy() argument
516 ret = generic_phy_get_by_index(dev, index, phy); in generic_setup_phy()
520 ret = generic_phy_init(phy); in generic_setup_phy()
524 ret = generic_phy_set_mode(phy, mode, submode); in generic_setup_phy()
528 ret = generic_phy_power_on(phy); in generic_setup_phy()
535 generic_phy_exit(phy); in generic_setup_phy()
539 int generic_shutdown_phy(struct phy *phy) in generic_shutdown_phy() argument
543 if (!generic_phy_valid(phy)) in generic_shutdown_phy()
546 ret = generic_phy_power_off(phy); in generic_shutdown_phy()
550 return generic_phy_exit(phy); in generic_shutdown_phy()
553 UCLASS_DRIVER(phy) = {