config AXP221_POWER
	boolean "axp221 / axp223 pmic support"
	depends on MACH_SUN6I || MACH_SUN8I
	default y
	---help---
	Say y here to enable support for the axp221 / axp223 pmic found on most
	sun6i (A31) / sun8i (A23) boards.

config AXP221_DCDC1_VOLT
	int "axp221 dcdc1 voltage"
	depends on AXP221_POWER
	default 3000
	---help---
	Set the voltage (mV) to program the axp221 dcdc1 at, set to 0 to
	disable dcdc1. This is typically used as generic 3.3V IO voltage for
	things like GPIO-s, sdcard interfaces, etc. On most boards this is
	undervolted to 3.0V to safe battery.

config AXP221_DLDO1_VOLT
	int "axp221 dldo1 voltage"
	depends on AXP221_POWER
	default 0
	---help---
	Set the voltage (mV) to program the axp221 dldo1 at, set to 0 to
	disable dldo1. On sun6i (A31) boards with ethernet this is often used
	to power the ethernet phy. On sun8i (A23) boards this is often used to
	power the wifi.

config AXP221_DLDO4_VOLT
	int "axp221 dldo4 voltage"
	depends on AXP221_POWER
	default 0
	---help---
	Set the voltage (mV) to program the axp221 dldo4 at, set to 0 to
	disable dldo4.

config AXP221_ALDO1_VOLT
	int "axp221 aldo1 voltage"
	depends on AXP221_POWER
	default 0
	---help---
	Set the voltage (mV) to program the axp221 aldo1 at, set to 0 to
	disable aldo1. On sun6i (A31) boards which have a wifi module this is
	often used to power the wifi module.

config AXP221_ALDO2_VOLT
	int "axp221 aldo2 voltage"
	depends on AXP221_POWER
	default 0 if MACH_SUN6I
	default 2500 if MACH_SUN8I
	---help---
	Set the voltage (mV) to program the axp221 aldo2 at, set to 0 to
	disable aldo2. On sun6i (A31) boards this is typically unused and
	should be disabled, if it is used for LPDDR2 it should be set to 1.8V.
	On sun8i (A23) this is typically connected to VDD-DLL and must be set
	to 2.5V.

config AXP221_ALDO3_VOLT
	int "axp221 aldo3 voltage"
	depends on AXP221_POWER
	default 3000
	---help---
	Set the voltage (mV) to program the axp221 aldo3 at, set to 0 to
	disable aldo3. This is typically connected to VCC-PLL and AVCC and
	must be set to 3V.

config AXP221_ELDO3_VOLT
	int "axp221 eldo3 voltage"
	depends on AXP221_POWER
	default 0
	---help---
	Set the voltage (mV) to program the axp221 eldo3 at, set to 0 to
	disable eldo3. On some A31(s) tablets it might be used to supply
	1.2V for the SSD2828 chip (converter of parallel LCD interface
	into MIPI DSI).
