summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-09-12 08:34:19 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-09-14 11:47:42 +0200
commitb2a13798a6c68c03ef87fbfdf66f2a942edebabd (patch)
tree6633ea0dc29b3ad2bf3b9b63ee4d1fac98d09f36 /drivers/base
parentd836d76d97645e6050d8d31d96180f16a6cdbf9f (diff)
downloadbarebox-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.c10
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;