mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-09 17:11:42 +00:00
Add TPSChrome FET API
Some designs will have the PMU not directly connected to the AP but behind the EC. For easier bring-up, it's nice to be able to force power rails. Signed-off-by: Rong Chang <rongchang@chromium.org> Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BUG=chrome-os-partner:10912 chrome-os-partner:14324 TEST=manual On snow, switch on and off the backlight using the API BRANCH=none Change-Id: I74e05308043546cb11f7f2cdbe644944c0a0a35e Reviewed-on: https://gerrit.chromium.org/gerrit/26234 Reviewed-by: Rong Chang <rongchang@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> Commit-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org>
This commit is contained in:
@@ -77,6 +77,13 @@
|
||||
/* Charger alarm */
|
||||
#define CHARGER_ALARM 3
|
||||
|
||||
/* FET control register bits */
|
||||
#define FET_CTRL_ENFET (1 << 0)
|
||||
#define FET_CTRL_ADENFET (1 << 1)
|
||||
#define FET_CTRL_PGFET (1 << 4)
|
||||
|
||||
#define FET_CTRL_BASE (FET1_CTRL - 1)
|
||||
|
||||
void __board_hard_reset(void)
|
||||
{
|
||||
CPRINTF("This board is not capable of a hard reset.\n");
|
||||
@@ -363,6 +370,35 @@ int pmu_low_current_charging(int enable)
|
||||
return pmu_write(CG_CTRL5, reg_val);
|
||||
}
|
||||
|
||||
int pmu_enable_fet(int fet_id, int enable, int *power_good)
|
||||
{
|
||||
int rv, reg;
|
||||
int reg_offset;
|
||||
|
||||
reg_offset = FET_CTRL_BASE + fet_id;
|
||||
|
||||
rv = pmu_read(reg_offset, ®);
|
||||
if (rv)
|
||||
return rv;
|
||||
if (enable)
|
||||
reg |= FET_CTRL_ADENFET | FET_CTRL_ENFET;
|
||||
else
|
||||
reg &= ~FET_CTRL_ENFET;
|
||||
|
||||
rv = pmu_write(reg_offset, reg);
|
||||
if (rv)
|
||||
return rv;
|
||||
|
||||
if (power_good) {
|
||||
rv = pmu_read(reg_offset, ®);
|
||||
if (rv)
|
||||
return rv;
|
||||
*power_good = reg & FET_CTRL_PGFET;
|
||||
}
|
||||
|
||||
return EC_SUCCESS;
|
||||
}
|
||||
|
||||
void pmu_irq_handler(enum gpio_signal signal)
|
||||
{
|
||||
#ifdef CONFIG_AC_POWER_STATUS
|
||||
|
||||
@@ -60,7 +60,10 @@ enum FASTCHARGE_TIMEOUT {
|
||||
};
|
||||
|
||||
#define FET_BACKLIGHT 1
|
||||
#define FET_WWAN 3
|
||||
#define FET_CAMERA 5
|
||||
#define FET_LCD_PANEL 6
|
||||
#define FET_TS 7
|
||||
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user