summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorƁukasz Majewski <l.majewski@samsung.com>2012-11-13 03:22:04 +0000
committerAnatolij Gustschin <agust@denx.de>2012-11-14 11:21:10 +0100
commitbf995a9a28c7a987be0b3df9d4f84da63c9bfb1c (patch)
tree3e2ce0935072444370efd3f23d4bd47c88245ca0
parentb95aacd332cde91299cf05e1a87dc6d7de545adb (diff)
pmic:max8997: Function for calculating LDO internal register value
Function for calculating LDO internal register value from passed micro Volt. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Cc: Stefano Babic <sbabic@denx.de>
-rw-r--r--drivers/power/pmic/pmic_max8997.c16
-rw-r--r--include/power/max8997_pmic.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/drivers/power/pmic/pmic_max8997.c b/drivers/power/pmic/pmic_max8997.c
index 7fe1b53ff0..2e46884dd6 100644
--- a/drivers/power/pmic/pmic_max8997.c
+++ b/drivers/power/pmic/pmic_max8997.c
@@ -27,6 +27,22 @@
#include <i2c.h>
#include <errno.h>
+unsigned char max8997_reg_ldo(int uV)
+{
+ unsigned char ret;
+ if (uV <= 800000)
+ return 0;
+ if (uV >= 3950000)
+ return MAX8997_LDO_MAX_VAL;
+ ret = (uV - 800000) / 50000;
+ if (ret > MAX8997_LDO_MAX_VAL) {
+ printf("MAX8997 LDO SETTING ERROR (%duV) -> %u\n", uV, ret);
+ ret = MAX8997_LDO_MAX_VAL;
+ }
+
+ return ret;
+}
+
int pmic_init(unsigned char bus)
{
static const char name[] = "MAX8997_PMIC";
diff --git a/include/power/max8997_pmic.h b/include/power/max8997_pmic.h
index 1db7deb3be..03cac041f1 100644
--- a/include/power/max8997_pmic.h
+++ b/include/power/max8997_pmic.h
@@ -200,4 +200,6 @@ enum {
EN_LDO = (0x3 << 6),
};
+#define MAX8997_LDO_MAX_VAL 0x3F
+unsigned char max8997_reg_ldo(int uV);
#endif /* __MAX8997_PMIC_H_ */