linux/include/linux/leds-pca9532.h
<<
>>
Prefs
   1/*
   2 * pca9532.h - platform data structure for pca9532 led controller
   3 *
   4 * Copyright (C) 2008 Riku Voipio <riku.voipio@movial.fi>
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License as published by
   8 * the Free Software Foundation; version 2 of the License.
   9 *
  10 * Datasheet: http://www.nxp.com/acrobat/datasheets/PCA9532_3.pdf
  11 *
  12 */
  13
  14#ifndef __LINUX_PCA9532_H
  15#define __LINUX_PCA9532_H
  16
  17#include <linux/leds.h>
  18#include <linux/workqueue.h>
  19
  20enum pca9532_state {
  21        PCA9532_OFF  = 0x0,
  22        PCA9532_ON   = 0x1,
  23        PCA9532_PWM0 = 0x2,
  24        PCA9532_PWM1 = 0x3
  25};
  26
  27enum pca9532_type { PCA9532_TYPE_NONE, PCA9532_TYPE_LED,
  28        PCA9532_TYPE_N2100_BEEP, PCA9532_TYPE_GPIO };
  29
  30struct pca9532_led {
  31        u8 id;
  32        struct i2c_client *client;
  33        char *name;
  34        struct led_classdev ldev;
  35        struct work_struct work;
  36        enum pca9532_type type;
  37        enum pca9532_state state;
  38};
  39
  40struct pca9532_platform_data {
  41        struct pca9532_led leds[16];
  42        u8 pwm[2];
  43        u8 psc[2];
  44        int gpio_base;
  45};
  46
  47#endif /* __LINUX_PCA9532_H */
  48
  49