leds: Add pca9532 platform data for Thecus N2100
authorRiku Voipio <riku.voipio@iki.fi>
Sat, 31 May 2008 13:45:16 +0000 (14:45 +0100)
committerRichard Purdie <rpurdie@rpsys.net>
Wed, 23 Jul 2008 08:49:56 +0000 (09:49 +0100)
Thecus N2100 has leds and a buzzer attached to a pca9532 controller.  Attach
the driver to the i2c bus and define the pca9532 pin coniguration for this
platform in n2100_leds.

With this patch, support for N2100 should be complete in mainline Linux.

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
arch/arm/mach-iop32x/n2100.c

index 2741063..28f164e 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/mm.h>
 #include <linux/init.h>
 #include <linux/f75375s.h>
+#include <linux/leds-pca9532.h>
 #include <linux/delay.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
@@ -206,6 +207,53 @@ static struct f75375s_platform_data n2100_f75375s = {
        .pwm_enable = { 0, 0 },
 };
 
+static struct pca9532_platform_data n2100_leds = {
+       .leds = {
+       {       .name = "n2100:red:satafail0",
+               .state = PCA9532_OFF,
+               .type = PCA9532_TYPE_LED,
+       },
+       {       .name = "n2100:red:satafail1",
+               .state = PCA9532_OFF,
+               .type = PCA9532_TYPE_LED,
+       },
+       {       .name = "n2100:blue:usb",
+               .state = PCA9532_OFF,
+               .type = PCA9532_TYPE_LED,
+       },
+       {       .type = PCA9532_TYPE_NONE },
+
+       {       .type = PCA9532_TYPE_NONE },
+       {       .type = PCA9532_TYPE_NONE },
+       {       .type = PCA9532_TYPE_NONE },
+       {       .name = "n2100:red:usb",
+               .state = PCA9532_OFF,
+               .type = PCA9532_TYPE_LED,
+       },
+
+       {       .type = PCA9532_TYPE_NONE }, /* power OFF gpio */
+       {       .type = PCA9532_TYPE_NONE }, /* reset gpio */
+       {       .type = PCA9532_TYPE_NONE },
+       {       .type = PCA9532_TYPE_NONE },
+
+       {       .type = PCA9532_TYPE_NONE },
+       {       .name = "n2100:orange:system",
+               .state = PCA9532_OFF,
+               .type = PCA9532_TYPE_LED,
+       },
+       {       .name = "n2100:red:system",
+               .state = PCA9532_OFF,
+               .type = PCA9532_TYPE_LED,
+       },
+       {       .name = "N2100 beeper"  ,
+               .state =  PCA9532_OFF,
+               .type = PCA9532_TYPE_N2100_BEEP,
+       },
+       },
+       .psc = { 0, 0 },
+       .pwm = { 0, 0 },
+};
+
 static struct i2c_board_info __initdata n2100_i2c_devices[] = {
        {
                I2C_BOARD_INFO("rs5c372b", 0x32),
@@ -214,6 +262,10 @@ static struct i2c_board_info __initdata n2100_i2c_devices[] = {
                I2C_BOARD_INFO("f75375", 0x2e),
                .platform_data = &n2100_f75375s,
        },
+       {
+               I2C_BOARD_INFO("pca9532", 0x60),
+               .platform_data = &n2100_leds,
+       },
 };
 
 /*