sunxi: power: axp818: Add support for switch SW
The AXP818 has a switchable output, SW. This is commonly used for controlling power to the LCD backlight. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
a696253c1d
commit
15278ccb84
@ -523,6 +523,7 @@ void sunxi_board_init(void)
|
|||||||
power_failed |= axp_set_fldo(1, CONFIG_AXP_FLDO1_VOLT);
|
power_failed |= axp_set_fldo(1, CONFIG_AXP_FLDO1_VOLT);
|
||||||
power_failed |= axp_set_fldo(2, CONFIG_AXP_FLDO2_VOLT);
|
power_failed |= axp_set_fldo(2, CONFIG_AXP_FLDO2_VOLT);
|
||||||
power_failed |= axp_set_fldo(3, CONFIG_AXP_FLDO3_VOLT);
|
power_failed |= axp_set_fldo(3, CONFIG_AXP_FLDO3_VOLT);
|
||||||
|
power_failed |= axp_set_sw(IS_ENABLED(CONFIG_AXP_SW_ON));
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
printf("DRAM:");
|
printf("DRAM:");
|
||||||
|
@ -265,6 +265,13 @@ config AXP_FLDO3_VOLT
|
|||||||
Set the voltage (mV) to program the axp pmic fldo3 at, set to 0 to
|
Set the voltage (mV) to program the axp pmic fldo3 at, set to 0 to
|
||||||
disable fldo3.
|
disable fldo3.
|
||||||
|
|
||||||
|
config AXP_SW_ON
|
||||||
|
bool "axp pmic sw on"
|
||||||
|
depends on AXP818_POWER
|
||||||
|
default n
|
||||||
|
---help---
|
||||||
|
Enable to turn on axp pmic sw.
|
||||||
|
|
||||||
config SY8106A_VOUT1_VOLT
|
config SY8106A_VOUT1_VOLT
|
||||||
int "SY8106A pmic VOUT1 voltage"
|
int "SY8106A pmic VOUT1 voltage"
|
||||||
depends on SY8106A_POWER
|
depends on SY8106A_POWER
|
||||||
|
@ -225,6 +225,16 @@ int axp_set_fldo(int fldo_num, unsigned int mvolt)
|
|||||||
AXP818_OUTPUT_CTRL3_FLDO1_EN << (fldo_num - 1));
|
AXP818_OUTPUT_CTRL3_FLDO1_EN << (fldo_num - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int axp_set_sw(bool on)
|
||||||
|
{
|
||||||
|
if (on)
|
||||||
|
return pmic_bus_setbits(AXP818_OUTPUT_CTRL2,
|
||||||
|
AXP818_OUTPUT_CTRL2_SW_EN);
|
||||||
|
|
||||||
|
return pmic_bus_clrbits(AXP818_OUTPUT_CTRL2,
|
||||||
|
AXP818_OUTPUT_CTRL2_SW_EN);
|
||||||
|
}
|
||||||
|
|
||||||
int axp_init(void)
|
int axp_init(void)
|
||||||
{
|
{
|
||||||
u8 axp_chip_id;
|
u8 axp_chip_id;
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#define AXP818_OUTPUT_CTRL2_DLDO2_EN (1 << 4)
|
#define AXP818_OUTPUT_CTRL2_DLDO2_EN (1 << 4)
|
||||||
#define AXP818_OUTPUT_CTRL2_DLDO3_EN (1 << 5)
|
#define AXP818_OUTPUT_CTRL2_DLDO3_EN (1 << 5)
|
||||||
#define AXP818_OUTPUT_CTRL2_DLDO4_EN (1 << 6)
|
#define AXP818_OUTPUT_CTRL2_DLDO4_EN (1 << 6)
|
||||||
|
#define AXP818_OUTPUT_CTRL2_SW_EN (1 << 7)
|
||||||
#define AXP818_OUTPUT_CTRL3 0x13
|
#define AXP818_OUTPUT_CTRL3 0x13
|
||||||
#define AXP818_OUTPUT_CTRL3_FLDO1_EN (1 << 2)
|
#define AXP818_OUTPUT_CTRL3_FLDO1_EN (1 << 2)
|
||||||
#define AXP818_OUTPUT_CTRL3_FLDO2_EN (1 << 3)
|
#define AXP818_OUTPUT_CTRL3_FLDO2_EN (1 << 3)
|
||||||
|
@ -32,6 +32,7 @@ int axp_set_aldo4(unsigned int mvolt);
|
|||||||
int axp_set_dldo(int dldo_num, unsigned int mvolt);
|
int axp_set_dldo(int dldo_num, unsigned int mvolt);
|
||||||
int axp_set_eldo(int eldo_num, unsigned int mvolt);
|
int axp_set_eldo(int eldo_num, unsigned int mvolt);
|
||||||
int axp_set_fldo(int fldo_num, unsigned int mvolt);
|
int axp_set_fldo(int fldo_num, unsigned int mvolt);
|
||||||
|
int axp_set_sw(bool on);
|
||||||
int axp_init(void);
|
int axp_init(void);
|
||||||
int axp_get_sid(unsigned int *sid);
|
int axp_get_sid(unsigned int *sid);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user