diff options
author | Simon Glass <sjg@chromium.org> | 2015-07-02 18:15:58 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-08-05 21:06:12 -0600 |
commit | 151b223b9c4e309d65166558afdfa0ce3c3b3213 (patch) | |
tree | 624862264958849dea9b13287d14b29e9ee130d9 /include/power | |
parent | 7fb57396e632126867c360e0dc0700db3d059aef (diff) | |
download | u-boot-imx-151b223b9c4e309d65166558afdfa0ce3c3b3213.zip u-boot-imx-151b223b9c4e309d65166558afdfa0ce3c3b3213.tar.gz u-boot-imx-151b223b9c4e309d65166558afdfa0ce3c3b3213.tar.bz2 |
dm: power: Add a new driver for the TPS65090 PMIC
The existing TPS65090 driver does not support driver model. Add a new one
that does. This can be used as a base for a regulator driver also. It uses
the standard device tree binding.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
Diffstat (limited to 'include/power')
-rw-r--r-- | include/power/tps65090.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/power/tps65090.h b/include/power/tps65090.h new file mode 100644 index 0000000..3a0690b --- /dev/null +++ b/include/power/tps65090.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2015 Google, Inc + * Written by Simon Glass <sjg@chromium.org> + * + * 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 + +/* TPS65090 register addresses */ +enum { + REG_IRQ1 = 0, + REG_CG_CTRL0 = 4, + REG_CG_STATUS1 = 0xa, + REG_FET_BASE = 0xe, /* Not a real register, FETs count from here */ + REG_FET1_CTRL, + REG_FET2_CTRL, + REG_FET3_CTRL, + REG_FET4_CTRL, + REG_FET5_CTRL, + REG_FET6_CTRL, + REG_FET7_CTRL, + TPS65090_NUM_REGS, +}; + +enum { + IRQ1_VBATG = 1 << 3, + CG_CTRL0_ENC_MASK = 0x01, + + MAX_FET_NUM = 7, + MAX_CTRL_READ_TRIES = 5, + + /* TPS65090 FET_CTRL register values */ + FET_CTRL_TOFET = 1 << 7, /* Timeout, startup, overload */ + FET_CTRL_PGFET = 1 << 4, /* Power good for FET status */ + FET_CTRL_WAIT = 3 << 2, /* Overcurrent timeout max */ + FET_CTRL_ADENFET = 1 << 1, /* Enable output auto discharge */ + FET_CTRL_ENFET = 1 << 0, /* Enable FET */ +}; + +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, +}; + +/* Drivers name */ +#define TPS65090_FET_DRIVER "tps65090_fet" + +#endif /* __TPS65090_PMIC_H_ */ |