diff options
Diffstat (limited to 'include/linux/leds-pca9532.h')
-rw-r--r-- | include/linux/leds-pca9532.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/linux/leds-pca9532.h b/include/linux/leds-pca9532.h new file mode 100644 index 000000000..f4796d333 --- /dev/null +++ b/include/linux/leds-pca9532.h @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * pca9532.h - platform data structure for pca9532 led controller + * + * Copyright (C) 2008 Riku Voipio <riku.voipio@movial.fi> + * + * Datasheet: http://www.nxp.com/acrobat/datasheets/PCA9532_3.pdf + */ + +#ifndef __LINUX_PCA9532_H +#define __LINUX_PCA9532_H + +#include <linux/leds.h> +#include <linux/workqueue.h> +#include <dt-bindings/leds/leds-pca9532.h> + +enum pca9532_state { + PCA9532_OFF = 0x0, + PCA9532_ON = 0x1, + PCA9532_PWM0 = 0x2, + PCA9532_PWM1 = 0x3, + PCA9532_KEEP = 0xff, +}; + +struct pca9532_led { + u8 id; + struct i2c_client *client; + const char *name; + const char *default_trigger; + struct led_classdev ldev; + struct work_struct work; + u32 type; + enum pca9532_state state; +}; + +struct pca9532_platform_data { + struct pca9532_led leds[16]; + u8 pwm[2]; + u8 psc[2]; + int gpio_base; +}; + +#endif /* __LINUX_PCA9532_H */ |