PM / OPP: Implement dev_pm_opp_get_of_node()
This adds a new helper to let the power domain drivers to access opp->np, so that they can read platform specific properties from the node. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Родитель
a88bd2a51e
Коммит
e2f4b5f8dc
|
@ -727,3 +727,22 @@ put_opp_table:
|
||||||
return opp;
|
return opp;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(of_dev_pm_opp_find_required_opp);
|
EXPORT_SYMBOL_GPL(of_dev_pm_opp_find_required_opp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dev_pm_opp_get_of_node() - Gets the DT node corresponding to an opp
|
||||||
|
* @opp: opp for which DT node has to be returned for
|
||||||
|
*
|
||||||
|
* Return: DT node corresponding to the opp, else 0 on success.
|
||||||
|
*
|
||||||
|
* The caller needs to put the node with of_node_put() after using it.
|
||||||
|
*/
|
||||||
|
struct device_node *dev_pm_opp_get_of_node(struct dev_pm_opp *opp)
|
||||||
|
{
|
||||||
|
if (IS_ERR_OR_NULL(opp)) {
|
||||||
|
pr_err("%s: Invalid parameters\n", __func__);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return of_node_get(opp->np);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(dev_pm_opp_get_of_node);
|
||||||
|
|
|
@ -310,6 +310,7 @@ void dev_pm_opp_of_cpumask_remove_table(const struct cpumask *cpumask);
|
||||||
int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask);
|
int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask);
|
||||||
struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev);
|
struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev);
|
||||||
struct dev_pm_opp *of_dev_pm_opp_find_required_opp(struct device *dev, struct device_node *np);
|
struct dev_pm_opp *of_dev_pm_opp_find_required_opp(struct device *dev, struct device_node *np);
|
||||||
|
struct device_node *dev_pm_opp_get_of_node(struct dev_pm_opp *opp);
|
||||||
#else
|
#else
|
||||||
static inline int dev_pm_opp_of_add_table(struct device *dev)
|
static inline int dev_pm_opp_of_add_table(struct device *dev)
|
||||||
{
|
{
|
||||||
|
@ -348,6 +349,10 @@ static inline struct dev_pm_opp *of_dev_pm_opp_find_required_opp(struct device *
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
static inline struct device_node *dev_pm_opp_get_of_node(struct dev_pm_opp *opp)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __LINUX_OPP_H__ */
|
#endif /* __LINUX_OPP_H__ */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче