diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
index 71cb1082632626646014fdb060c70b6d20f2f72b..3fb7b34f994966b3c7fdfaab2d442dbf5f15feab 100644
--- a/drivers/phy/phy-core.c
+++ b/drivers/phy/phy-core.c
@@ -11,6 +11,7 @@
 #include <linux/export.h>
 #include <linux/module.h>
 #include <linux/err.h>
+#include <linux/debugfs.h>
 #include <linux/device.h>
 #include <linux/slab.h>
 #include <linux/of.h>
@@ -24,6 +25,8 @@ static DEFINE_MUTEX(phy_provider_mutex);
 static LIST_HEAD(phy_provider_list);
 static LIST_HEAD(phys);
 static DEFINE_IDA(phy_ida);
+struct dentry *phy_debugfs_root;
+EXPORT_SYMBOL_GPL(phy_debugfs_root);
 
 static void devm_phy_release(struct device *dev, void *res)
 {
@@ -1163,6 +1166,8 @@ static int __init phy_core_init(void)
 
 	phy_class->dev_release = phy_release;
 
+	phy_debugfs_root = debugfs_create_dir("phy", NULL);
+
 	return 0;
 }
 device_initcall(phy_core_init);
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
index e435bdb0bab355eabc94def12674bc51a7076bda..95465cd7811db67afed48296ec2d2b179e94fc92 100644
--- a/include/linux/phy/phy.h
+++ b/include/linux/phy/phy.h
@@ -201,6 +201,8 @@ static inline void *phy_get_drvdata(struct phy *phy)
 	return dev_get_drvdata(&phy->dev);
 }
 
+extern struct dentry *phy_debugfs_root;
+
 #if IS_ENABLED(CONFIG_GENERIC_PHY)
 int phy_pm_runtime_get(struct phy *phy);
 int phy_pm_runtime_get_sync(struct phy *phy);