This version (06 Feb 2014 11:40) was approved by larsc.The Previously approved version (16 Nov 2012 13:38) is available.Diff

ADP150 Regulator Fixed Voltage Linux Driver

Supported Devices

Evaluation Boards

Reference Circuits

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.

file: arch/blackfin/mach-bf537/boards/stamp.c

scm failed with exit code 1:
file does not exist in git
  • Define regulator init data of this supply.

file: arch/blackfin/mach-bf537/boards/stamp.c

scm failed with exit code 1:
file does not exist in git
  • Add new userspace consumer platform device for this supply.

file: arch/blackfin/mach-bf537/boards/stamp.c

scm failed with exit code 1:
file does not exist in git

file: arch/blackfin/mach-bf537/boards/stamp.c

scm failed with exit code 1:
file does not exist in git

file: arch/blackfin/mach-bf537/boards/stamp.c

scm failed with exit code 1:
file does not exist in git

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.txt · Last modified: 06 Feb 2014 11:36 by larsc