Linux Audio

Check our new training course

In-person Linux kernel drivers training

Jun 16-20, 2025
Register
Loading...
Note: File does not exist in v6.2.
 1#include <linux/phy/phy.h>
 2
 3/**
 4 * Helper that registers PHY for a ULPI device and adds a lookup for binding it
 5 * and it's controller, which is always the parent.
 6 */
 7static inline struct phy
 8*ulpi_phy_create(struct ulpi *ulpi, const struct phy_ops *ops)
 9{
10	struct phy *phy;
11	int ret;
12
13	phy = phy_create(&ulpi->dev, NULL, ops);
14	if (IS_ERR(phy))
15		return phy;
16
17	ret = phy_create_lookup(phy, "usb2-phy", dev_name(ulpi->dev.parent));
18	if (ret) {
19		phy_destroy(phy);
20		return ERR_PTR(ret);
21	}
22
23	return phy;
24}
25
26/* Remove a PHY that was created with ulpi_phy_create() and it's lookup. */
27static inline void ulpi_phy_destroy(struct ulpi *ulpi, struct phy *phy)
28{
29	phy_remove_lookup(phy, "usb2-phy", dev_name(ulpi->dev.parent));
30	phy_destroy(phy);
31}