leds: pca9633: Add hardware blink support

Add hardware blinking support to the pca9633 driver.

NOTE: Hardware blinking violates the leds infrastructure
driver interface since the hardware only supports
blinking all LEDs with the same delay_on/delay_off
rates.  That is, only the LEDs that are set to blink
will actually blink but all LEDs that are set to blink
will blink in identical fashion.  The delay_on/delay_off
values of the last LED that is set to blink will be used
for all of the blinking LEDs.  If the hardware doesn't
support the requested blinking pattern, a default of
500ms on and off will be used.

Hardware blinking is disabled by default but can be enabled
by setting the 'blink_type' member in the platform_data
struct to 'PCA9633_HW_BLINK' or by adding the 'nxp,hw-blink'
property to the DTS.

(fengguang.wu@intel.com: Removes unneeded semicolon.)

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
This commit is contained in:
Mark A. Greer
2013-07-25 10:16:41 -07:00
committed by Bryan Wu
parent 33b3a561f4
commit 8465b01827
3 changed files with 139 additions and 4 deletions

View File

@@ -27,9 +27,15 @@ enum pca9633_outdrv {
PCA9633_TOTEM_POLE, /* aka push-pull */
};
enum pca9633_blink_type {
PCA9633_SW_BLINK,
PCA9633_HW_BLINK,
};
struct pca9633_platform_data {
struct led_platform_data leds;
enum pca9633_outdrv outdrv;
enum pca9633_blink_type blink_type;
};
#endif /* __LINUX_PCA9633_H*/