diff options
-rw-r--r-- | Documentation/phy.txt | 10 | ||||
-rw-r--r-- | drivers/phy/phy-bcm-kona-usb2.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-berlin-sata.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-core.c | 25 | ||||
-rw-r--r-- | drivers/phy/phy-exynos-dp-video.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-exynos-mipi-video.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-exynos5-usbdrd.c | 3 | ||||
-rw-r--r-- | drivers/phy/phy-exynos5250-sata.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-hix5hd2-sata.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-mvebu-sata.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-omap-usb2.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-qcom-apq8064-sata.c | 3 | ||||
-rw-r--r-- | drivers/phy/phy-samsung-usb2.c | 3 | ||||
-rw-r--r-- | drivers/phy/phy-sun4i-usb.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-ti-pipe3.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-twl4030-usb.c | 2 | ||||
-rw-r--r-- | drivers/phy/phy-xgene.c | 2 | ||||
-rw-r--r-- | include/linux/phy/phy.h | 15 |
18 files changed, 52 insertions, 31 deletions
diff --git a/Documentation/phy.txt b/Documentation/phy.txt index ebff6ee52441..c6594af94d25 100644 --- a/Documentation/phy.txt +++ b/Documentation/phy.txt | |||
@@ -53,10 +53,12 @@ unregister the PHY. | |||
53 | The PHY driver should create the PHY in order for other peripheral controllers | 53 | The PHY driver should create the PHY in order for other peripheral controllers |
54 | to make use of it. The PHY framework provides 2 APIs to create the PHY. | 54 | to make use of it. The PHY framework provides 2 APIs to create the PHY. |
55 | 55 | ||
56 | struct phy *phy_create(struct device *dev, const struct phy_ops *ops, | 56 | struct phy *phy_create(struct device *dev, struct device_node *node, |
57 | struct phy_init_data *init_data); | 57 | const struct phy_ops *ops, |
58 | struct phy *devm_phy_create(struct device *dev, const struct phy_ops *ops, | 58 | struct phy_init_data *init_data); |
59 | struct phy_init_data *init_data); | 59 | struct phy *devm_phy_create(struct device *dev, struct device_node *node, |
60 | const struct phy_ops *ops, | ||
61 | struct phy_init_data *init_data); | ||
60 | 62 | ||
61 | The PHY drivers can use one of the above 2 APIs to create the PHY by passing | 63 | The PHY drivers can use one of the above 2 APIs to create the PHY by passing |
62 | the device pointer, phy ops and init_data. | 64 | the device pointer, phy ops and init_data. |
diff --git a/drivers/phy/phy-bcm-kona-usb2.c b/drivers/phy/phy-bcm-kona-usb2.c index e94f5a6a5645..894fe74c1e44 100644 --- a/drivers/phy/phy-bcm-kona-usb2.c +++ b/drivers/phy/phy-bcm-kona-usb2.c | |||
@@ -117,7 +117,7 @@ static int bcm_kona_usb2_probe(struct platform_device *pdev) | |||
117 | 117 | ||
118 | platform_set_drvdata(pdev, phy); | 118 | platform_set_drvdata(pdev, phy); |
119 | 119 | ||
120 | gphy = devm_phy_create(dev, &ops, NULL); | 120 | gphy = devm_phy_create(dev, NULL, &ops, NULL); |
121 | if (IS_ERR(gphy)) | 121 | if (IS_ERR(gphy)) |
122 | return PTR_ERR(gphy); | 122 | return PTR_ERR(gphy); |
123 | 123 | ||
diff --git a/drivers/phy/phy-berlin-sata.c b/drivers/phy/phy-berlin-sata.c index c5e688b0899f..5c3a0424aeb4 100644 --- a/drivers/phy/phy-berlin-sata.c +++ b/drivers/phy/phy-berlin-sata.c | |||
@@ -239,7 +239,7 @@ static int phy_berlin_sata_probe(struct platform_device *pdev) | |||
239 | if (!phy_desc) | 239 | if (!phy_desc) |
240 | return -ENOMEM; | 240 | return -ENOMEM; |
241 | 241 | ||
242 | phy = devm_phy_create(dev, &phy_berlin_sata_ops, NULL); | 242 | phy = devm_phy_create(dev, NULL, &phy_berlin_sata_ops, NULL); |
243 | if (IS_ERR(phy)) { | 243 | if (IS_ERR(phy)) { |
244 | dev_err(dev, "failed to create PHY %d\n", phy_id); | 244 | dev_err(dev, "failed to create PHY %d\n", phy_id); |
245 | return PTR_ERR(phy); | 245 | return PTR_ERR(phy); |
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index 527e744a3809..ff5eec5af817 100644 --- a/drivers/phy/phy-core.c +++ b/drivers/phy/phy-core.c | |||
@@ -415,13 +415,20 @@ struct phy *of_phy_simple_xlate(struct device *dev, struct of_phandle_args | |||
415 | struct phy *phy; | 415 | struct phy *phy; |
416 | struct class_dev_iter iter; | 416 | struct class_dev_iter iter; |
417 | struct device_node *node = dev->of_node; | 417 | struct device_node *node = dev->of_node; |
418 | struct device_node *child; | ||
418 | 419 | ||
419 | class_dev_iter_init(&iter, phy_class, NULL, NULL); | 420 | class_dev_iter_init(&iter, phy_class, NULL, NULL); |
420 | while ((dev = class_dev_iter_next(&iter))) { | 421 | while ((dev = class_dev_iter_next(&iter))) { |
421 | phy = to_phy(dev); | 422 | phy = to_phy(dev); |
422 | if (node != phy->dev.of_node) | 423 | if (node != phy->dev.of_node) { |
424 | for_each_child_of_node(node, child) { | ||
425 | if (child == phy->dev.of_node) | ||
426 | goto phy_found; | ||
427 | } | ||
423 | continue; | 428 | continue; |
429 | } | ||
424 | 430 | ||
431 | phy_found: | ||
425 | class_dev_iter_exit(&iter); | 432 | class_dev_iter_exit(&iter); |
426 | return phy; | 433 | return phy; |
427 | } | 434 | } |
@@ -579,13 +586,15 @@ EXPORT_SYMBOL_GPL(devm_of_phy_get); | |||
579 | /** | 586 | /** |
580 | * phy_create() - create a new phy | 587 | * phy_create() - create a new phy |
581 | * @dev: device that is creating the new phy | 588 | * @dev: device that is creating the new phy |
589 | * @node: device node of the phy | ||
582 | * @ops: function pointers for performing phy operations | 590 | * @ops: function pointers for performing phy operations |
583 | * @init_data: contains the list of PHY consumers or NULL | 591 | * @init_data: contains the list of PHY consumers or NULL |
584 | * | 592 | * |
585 | * Called to create a phy using phy framework. | 593 | * Called to create a phy using phy framework. |
586 | */ | 594 | */ |
587 | struct phy *phy_create(struct device *dev, const struct phy_ops *ops, | 595 | struct phy *phy_create(struct device *dev, struct device_node *node, |
588 | struct phy_init_data *init_data) | 596 | const struct phy_ops *ops, |
597 | struct phy_init_data *init_data) | ||
589 | { | 598 | { |
590 | int ret; | 599 | int ret; |
591 | int id; | 600 | int id; |
@@ -620,7 +629,7 @@ struct phy *phy_create(struct device *dev, const struct phy_ops *ops, | |||
620 | 629 | ||
621 | phy->dev.class = phy_class; | 630 | phy->dev.class = phy_class; |
622 | phy->dev.parent = dev; | 631 | phy->dev.parent = dev; |
623 | phy->dev.of_node = dev->of_node; | 632 | phy->dev.of_node = node ?: dev->of_node; |
624 | phy->id = id; | 633 | phy->id = id; |
625 | phy->ops = ops; | 634 | phy->ops = ops; |
626 | phy->init_data = init_data; | 635 | phy->init_data = init_data; |
@@ -656,6 +665,7 @@ EXPORT_SYMBOL_GPL(phy_create); | |||
656 | /** | 665 | /** |
657 | * devm_phy_create() - create a new phy | 666 | * devm_phy_create() - create a new phy |
658 | * @dev: device that is creating the new phy | 667 | * @dev: device that is creating the new phy |
668 | * @node: device node of the phy | ||
659 | * @ops: function pointers for performing phy operations | 669 | * @ops: function pointers for performing phy operations |
660 | * @init_data: contains the list of PHY consumers or NULL | 670 | * @init_data: contains the list of PHY consumers or NULL |
661 | * | 671 | * |
@@ -664,8 +674,9 @@ EXPORT_SYMBOL_GPL(phy_create); | |||
664 | * On driver detach, release function is invoked on the devres data, | 674 | * On driver detach, release function is invoked on the devres data, |
665 | * then, devres data is freed. | 675 | * then, devres data is freed. |
666 | */ | 676 | */ |
667 | struct phy *devm_phy_create(struct device *dev, const struct phy_ops *ops, | 677 | struct phy *devm_phy_create(struct device *dev, struct device_node *node, |
668 | struct phy_init_data *init_data) | 678 | const struct phy_ops *ops, |
679 | struct phy_init_data *init_data) | ||
669 | { | 680 | { |
670 | struct phy **ptr, *phy; | 681 | struct phy **ptr, *phy; |
671 | 682 | ||
@@ -673,7 +684,7 @@ struct phy *devm_phy_create(struct device *dev, const struct phy_ops *ops, | |||
673 | if (!ptr) | 684 | if (!ptr) |
674 | return ERR_PTR(-ENOMEM); | 685 | return ERR_PTR(-ENOMEM); |
675 | 686 | ||
676 | phy = phy_create(dev, ops, init_data); | 687 | phy = phy_create(dev, node, ops, init_data); |
677 | if (!IS_ERR(phy)) { | 688 | if (!IS_ERR(phy)) { |
678 | *ptr = phy; | 689 | *ptr = phy; |
679 | devres_add(dev, ptr); | 690 | devres_add(dev, ptr); |
diff --git a/drivers/phy/phy-exynos-dp-video.c b/drivers/phy/phy-exynos-dp-video.c index 098f822a2fa4..8b3026e2af7f 100644 --- a/drivers/phy/phy-exynos-dp-video.c +++ b/drivers/phy/phy-exynos-dp-video.c | |||
@@ -77,7 +77,7 @@ static int exynos_dp_video_phy_probe(struct platform_device *pdev) | |||
77 | if (IS_ERR(state->regs)) | 77 | if (IS_ERR(state->regs)) |
78 | return PTR_ERR(state->regs); | 78 | return PTR_ERR(state->regs); |
79 | 79 | ||
80 | phy = devm_phy_create(dev, &exynos_dp_video_phy_ops, NULL); | 80 | phy = devm_phy_create(dev, NULL, &exynos_dp_video_phy_ops, NULL); |
81 | if (IS_ERR(phy)) { | 81 | if (IS_ERR(phy)) { |
82 | dev_err(dev, "failed to create Display Port PHY\n"); | 82 | dev_err(dev, "failed to create Display Port PHY\n"); |
83 | return PTR_ERR(phy); | 83 | return PTR_ERR(phy); |
diff --git a/drivers/phy/phy-exynos-mipi-video.c b/drivers/phy/phy-exynos-mipi-video.c index 6d6bcf52a10e..b55a92e12496 100644 --- a/drivers/phy/phy-exynos-mipi-video.c +++ b/drivers/phy/phy-exynos-mipi-video.c | |||
@@ -136,7 +136,7 @@ static int exynos_mipi_video_phy_probe(struct platform_device *pdev) | |||
136 | spin_lock_init(&state->slock); | 136 | spin_lock_init(&state->slock); |
137 | 137 | ||
138 | for (i = 0; i < EXYNOS_MIPI_PHYS_NUM; i++) { | 138 | for (i = 0; i < EXYNOS_MIPI_PHYS_NUM; i++) { |
139 | struct phy *phy = devm_phy_create(dev, | 139 | struct phy *phy = devm_phy_create(dev, NULL, |
140 | &exynos_mipi_video_phy_ops, NULL); | 140 | &exynos_mipi_video_phy_ops, NULL); |
141 | if (IS_ERR(phy)) { | 141 | if (IS_ERR(phy)) { |
142 | dev_err(dev, "failed to create PHY %d\n", i); | 142 | dev_err(dev, "failed to create PHY %d\n", i); |
diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/phy-exynos5-usbdrd.c index 205159db37a3..b05302b09c9f 100644 --- a/drivers/phy/phy-exynos5-usbdrd.c +++ b/drivers/phy/phy-exynos5-usbdrd.c | |||
@@ -635,7 +635,8 @@ static int exynos5_usbdrd_phy_probe(struct platform_device *pdev) | |||
635 | dev_vdbg(dev, "Creating usbdrd_phy phy\n"); | 635 | dev_vdbg(dev, "Creating usbdrd_phy phy\n"); |
636 | 636 | ||
637 | for (i = 0; i < EXYNOS5_DRDPHYS_NUM; i++) { | 637 | for (i = 0; i < EXYNOS5_DRDPHYS_NUM; i++) { |
638 | struct phy *phy = devm_phy_create(dev, &exynos5_usbdrd_phy_ops, | 638 | struct phy *phy = devm_phy_create(dev, NULL, |
639 | &exynos5_usbdrd_phy_ops, | ||
639 | NULL); | 640 | NULL); |
640 | if (IS_ERR(phy)) { | 641 | if (IS_ERR(phy)) { |
641 | dev_err(dev, "Failed to create usbdrd_phy phy\n"); | 642 | dev_err(dev, "Failed to create usbdrd_phy phy\n"); |
diff --git a/drivers/phy/phy-exynos5250-sata.c b/drivers/phy/phy-exynos5250-sata.c index 05689450f93b..19a679aca4ac 100644 --- a/drivers/phy/phy-exynos5250-sata.c +++ b/drivers/phy/phy-exynos5250-sata.c | |||
@@ -210,7 +210,7 @@ static int exynos_sata_phy_probe(struct platform_device *pdev) | |||
210 | return ret; | 210 | return ret; |
211 | } | 211 | } |
212 | 212 | ||
213 | sata_phy->phy = devm_phy_create(dev, &exynos_sata_phy_ops, NULL); | 213 | sata_phy->phy = devm_phy_create(dev, NULL, &exynos_sata_phy_ops, NULL); |
214 | if (IS_ERR(sata_phy->phy)) { | 214 | if (IS_ERR(sata_phy->phy)) { |
215 | clk_disable_unprepare(sata_phy->phyclk); | 215 | clk_disable_unprepare(sata_phy->phyclk); |
216 | dev_err(dev, "failed to create PHY\n"); | 216 | dev_err(dev, "failed to create PHY\n"); |
diff --git a/drivers/phy/phy-hix5hd2-sata.c b/drivers/phy/phy-hix5hd2-sata.c index d44283453d71..6a08fa5f81eb 100644 --- a/drivers/phy/phy-hix5hd2-sata.c +++ b/drivers/phy/phy-hix5hd2-sata.c | |||
@@ -156,7 +156,7 @@ static int hix5hd2_sata_phy_probe(struct platform_device *pdev) | |||
156 | if (IS_ERR(priv->peri_ctrl)) | 156 | if (IS_ERR(priv->peri_ctrl)) |
157 | priv->peri_ctrl = NULL; | 157 | priv->peri_ctrl = NULL; |
158 | 158 | ||
159 | phy = devm_phy_create(dev, &hix5hd2_sata_phy_ops, NULL); | 159 | phy = devm_phy_create(dev, NULL, &hix5hd2_sata_phy_ops, NULL); |
160 | if (IS_ERR(phy)) { | 160 | if (IS_ERR(phy)) { |
161 | dev_err(dev, "failed to create PHY\n"); | 161 | dev_err(dev, "failed to create PHY\n"); |
162 | return PTR_ERR(phy); | 162 | return PTR_ERR(phy); |
diff --git a/drivers/phy/phy-mvebu-sata.c b/drivers/phy/phy-mvebu-sata.c index d70ecd6a1b3f..cc3c0e166daf 100644 --- a/drivers/phy/phy-mvebu-sata.c +++ b/drivers/phy/phy-mvebu-sata.c | |||
@@ -99,7 +99,7 @@ static int phy_mvebu_sata_probe(struct platform_device *pdev) | |||
99 | if (IS_ERR(priv->clk)) | 99 | if (IS_ERR(priv->clk)) |
100 | return PTR_ERR(priv->clk); | 100 | return PTR_ERR(priv->clk); |
101 | 101 | ||
102 | phy = devm_phy_create(&pdev->dev, &phy_mvebu_sata_ops, NULL); | 102 | phy = devm_phy_create(&pdev->dev, NULL, &phy_mvebu_sata_ops, NULL); |
103 | if (IS_ERR(phy)) | 103 | if (IS_ERR(phy)) |
104 | return PTR_ERR(phy); | 104 | return PTR_ERR(phy); |
105 | 105 | ||
diff --git a/drivers/phy/phy-omap-usb2.c b/drivers/phy/phy-omap-usb2.c index 34b396146c8a..93d78359246c 100644 --- a/drivers/phy/phy-omap-usb2.c +++ b/drivers/phy/phy-omap-usb2.c | |||
@@ -263,7 +263,7 @@ static int omap_usb2_probe(struct platform_device *pdev) | |||
263 | 263 | ||
264 | platform_set_drvdata(pdev, phy); | 264 | platform_set_drvdata(pdev, phy); |
265 | 265 | ||
266 | generic_phy = devm_phy_create(phy->dev, &ops, NULL); | 266 | generic_phy = devm_phy_create(phy->dev, NULL, &ops, NULL); |
267 | if (IS_ERR(generic_phy)) | 267 | if (IS_ERR(generic_phy)) |
268 | return PTR_ERR(generic_phy); | 268 | return PTR_ERR(generic_phy); |
269 | 269 | ||
diff --git a/drivers/phy/phy-qcom-apq8064-sata.c b/drivers/phy/phy-qcom-apq8064-sata.c index c9b4dd6becf5..d7c01aa1f8d7 100644 --- a/drivers/phy/phy-qcom-apq8064-sata.c +++ b/drivers/phy/phy-qcom-apq8064-sata.c | |||
@@ -228,7 +228,8 @@ static int qcom_apq8064_sata_phy_probe(struct platform_device *pdev) | |||
228 | if (IS_ERR(phy->mmio)) | 228 | if (IS_ERR(phy->mmio)) |
229 | return PTR_ERR(phy->mmio); | 229 | return PTR_ERR(phy->mmio); |
230 | 230 | ||
231 | generic_phy = devm_phy_create(dev, &qcom_apq8064_sata_phy_ops, NULL); | 231 | generic_phy = devm_phy_create(dev, NULL, &qcom_apq8064_sata_phy_ops, |
232 | NULL); | ||
232 | if (IS_ERR(generic_phy)) { | 233 | if (IS_ERR(generic_phy)) { |
233 | dev_err(dev, "%s: failed to create phy\n", __func__); | 234 | dev_err(dev, "%s: failed to create phy\n", __func__); |
234 | return PTR_ERR(generic_phy); | 235 | return PTR_ERR(generic_phy); |
diff --git a/drivers/phy/phy-samsung-usb2.c b/drivers/phy/phy-samsung-usb2.c index 16aae7a285f0..ae30640a411d 100644 --- a/drivers/phy/phy-samsung-usb2.c +++ b/drivers/phy/phy-samsung-usb2.c | |||
@@ -196,7 +196,8 @@ static int samsung_usb2_phy_probe(struct platform_device *pdev) | |||
196 | struct samsung_usb2_phy_instance *p = &drv->instances[i]; | 196 | struct samsung_usb2_phy_instance *p = &drv->instances[i]; |
197 | 197 | ||
198 | dev_dbg(dev, "Creating phy \"%s\"\n", label); | 198 | dev_dbg(dev, "Creating phy \"%s\"\n", label); |
199 | p->phy = devm_phy_create(dev, &samsung_usb2_phy_ops, NULL); | 199 | p->phy = devm_phy_create(dev, NULL, &samsung_usb2_phy_ops, |
200 | NULL); | ||
200 | if (IS_ERR(p->phy)) { | 201 | if (IS_ERR(p->phy)) { |
201 | dev_err(drv->dev, "Failed to create usb2_phy \"%s\"\n", | 202 | dev_err(drv->dev, "Failed to create usb2_phy \"%s\"\n", |
202 | label); | 203 | label); |
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c index 7a4ea552f621..61ebea49709b 100644 --- a/drivers/phy/phy-sun4i-usb.c +++ b/drivers/phy/phy-sun4i-usb.c | |||
@@ -295,7 +295,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) | |||
295 | return PTR_ERR(phy->pmu); | 295 | return PTR_ERR(phy->pmu); |
296 | } | 296 | } |
297 | 297 | ||
298 | phy->phy = devm_phy_create(dev, &sun4i_usb_phy_ops, NULL); | 298 | phy->phy = devm_phy_create(dev, NULL, &sun4i_usb_phy_ops, NULL); |
299 | if (IS_ERR(phy->phy)) { | 299 | if (IS_ERR(phy->phy)) { |
300 | dev_err(dev, "failed to create PHY %d\n", i); | 300 | dev_err(dev, "failed to create PHY %d\n", i); |
301 | return PTR_ERR(phy->phy); | 301 | return PTR_ERR(phy->phy); |
diff --git a/drivers/phy/phy-ti-pipe3.c b/drivers/phy/phy-ti-pipe3.c index 93bcd67f1b22..b964aa967b46 100644 --- a/drivers/phy/phy-ti-pipe3.c +++ b/drivers/phy/phy-ti-pipe3.c | |||
@@ -400,7 +400,7 @@ static int ti_pipe3_probe(struct platform_device *pdev) | |||
400 | platform_set_drvdata(pdev, phy); | 400 | platform_set_drvdata(pdev, phy); |
401 | pm_runtime_enable(phy->dev); | 401 | pm_runtime_enable(phy->dev); |
402 | 402 | ||
403 | generic_phy = devm_phy_create(phy->dev, &ops, NULL); | 403 | generic_phy = devm_phy_create(phy->dev, NULL, &ops, NULL); |
404 | if (IS_ERR(generic_phy)) | 404 | if (IS_ERR(generic_phy)) |
405 | return PTR_ERR(generic_phy); | 405 | return PTR_ERR(generic_phy); |
406 | 406 | ||
diff --git a/drivers/phy/phy-twl4030-usb.c b/drivers/phy/phy-twl4030-usb.c index 2e0e9b3774c8..e1a6623d4696 100644 --- a/drivers/phy/phy-twl4030-usb.c +++ b/drivers/phy/phy-twl4030-usb.c | |||
@@ -695,7 +695,7 @@ static int twl4030_usb_probe(struct platform_device *pdev) | |||
695 | otg->set_host = twl4030_set_host; | 695 | otg->set_host = twl4030_set_host; |
696 | otg->set_peripheral = twl4030_set_peripheral; | 696 | otg->set_peripheral = twl4030_set_peripheral; |
697 | 697 | ||
698 | phy = devm_phy_create(twl->dev, &ops, init_data); | 698 | phy = devm_phy_create(twl->dev, NULL, &ops, init_data); |
699 | if (IS_ERR(phy)) { | 699 | if (IS_ERR(phy)) { |
700 | dev_dbg(&pdev->dev, "Failed to create PHY\n"); | 700 | dev_dbg(&pdev->dev, "Failed to create PHY\n"); |
701 | return PTR_ERR(phy); | 701 | return PTR_ERR(phy); |
diff --git a/drivers/phy/phy-xgene.c b/drivers/phy/phy-xgene.c index 4aa1ccd1511f..db809b97219e 100644 --- a/drivers/phy/phy-xgene.c +++ b/drivers/phy/phy-xgene.c | |||
@@ -1707,7 +1707,7 @@ static int xgene_phy_probe(struct platform_device *pdev) | |||
1707 | ctx->dev = &pdev->dev; | 1707 | ctx->dev = &pdev->dev; |
1708 | platform_set_drvdata(pdev, ctx); | 1708 | platform_set_drvdata(pdev, ctx); |
1709 | 1709 | ||
1710 | ctx->phy = devm_phy_create(ctx->dev, &xgene_phy_ops, NULL); | 1710 | ctx->phy = devm_phy_create(ctx->dev, NULL, &xgene_phy_ops, NULL); |
1711 | if (IS_ERR(ctx->phy)) { | 1711 | if (IS_ERR(ctx->phy)) { |
1712 | dev_dbg(&pdev->dev, "Failed to create PHY\n"); | 1712 | dev_dbg(&pdev->dev, "Failed to create PHY\n"); |
1713 | rc = PTR_ERR(ctx->phy); | 1713 | rc = PTR_ERR(ctx->phy); |
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index 9a8694524742..8cb6f815475b 100644 --- a/include/linux/phy/phy.h +++ b/include/linux/phy/phy.h | |||
@@ -158,9 +158,10 @@ void devm_phy_put(struct device *dev, struct phy *phy); | |||
158 | struct phy *of_phy_get(struct device_node *np, const char *con_id); | 158 | struct phy *of_phy_get(struct device_node *np, const char *con_id); |
159 | struct phy *of_phy_simple_xlate(struct device *dev, | 159 | struct phy *of_phy_simple_xlate(struct device *dev, |
160 | struct of_phandle_args *args); | 160 | struct of_phandle_args *args); |
161 | struct phy *phy_create(struct device *dev, const struct phy_ops *ops, | 161 | struct phy *phy_create(struct device *dev, struct device_node *node, |
162 | struct phy_init_data *init_data); | 162 | const struct phy_ops *ops, |
163 | struct phy *devm_phy_create(struct device *dev, | 163 | struct phy_init_data *init_data); |
164 | struct phy *devm_phy_create(struct device *dev, struct device_node *node, | ||
164 | const struct phy_ops *ops, struct phy_init_data *init_data); | 165 | const struct phy_ops *ops, struct phy_init_data *init_data); |
165 | void phy_destroy(struct phy *phy); | 166 | void phy_destroy(struct phy *phy); |
166 | void devm_phy_destroy(struct device *dev, struct phy *phy); | 167 | void devm_phy_destroy(struct device *dev, struct phy *phy); |
@@ -299,13 +300,17 @@ static inline struct phy *of_phy_simple_xlate(struct device *dev, | |||
299 | } | 300 | } |
300 | 301 | ||
301 | static inline struct phy *phy_create(struct device *dev, | 302 | static inline struct phy *phy_create(struct device *dev, |
302 | const struct phy_ops *ops, struct phy_init_data *init_data) | 303 | struct device_node *node, |
304 | const struct phy_ops *ops, | ||
305 | struct phy_init_data *init_data) | ||
303 | { | 306 | { |
304 | return ERR_PTR(-ENOSYS); | 307 | return ERR_PTR(-ENOSYS); |
305 | } | 308 | } |
306 | 309 | ||
307 | static inline struct phy *devm_phy_create(struct device *dev, | 310 | static inline struct phy *devm_phy_create(struct device *dev, |
308 | const struct phy_ops *ops, struct phy_init_data *init_data) | 311 | struct device_node *node, |
312 | const struct phy_ops *ops, | ||
313 | struct phy_init_data *init_data) | ||
309 | { | 314 | { |
310 | return ERR_PTR(-ENOSYS); | 315 | return ERR_PTR(-ENOSYS); |
311 | } | 316 | } |