The fixed regulator voltage driver can be used to control these chips. Please connect the ENable switch pin to any available GPIO port on your CPU. This driver adapts to voltage and current regulator framework in Linux kernel.
Function | File |
---|---|
driver | drivers/regulator/fixed.c |
include | include/linux/regulator/fixed.h |
The default platform info defined in bf537-stamp board file is for ad122. If you want to customize this driver for other switch only regulator, you should revise the platform information accordingly.
<source trunk/arch/blackfin/mach-bf537/boards/stamp.c:adp122_consumers{} c linux-kernel>
<source trunk/arch/blackfin/mach-bf537/boards/stamp.c:adp_switch_regulator_data{} c linux-kernel>
<source trunk/arch/blackfin/mach-bf537/boards/stamp.c:adp122_bulk_data{} c linux-kernel> <source trunk/arch/blackfin/mach-bf537/boards/stamp.c:adp122_userspace_comsumer_data{} c linux-kernel> <source trunk/arch/blackfin/mach-bf537/boards/stamp.c:adp122_userspace_consumer_device{} c linux-kernel>
Enable generic GPIO lib in kernel option.
Device Drivers ---> [*] GPIO Support --->
Select voltage and current regulator framework support and enable adp_switch driver. Don't forget to select userspace regulator consumer driver as a module. adp_switch driver is initialized after userspace consumer driver, if both are built into kernel.
Device Drivers ---> [*] Voltage and Current Regulator Support ---> <*> Fixed voltage regulator support <*> Userspace regulator consumer support
Check regulator driver initialization information at kernel booting.
regulator: core version 0.5 regulator: adp122: 2500 mV
Check if adp122 is probed properly.
root:/> ls sys/class/regulator/ regulator.0 root:/> ls sys/class/regulator/regulator.0/ device name power subsystem uevent microvolts num_users state type root:/> cat sys/class/regulator/regulator.0/name adp122 root:/> cat sys/class/regulator/regulator.0/type voltage root:/> cat sys/class/regulator/regulator.0/microvolts 2500000 root:/> cat sys/class/regulator/regulator.0/state disabled root:/> cat sys/class/regulator/regulator.0/num_users 0
Insert user space consumer driver module and check usability.
root:/> modprobe userspace-consumer root:/> ls sys/devices/platform/reg-userspace-consumer.0/ driver power microamps_requested_adp122 state modalias subsystem name uevent root:/> cat sys/devices/platform/reg-userspace-consumer.0/name adp122 root:/> cat sys/devices/platform/reg-userspace-consumer.0/state disabled root:/> echo enabled > sys/devices/platform/reg-userspace-consumer.0/state root:/> cat sys/devices/platform/reg-userspace-consumer.0/state enabled