home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / mfd / wm8350 / supply.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  3.5 KB  |  112 lines

  1. /*
  2.  * supply.h  --  Power Supply Driver for Wolfson WM8350 PMIC
  3.  *
  4.  * Copyright 2007 Wolfson Microelectronics PLC
  5.  *
  6.  *  This program is free software; you can redistribute  it and/or modify it
  7.  *  under  the terms of  the GNU General  Public License as published by the
  8.  *  Free Software Foundation;  either version 2 of the  License, or (at your
  9.  *  option) any later version.
  10.  *
  11.  */
  12.  
  13. #ifndef __LINUX_MFD_WM8350_SUPPLY_H_
  14. #define __LINUX_MFD_WM8350_SUPPLY_H_
  15.  
  16. #include <linux/platform_device.h>
  17.  
  18. /*
  19.  * Charger registers
  20.  */
  21. #define WM8350_BATTERY_CHARGER_CONTROL_1        0xA8
  22. #define WM8350_BATTERY_CHARGER_CONTROL_2        0xA9
  23. #define WM8350_BATTERY_CHARGER_CONTROL_3        0xAA
  24.  
  25. /*
  26.  * R168 (0xA8) - Battery Charger Control 1
  27.  */
  28. #define WM8350_CHG_ENA_R168                     0x8000
  29. #define WM8350_CHG_THR                          0x2000
  30. #define WM8350_CHG_EOC_SEL_MASK                 0x1C00
  31. #define WM8350_CHG_TRICKLE_TEMP_CHOKE           0x0200
  32. #define WM8350_CHG_TRICKLE_USB_CHOKE            0x0100
  33. #define WM8350_CHG_RECOVER_T                    0x0080
  34. #define WM8350_CHG_END_ACT                      0x0040
  35. #define WM8350_CHG_FAST                         0x0020
  36. #define WM8350_CHG_FAST_USB_THROTTLE            0x0010
  37. #define WM8350_CHG_NTC_MON                      0x0008
  38. #define WM8350_CHG_BATT_HOT_MON                 0x0004
  39. #define WM8350_CHG_BATT_COLD_MON                0x0002
  40. #define WM8350_CHG_CHIP_TEMP_MON                0x0001
  41.  
  42. /*
  43.  * R169 (0xA9) - Battery Charger Control 2
  44.  */
  45. #define WM8350_CHG_ACTIVE                       0x8000
  46. #define WM8350_CHG_PAUSE                        0x4000
  47. #define WM8350_CHG_STS_MASK                     0x3000
  48. #define WM8350_CHG_TIME_MASK                    0x0F00
  49. #define WM8350_CHG_MASK_WALL_FB                 0x0080
  50. #define WM8350_CHG_TRICKLE_SEL                  0x0040
  51. #define WM8350_CHG_VSEL_MASK                    0x0030
  52. #define WM8350_CHG_ISEL_MASK                    0x000F
  53. #define WM8350_CHG_STS_OFF                      0x0000
  54. #define WM8350_CHG_STS_TRICKLE                  0x1000
  55. #define WM8350_CHG_STS_FAST                     0x2000
  56.  
  57. /*
  58.  * R170 (0xAA) - Battery Charger Control 3
  59.  */
  60. #define WM8350_CHG_THROTTLE_T_MASK              0x0060
  61. #define WM8350_CHG_SMART                        0x0010
  62. #define WM8350_CHG_TIMER_ADJT_MASK              0x000F
  63.  
  64. /*
  65.  * Charger Interrupts
  66.  */
  67. #define WM8350_IRQ_CHG_BAT_HOT            0
  68. #define WM8350_IRQ_CHG_BAT_COLD            1
  69. #define WM8350_IRQ_CHG_BAT_FAIL            2
  70. #define WM8350_IRQ_CHG_TO            3
  71. #define WM8350_IRQ_CHG_END            4
  72. #define WM8350_IRQ_CHG_START            5
  73. #define WM8350_IRQ_CHG_FAST_RDY            6
  74. #define WM8350_IRQ_CHG_VBATT_LT_3P9        10
  75. #define WM8350_IRQ_CHG_VBATT_LT_3P1        11
  76. #define WM8350_IRQ_CHG_VBATT_LT_2P85        12
  77.  
  78. /*
  79.  * Charger Policy
  80.  */
  81. #define WM8350_CHG_TRICKLE_50mA            (0 << 6)
  82. #define WM8350_CHG_TRICKLE_100mA        (1 << 6)
  83. #define WM8350_CHG_4_05V            (0 << 4)
  84. #define WM8350_CHG_4_10V            (1 << 4)
  85. #define WM8350_CHG_4_15V            (2 << 4)
  86. #define WM8350_CHG_4_20V            (3 << 4)
  87. #define WM8350_CHG_FAST_LIMIT_mA(x)        ((x / 50) & 0xf)
  88. #define WM8350_CHG_EOC_mA(x)            (((x - 10) & 0x7) << 10)
  89. #define WM8350_CHG_TRICKLE_3_1V            (0 << 13)
  90. #define WM8350_CHG_TRICKLE_3_9V            (1 << 13)
  91.  
  92. /*
  93.  * Supply Registers.
  94.  */
  95. #define WM8350_USB_VOLTAGE_READBACK             0x9C
  96. #define WM8350_LINE_VOLTAGE_READBACK            0x9D
  97. #define WM8350_BATT_VOLTAGE_READBACK            0x9E
  98.  
  99. /*
  100.  * Supply Interrupts.
  101.  */
  102. #define WM8350_IRQ_USB_LIMIT            15
  103. #define WM8350_IRQ_EXT_USB_FB            36
  104. #define WM8350_IRQ_EXT_WALL_FB            37
  105. #define WM8350_IRQ_EXT_BAT_FB            38
  106.  
  107. struct wm8350_power {
  108.     struct platform_device *pdev;
  109. };
  110.  
  111. #endif
  112.