diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-09-12 08:34:19 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-09-14 11:47:42 +0200 |
commit | b2a13798a6c68c03ef87fbfdf66f2a942edebabd (patch) | |
tree | 6633ea0dc29b3ad2bf3b9b63ee4d1fac98d09f36 /drivers/base | |
parent | d836d76d97645e6050d8d31d96180f16a6cdbf9f (diff) | |
download | barebox-b2a13798a6c68c03ef87fbfdf66f2a942edebabd.tar.gz barebox-b2a13798a6c68c03ef87fbfdf66f2a942edebabd.tar.xz |
driver: add dev_get_drvdata function
Drivers need to get their driver data either from devicetree or the platform
information. It should matter for the driver where this data comes from, so
introduce a common function for it.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/driver.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/base/driver.c b/drivers/base/driver.c index 47d3803035..4d6b2505c2 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -376,6 +376,16 @@ static int do_devinfo_subtree(struct device_d *dev, int depth) return 0; } +int dev_get_drvdata(struct device_d *dev, unsigned long *data) +{ + if (dev->id_entry) { + *data = dev->id_entry->driver_data; + return 0; + } + + return -ENODEV; +} + static int do_devinfo(int argc, char *argv[]) { struct device_d *dev; |