mt_leds.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /* Copyright Statement:
  2. *
  3. * This software/firmware and related documentation ("MediaTek Software") are
  4. * protected under relevant copyright laws. The information contained herein
  5. * is confidential and proprietary to MediaTek Inc. and/or its licensors.
  6. * Without the prior written permission of MediaTek inc. and/or its licensors,
  7. * any reproduction, modification, use or disclosure of MediaTek Software,
  8. * and information contained herein, in whole or in part, shall be strictly prohibited.
  9. */
  10. /* MediaTek Inc. (C) 2015. All rights reserved.
  11. *
  12. * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  13. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  14. * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
  15. * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  16. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  17. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  18. * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  19. * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  20. * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
  21. * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
  22. * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
  23. * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
  24. * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  25. * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
  26. * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  27. * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  28. * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
  29. * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  30. */
  31. #ifndef _MT65XX_LEDS_H
  32. #define _MT65XX_LEDS_H
  33. #define ISINK_CHOP_CLK
  34. #include <cust_leds.h>
  35. #include <platform/mt_typedefs.h>
  36. #define ERROR_BL_LEVEL 0xFFFFFFFF
  37. enum led_color {
  38. LED_RED,
  39. LED_GREEN,
  40. LED_BLUE,
  41. };
  42. enum led_brightness {
  43. LED_OFF = 0,
  44. LED_HALF = 127,
  45. LED_FULL = 255,
  46. };
  47. typedef enum {
  48. ISINK_PWM_MODE = 0,
  49. ISINK_BREATH_MODE = 1,
  50. ISINK_REGISTER_MODE = 2
  51. } MT65XX_PMIC_ISINK_MODE;
  52. typedef enum {
  53. ISINK_0 = 0, //4mA
  54. ISINK_1 = 1, //8mA
  55. ISINK_2 = 2, //12mA
  56. ISINK_3 = 3, //16mA
  57. ISINK_4 = 4, //20mA
  58. ISINK_5 = 5 //24mA
  59. } MT65XX_PMIC_ISINK_STEP;
  60. typedef enum {
  61. //32K clock
  62. ISINK_1KHZ = 0,
  63. ISINK_200HZ = 4,
  64. ISINK_5HZ = 199,
  65. ISINK_2HZ = 499,
  66. ISINK_1HZ = 999,
  67. ISINK_05HZ = 1999,
  68. ISINK_02HZ = 4999,
  69. ISINK_01HZ = 9999,
  70. //2M clock
  71. ISINK_2M_20KHZ = 2,
  72. ISINK_2M_1KHZ = 61,
  73. ISINK_2M_200HZ = 311,
  74. ISINK_2M_5HZ = 12499,
  75. ISINK_2M_2HZ = 31249,
  76. ISINK_2M_1HZ = 62499,
  77. /* 128K clock */
  78. ISINK_128K_500HZ = 0,
  79. ISINK_128K_256HZ = 1,
  80. ISINK_128K_167HZ = 2,
  81. ISINK_128K_128HZ = 3,
  82. ISINK_128K_100HZ = 4,
  83. ISINK_128K_83HZ = 5,
  84. ISINK_128K_50HZ = 9,
  85. ISINK_128K_17HZ = 28,
  86. } MT65XX_PMIC_ISINK_FSEL;
  87. #ifndef MACH_FPGA_LED_SUPPORT
  88. int mt65xx_leds_brightness_set(enum mt65xx_led_type type, enum led_brightness level);
  89. void leds_battery_full_charging(void);
  90. void leds_battery_low_charging(void);
  91. void leds_battery_medium_charging(void);
  92. void mt65xx_backlight_on(void);
  93. void mt65xx_backlight_off(void);
  94. void leds_init(void);
  95. void leds_deinit(void);
  96. #else
  97. static int mt65xx_leds_brightness_set(enum mt65xx_led_type type, enum led_brightness level) {return 0;}
  98. static void leds_battery_full_charging(void) {}
  99. static void leds_battery_low_charging(void) {}
  100. static void leds_battery_medium_charging(void) {}
  101. static inline void mt65xx_backlight_on(void) {}
  102. static void mt65xx_backlight_off(void) {}
  103. static void leds_init(void) {}
  104. static void leds_deinit(void) {}
  105. #endif
  106. #endif // !_MT65XX_LEDS_H