Commit | Line | Data |
---|---|---|
723487a6 HK |
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 | */ | |
7 | static inline struct phy | |
42ad8f67 | 8 | *ulpi_phy_create(struct ulpi *ulpi, const struct phy_ops *ops) |
723487a6 HK |
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. */ | |
27 | static 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 | } |