9
0
Fork 0

mfd: syscon: Introduce syscon_base_lookup_by_phandle() function

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Alexander Shiyan 2014-01-23 21:22:04 +04:00 committed by Sascha Hauer
parent 42193d5b66
commit c2c5f48b91
2 changed files with 28 additions and 0 deletions

View File

@ -41,6 +41,26 @@ void __iomem *syscon_base_lookup_by_pdevname(const char *s)
return ERR_PTR(-ENODEV);
}
void __iomem *syscon_base_lookup_by_phandle(struct device_node *np,
const char *property)
{
struct device_node *node;
struct syscon *syscon;
struct device_d *dev;
node = of_parse_phandle(np, property, 0);
if (!node)
return ERR_PTR(-ENODEV);
dev = of_find_device_by_node(node);
if (!dev)
return ERR_PTR(-ENODEV);
syscon = dev->priv;
return syscon->base;
}
static int syscon_probe(struct device_d *dev)
{
struct syscon *syscon;

View File

@ -16,11 +16,19 @@
#ifdef CONFIG_MFD_SYSCON
void __iomem *syscon_base_lookup_by_pdevname(const char *);
void __iomem *syscon_base_lookup_by_phandle
(struct device_node *np, const char *property);
#else
static inline void __iomem *syscon_base_lookup_by_pdevname(const char *)
{
return NULL;
}
static inline void __iomem *syscon_base_lookup_by_phandle
(struct device_node *np, const char *property)
{
return NULL;
}
#endif
#endif