The AXP209 has a few 'magisc-ish' values that are better served with

clear defines.
lime2-spi
Merlijn Wajer 6 년 전
부모 58f680a47e
커밋 573f0762e8
  1. 10
      drivers/power/axp209.c
  2. 14
      include/axp209.h

@ -81,8 +81,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;
@ -100,9 +99,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)
@ -131,8 +130,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;

@ -34,6 +34,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)

불러오는 중...
취소
저장