mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-13 06:42:56 +00:00
ac1058fdb7
This adds driver support for the TPS65090 PMU. Support includes hooking into the pmic infrastructure so that the pmic commands can be used on the console. The TPS65090 supports the following functionality: - fet enable/disable/querying - getting and setting of charge state Even though it is connected to the pmic infrastructure it does not hook into the pmic charging charging infrastructure. The device tree binding is from Linux, but only a small subset of functionality is supported. Signed-off-by: Tom Wai-Hong Tam <waihong@chromium.org> Signed-off-by: Hatim Ali <hatim.rv@samsung.com> Signed-off-by: Katie Roberts-Hoffman <katierh@chromium.org> Signed-off-by: Rong Chang <rongchang@chromium.org> Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Vincent Palatin <vpalatin@chromium.org> Signed-off-by: Aaron Durbin <adurbin@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
73 lines
1.5 KiB
C
73 lines
1.5 KiB
C
/*
|
|
* Copyright (c) 2012 The Chromium OS Authors.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#ifndef __TPS65090_PMIC_H_
|
|
#define __TPS65090_PMIC_H_
|
|
|
|
/* I2C device address for TPS65090 PMU */
|
|
#define TPS65090_I2C_ADDR 0x48
|
|
|
|
enum {
|
|
/* Status register fields */
|
|
TPS65090_ST1_OTC = 1 << 0,
|
|
TPS65090_ST1_OCC = 1 << 1,
|
|
TPS65090_ST1_STATE_SHIFT = 4,
|
|
TPS65090_ST1_STATE_MASK = 0xf << TPS65090_ST1_STATE_SHIFT,
|
|
};
|
|
|
|
/**
|
|
* Enable FET
|
|
*
|
|
* @param fet_id FET ID, value between 1 and 7
|
|
* @return 0 on success, non-0 on failure
|
|
*/
|
|
int tps65090_fet_enable(unsigned int fet_id);
|
|
|
|
/**
|
|
* Disable FET
|
|
*
|
|
* @param fet_id FET ID, value between 1 and 7
|
|
* @return 0 on success, non-0 on failure
|
|
*/
|
|
int tps65090_fet_disable(unsigned int fet_id);
|
|
|
|
/**
|
|
* Is FET enabled?
|
|
*
|
|
* @param fet_id FET ID, value between 1 and 7
|
|
* @return 1 enabled, 0 disabled, negative value on failure
|
|
*/
|
|
int tps65090_fet_is_enabled(unsigned int fet_id);
|
|
|
|
/**
|
|
* Enable / disable the battery charger
|
|
*
|
|
* @param enable 0 to disable charging, non-zero to enable
|
|
*/
|
|
int tps65090_set_charge_enable(int enable);
|
|
|
|
/**
|
|
* Check whether we have enabled battery charging
|
|
*
|
|
* @return 1 if enabled, 0 if disabled
|
|
*/
|
|
int tps65090_get_charging(void);
|
|
|
|
/**
|
|
* Return the value of the status register
|
|
*
|
|
* @return status register value, or -1 on error
|
|
*/
|
|
int tps65090_get_status(void);
|
|
|
|
/**
|
|
* Initialize the TPS65090 PMU.
|
|
*
|
|
* @return 0 on success, non-0 on failure
|
|
*/
|
|
int tps65090_init(void);
|
|
|
|
#endif /* __TPS65090_PMIC_H_ */
|