aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/phy.txt10
-rw-r--r--drivers/phy/phy-bcm-kona-usb2.c2
-rw-r--r--drivers/phy/phy-berlin-sata.c2
-rw-r--r--drivers/phy/phy-core.c25
-rw-r--r--drivers/phy/phy-exynos-dp-video.c2
-rw-r--r--drivers/phy/phy-exynos-mipi-video.c2
-rw-r--r--drivers/phy/phy-exynos5-usbdrd.c3
-rw-r--r--drivers/phy/phy-exynos5250-sata.c2
-rw-r--r--drivers/phy/phy-hix5hd2-sata.c2
-rw-r--r--drivers/phy/phy-mvebu-sata.c2
-rw-r--r--drivers/phy/phy-omap-usb2.c2
-rw-r--r--drivers/phy/phy-qcom-apq8064-sata.c3
-rw-r--r--drivers/phy/phy-samsung-usb2.c3
-rw-r--r--drivers/phy/phy-sun4i-usb.c2
-rw-r--r--drivers/phy/phy-ti-pipe3.c2
-rw-r--r--drivers/phy/phy-twl4030-usb.c2
-rw-r--r--drivers/phy/phy-xgene.c2
-rw-r--r--include/linux/phy/phy.h15
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.
53The PHY driver should create the PHY in order for other peripheral controllers 53The PHY driver should create the PHY in order for other peripheral controllers
54to make use of it. The PHY framework provides 2 APIs to create the PHY. 54to make use of it. The PHY framework provides 2 APIs to create the PHY.
55 55
56struct phy *phy_create(struct device *dev, const struct phy_ops *ops, 56struct phy *phy_create(struct device *dev, struct device_node *node,
57 struct phy_init_data *init_data); 57 const struct phy_ops *ops,
58struct 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); 59struct 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
61The PHY drivers can use one of the above 2 APIs to create the PHY by passing 63The PHY drivers can use one of the above 2 APIs to create the PHY by passing
62the device pointer, phy ops and init_data. 64the 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
431phy_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 */
587struct phy *phy_create(struct device *dev, const struct phy_ops *ops, 595struct 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 */
667struct phy *devm_phy_create(struct device *dev, const struct phy_ops *ops, 677struct 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);
158struct phy *of_phy_get(struct device_node *np, const char *con_id); 158struct phy *of_phy_get(struct device_node *np, const char *con_id);
159struct phy *of_phy_simple_xlate(struct device *dev, 159struct phy *of_phy_simple_xlate(struct device *dev,
160 struct of_phandle_args *args); 160 struct of_phandle_args *args);
161struct phy *phy_create(struct device *dev, const struct phy_ops *ops, 161struct phy *phy_create(struct device *dev, struct device_node *node,
162 struct phy_init_data *init_data); 162 const struct phy_ops *ops,
163struct phy *devm_phy_create(struct device *dev, 163 struct phy_init_data *init_data);
164struct 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);
165void phy_destroy(struct phy *phy); 166void phy_destroy(struct phy *phy);
166void devm_phy_destroy(struct device *dev, struct phy *phy); 167void 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
301static inline struct phy *phy_create(struct device *dev, 302static 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
307static inline struct phy *devm_phy_create(struct device *dev, 310static 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}