2005-04-16 15:20:36 -07:00
/* linux/include/asm-arm/arch-omap/tps65010.h
*
* Functions to access TPS65010 power management device .
*
* Copyright ( C ) 2004 Dirk Behme < dirk . behme @ de . bosch . com >
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation ; either version 2 of the License , or ( at your
* option ) any later version .
*
* THIS SOFTWARE IS PROVIDED ` ` AS IS ' ' AND ANY EXPRESS OR IMPLIED
* WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED . IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT , INDIRECT ,
* INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT
* NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF
* USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
* ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
* You should have received a copy of the GNU General Public License along
* with this program ; if not , write to the Free Software Foundation , Inc . ,
* 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
# ifndef __ASM_ARCH_TPS65010_H
# define __ASM_ARCH_TPS65010_H
2005-05-24 17:34:51 -07:00
/*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* Registers , all 8 bits
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
# define TPS_CHGSTATUS 0x01
# define TPS_CHG_USB (1 << 7)
# define TPS_CHG_AC (1 << 6)
# define TPS_CHG_THERM (1 << 5)
# define TPS_CHG_TERM (1 << 4)
# define TPS_CHG_TAPER_TMO (1 << 3)
# define TPS_CHG_CHG_TMO (1 << 2)
# define TPS_CHG_PRECHG_TMO (1 << 1)
# define TPS_CHG_TEMP_ERR (1 << 0)
# define TPS_REGSTATUS 0x02
# define TPS_REG_ONOFF (1 << 7)
# define TPS_REG_COVER (1 << 6)
# define TPS_REG_UVLO (1 << 5)
# define TPS_REG_NO_CHG (1 << 4) /* tps65013 */
# define TPS_REG_PG_LD02 (1 << 3)
# define TPS_REG_PG_LD01 (1 << 2)
# define TPS_REG_PG_MAIN (1 << 1)
# define TPS_REG_PG_CORE (1 << 0)
# define TPS_MASK1 0x03
# define TPS_MASK2 0x04
# define TPS_ACKINT1 0x05
# define TPS_ACKINT2 0x06
# define TPS_CHGCONFIG 0x07
# define TPS_CHARGE_POR (1 << 7) /* 65010/65012 */
# define TPS65013_AUA (1 << 7) /* 65011/65013 */
# define TPS_CHARGE_RESET (1 << 6)
# define TPS_CHARGE_FAST (1 << 5)
# define TPS_CHARGE_CURRENT (3 << 3)
# define TPS_VBUS_500MA (1 << 2)
# define TPS_VBUS_CHARGING (1 << 1)
# define TPS_CHARGE_ENABLE (1 << 0)
# define TPS_LED1_ON 0x08
# define TPS_LED1_PER 0x09
# define TPS_LED2_ON 0x0a
# define TPS_LED2_PER 0x0b
# define TPS_VDCDC1 0x0c
# define TPS_ENABLE_LP (1 << 3)
# define TPS_VDCDC2 0x0d
# define TPS_VREGS1 0x0e
# define TPS_LDO2_ENABLE (1 << 7)
# define TPS_LDO2_OFF (1 << 6)
# define TPS_VLDO2_3_0V (3 << 4)
# define TPS_VLDO2_2_75V (2 << 4)
# define TPS_VLDO2_2_5V (1 << 4)
# define TPS_VLDO2_1_8V (0 << 4)
# define TPS_LDO1_ENABLE (1 << 3)
# define TPS_LDO1_OFF (1 << 2)
# define TPS_VLDO1_3_0V (3 << 0)
# define TPS_VLDO1_2_75V (2 << 0)
# define TPS_VLDO1_2_5V (1 << 0)
# define TPS_VLDO1_ADJ (0 << 0)
# define TPS_MASK3 0x0f
# define TPS_DEFGPIO 0x10
2005-04-16 15:20:36 -07:00
/*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* Macros used by exported functions
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
# define LED1 1
# define LED2 2
# define OFF 0
# define ON 1
# define BLINK 2
# define GPIO1 1
# define GPIO2 2
# define GPIO3 3
# define GPIO4 4
# define LOW 0
# define HIGH 1
/*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* Exported functions
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
/* Draw from VBUS:
* 0 mA - - DON ' T DRAW ( might supply power instead )
* 100 mA - - usb unit load ( slowest charge rate )
* 500 mA - - usb high power ( fast battery charge )
*/
extern int tps65010_set_vbus_draw ( unsigned mA ) ;
/* tps65010_set_gpio_out_value parameter:
* gpio : GPIO1 , GPIO2 , GPIO3 or GPIO4
* value : LOW or HIGH
*/
extern int tps65010_set_gpio_out_value ( unsigned gpio , unsigned value ) ;
/* tps65010_set_led parameter:
* led : LED1 or LED2
* mode : ON , OFF or BLINK
*/
extern int tps65010_set_led ( unsigned led , unsigned mode ) ;
2005-05-24 17:34:51 -07:00
/* tps65010_set_vib parameter:
* value : ON or OFF
*/
extern int tps65010_set_vib ( unsigned value ) ;
2005-04-16 15:20:36 -07:00
/* tps65010_set_low_pwr parameter:
* mode : ON or OFF
*/
extern int tps65010_set_low_pwr ( unsigned mode ) ;
2005-05-24 17:34:51 -07:00
/* tps65010_config_vregs1 parameter:
* value to be written to VREGS1 register
* Note : The complete register is written , set all bits you need
*/
extern int tps65010_config_vregs1 ( unsigned value ) ;
/* tps65013_set_low_pwr parameter:
* mode : ON or OFF
*/
extern int tps65013_set_low_pwr ( unsigned mode ) ;
2005-04-16 15:20:36 -07:00
# endif /* __ASM_ARCH_TPS65010_H */