Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds

* 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds:
  leds: Ensure led->trigger is set earlier
  leds: Add support for Philips PCA955x I2C LED drivers
  leds: Fix sparse warnings in leds-h1940 driver
  leds: mark led_classdev.default_trigger as const
  leds: fix unsigned value overflow in atmel pwm driver
  leds: Add pca9532 platform data for Thecus N2100
  leds: Add pca9532 led driver
This commit is contained in:
Linus Torvalds
2008-07-24 12:16:02 -07:00
10 changed files with 860 additions and 6 deletions

View File

@@ -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 */

View File

@@ -48,7 +48,7 @@ struct led_classdev {
struct device *dev;
struct list_head node; /* LED Device list */
char *default_trigger; /* Trigger to use */
const char *default_trigger; /* Trigger to use */
#ifdef CONFIG_LEDS_TRIGGERS
/* Protects the trigger data below */
@@ -118,6 +118,20 @@ extern void ledtrig_ide_activity(void);
#define ledtrig_ide_activity() do {} while(0)
#endif
/*
* Generic LED platform data for describing LED names and default triggers.
*/
struct led_info {
const char *name;
char *default_trigger;
int flags;
};
struct led_platform_data {
int num_leds;
struct led_info *leds;
};
/* For the leds-gpio driver */
struct gpio_led {
const char *name;