Wiki

This version is outdated by a newer approved version.DiffThis version (29 Aug 2011 21:09) was approved by Michael Hennerich.The Previously approved version (29 Aug 2011 13:42) is available.Diff

This is an old revision of the document!


ADP150 Regulator Fixed Voltage Linux Driver

Supported Devices

This driver supports the
ADP122
ADP123
ADP124
ADP125
ADP150
ADP5022

Description

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.

Configuration

Software configurable features

Source Code

Status

Source Mainlined?
git Yes

Files

Example platform device initialization

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.

  • Define device supply name exported by the adp_switch driver.

<source trunk/arch/blackfin/mach-bf537/boards/stamp.c:adp122_consumers{} c linux-kernel>

  • Define regulator init data of this supply.

<source trunk/arch/blackfin/mach-bf537/boards/stamp.c:adp_switch_regulator_data{} c linux-kernel>

  • Add new userspace consumer platform device for this supply.

<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>

Adding Linux driver support

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

Hardware configuration

Driver testing

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

More Information

resources/tools-software/linux-drivers/regulator/adp150.1314644981.txt.gz · Last modified: 29 Aug 2011 21:09 by Michael Hennerich