aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/leds-pca9532.h
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@iki.fi>2008-05-31 14:43:41 +0100
committerRichard Purdie <rpurdie@rpsys.net>2008-07-23 09:49:56 +0100
commite14fa82439d33cef67eaafc1a48960bbfa610c8e (patch)
treee98b939481252441fecf05350f769a44acb7d99c /include/linux/leds-pca9532.h
parentc010b2f76c3032e48097a6eef291d8593d5d79a6 (diff)
downloadkernel_samsung_espresso10-e14fa82439d33cef67eaafc1a48960bbfa610c8e.zip
kernel_samsung_espresso10-e14fa82439d33cef67eaafc1a48960bbfa610c8e.tar.gz
kernel_samsung_espresso10-e14fa82439d33cef67eaafc1a48960bbfa610c8e.tar.bz2
leds: Add pca9532 led driver
NXP pca9532 is a LED dimmer/controller attached to i2c bus. It allows attaching upto 16 leds which can either be on, off or dimmed and/or blinked with the two PWM modulators available. This driver is a "new-style" i2c driver that adheres to the driver model and implements the led framework api. Since the leds connected to the driver are platform specific, it is only useful when platform data is passed to the driver to define what leds are connected to which pins. Signed-off-by: Riku Voipio <riku.voipio@iki.fi> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Diffstat (limited to 'include/linux/leds-pca9532.h')
-rw-r--r--include/linux/leds-pca9532.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/include/linux/leds-pca9532.h b/include/linux/leds-pca9532.h
new file mode 100644
index 0000000..81b4207
--- /dev/null
+++ b/include/linux/leds-pca9532.h
@@ -0,0 +1,45 @@
+/*
+ * pca9532.h - platform data structure for pca9532 led controller
+ *
+ * Copyright (C) 2008 Riku Voipio <riku.voipio@movial.fi>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * Datasheet: http://www.nxp.com/acrobat/datasheets/PCA9532_3.pdf
+ *
+ */
+
+#ifndef __LINUX_PCA9532_H
+#define __LINUX_PCA9532_H
+
+#include <linux/leds.h>
+
+enum pca9532_state {
+ PCA9532_OFF = 0x0,
+ PCA9532_ON = 0x1,
+ PCA9532_PWM0 = 0x2,
+ PCA9532_PWM1 = 0x3
+};
+
+enum pca9532_type { PCA9532_TYPE_NONE, PCA9532_TYPE_LED,
+ PCA9532_TYPE_N2100_BEEP };
+
+struct pca9532_led {
+ u8 id;
+ struct i2c_client *client;
+ char *name;
+ struct led_classdev ldev;
+ enum pca9532_type type;
+ enum pca9532_state state;
+};
+
+struct pca9532_platform_data {
+ struct pca9532_led leds[16];
+ u8 pwm[2];
+ u8 psc[2];
+};
+
+#endif /* __LINUX_PCA9532_H */
+