leds-lp3944.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * leds-lp3944.h - platform data structure for lp3944 led controller
  3. *
  4. * Copyright (C) 2009 Antonio Ospite <ospite@studenti.unina.it>
  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 version 2 as
  8. * published by the Free Software Foundation.
  9. *
  10. */
  11. #ifndef __LINUX_LEDS_LP3944_H
  12. #define __LINUX_LEDS_LP3944_H
  13. #include <linux/leds.h>
  14. #include <linux/workqueue.h>
  15. #define LP3944_LED0 0
  16. #define LP3944_LED1 1
  17. #define LP3944_LED2 2
  18. #define LP3944_LED3 3
  19. #define LP3944_LED4 4
  20. #define LP3944_LED5 5
  21. #define LP3944_LED6 6
  22. #define LP3944_LED7 7
  23. #define LP3944_LEDS_MAX 8
  24. #define LP3944_LED_STATUS_MASK 0x03
  25. enum lp3944_status {
  26. LP3944_LED_STATUS_OFF = 0x0,
  27. LP3944_LED_STATUS_ON = 0x1,
  28. LP3944_LED_STATUS_DIM0 = 0x2,
  29. LP3944_LED_STATUS_DIM1 = 0x3
  30. };
  31. enum lp3944_type {
  32. LP3944_LED_TYPE_NONE,
  33. LP3944_LED_TYPE_LED,
  34. LP3944_LED_TYPE_LED_INVERTED,
  35. };
  36. struct lp3944_led {
  37. char *name;
  38. enum lp3944_type type;
  39. enum lp3944_status status;
  40. };
  41. struct lp3944_platform_data {
  42. struct lp3944_led leds[LP3944_LEDS_MAX];
  43. u8 leds_size;
  44. };
  45. #endif /* __LINUX_LEDS_LP3944_H */