[U-Boot] [PATCH 5/8] power: axp209: Reduce magic values by adding defines for LDO[234]
Olliver Schinagl
oliver at schinagl.nl
Wed Mar 1 12:52:21 UTC 2017
The AXP209 has a few 'magisc-ish' values that are better served with
clear defines.
Signed-off-by: Olliver Schinagl <oliver at schinagl.nl>
---
drivers/power/axp209.c | 10 ++++------
include/axp209.h | 14 ++++++++++++++
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/drivers/power/axp209.c b/drivers/power/axp209.c
index d496f675a1..a5d38cdf76 100644
--- a/drivers/power/axp209.c
+++ b/drivers/power/axp209.c
@@ -82,8 +82,7 @@ int axp_set_aldo2(unsigned int mvolt)
if (rc)
return rc;
- /* LDO2 configuration is in upper 4 bits */
- reg = (reg & 0x0f) | (cfg << 4);
+ reg |= AXP209_LDO24_LDO2_SET(reg, cfg);
rc = pmic_bus_write(AXP209_LDO24_VOLTAGE, reg);
if (rc)
return rc;
@@ -101,9 +100,9 @@ int axp_set_aldo3(unsigned int mvolt)
AXP209_OUTPUT_CTRL_LDO3);
if (mvolt == -1)
- cfg = 0x80; /* determined by LDO3IN pin */
+ cfg = AXP209_LDO3_VOLTAGE_FROM_LDO3IN;
else
- cfg = axp209_mvolt_to_cfg(mvolt, 700, 3500, 25);
+ cfg = AXP209_LDO3_VOLTAGE_SET(axp209_mvolt_to_cfg(mvolt, 700, 3500, 25));
rc = pmic_bus_write(AXP209_LDO3_VOLTAGE, cfg);
if (rc)
@@ -132,8 +131,7 @@ int axp_set_aldo4(unsigned int mvolt)
if (rc)
return rc;
- /* LDO4 configuration is in lower 4 bits */
- reg = (reg & 0xf0) | (cfg << 0);
+ reg |= AXP209_LDO24_LDO4_SET(reg, cfg);
rc = pmic_bus_write(AXP209_LDO24_VOLTAGE, reg);
if (rc)
return rc;
diff --git a/include/axp209.h b/include/axp209.h
index 51d2e88dd2..e4210eca00 100644
--- a/include/axp209.h
+++ b/include/axp209.h
@@ -35,6 +35,20 @@ enum axp209_reg {
#define AXP209_OUTPUT_CTRL_DCDC2 BIT(4)
#define AXP209_OUTPUT_CTRL_LDO3 BIT(6)
+#define AXP209_LDO24_LDO2_MASK 0xf0
+#define AXP209_LDO24_LDO4_MASK 0x0f
+#define AXP209_LDO24_LDO2_SET(reg, cfg) \
+ (((reg) & ~AXP209_LDO24_LDO2_MASK) | \
+ (((cfg) << 4) & AXP209_LDO24_LDO2_MASK))
+#define AXP209_LDO24_LDO4_SET(reg, cfg) \
+ (((reg) & ~AXP209_LDO24_LDO4_MASK) | \
+ (((cfg) << 0) & AXP209_LDO24_LDO4_MASK))
+
+
+#define AXP209_LDO3_VOLTAGE_FROM_LDO3IN BIT(7)
+#define AXP209_LDO3_VOLTAGE_MASK 0x7f
+#define AXP209_LDO3_VOLTAGE_SET(x) ((x) & AXP209_LDO3_VOLTAGE_MASK)
+
#define AXP209_IRQ5_PEK_UP BIT(6)
#define AXP209_IRQ5_PEK_DOWN BIT(5)
--
2.11.0
More information about the U-Boot
mailing list