home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-arm / arch-omap / tps65010.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  4.9 KB  |  157 lines

  1. /* linux/include/asm-arm/arch-omap/tps65010.h
  2.  *
  3.  * Functions to access TPS65010 power management device.
  4.  *
  5.  * Copyright (C) 2004 Dirk Behme <dirk.behme@de.bosch.com>
  6.  *
  7.  * This program is free software; you can redistribute it and/or modify it
  8.  * under the terms of the GNU General Public License as published by the
  9.  * Free Software Foundation; either version 2 of the License, or (at your
  10.  * option) any later version.
  11.  *
  12.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
  13.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
  15.  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  16.  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  17.  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  18.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  19.  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  20.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  21.  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  22.  *
  23.  * You should have received a copy of the  GNU General Public License along
  24.  * with this program; if not, write  to the Free Software Foundation, Inc.,
  25.  * 675 Mass Ave, Cambridge, MA 02139, USA.
  26.  */
  27.  
  28. #ifndef __ASM_ARCH_TPS65010_H
  29. #define __ASM_ARCH_TPS65010_H
  30.  
  31. /*
  32.  * ----------------------------------------------------------------------------
  33.  * Registers, all 8 bits
  34.  * ----------------------------------------------------------------------------
  35.  */
  36.  
  37. #define    TPS_CHGSTATUS        0x01
  38. #    define    TPS_CHG_USB        (1 << 7)
  39. #    define    TPS_CHG_AC        (1 << 6)
  40. #    define    TPS_CHG_THERM        (1 << 5)
  41. #    define    TPS_CHG_TERM        (1 << 4)
  42. #    define    TPS_CHG_TAPER_TMO    (1 << 3)
  43. #    define    TPS_CHG_CHG_TMO        (1 << 2)
  44. #    define    TPS_CHG_PRECHG_TMO    (1 << 1)
  45. #    define    TPS_CHG_TEMP_ERR    (1 << 0)
  46. #define    TPS_REGSTATUS        0x02
  47. #    define    TPS_REG_ONOFF        (1 << 7)
  48. #    define    TPS_REG_COVER        (1 << 6)
  49. #    define    TPS_REG_UVLO        (1 << 5)
  50. #    define    TPS_REG_NO_CHG        (1 << 4)    /* tps65013 */
  51. #    define    TPS_REG_PG_LD02        (1 << 3)
  52. #    define    TPS_REG_PG_LD01        (1 << 2)
  53. #    define    TPS_REG_PG_MAIN        (1 << 1)
  54. #    define    TPS_REG_PG_CORE        (1 << 0)
  55. #define    TPS_MASK1        0x03
  56. #define    TPS_MASK2        0x04
  57. #define    TPS_ACKINT1        0x05
  58. #define    TPS_ACKINT2        0x06
  59. #define    TPS_CHGCONFIG        0x07
  60. #    define    TPS_CHARGE_POR        (1 << 7)    /* 65010/65012 */
  61. #    define    TPS65013_AUA        (1 << 7)    /* 65011/65013 */
  62. #    define    TPS_CHARGE_RESET    (1 << 6)
  63. #    define    TPS_CHARGE_FAST        (1 << 5)
  64. #    define    TPS_CHARGE_CURRENT    (3 << 3)
  65. #    define    TPS_VBUS_500MA        (1 << 2)
  66. #    define    TPS_VBUS_CHARGING    (1 << 1)
  67. #    define    TPS_CHARGE_ENABLE    (1 << 0)
  68. #define    TPS_LED1_ON        0x08
  69. #define    TPS_LED1_PER        0x09
  70. #define    TPS_LED2_ON        0x0a
  71. #define    TPS_LED2_PER        0x0b
  72. #define    TPS_VDCDC1        0x0c
  73. #    define    TPS_ENABLE_LP        (1 << 3)
  74. #define    TPS_VDCDC2        0x0d
  75. #define    TPS_VREGS1        0x0e
  76. #    define    TPS_LDO2_ENABLE    (1 << 7)
  77. #    define    TPS_LDO2_OFF    (1 << 6)
  78. #    define    TPS_VLDO2_3_0V    (3 << 4)
  79. #    define    TPS_VLDO2_2_75V    (2 << 4)
  80. #    define    TPS_VLDO2_2_5V    (1 << 4)
  81. #    define    TPS_VLDO2_1_8V    (0 << 4)
  82. #    define    TPS_LDO1_ENABLE    (1 << 3)
  83. #    define    TPS_LDO1_OFF    (1 << 2)
  84. #    define    TPS_VLDO1_3_0V    (3 << 0)
  85. #    define    TPS_VLDO1_2_75V    (2 << 0)
  86. #    define    TPS_VLDO1_2_5V    (1 << 0)
  87. #    define    TPS_VLDO1_ADJ    (0 << 0)
  88. #define    TPS_MASK3        0x0f
  89. #define    TPS_DEFGPIO        0x10
  90.  
  91. /*
  92.  * ----------------------------------------------------------------------------
  93.  * Macros used by exported functions
  94.  * ----------------------------------------------------------------------------
  95.  */
  96.  
  97. #define LED1  1
  98. #define LED2  2
  99. #define OFF   0
  100. #define ON    1
  101. #define BLINK 2
  102. #define GPIO1 1
  103. #define GPIO2 2
  104. #define GPIO3 3
  105. #define GPIO4 4
  106. #define LOW   0
  107. #define HIGH  1
  108.  
  109. /*
  110.  * ----------------------------------------------------------------------------
  111.  * Exported functions
  112.  * ----------------------------------------------------------------------------
  113.  */
  114.  
  115. /* Draw from VBUS:
  116.  *   0 mA -- DON'T DRAW (might supply power instead)
  117.  * 100 mA -- usb unit load (slowest charge rate)
  118.  * 500 mA -- usb high power (fast battery charge)
  119.  */
  120. extern int tps65010_set_vbus_draw(unsigned mA);
  121.  
  122. /* tps65010_set_gpio_out_value parameter:
  123.  * gpio:  GPIO1, GPIO2, GPIO3 or GPIO4
  124.  * value: LOW or HIGH
  125.  */
  126. extern int tps65010_set_gpio_out_value(unsigned gpio, unsigned value);
  127.  
  128. /* tps65010_set_led parameter:
  129.  * led:  LED1 or LED2
  130.  * mode: ON, OFF or BLINK
  131.  */
  132. extern int tps65010_set_led(unsigned led, unsigned mode);
  133.  
  134. /* tps65010_set_vib parameter:
  135.  * value: ON or OFF
  136.  */
  137. extern int tps65010_set_vib(unsigned value);
  138.  
  139. /* tps65010_set_low_pwr parameter:
  140.  * mode: ON or OFF
  141.  */
  142. extern int tps65010_set_low_pwr(unsigned mode);
  143.  
  144. /* tps65010_config_vregs1 parameter:
  145.  * value to be written to VREGS1 register
  146.  * Note: The complete register is written, set all bits you need
  147.  */
  148. extern int tps65010_config_vregs1(unsigned value);
  149.  
  150. /* tps65013_set_low_pwr parameter:
  151.  * mode: ON or OFF
  152.  */
  153. extern int tps65013_set_low_pwr(unsigned mode);
  154.  
  155. #endif /*  __ASM_ARCH_TPS65010_H */
  156.  
  157.