regulator: Updates for v3.9
A fairly quiet release for the regulator API, the bulk of the changes
being lots of small cleanups and API updates contributed by Axel Lin
with just a small set of larger changes:
- New driver for LP8755
- DT support for S5M8767, TPS51632, TPS6507x and TPS65090
- Support for writing a "commit changes" bit in the regmap helper
functions.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAABAgAGBQJRI3THAAoJELSic+t+oim9s74P/jrnSyHIE6soY4QjWb2N9Vgd
QjbEYZFPwNMXgcYt7P3srJbHr0L/Jrwweo+AZDw1z9WDT9aPBAIW/r2cIQ4V/bRg
KFvb77JAi/iwKXzjReJpk4lZvwmnb9O6ZLZFnq0FC7Wfu8SDkskzT5FOwkqNjnR2
6NzDGIgXddSxPYUH6gsZYiYw3b9DcW2HguT4C69XSjFssYeOtvHdEAEO+8drylAF
AEqPylzkhWG44KuDOw3CioHrz9nHuWQor4GyeH1pm06YFdHss9uNe3oA5J75Vk5f
6ugNSHcq9kU/3o6TaHARkDJ/DbgjA5aAu/alXBrpEpSSKgEvnFOgEcb43QGWPeuz
R0CK6KSAG4WzLFeVq+ped6470/YiihhUeyIgt5t+ug4g8a6xkw9L6K9NzypOVYD7
7fcUJnuzZz7v0MwVCJmHr7b9ESQac5vuwlGLE2iaNBIcsXI4S1uv6rrJI7mL5JbY
f7YpPHCAytDhAW0myuI55L8bkCUK/EuL1c8ISKehGdfkY72ZFgYZbV5225u4Fuf4
J+s2UICtIacKAtL3VXM1sR7Q5I5QfXvF+F36yrZriZzw3r5mDcxVo8+nymcduxW7
h2qFQ11725qDaPcorI5WbHsL6yoePTJPJN/x8ewxkrqB05lLeTJetm5ncB9ZUTFh
LdgLZROnRreFXXFMWpwZ
=+3b2
-----END PGP SIGNATURE-----
Merge tag 'regulator-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator updates from Mark Brown:
"A fairly quiet release for the regulator API, the bulk of the changes
being lots of small cleanups and API updates contributed by Axel Lin
with just a small set of larger changes:
- New driver for LP8755
- DT support for S5M8767, TPS51632, TPS6507x and TPS65090
- Support for writing a "commit changes" bit in the regmap helper
functions."
* tag 'regulator-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (60 commits)
regulator: Fix memory garbage dev_err printout.
regulator: max77686: Reuse rdev_get_id() function.
regulator: tps51632: Use regulator_[get|set]_voltage_sel_regmap
regulator: as3711: Fix checking if no platform initialization data
regulator: s5m8767: Prevent possible NULL pointer dereference
regulator: s5m8767: Fix dev argument for devm_kzalloc and of_get_regulator_init_data
regulator: core: Optimize _regulator_do_set_voltage if voltage does not change
regulator: max8998: Let regulator core handle the case selector == old_selector
regulator: s5m8767: Use of_get_child_count()
regulator: anatop: improve precision of delay time
regulator: show state for GPIO-controlled regulators
regulator: s5m8767: Fix build in non-DT case
regulator: add device tree support for s5m8767
regulator: palmas: Remove a redundant setting for warm_reset
regulator: mc13xxx: Use of_get_child_count()
regulator: max8997: Use of_get_child_count()
regulator: tps65090: Fix using wrong dev argument for calling of_regulator_match
regulators: anatop: add set_voltage_time_sel interface
regulator: Add missing of_node_put()
regulator: tps6507x: Fix using wrong dev argument for calling of_regulator_match
...
This commit is contained in:
commit
8909ff652d
41 changed files with 1921 additions and 567 deletions
|
|
@ -26,6 +26,7 @@ enum sec_device_type {
|
|||
/**
|
||||
* struct sec_pmic_dev - s5m87xx master device for sub-drivers
|
||||
* @dev: master device of the chip (can be used to access platform data)
|
||||
* @pdata: pointer to private data used to pass platform data to child
|
||||
* @i2c: i2c client private data for regulator
|
||||
* @rtc: i2c client private data for rtc
|
||||
* @iolock: mutex for serializing io access
|
||||
|
|
@ -39,6 +40,7 @@ enum sec_device_type {
|
|||
*/
|
||||
struct sec_pmic_dev {
|
||||
struct device *dev;
|
||||
struct sec_platform_data *pdata;
|
||||
struct regmap *regmap;
|
||||
struct i2c_client *i2c;
|
||||
struct i2c_client *rtc;
|
||||
|
|
@ -82,11 +84,11 @@ struct sec_platform_data {
|
|||
|
||||
int buck_gpios[3];
|
||||
int buck_ds[3];
|
||||
int buck2_voltage[8];
|
||||
unsigned int buck2_voltage[8];
|
||||
bool buck2_gpiodvs;
|
||||
int buck3_voltage[8];
|
||||
unsigned int buck3_voltage[8];
|
||||
bool buck3_gpiodvs;
|
||||
int buck4_voltage[8];
|
||||
unsigned int buck4_voltage[8];
|
||||
bool buck4_gpiodvs;
|
||||
|
||||
int buck_set1;
|
||||
|
|
@ -127,6 +129,7 @@ struct sec_platform_data {
|
|||
struct sec_regulator_data {
|
||||
int id;
|
||||
struct regulator_init_data *initdata;
|
||||
struct device_node *reg_node;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -136,7 +139,7 @@ struct sec_regulator_data {
|
|||
*/
|
||||
struct sec_opmode_data {
|
||||
int id;
|
||||
int mode;
|
||||
unsigned int mode;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
71
include/linux/platform_data/lp8755.h
Normal file
71
include/linux/platform_data/lp8755.h
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
* LP8755 High Performance Power Management Unit Driver:System Interface Driver
|
||||
*
|
||||
* Copyright (C) 2012 Texas Instruments
|
||||
*
|
||||
* Author: Daniel(Geon Si) Jeong <daniel.jeong@ti.com>
|
||||
* G.Shark Jeong <gshark.jeong@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _LP8755_H
|
||||
#define _LP8755_H
|
||||
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#define LP8755_NAME "lp8755-regulator"
|
||||
/*
|
||||
*PWR FAULT : power fault detected
|
||||
*OCP : over current protect activated
|
||||
*OVP : over voltage protect activated
|
||||
*TEMP_WARN : thermal warning
|
||||
*TEMP_SHDN : thermal shutdonw detected
|
||||
*I_LOAD : current measured
|
||||
*/
|
||||
#define LP8755_EVENT_PWR_FAULT REGULATOR_EVENT_FAIL
|
||||
#define LP8755_EVENT_OCP REGULATOR_EVENT_OVER_CURRENT
|
||||
#define LP8755_EVENT_OVP 0x10000
|
||||
#define LP8755_EVENT_TEMP_WARN 0x2000
|
||||
#define LP8755_EVENT_TEMP_SHDN REGULATOR_EVENT_OVER_TEMP
|
||||
#define LP8755_EVENT_I_LOAD 0x40000
|
||||
|
||||
enum lp8755_bucks {
|
||||
LP8755_BUCK0 = 0,
|
||||
LP8755_BUCK1,
|
||||
LP8755_BUCK2,
|
||||
LP8755_BUCK3,
|
||||
LP8755_BUCK4,
|
||||
LP8755_BUCK5,
|
||||
LP8755_BUCK_MAX,
|
||||
};
|
||||
|
||||
/**
|
||||
* multiphase configuration options
|
||||
*/
|
||||
enum lp8755_mphase_config {
|
||||
MPHASE_CONF0,
|
||||
MPHASE_CONF1,
|
||||
MPHASE_CONF2,
|
||||
MPHASE_CONF3,
|
||||
MPHASE_CONF4,
|
||||
MPHASE_CONF5,
|
||||
MPHASE_CONF6,
|
||||
MPHASE_CONF7,
|
||||
MPHASE_CONF8,
|
||||
MPHASE_CONF_MAX
|
||||
};
|
||||
|
||||
/**
|
||||
* struct lp8755_platform_data
|
||||
* @mphase_type : Multiphase Switcher Configurations.
|
||||
* @buck_data : buck0~6 init voltage in uV
|
||||
*/
|
||||
struct lp8755_platform_data {
|
||||
int mphase;
|
||||
struct regulator_init_data *buck_data[LP8755_BUCK_MAX];
|
||||
};
|
||||
#endif
|
||||
|
|
@ -193,6 +193,10 @@ enum regulator_type {
|
|||
*
|
||||
* @vsel_reg: Register for selector when using regulator_regmap_X_voltage_
|
||||
* @vsel_mask: Mask for register bitfield used for selector
|
||||
* @apply_reg: Register for initiate voltage change on the output when
|
||||
* using regulator_set_voltage_sel_regmap
|
||||
* @apply_bit: Register bitfield used for initiate voltage change on the
|
||||
* output when using regulator_set_voltage_sel_regmap
|
||||
* @enable_reg: Register for control when using regmap enable/disable ops
|
||||
* @enable_mask: Mask for control when using regmap enable/disable ops
|
||||
*
|
||||
|
|
@ -218,6 +222,8 @@ struct regulator_desc {
|
|||
|
||||
unsigned int vsel_reg;
|
||||
unsigned int vsel_mask;
|
||||
unsigned int apply_reg;
|
||||
unsigned int apply_bit;
|
||||
unsigned int enable_reg;
|
||||
unsigned int enable_mask;
|
||||
unsigned int bypass_reg;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue