[U-Boot] [PATCH] phy: add a NO-OP phy driver

Jean-Jacques Hiblot jjhiblot at ti.com
Fri Jul 21 08:49:03 UTC 2017


The no-op phy driver is useful when a driver uses the phy framework
but no PHY driver is available for the hardware (or the hardware has no
PHY).

Signed-off-by: Jean-Jacques Hiblot <jjhiblot at ti.com>
---

Following the email thread '[PATCH 1/1] dm: phy: add missing #ifdef CONFIG_PHY',
here is a patch to add support for a no-op phy.

Jean-Jacques


 Documentation/devicetree/bindings/phy/no-op.txt | 16 +++++++++++++++
 drivers/phy/Kconfig                             | 18 +++++++++++++++++
 drivers/phy/Makefile                            |  1 +
 drivers/phy/noop-phy.c                          | 26 +++++++++++++++++++++++++
 4 files changed, 61 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/phy/no-op.txt
 create mode 100644 drivers/phy/noop-phy.c

diff --git a/Documentation/devicetree/bindings/phy/no-op.txt b/Documentation/devicetree/bindings/phy/no-op.txt
new file mode 100644
index 0000000..eb1a562
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/no-op.txt
@@ -0,0 +1,16 @@
+NO-OP Phy driver
+
+The driver is used to stub PHY opeartions in a driver (USB, SATA).
+This is useful when the PHY driver for a particular hardware doesn't exist yet
+(the hardware is initialized by the platform code).
+
+Required properties:
+- compatible     : must contain "noop-phy"
+- #phy-cells     : must contain <0>
+
+Example:
+
+noop_phy {
+	compatible = "noop-phy";
+	#phy-cells = <0>;
+};
diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
index 7841554..68dced7 100644
--- a/drivers/phy/Kconfig
+++ b/drivers/phy/Kconfig
@@ -41,6 +41,24 @@ config PHY_SANDBOX
 	  This select a dummy sandbox PHY driver. It used only to implement
 	  the unit tests for the phy framework
 
+config NOOP_PHY
+	bool "no-op phy"
+	depends on PHY
+	help
+	  Support for a no-op PHY
+
+	  This is useful when a driver uses the PHY framework but no driver
+	  has yet been written for the PHY (or if there is no hardware PHY).
+
+config SPL_NOOP_PHY
+	bool "no-op phy in SPL"
+	depends on SPL_PHY
+	help
+	  Support for a no-op PHY in SPL
+
+	  This is useful when a driver uses the PHY framework but no driver
+	  has yet been written for the PHY (or if there is no hardware PHY).
+
 config PIPE3_PHY
 	bool "Support omap's PIPE3 PHY"
 	depends on PHY && ARCH_OMAP2PLUS
diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
index 6ce96d2..f129b5c 100644
--- a/drivers/phy/Makefile
+++ b/drivers/phy/Makefile
@@ -6,5 +6,6 @@
 #
 
 obj-$(CONFIG_$(SPL_)PHY) += phy-uclass.o
+obj-$(CONFIG_$(SPL_)NOOP_PHY) += noop-phy.o
 obj-$(CONFIG_PHY_SANDBOX) += sandbox-phy.o
 obj-$(CONFIG_$(SPL_)PIPE3_PHY) += ti-pipe3-phy.o
diff --git a/drivers/phy/noop-phy.c b/drivers/phy/noop-phy.c
new file mode 100644
index 0000000..14ccf86
--- /dev/null
+++ b/drivers/phy/noop-phy.c
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ * Written by Jean-Jacques Hiblot  <jjhiblot at ti.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <dm/device.h>
+#include <generic-phy.h>
+
+static const struct udevice_id noop_phy_ids[] = {
+	{ .compatible = "noop-phy" },
+	{ }
+};
+
+static struct phy_ops noop_phy_ops = {
+};
+
+U_BOOT_DRIVER(noop_phy) = {
+	.name	= "noop_phy",
+	.id	= UCLASS_PHY,
+	.of_match = noop_phy_ids,
+	.ops = &noop_phy_ops,
+};
-- 
1.9.1



More information about the U-Boot mailing list