summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/twl6030.c
diff options
context:
space:
mode:
authorAlexander Aring <a.aring@phytec.de>2011-12-21 08:50:29 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2011-12-21 12:46:01 +0100
commit8658e6a9528c7e65bf7a3732d815f662c9c8ed11 (patch)
tree074fa865f1834a3fac62f18773d9b71610a4e268 /drivers/mfd/twl6030.c
parent5c115f335ec06fa1fd8a28740790a622e500a304 (diff)
downloadbarebox-8658e6a9528c7e65bf7a3732d815f662c9c8ed11.tar.gz
barebox-8658e6a9528c7e65bf7a3732d815f662c9c8ed11.tar.xz
twl-core: add support for twl6030
Add support for twl6030 in twl-core driver. Signed-off-by: Alexander Aring <a.aring@phytec.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mfd/twl6030.c')
-rw-r--r--drivers/mfd/twl6030.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/drivers/mfd/twl6030.c b/drivers/mfd/twl6030.c
new file mode 100644
index 0000000000..7ecfed8062
--- /dev/null
+++ b/drivers/mfd/twl6030.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2011 Alexander Aring <a.aring@phytec.de>
+ *
+ * This file is released under the GPLv2
+ */
+
+#include <common.h>
+#include <init.h>
+#include <driver.h>
+#include <xfuncs.h>
+#include <errno.h>
+
+#include <i2c/i2c.h>
+#include <mfd/twl6030.h>
+
+#define DRIVERNAME "twl6030"
+
+#define to_twl6030(a) container_of(a, struct twl6030, cdev)
+
+static struct twl6030 *twl_dev;
+
+struct twl6030 *twl6030_get(void)
+{
+ return twl_dev;
+}
+EXPORT_SYMBOL(twl6030_get);
+
+static int twl_probe(struct device_d *dev)
+{
+ if (twl_dev)
+ return -EBUSY;
+
+ twl_dev = xzalloc(sizeof(struct twl6030));
+ twl_dev->core.cdev.name = DRIVERNAME;
+ twl_dev->core.client = to_i2c_client(dev);
+ twl_dev->core.cdev.size = 1024;
+ twl_dev->core.cdev.dev = dev;
+ twl_dev->core.cdev.ops = &twl_fops;
+
+ devfs_create(&(twl_dev->core.cdev));
+
+ return 0;
+}
+
+static struct driver_d twl_driver = {
+ .name = DRIVERNAME,
+ .probe = twl_probe,
+};
+
+static int twl_init(void)
+{
+ register_driver(&twl_driver);
+ return 0;
+}
+
+device_initcall(twl_init);