diff options
Diffstat (limited to 'include/linux/phy/phy.h')
| -rw-r--r-- | include/linux/phy/phy.h | 31 | 
1 files changed, 21 insertions, 10 deletions
| diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index 8cf05e341cff..a810f2a18842 100644 --- a/include/linux/phy/phy.h +++ b/include/linux/phy/phy.h @@ -77,6 +77,7 @@ struct phy {   */  struct phy_provider {  	struct device		*dev; +	struct device_node	*children;  	struct module		*owner;  	struct list_head	list;  	struct phy * (*of_xlate)(struct device *dev, @@ -93,10 +94,16 @@ struct phy_lookup {  #define	to_phy(a)	(container_of((a), struct phy, dev))  #define	of_phy_provider_register(dev, xlate)	\ -	__of_phy_provider_register((dev), THIS_MODULE, (xlate)) +	__of_phy_provider_register((dev), NULL, THIS_MODULE, (xlate))  #define	devm_of_phy_provider_register(dev, xlate)	\ -	__devm_of_phy_provider_register((dev), THIS_MODULE, (xlate)) +	__devm_of_phy_provider_register((dev), NULL, THIS_MODULE, (xlate)) + +#define of_phy_provider_register_full(dev, children, xlate) \ +	__of_phy_provider_register(dev, children, THIS_MODULE, xlate) + +#define devm_of_phy_provider_register_full(dev, children, xlate) \ +	__devm_of_phy_provider_register(dev, children, THIS_MODULE, xlate)  static inline void phy_set_drvdata(struct phy *phy, void *data)  { @@ -147,11 +154,13 @@ struct phy *devm_phy_create(struct device *dev, struct device_node *node,  void phy_destroy(struct phy *phy);  void devm_phy_destroy(struct device *dev, struct phy *phy);  struct phy_provider *__of_phy_provider_register(struct device *dev, -	struct module *owner, struct phy * (*of_xlate)(struct device *dev, -	struct of_phandle_args *args)); +	struct device_node *children, struct module *owner, +	struct phy * (*of_xlate)(struct device *dev, +				 struct of_phandle_args *args));  struct phy_provider *__devm_of_phy_provider_register(struct device *dev, -	struct module *owner, struct phy * (*of_xlate)(struct device *dev, -	struct of_phandle_args *args)); +	struct device_node *children, struct module *owner, +	struct phy * (*of_xlate)(struct device *dev, +				 struct of_phandle_args *args));  void of_phy_provider_unregister(struct phy_provider *phy_provider);  void devm_of_phy_provider_unregister(struct device *dev,  	struct phy_provider *phy_provider); @@ -312,15 +321,17 @@ static inline void devm_phy_destroy(struct device *dev, struct phy *phy)  }  static inline struct phy_provider *__of_phy_provider_register( -	struct device *dev, struct module *owner, struct phy * (*of_xlate)( -	struct device *dev, struct of_phandle_args *args)) +	struct device *dev, struct device_node *children, struct module *owner, +	struct phy * (*of_xlate)(struct device *dev, +				 struct of_phandle_args *args))  {  	return ERR_PTR(-ENOSYS);  }  static inline struct phy_provider *__devm_of_phy_provider_register(struct device -	*dev, struct module *owner, struct phy * (*of_xlate)(struct device *dev, -	struct of_phandle_args *args)) +	*dev, struct device_node *children, struct module *owner, +	struct phy * (*of_xlate)(struct device *dev, +				 struct of_phandle_args *args))  {  	return ERR_PTR(-ENOSYS);  } |