Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
1f9cc5f7
Commit
1f9cc5f7
authored
Dec 10, 2012
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'regulator/topic/hotplug' into regulator-next
parents
207f3089
8dc995f5
Changes
72
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
72 changed files
with
2073 additions
and
401 deletions
+2073
-401
Documentation/devicetree/bindings/regulator/max8925-regulator.txt
...ation/devicetree/bindings/regulator/max8925-regulator.txt
+40
-0
Documentation/devicetree/bindings/regulator/vexpress.txt
Documentation/devicetree/bindings/regulator/vexpress.txt
+32
-0
drivers/mfd/Kconfig
drivers/mfd/Kconfig
+0
-1
drivers/mfd/tps6586x.c
drivers/mfd/tps6586x.c
+8
-68
drivers/regulator/88pm8607.c
drivers/regulator/88pm8607.c
+3
-3
drivers/regulator/Kconfig
drivers/regulator/Kconfig
+27
-0
drivers/regulator/Makefile
drivers/regulator/Makefile
+3
-0
drivers/regulator/aat2870-regulator.c
drivers/regulator/aat2870-regulator.c
+2
-2
drivers/regulator/ab3100.c
drivers/regulator/ab3100.c
+3
-3
drivers/regulator/ab8500.c
drivers/regulator/ab8500.c
+6
-6
drivers/regulator/ad5398.c
drivers/regulator/ad5398.c
+3
-3
drivers/regulator/anatop-regulator.c
drivers/regulator/anatop-regulator.c
+3
-3
drivers/regulator/arizona-ldo1.c
drivers/regulator/arizona-ldo1.c
+3
-3
drivers/regulator/arizona-micsupp.c
drivers/regulator/arizona-micsupp.c
+3
-3
drivers/regulator/core.c
drivers/regulator/core.c
+5
-0
drivers/regulator/da903x.c
drivers/regulator/da903x.c
+3
-3
drivers/regulator/da9052-regulator.c
drivers/regulator/da9052-regulator.c
+3
-3
drivers/regulator/db8500-prcmu.c
drivers/regulator/db8500-prcmu.c
+3
-3
drivers/regulator/dbx500-prcmu.c
drivers/regulator/dbx500-prcmu.c
+2
-2
drivers/regulator/dummy.c
drivers/regulator/dummy.c
+1
-1
drivers/regulator/fan53555.c
drivers/regulator/fan53555.c
+3
-3
drivers/regulator/fixed.c
drivers/regulator/fixed.c
+3
-3
drivers/regulator/gpio-regulator.c
drivers/regulator/gpio-regulator.c
+3
-3
drivers/regulator/isl6271a-regulator.c
drivers/regulator/isl6271a-regulator.c
+3
-3
drivers/regulator/lp3971.c
drivers/regulator/lp3971.c
+4
-4
drivers/regulator/lp3972.c
drivers/regulator/lp3972.c
+4
-4
drivers/regulator/lp872x.c
drivers/regulator/lp872x.c
+2
-2
drivers/regulator/lp8788-buck.c
drivers/regulator/lp8788-buck.c
+3
-3
drivers/regulator/lp8788-ldo.c
drivers/regulator/lp8788-ldo.c
+6
-6
drivers/regulator/max1586.c
drivers/regulator/max1586.c
+3
-3
drivers/regulator/max77686.c
drivers/regulator/max77686.c
+3
-3
drivers/regulator/max8649.c
drivers/regulator/max8649.c
+3
-3
drivers/regulator/max8660.c
drivers/regulator/max8660.c
+3
-3
drivers/regulator/max8907-regulator.c
drivers/regulator/max8907-regulator.c
+3
-3
drivers/regulator/max8925-regulator.c
drivers/regulator/max8925-regulator.c
+72
-6
drivers/regulator/max8952.c
drivers/regulator/max8952.c
+3
-3
drivers/regulator/max8997.c
drivers/regulator/max8997.c
+3
-3
drivers/regulator/max8998.c
drivers/regulator/max8998.c
+3
-3
drivers/regulator/mc13783-regulator.c
drivers/regulator/mc13783-regulator.c
+3
-3
drivers/regulator/mc13892-regulator.c
drivers/regulator/mc13892-regulator.c
+3
-3
drivers/regulator/mc13xxx-regulator-core.c
drivers/regulator/mc13xxx-regulator-core.c
+2
-2
drivers/regulator/palmas-regulator.c
drivers/regulator/palmas-regulator.c
+4
-4
drivers/regulator/pcap-regulator.c
drivers/regulator/pcap-regulator.c
+3
-3
drivers/regulator/pcf50633-regulator.c
drivers/regulator/pcf50633-regulator.c
+3
-3
drivers/regulator/rc5t583-regulator.c
drivers/regulator/rc5t583-regulator.c
+3
-3
drivers/regulator/s2mps11.c
drivers/regulator/s2mps11.c
+3
-3
drivers/regulator/s5m8767.c
drivers/regulator/s5m8767.c
+3
-3
drivers/regulator/tps51632-regulator.c
drivers/regulator/tps51632-regulator.c
+332
-0
drivers/regulator/tps6105x-regulator.c
drivers/regulator/tps6105x-regulator.c
+3
-3
drivers/regulator/tps62360-regulator.c
drivers/regulator/tps62360-regulator.c
+4
-4
drivers/regulator/tps65023-regulator.c
drivers/regulator/tps65023-regulator.c
+3
-3
drivers/regulator/tps6507x-regulator.c
drivers/regulator/tps6507x-regulator.c
+3
-3
drivers/regulator/tps65090-regulator.c
drivers/regulator/tps65090-regulator.c
+187
-66
drivers/regulator/tps65217-regulator.c
drivers/regulator/tps65217-regulator.c
+3
-3
drivers/regulator/tps6524x-regulator.c
drivers/regulator/tps6524x-regulator.c
+2
-2
drivers/regulator/tps6586x-regulator.c
drivers/regulator/tps6586x-regulator.c
+158
-29
drivers/regulator/tps65910-regulator.c
drivers/regulator/tps65910-regulator.c
+3
-3
drivers/regulator/tps65912-regulator.c
drivers/regulator/tps65912-regulator.c
+3
-3
drivers/regulator/tps80031-regulator.c
drivers/regulator/tps80031-regulator.c
+793
-0
drivers/regulator/twl-regulator.c
drivers/regulator/twl-regulator.c
+3
-3
drivers/regulator/vexpress.c
drivers/regulator/vexpress.c
+147
-0
drivers/regulator/virtual.c
drivers/regulator/virtual.c
+3
-3
drivers/regulator/wm831x-dcdc.c
drivers/regulator/wm831x-dcdc.c
+13
-13
drivers/regulator/wm831x-isink.c
drivers/regulator/wm831x-isink.c
+3
-3
drivers/regulator/wm831x-ldo.c
drivers/regulator/wm831x-ldo.c
+9
-9
drivers/regulator/wm8400-regulator.c
drivers/regulator/wm8400-regulator.c
+3
-3
drivers/regulator/wm8994-regulator.c
drivers/regulator/wm8994-regulator.c
+3
-3
include/linux/mfd/tps65090.h
include/linux/mfd/tps65090.h
+35
-0
include/linux/mfd/tps6586x.h
include/linux/mfd/tps6586x.h
+3
-0
include/linux/regulator/driver.h
include/linux/regulator/driver.h
+3
-0
include/linux/regulator/tps51632-regulator.h
include/linux/regulator/tps51632-regulator.h
+47
-0
include/linux/regulator/tps65090-regulator.h
include/linux/regulator/tps65090-regulator.h
+0
-50
No files found.
Documentation/devicetree/bindings/regulator/max8925-regulator.txt
0 → 100644
View file @
1f9cc5f7
Max8925 Voltage regulators
Required nodes:
-nodes:
- SDV1 for SDV SDV1
- SDV2 for SDV SDV2
- SDV3 for SDV SDV3
- LDO1 for LDO LDO1
- LDO2 for LDO LDO2
- LDO3 for LDO LDO3
- LDO4 for LDO LDO4
- LDO5 for LDO LDO5
- LDO6 for LDO LDO6
- LDO7 for LDO LDO7
- LDO8 for LDO LDO8
- LDO9 for LDO LDO9
- LDO10 for LDO LDO10
- LDO11 for LDO LDO11
- LDO12 for LDO LDO12
- LDO13 for LDO LDO13
- LDO14 for LDO LDO14
- LDO15 for LDO LDO15
- LDO16 for LDO LDO16
- LDO17 for LDO LDO17
- LDO18 for LDO LDO18
- LDO19 for LDO LDO19
- LDO20 for LDO LDO20
Optional properties:
- Any optional property defined in bindings/regulator/regulator.txt
Example:
SDV1 {
regulator-min-microvolt = <637500>;
regulator-max-microvolt = <1425000>;
regulator-boot-on;
regulator-always-on;
};
Documentation/devicetree/bindings/regulator/vexpress.txt
0 → 100644
View file @
1f9cc5f7
Versatile Express voltage regulators
------------------------------------
Requires node properties:
- "compatible" value: "arm,vexpress-volt"
- "arm,vexpress-sysreg,func" when controlled via vexpress-sysreg
(see Documentation/devicetree/bindings/arm/vexpress-sysreg.txt
for more details)
Required regulator properties:
- "regulator-name"
- "regulator-always-on"
Optional regulator properties:
- "regulator-min-microvolt"
- "regulator-max-microvolt"
See Documentation/devicetree/bindings/regulator/regulator.txt
for more details about the regulator properties.
When no "regulator-[min|max]-microvolt" properties are defined,
the device is treated as fixed (or rather "read-only") regulator.
Example:
volt@0 {
compatible = "arm,vexpress-volt";
arm,vexpress-sysreg,func = <2 0>;
regulator-name = "Cores";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1050000>;
regulator-always-on;
};
drivers/mfd/Kconfig
View file @
1f9cc5f7
...
...
@@ -201,7 +201,6 @@ config MFD_TPS6586X
depends on I2C=y && GENERIC_HARDIRQS
select MFD_CORE
select REGMAP_I2C
depends on REGULATOR
help
If you say yes here you get support for the TPS6586X series of
Power Management chips.
...
...
drivers/mfd/tps6586x.c
View file @
1f9cc5f7
...
...
@@ -24,8 +24,6 @@
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/regulator/of_regulator.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/core.h>
#include <linux/mfd/tps6586x.h>
...
...
@@ -98,6 +96,9 @@ static struct mfd_cell tps6586x_cell[] = {
{
.
name
=
"tps6586x-gpio"
,
},
{
.
name
=
"tps6586x-pmic"
,
},
{
.
name
=
"tps6586x-rtc"
,
},
...
...
@@ -350,80 +351,19 @@ static int __devinit tps6586x_add_subdevs(struct tps6586x *tps6586x,
}
#ifdef CONFIG_OF
static
struct
of_regulator_match
tps6586x_matches
[]
=
{
{
.
name
=
"sys"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_SYS
},
{
.
name
=
"sm0"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_SM_0
},
{
.
name
=
"sm1"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_SM_1
},
{
.
name
=
"sm2"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_SM_2
},
{
.
name
=
"ldo0"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_0
},
{
.
name
=
"ldo1"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_1
},
{
.
name
=
"ldo2"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_2
},
{
.
name
=
"ldo3"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_3
},
{
.
name
=
"ldo4"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_4
},
{
.
name
=
"ldo5"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_5
},
{
.
name
=
"ldo6"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_6
},
{
.
name
=
"ldo7"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_7
},
{
.
name
=
"ldo8"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_8
},
{
.
name
=
"ldo9"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_9
},
{
.
name
=
"ldo_rtc"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_RTC
},
};
static
struct
tps6586x_platform_data
*
tps6586x_parse_dt
(
struct
i2c_client
*
client
)
{
const
unsigned
int
num
=
ARRAY_SIZE
(
tps6586x_matches
);
struct
device_node
*
np
=
client
->
dev
.
of_node
;
struct
tps6586x_platform_data
*
pdata
;
struct
tps6586x_subdev_info
*
devs
;
struct
device_node
*
regs
;
const
char
*
sys_rail_name
=
NULL
;
unsigned
int
count
;
unsigned
int
i
,
j
;
int
err
;
regs
=
of_find_node_by_name
(
np
,
"regulators"
);
if
(
!
regs
)
return
NULL
;
err
=
of_regulator_match
(
&
client
->
dev
,
regs
,
tps6586x_matches
,
num
);
if
(
err
<
0
)
{
of_node_put
(
regs
);
return
NULL
;
}
of_node_put
(
regs
);
count
=
err
;
devs
=
devm_kzalloc
(
&
client
->
dev
,
count
*
sizeof
(
*
devs
),
GFP_KERNEL
);
if
(
!
devs
)
return
NULL
;
for
(
i
=
0
,
j
=
0
;
i
<
num
&&
j
<
count
;
i
++
)
{
struct
regulator_init_data
*
reg_idata
;
if
(
!
tps6586x_matches
[
i
].
init_data
)
continue
;
reg_idata
=
tps6586x_matches
[
i
].
init_data
;
devs
[
j
].
name
=
"tps6586x-regulator"
;
devs
[
j
].
platform_data
=
tps6586x_matches
[
i
].
init_data
;
devs
[
j
].
id
=
(
int
)
tps6586x_matches
[
i
].
driver_data
;
if
(
devs
[
j
].
id
==
TPS6586X_ID_SYS
)
sys_rail_name
=
reg_idata
->
constraints
.
name
;
if
((
devs
[
j
].
id
==
TPS6586X_ID_LDO_5
)
||
(
devs
[
j
].
id
==
TPS6586X_ID_LDO_RTC
))
reg_idata
->
supply_regulator
=
sys_rail_name
;
devs
[
j
].
of_node
=
tps6586x_matches
[
i
].
of_node
;
j
++
;
}
pdata
=
devm_kzalloc
(
&
client
->
dev
,
sizeof
(
*
pdata
),
GFP_KERNEL
);
if
(
!
pdata
)
if
(
!
pdata
)
{
dev_err
(
&
client
->
dev
,
"Memory allocation failed
\n
"
);
return
NULL
;
}
pdata
->
num_subdevs
=
count
;
pdata
->
subdevs
=
devs
;
pdata
->
num_subdevs
=
0
;
pdata
->
subdevs
=
NULL
;
pdata
->
gpio_base
=
-
1
;
pdata
->
irq_base
=
-
1
;
pdata
->
pm_off
=
of_property_read_bool
(
np
,
"ti,system-power-controller"
);
...
...
drivers/regulator/88pm8607.c
View file @
1f9cc5f7
...
...
@@ -394,7 +394,7 @@ static int pm8607_regulator_dt_init(struct platform_device *pdev,
#define pm8607_regulator_dt_init(x, y, z) (-1)
#endif
static
int
__devinit
pm8607_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
pm8607_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
pm860x_chip
*
chip
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
pm8607_regulator_info
*
info
=
NULL
;
...
...
@@ -454,7 +454,7 @@ static int __devinit pm8607_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
pm8607_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
pm8607_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
pm8607_regulator_info
*
info
=
platform_get_drvdata
(
pdev
);
...
...
@@ -481,7 +481,7 @@ static struct platform_driver pm8607_regulator_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
pm8607_regulator_probe
,
.
remove
=
__devexit_p
(
pm8607_regulator_remove
)
,
.
remove
=
pm8607_regulator_remove
,
.
id_table
=
pm8607_regulator_driver_ids
,
};
...
...
drivers/regulator/Kconfig
View file @
1f9cc5f7
...
...
@@ -345,6 +345,17 @@ config REGULATOR_PALMAS
on the muxing. This is handled automatically in the driver by
reading the mux info from OTP.
config REGULATOR_TPS51632
tristate "TI TPS51632 Power Regulator"
depends on I2C
select REGMAP_I2C
help
This driver supports TPS51632 voltage regulator chip.
The TPS51632 is 3-2-1 Phase D-Cap+ Step Down Driverless Controller
with Serial VID control and DVFS.
The voltage output can be configure through I2C interface or PWM
interface.
config REGULATOR_TPS6105X
tristate "TI TPS6105X Power regulators"
depends on TPS6105X
...
...
@@ -425,6 +436,15 @@ config REGULATOR_TPS65912
help
This driver supports TPS65912 voltage regulator chip.
config REGULATOR_TPS80031
tristate "TI TPS80031/TPS80032 power regualtor driver"
depends on MFD_TPS80031
help
TPS80031/ TPS80032 Fully Integrated Power Management with Power
Path and Battery Charger. It has 5 configurable step-down
converters, 11 general purpose LDOs, VBUS generator and digital
output to control regulators.
config REGULATOR_TWL4030
bool "TI TWL4030/TWL5030/TWL6030/TPS659x0 PMIC"
depends on TWL4030_CORE
...
...
@@ -432,6 +452,13 @@ config REGULATOR_TWL4030
This driver supports the voltage regulators provided by
this family of companion chips.
config REGULATOR_VEXPRESS
tristate "Versatile Express regulators"
depends on VEXPRESS_CONFIG
help
This driver provides support for voltage regulators available
on the ARM Ltd's Versatile Express platform.
config REGULATOR_WM831X
tristate "Wolfson Microelectronics WM831x PMIC regulators"
depends on MFD_WM831X
...
...
drivers/regulator/Makefile
View file @
1f9cc5f7
...
...
@@ -43,6 +43,7 @@ obj-$(CONFIG_REGULATOR_MC13783) += mc13783-regulator.o
obj-$(CONFIG_REGULATOR_MC13892)
+=
mc13892-regulator.o
obj-$(CONFIG_REGULATOR_MC13XXX_CORE)
+=
mc13xxx-regulator-core.o
obj-$(CONFIG_REGULATOR_PALMAS)
+=
palmas-regulator.o
obj-$(CONFIG_REGULATOR_TPS51632)
+=
tps51632-regulator.o
obj-$(CONFIG_REGULATOR_PCAP)
+=
pcap-regulator.o
obj-$(CONFIG_REGULATOR_PCF50633)
+=
pcf50633-regulator.o
obj-$(CONFIG_REGULATOR_RC5T583)
+=
rc5t583-regulator.o
...
...
@@ -58,7 +59,9 @@ obj-$(CONFIG_REGULATOR_TPS6524X) += tps6524x-regulator.o
obj-$(CONFIG_REGULATOR_TPS6586X)
+=
tps6586x-regulator.o
obj-$(CONFIG_REGULATOR_TPS65910)
+=
tps65910-regulator.o
obj-$(CONFIG_REGULATOR_TPS65912)
+=
tps65912-regulator.o
obj-$(CONFIG_REGULATOR_TPS80031)
+=
tps80031-regulator.o
obj-$(CONFIG_REGULATOR_TWL4030)
+=
twl-regulator.o
obj-$(CONFIG_REGULATOR_VEXPRESS)
+=
vexpress.o
obj-$(CONFIG_REGULATOR_WM831X)
+=
wm831x-dcdc.o
obj-$(CONFIG_REGULATOR_WM831X)
+=
wm831x-isink.o
obj-$(CONFIG_REGULATOR_WM831X)
+=
wm831x-ldo.o
...
...
drivers/regulator/aat2870-regulator.c
View file @
1f9cc5f7
...
...
@@ -187,7 +187,7 @@ static int aat2870_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
aat2870_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
aat2870_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
...
...
@@ -201,7 +201,7 @@ static struct platform_driver aat2870_regulator_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
aat2870_regulator_probe
,
.
remove
=
__devexit_p
(
aat2870_regulator_remove
)
,
.
remove
=
aat2870_regulator_remove
,
};
static
int
__init
aat2870_regulator_init
(
void
)
...
...
drivers/regulator/ab3100.c
View file @
1f9cc5f7
...
...
@@ -494,7 +494,7 @@ ab3100_regulator_desc[AB3100_NUM_REGULATORS] = {
* for all the different regulators.
*/
static
int
__devinit
ab3100_regulators_probe
(
struct
platform_device
*
pdev
)
static
int
ab3100_regulators_probe
(
struct
platform_device
*
pdev
)
{
struct
ab3100_platform_data
*
plfdata
=
pdev
->
dev
.
platform_data
;
struct
regulator_config
config
=
{
};
...
...
@@ -571,7 +571,7 @@ static int __devinit ab3100_regulators_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
ab3100_regulators_remove
(
struct
platform_device
*
pdev
)
static
int
ab3100_regulators_remove
(
struct
platform_device
*
pdev
)
{
int
i
;
...
...
@@ -589,7 +589,7 @@ static struct platform_driver ab3100_regulators_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
ab3100_regulators_probe
,
.
remove
=
__devexit_p
(
ab3100_regulators_remove
)
,
.
remove
=
ab3100_regulators_remove
,
};
static
__init
int
ab3100_regulators_init
(
void
)
...
...
drivers/regulator/ab8500.c
View file @
1f9cc5f7
...
...
@@ -641,7 +641,7 @@ static struct ab8500_reg_init ab8500_reg_init[] = {
REG_INIT
(
AB8500_REGUCTRLDISCH2
,
0x04
,
0x44
,
0x16
),
};
static
__devinit
int
static
int
ab8500_regulator_init_registers
(
struct
platform_device
*
pdev
,
int
id
,
int
value
)
{
int
err
;
...
...
@@ -676,7 +676,7 @@ ab8500_regulator_init_registers(struct platform_device *pdev, int id, int value)
return
0
;
}
static
__devinit
int
ab8500_regulator_register
(
struct
platform_device
*
pdev
,
static
int
ab8500_regulator_register
(
struct
platform_device
*
pdev
,
struct
regulator_init_data
*
init_data
,
int
id
,
struct
device_node
*
np
)
...
...
@@ -735,7 +735,7 @@ static struct of_regulator_match ab8500_regulator_matches[] = {
{
.
name
=
"ab8500_ldo_ana"
,
.
driver_data
=
(
void
*
)
AB8500_LDO_ANA
,
},
};
static
__devinit
int
static
int
ab8500_regulator_of_probe
(
struct
platform_device
*
pdev
,
struct
device_node
*
np
)
{
int
err
,
i
;
...
...
@@ -751,7 +751,7 @@ ab8500_regulator_of_probe(struct platform_device *pdev, struct device_node *np)
return
0
;
}
static
__devinit
int
ab8500_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
ab8500_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
ab8500
*
ab8500
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
ab8500_platform_data
*
pdata
;
...
...
@@ -817,7 +817,7 @@ static __devinit int ab8500_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
__devexit
int
ab8500_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
ab8500_regulator_remove
(
struct
platform_device
*
pdev
)
{
int
i
;
...
...
@@ -836,7 +836,7 @@ static __devexit int ab8500_regulator_remove(struct platform_device *pdev)
static
struct
platform_driver
ab8500_regulator_driver
=
{
.
probe
=
ab8500_regulator_probe
,
.
remove
=
__devexit_p
(
ab8500_regulator_remove
)
,
.
remove
=
ab8500_regulator_remove
,
.
driver
=
{
.
name
=
"ab8500-regulator"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/ad5398.c
View file @
1f9cc5f7
...
...
@@ -211,7 +211,7 @@ static const struct i2c_device_id ad5398_id[] = {
};
MODULE_DEVICE_TABLE
(
i2c
,
ad5398_id
);
static
int
__devinit
ad5398_probe
(
struct
i2c_client
*
client
,
static
int
ad5398_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
id
)
{
struct
regulator_init_data
*
init_data
=
client
->
dev
.
platform_data
;
...
...
@@ -256,7 +256,7 @@ static int __devinit ad5398_probe(struct i2c_client *client,
return
ret
;
}
static
int
__devexit
ad5398_remove
(
struct
i2c_client
*
client
)
static
int
ad5398_remove
(
struct
i2c_client
*
client
)
{
struct
ad5398_chip_info
*
chip
=
i2c_get_clientdata
(
client
);
...
...
@@ -266,7 +266,7 @@ static int __devexit ad5398_remove(struct i2c_client *client)
static
struct
i2c_driver
ad5398_driver
=
{
.
probe
=
ad5398_probe
,
.
remove
=
__devexit_p
(
ad5398_remove
)
,
.
remove
=
ad5398_remove
,
.
driver
=
{
.
name
=
"ad5398"
,
},
...
...
drivers/regulator/anatop-regulator.c
View file @
1f9cc5f7
...
...
@@ -87,7 +87,7 @@ static struct regulator_ops anatop_rops = {
.
map_voltage
=
regulator_map_voltage_linear
,
};
static
int
__devinit
anatop_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
anatop_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
device
*
dev
=
&
pdev
->
dev
;
struct
device_node
*
np
=
dev
->
of_node
;
...
...
@@ -186,7 +186,7 @@ static int __devinit anatop_regulator_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
anatop_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
anatop_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
struct
anatop_regulator
*
sreg
=
rdev_get_drvdata
(
rdev
);
...
...
@@ -210,7 +210,7 @@ static struct platform_driver anatop_regulator_driver = {
.
of_match_table
=
of_anatop_regulator_match_tbl
,
},
.
probe
=
anatop_regulator_probe
,
.
remove
=
__devexit_p
(
anatop_regulator_remove
)
,
.
remove
=
anatop_regulator_remove
,
};
static
int
__init
anatop_regulator_init
(
void
)
...
...
drivers/regulator/arizona-ldo1.c
View file @
1f9cc5f7
...
...
@@ -180,7 +180,7 @@ static const struct regulator_init_data arizona_ldo1_default = {
.
num_consumer_supplies
=
1
,
};
static
__devinit
int
arizona_ldo1_probe
(
struct
platform_device
*
pdev
)
static
int
arizona_ldo1_probe
(
struct
platform_device
*
pdev
)
{
struct
arizona
*
arizona
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
const
struct
regulator_desc
*
desc
;
...
...
@@ -239,7 +239,7 @@ static __devinit int arizona_ldo1_probe(struct platform_device *pdev)
return
0
;
}
static
__devexit
int
arizona_ldo1_remove
(
struct
platform_device
*
pdev
)
static
int
arizona_ldo1_remove
(
struct
platform_device
*
pdev
)
{
struct
arizona_ldo1
*
ldo1
=
platform_get_drvdata
(
pdev
);
...
...
@@ -250,7 +250,7 @@ static __devexit int arizona_ldo1_remove(struct platform_device *pdev)
static
struct
platform_driver
arizona_ldo1_driver
=
{
.
probe
=
arizona_ldo1_probe
,
.
remove
=
__devexit_p
(
arizona_ldo1_remove
)
,
.
remove
=
arizona_ldo1_remove
,
.
driver
=
{
.
name
=
"arizona-ldo1"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/arizona-micsupp.c
View file @
1f9cc5f7
...
...
@@ -117,7 +117,7 @@ static const struct regulator_init_data arizona_micsupp_default = {
.
num_consumer_supplies
=
1
,
};
static
__devinit
int
arizona_micsupp_probe
(
struct
platform_device
*
pdev
)
static
int
arizona_micsupp_probe
(
struct
platform_device
*
pdev
)
{
struct
arizona
*
arizona
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
regulator_config
config
=
{
};
...
...
@@ -168,7 +168,7 @@ static __devinit int arizona_micsupp_probe(struct platform_device *pdev)
return
0
;
}
static
__devexit
int
arizona_micsupp_remove
(
struct
platform_device
*
pdev
)
static
int
arizona_micsupp_remove
(
struct
platform_device
*
pdev
)
{
struct
arizona_micsupp
*
micsupp
=
platform_get_drvdata
(
pdev
);
...
...
@@ -179,7 +179,7 @@ static __devexit int arizona_micsupp_remove(struct platform_device *pdev)
static
struct
platform_driver
arizona_micsupp_driver
=
{
.
probe
=
arizona_micsupp_probe
,
.
remove
=
__devexit_p
(
arizona_micsupp_remove
)
,
.
remove
=
arizona_micsupp_remove
,
.
driver
=
{
.
name
=
"arizona-micsupp"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/core.c
View file @
1f9cc5f7
...
...
@@ -2007,6 +2007,11 @@ int regulator_is_supported_voltage(struct regulator *regulator,
return
ret
;
}
/* Any voltage within constrains range is fine? */
if
(
rdev
->
desc
->
continuous_voltage_range
)
return
min_uV
>=
rdev
->
constraints
->
min_uV
&&
max_uV
<=
rdev
->
constraints
->
max_uV
;
ret
=
regulator_count_voltages
(
regulator
);
if
(
ret
<
0
)
return
ret
;
...
...
drivers/regulator/da903x.c
View file @
1f9cc5f7
...
...
@@ -460,7 +460,7 @@ static inline struct da903x_regulator_info *find_regulator_info(int id)
return
NULL
;
}
static
int
__devinit
da903x_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
da903x_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
da903x_regulator_info
*
ri
=
NULL
;
struct
regulator_dev
*
rdev
;
...
...
@@ -499,7 +499,7 @@ static int __devinit da903x_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
da903x_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
da903x_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
...
...
@@ -513,7 +513,7 @@ static struct platform_driver da903x_regulator_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
da903x_regulator_probe
,
.
remove
=
__devexit_p
(
da903x_regulator_remove
)
,
.
remove
=
da903x_regulator_remove
,
};
static
int
__init
da903x_regulator_init
(
void
)
...
...
drivers/regulator/da9052-regulator.c
View file @
1f9cc5f7
...
...
@@ -365,7 +365,7 @@ static inline struct da9052_regulator_info *find_regulator_info(u8 chip_id,
return
NULL
;
}
static
int
__devinit
da9052_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
da9052_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
regulator_config
config
=
{
};
struct
da9052_regulator
*
regulator
;
...
...
@@ -430,7 +430,7 @@ static int __devinit da9052_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
da9052_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
da9052_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
da9052_regulator
*
regulator
=
platform_get_drvdata
(
pdev
);
...
...
@@ -440,7 +440,7 @@ static int __devexit da9052_regulator_remove(struct platform_device *pdev)
static
struct
platform_driver
da9052_regulator_driver
=
{
.
probe
=
da9052_regulator_probe
,
.
remove
=
__devexit_p
(
da9052_regulator_remove
)
,
.
remove
=
da9052_regulator_remove
,
.
driver
=
{
.
name
=
"da9052-regulator"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/db8500-prcmu.c
View file @
1f9cc5f7
...
...
@@ -412,7 +412,7 @@ dbx500_regulator_info[DB8500_NUM_REGULATORS] = {
},
};
static
__devinit
int
db8500_regulator_register
(
struct
platform_device
*
pdev
,
static
int
db8500_regulator_register
(
struct
platform_device
*
pdev
,
struct
regulator_init_data
*
init_data
,
int
id
,
struct
device_node
*
np
)
...
...
@@ -474,7 +474,7 @@ static struct of_regulator_match db8500_regulator_matches[] = {
{
.
name
=
"db8500_esram34_ret"
,
.
driver_data
=
(
void
*
)
DB8500_REGULATOR_SWITCH_ESRAM34RET
,
},
};
static
__devinit
int
static
int
db8500_regulator_of_probe
(
struct
platform_device
*
pdev
,
struct
device_node
*
np
)
{
...
...
@@ -491,7 +491,7 @@ db8500_regulator_of_probe(struct platform_device *pdev,
return
0
;
}
static
int
__devinit
db8500_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
db8500_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
regulator_init_data
*
db8500_init_data
=
dev_get_platdata
(
&
pdev
->
dev
);
...
...
drivers/regulator/dbx500-prcmu.c
View file @
1f9cc5f7
...
...
@@ -173,7 +173,7 @@ int __attribute__((weak)) dbx500_regulator_testcase(
return
0
;
}
int
__devinit
int
ux500_regulator_debug_init
(
struct
platform_device
*
pdev
,
struct
dbx500_regulator_info
*
regulator_info
,
int
num_regulators
)
...
...
@@ -230,7 +230,7 @@ ux500_regulator_debug_init(struct platform_device *pdev,
return
-
ENOMEM
;
}
int
__devexit
ux500_regulator_debug_exit
(
void
)
int
ux500_regulator_debug_exit
(
void
)
{
debugfs_remove_recursive
(
rdebug
.
dir
);
kfree
(
rdebug
.
state_after_suspend
);
...
...
drivers/regulator/dummy.c
View file @
1f9cc5f7
...
...
@@ -37,7 +37,7 @@ static struct regulator_desc dummy_desc = {
.
ops
=
&
dummy_ops
,
};
static
int
__devinit
dummy_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
dummy_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
regulator_config
config
=
{
};
int
ret
;
...
...
drivers/regulator/fan53555.c
View file @
1f9cc5f7
...
...
@@ -230,7 +230,7 @@ static struct regmap_config fan53555_regmap_config = {
.
val_bits
=
8
,
};
static
int
__devinit
fan53555_regulator_probe
(
struct
i2c_client
*
client
,
static
int
fan53555_regulator_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
id
)
{
struct
fan53555_device_info
*
di
;
...
...
@@ -293,7 +293,7 @@ static int __devinit fan53555_regulator_probe(struct i2c_client *client,
}
static
int
__devexit
fan53555_regulator_remove
(
struct
i2c_client
*
client
)
static
int
fan53555_regulator_remove
(
struct
i2c_client
*
client
)
{
struct
fan53555_device_info
*
di
=
i2c_get_clientdata
(
client
);
...
...
@@ -311,7 +311,7 @@ static struct i2c_driver fan53555_regulator_driver = {
.
name
=
"fan53555-regulator"
,
},
.
probe
=
fan53555_regulator_probe
,
.
remove
=
__devexit_p
(
fan53555_regulator_remove
)
,
.
remove
=
fan53555_regulator_remove
,
.
id_table
=
fan53555_id
,
};
...
...
drivers/regulator/fixed.c
View file @
1f9cc5f7
...
...
@@ -134,7 +134,7 @@ static struct regulator_ops fixed_voltage_ops = {
.
list_voltage
=
fixed_voltage_list_voltage
,
};
static
int
__devinit
reg_fixed_voltage_probe
(
struct
platform_device
*
pdev
)
static
int
reg_fixed_voltage_probe
(
struct
platform_device
*
pdev
)
{
struct
fixed_voltage_config
*
config
;
struct
fixed_voltage_data
*
drvdata
;
...
...
@@ -234,7 +234,7 @@ static int __devinit reg_fixed_voltage_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
reg_fixed_voltage_remove
(
struct
platform_device
*
pdev
)
static
int
reg_fixed_voltage_remove
(
struct
platform_device
*
pdev
)
{
struct
fixed_voltage_data
*
drvdata
=
platform_get_drvdata
(
pdev
);
...
...
@@ -255,7 +255,7 @@ MODULE_DEVICE_TABLE(of, fixed_of_match);
static
struct
platform_driver
regulator_fixed_voltage_driver
=
{
.
probe
=
reg_fixed_voltage_probe
,
.
remove
=
__devexit_p
(
reg_fixed_voltage_remove
)
,
.
remove
=
reg_fixed_voltage_remove
,
.
driver
=
{
.
name
=
"reg-fixed-voltage"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/gpio-regulator.c
View file @
1f9cc5f7
...
...
@@ -220,7 +220,7 @@ static struct regulator_ops gpio_regulator_current_ops = {
.
set_current_limit
=
gpio_regulator_set_current_limit
,
};
static
int
__devinit
gpio_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
gpio_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
gpio_regulator_config
*
config
=
pdev
->
dev
.
platform_data
;
struct
device_node
*
np
=
pdev
->
dev
.
of_node
;
...
...
@@ -348,7 +348,7 @@ static int __devinit gpio_regulator_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
gpio_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
gpio_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
gpio_regulator_data
*
drvdata
=
platform_get_drvdata
(
pdev
);
...
...
@@ -373,7 +373,7 @@ static const struct of_device_id regulator_gpio_of_match[] __devinitconst = {
static
struct
platform_driver
gpio_regulator_driver
=
{
.
probe
=
gpio_regulator_probe
,
.
remove
=
__devexit_p
(
gpio_regulator_remove
)
,
.
remove
=
gpio_regulator_remove
,
.
driver
=
{
.
name
=
"gpio-regulator"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/isl6271a-regulator.c
View file @
1f9cc5f7
...
...
@@ -106,7 +106,7 @@ static const struct regulator_desc isl_rd[] = {
},
};
static
int
__devinit
isl6271a_probe
(
struct
i2c_client
*
i2c
,
static
int
isl6271a_probe
(
struct
i2c_client
*
i2c
,
const
struct
i2c_device_id
*
id
)
{
struct
regulator_config
config
=
{
};
...
...
@@ -151,7 +151,7 @@ static int __devinit isl6271a_probe(struct i2c_client *i2c,
return
err
;
}
static
int
__devexit
isl6271a_remove
(
struct
i2c_client
*
i2c
)
static
int
isl6271a_remove
(
struct
i2c_client
*
i2c
)
{
struct
isl_pmic
*
pmic
=
i2c_get_clientdata
(
i2c
);
int
i
;
...
...
@@ -174,7 +174,7 @@ static struct i2c_driver isl6271a_i2c_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
isl6271a_probe
,
.
remove
=
__devexit_p
(
isl6271a_remove
)
,
.
remove
=
isl6271a_remove
,
.
id_table
=
isl6271a_id
,
};
...
...
drivers/regulator/lp3971.c
View file @
1f9cc5f7
...
...
@@ -386,7 +386,7 @@ static int lp3971_set_bits(struct lp3971 *lp3971, u8 reg, u16 mask, u16 val)
return
ret
;
}
static
int
__devinit
setup_regulators
(
struct
lp3971
*
lp3971
,
static
int
setup_regulators
(
struct
lp3971
*
lp3971
,
struct
lp3971_platform_data
*
pdata
)
{
int
i
,
err
;
...
...
@@ -429,7 +429,7 @@ static int __devinit setup_regulators(struct lp3971 *lp3971,
return
err
;
}
static
int
__devinit
lp3971_i2c_probe
(
struct
i2c_client
*
i2c
,
static
int
lp3971_i2c_probe
(
struct
i2c_client
*
i2c
,
const
struct
i2c_device_id
*
id
)
{
struct
lp3971
*
lp3971
;
...
...
@@ -472,7 +472,7 @@ static int __devinit lp3971_i2c_probe(struct i2c_client *i2c,
return
ret
;
}
static
int
__devexit
lp3971_i2c_remove
(
struct
i2c_client
*
i2c
)
static
int
lp3971_i2c_remove
(
struct
i2c_client
*
i2c
)
{
struct
lp3971
*
lp3971
=
i2c_get_clientdata
(
i2c
);
int
i
;
...
...
@@ -498,7 +498,7 @@ static struct i2c_driver lp3971_i2c_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
lp3971_i2c_probe
,
.
remove
=
__devexit_p
(
lp3971_i2c_remove
)
,
.
remove
=
lp3971_i2c_remove
,
.
id_table
=
lp3971_i2c_id
,
};
...
...
drivers/regulator/lp3972.c
View file @
1f9cc5f7
...
...
@@ -481,7 +481,7 @@ static const struct regulator_desc regulators[] = {
},
};
static
int
__devinit
setup_regulators
(
struct
lp3972
*
lp3972
,
static
int
setup_regulators
(
struct
lp3972
*
lp3972
,
struct
lp3972_platform_data
*
pdata
)
{
int
i
,
err
;
...
...
@@ -523,7 +523,7 @@ static int __devinit setup_regulators(struct lp3972 *lp3972,
return
err
;
}
static
int
__devinit
lp3972_i2c_probe
(
struct
i2c_client
*
i2c
,
static
int
lp3972_i2c_probe
(
struct
i2c_client
*
i2c
,
const
struct
i2c_device_id
*
id
)
{
struct
lp3972
*
lp3972
;
...
...
@@ -569,7 +569,7 @@ static int __devinit lp3972_i2c_probe(struct i2c_client *i2c,
return
ret
;
}
static
int
__devexit
lp3972_i2c_remove
(
struct
i2c_client
*
i2c
)
static
int
lp3972_i2c_remove
(
struct
i2c_client
*
i2c
)
{
struct
lp3972
*
lp3972
=
i2c_get_clientdata
(
i2c
);
int
i
;
...
...
@@ -594,7 +594,7 @@ static struct i2c_driver lp3972_i2c_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
lp3972_i2c_probe
,
.
remove
=
__devexit_p
(
lp3972_i2c_remove
)
,
.
remove
=
lp3972_i2c_remove
,
.
id_table
=
lp3972_i2c_id
,
};
...
...
drivers/regulator/lp872x.c
View file @
1f9cc5f7
...
...
@@ -893,7 +893,7 @@ static int lp872x_probe(struct i2c_client *cl, const struct i2c_device_id *id)
return
ret
;
}
static
int
__devexit
lp872x_remove
(
struct
i2c_client
*
cl
)
static
int
lp872x_remove
(
struct
i2c_client
*
cl
)
{
struct
lp872x
*
lp
=
i2c_get_clientdata
(
cl
);
...
...
@@ -914,7 +914,7 @@ static struct i2c_driver lp872x_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
lp872x_probe
,
.
remove
=
__devexit_p
(
lp872x_remove
)
,
.
remove
=
lp872x_remove
,
.
id_table
=
lp872x_ids
,
};
...
...
drivers/regulator/lp8788-buck.c
View file @
1f9cc5f7
...
...
@@ -504,7 +504,7 @@ static int lp8788_init_dvs(struct lp8788_buck *buck, enum lp8788_buck_id id)
default_dvs_mode
[
id
]);
}
static
__devinit
int
lp8788_buck_probe
(
struct
platform_device
*
pdev
)
static
int
lp8788_buck_probe
(
struct
platform_device
*
pdev
)
{
struct
lp8788
*
lp
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
int
id
=
pdev
->
id
;
...
...
@@ -542,7 +542,7 @@ static __devinit int lp8788_buck_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
lp8788_buck_remove
(
struct
platform_device
*
pdev
)
static
int
lp8788_buck_remove
(
struct
platform_device
*
pdev
)
{
struct
lp8788_buck
*
buck
=
platform_get_drvdata
(
pdev
);
...
...
@@ -554,7 +554,7 @@ static int __devexit lp8788_buck_remove(struct platform_device *pdev)
static
struct
platform_driver
lp8788_buck_driver
=
{
.
probe
=
lp8788_buck_probe
,
.
remove
=
__devexit_p
(
lp8788_buck_remove
)
,
.
remove
=
lp8788_buck_remove
,
.
driver
=
{
.
name
=
LP8788_DEV_BUCK
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/lp8788-ldo.c
View file @
1f9cc5f7
...
...
@@ -712,7 +712,7 @@ static int lp8788_config_ldo_enable_mode(struct lp8788_ldo *ldo,
val
[
enable_id
]);
}
static
__devinit
int
lp8788_dldo_probe
(
struct
platform_device
*
pdev
)
static
int
lp8788_dldo_probe
(
struct
platform_device
*
pdev
)
{
struct
lp8788
*
lp
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
int
id
=
pdev
->
id
;
...
...
@@ -749,7 +749,7 @@ static __devinit int lp8788_dldo_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
lp8788_dldo_remove
(
struct
platform_device
*
pdev
)
static
int
lp8788_dldo_remove
(
struct
platform_device
*
pdev
)
{
struct
lp8788_ldo
*
ldo
=
platform_get_drvdata
(
pdev
);
...
...
@@ -761,14 +761,14 @@ static int __devexit lp8788_dldo_remove(struct platform_device *pdev)
static
struct
platform_driver
lp8788_dldo_driver
=
{
.
probe
=
lp8788_dldo_probe
,
.
remove
=
__devexit_p
(
lp8788_dldo_remove
)
,
.
remove
=
lp8788_dldo_remove
,
.
driver
=
{
.
name
=
LP8788_DEV_DLDO
,
.
owner
=
THIS_MODULE
,
},
};
static
__devinit
int
lp8788_aldo_probe
(
struct
platform_device
*
pdev
)
static
int
lp8788_aldo_probe
(
struct
platform_device
*
pdev
)
{
struct
lp8788
*
lp
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
int
id
=
pdev
->
id
;
...
...
@@ -805,7 +805,7 @@ static __devinit int lp8788_aldo_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
lp8788_aldo_remove
(
struct
platform_device
*
pdev
)
static
int
lp8788_aldo_remove
(
struct
platform_device
*
pdev
)
{
struct
lp8788_ldo
*
ldo
=
platform_get_drvdata
(
pdev
);
...
...
@@ -817,7 +817,7 @@ static int __devexit lp8788_aldo_remove(struct platform_device *pdev)
static
struct
platform_driver
lp8788_aldo_driver
=
{
.
probe
=
lp8788_aldo_probe
,
.
remove
=
__devexit_p
(
lp8788_aldo_remove
)
,
.
remove
=
lp8788_aldo_remove
,
.
driver
=
{
.
name
=
LP8788_DEV_ALDO
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/max1586.c
View file @
1f9cc5f7
...
...
@@ -125,7 +125,7 @@ static struct regulator_desc max1586_reg[] = {
},
};
static
int
__devinit
max1586_pmic_probe
(
struct
i2c_client
*
client
,
static
int
max1586_pmic_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
i2c_id
)
{
struct
regulator_dev
**
rdev
;
...
...
@@ -188,7 +188,7 @@ static int __devinit max1586_pmic_probe(struct i2c_client *client,
return
ret
;
}
static
int
__devexit
max1586_pmic_remove
(
struct
i2c_client
*
client
)
static
int
max1586_pmic_remove
(
struct
i2c_client
*
client
)
{
struct
max1586_data
*
max1586
=
i2c_get_clientdata
(
client
);
int
i
;
...
...
@@ -207,7 +207,7 @@ MODULE_DEVICE_TABLE(i2c, max1586_id);
static
struct
i2c_driver
max1586_pmic_driver
=
{
.
probe
=
max1586_pmic_probe
,
.
remove
=
__devexit_p
(
max1586_pmic_remove
)
,
.
remove
=
max1586_pmic_remove
,
.
driver
=
{
.
name
=
"max1586"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/max77686.c
View file @
1f9cc5f7
...
...
@@ -280,7 +280,7 @@ static int max77686_pmic_dt_parse_pdata(struct max77686_dev *iodev,
}
#endif
/* CONFIG_OF */
static
__devinit
int
max77686_pmic_probe
(
struct
platform_device
*
pdev
)
static
int
max77686_pmic_probe
(
struct
platform_device
*
pdev
)
{
struct
max77686_dev
*
iodev
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
max77686_platform_data
*
pdata
=
dev_get_platdata
(
iodev
->
dev
);
...
...
@@ -337,7 +337,7 @@ static __devinit int max77686_pmic_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
max77686_pmic_remove
(
struct
platform_device
*
pdev
)
static
int
max77686_pmic_remove
(
struct
platform_device
*
pdev
)
{
struct
max77686_data
*
max77686
=
platform_get_drvdata
(
pdev
);
int
i
;
...
...
@@ -360,7 +360,7 @@ static struct platform_driver max77686_pmic_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
max77686_pmic_probe
,
.
remove
=
__devexit_p
(
max77686_pmic_remove
)
,
.
remove
=
max77686_pmic_remove
,
.
id_table
=
max77686_pmic_id
,
};
...
...
drivers/regulator/max8649.c
View file @
1f9cc5f7
...
...
@@ -176,7 +176,7 @@ static struct regmap_config max8649_regmap_config = {
.
val_bits
=
8
,
};
static
int
__devinit
max8649_regulator_probe
(
struct
i2c_client
*
client
,
static
int
max8649_regulator_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
id
)
{
struct
max8649_platform_data
*
pdata
=
client
->
dev
.
platform_data
;
...
...
@@ -271,7 +271,7 @@ static int __devinit max8649_regulator_probe(struct i2c_client *client,
return
0
;
}
static
int
__devexit
max8649_regulator_remove
(
struct
i2c_client
*
client
)
static
int
max8649_regulator_remove
(
struct
i2c_client
*
client
)
{
struct
max8649_regulator_info
*
info
=
i2c_get_clientdata
(
client
);
...
...
@@ -291,7 +291,7 @@ MODULE_DEVICE_TABLE(i2c, max8649_id);
static
struct
i2c_driver
max8649_driver
=
{
.
probe
=
max8649_regulator_probe
,
.
remove
=
__devexit_p
(
max8649_regulator_remove
)
,
.
remove
=
max8649_regulator_remove
,
.
driver
=
{
.
name
=
"max8649"
,
},
...
...
drivers/regulator/max8660.c
View file @
1f9cc5f7
...
...
@@ -305,7 +305,7 @@ static const struct regulator_desc max8660_reg[] = {
},
};
static
int
__devinit
max8660_probe
(
struct
i2c_client
*
client
,
static
int
max8660_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
i2c_id
)
{
struct
regulator_dev
**
rdev
;
...
...
@@ -420,7 +420,7 @@ static int __devinit max8660_probe(struct i2c_client *client,
return
ret
;
}
static
int
__devexit
max8660_remove
(
struct
i2c_client
*
client
)
static
int
max8660_remove
(
struct
i2c_client
*
client
)
{
struct
max8660
*
max8660
=
i2c_get_clientdata
(
client
);
int
i
;
...
...
@@ -440,7 +440,7 @@ MODULE_DEVICE_TABLE(i2c, max8660_id);
static
struct
i2c_driver
max8660_driver
=
{
.
probe
=
max8660_probe
,
.
remove
=
__devexit_p
(
max8660_remove
)
,
.
remove
=
max8660_remove
,
.
driver
=
{
.
name
=
"max8660"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/max8907-regulator.c
View file @
1f9cc5f7
...
...
@@ -275,7 +275,7 @@ static inline struct device_node *match_of_node(int index)
}
#endif
static
__devinit
int
max8907_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
max8907_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
max8907
*
max8907
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
max8907_platform_data
*
pdata
=
dev_get_platdata
(
max8907
->
dev
);
...
...
@@ -368,7 +368,7 @@ static __devinit int max8907_regulator_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
max8907_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
max8907_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
max8907_regulator
*
pmic
=
platform_get_drvdata
(
pdev
);
int
i
;
...
...
@@ -385,7 +385,7 @@ static struct platform_driver max8907_regulator_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
max8907_regulator_probe
,
.
remove
=
__devexit_p
(
max8907_regulator_remove
)
,
.
remove
=
max8907_regulator_remove
,
};
static
int
__init
max8907_regulator_init
(
void
)
...
...
drivers/regulator/max8925-regulator.c
View file @
1f9cc5f7
...
...
@@ -17,6 +17,8 @@
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/max8925.h>
#include <linux/of.h>
#include <linux/regulator/of_regulator.h>
#define SD1_DVM_VMIN 850000
#define SD1_DVM_VMAX 1000000
...
...
@@ -187,6 +189,34 @@ static struct regulator_ops max8925_regulator_ldo_ops = {
.enable_reg = MAX8925_LDOCTL##_id, \
}
#ifdef CONFIG_OF
static
struct
of_regulator_match
max8925_regulator_matches
[]
=
{
{
.
name
=
"SDV1"
,},
{
.
name
=
"SDV2"
,},
{
.
name
=
"SDV3"
,},
{
.
name
=
"LDO1"
,},
{
.
name
=
"LDO2"
,},
{
.
name
=
"LDO3"
,},
{
.
name
=
"LDO4"
,},
{
.
name
=
"LDO5"
,},
{
.
name
=
"LDO6"
,},
{
.
name
=
"LDO7"
,},
{
.
name
=
"LDO8"
,},
{
.
name
=
"LDO9"
,},
{
.
name
=
"LDO10"
,},
{
.
name
=
"LDO11"
,},
{
.
name
=
"LDO12"
,},
{
.
name
=
"LDO13"
,},
{
.
name
=
"LDO14"
,},
{
.
name
=
"LDO15"
,},
{
.
name
=
"LDO16"
,},
{
.
name
=
"LDO17"
,},
{
.
name
=
"LDO18"
,},
{
.
name
=
"LDO19"
,},
{
.
name
=
"LDO20"
,},
};
#endif
static
struct
max8925_regulator_info
max8925_regulator_info
[]
=
{
MAX8925_SDV
(
1
,
637
.
5
,
1425
,
12
.
5
),
MAX8925_SDV
(
2
,
650
,
2225
,
25
),
...
...
@@ -214,7 +244,37 @@ static struct max8925_regulator_info max8925_regulator_info[] = {
MAX8925_LDO
(
20
,
750
,
3900
,
50
),
};
static
int
__devinit
max8925_regulator_probe
(
struct
platform_device
*
pdev
)
#ifdef CONFIG_OF
static
int
max8925_regulator_dt_init
(
struct
platform_device
*
pdev
,
struct
max8925_regulator_info
*
info
,
struct
regulator_config
*
config
,
int
ridx
)
{
struct
device_node
*
nproot
,
*
np
;
int
rcount
;
nproot
=
pdev
->
dev
.
parent
->
of_node
;
if
(
!
nproot
)
return
-
ENODEV
;
np
=
of_find_node_by_name
(
nproot
,
"regulators"
);
if
(
!
np
)
{
dev_err
(
&
pdev
->
dev
,
"failed to find regulators node
\n
"
);
return
-
ENODEV
;
}
rcount
=
of_regulator_match
(
&
pdev
->
dev
,
np
,
&
max8925_regulator_matches
[
ridx
],
1
);
if
(
rcount
<
0
)
return
-
ENODEV
;
config
->
init_data
=
max8925_regulator_matches
[
ridx
].
init_data
;
config
->
of_node
=
max8925_regulator_matches
[
ridx
].
of_node
;
return
0
;
}
#else
#define max8925_regulator_dt_init(w, x, y, z) (-1)
#endif
static
int
max8925_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
max8925_chip
*
chip
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
regulator_init_data
*
pdata
=
pdev
->
dev
.
platform_data
;
...
...
@@ -222,7 +282,7 @@ static int __devinit max8925_regulator_probe(struct platform_device *pdev)
struct
max8925_regulator_info
*
ri
;
struct
resource
*
res
;
struct
regulator_dev
*
rdev
;
int
i
;
int
i
,
regulator_idx
;
res
=
platform_get_resource
(
pdev
,
IORESOURCE_REG
,
0
);
if
(
!
res
)
{
...
...
@@ -231,9 +291,12 @@ static int __devinit max8925_regulator_probe(struct platform_device *pdev)
}
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
max8925_regulator_info
);
i
++
)
{
ri
=
&
max8925_regulator_info
[
i
];
if
(
ri
->
vol_reg
==
res
->
start
)
if
(
ri
->
vol_reg
==
res
->
start
)
{
regulator_idx
=
i
;
break
;
}
}
if
(
i
==
ARRAY_SIZE
(
max8925_regulator_info
))
{
dev_err
(
&
pdev
->
dev
,
"Failed to find regulator %llu
\n
"
,
(
unsigned
long
long
)
res
->
start
);
...
...
@@ -243,9 +306,12 @@ static int __devinit max8925_regulator_probe(struct platform_device *pdev)
ri
->
chip
=
chip
;
config
.
dev
=
&
pdev
->
dev
;
config
.
init_data
=
pdata
;
config
.
driver_data
=
ri
;
if
(
max8925_regulator_dt_init
(
pdev
,
ri
,
&
config
,
regulator_idx
))
if
(
pdata
)
config
.
init_data
=
pdata
;
rdev
=
regulator_register
(
&
ri
->
desc
,
&
config
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
...
...
@@ -257,7 +323,7 @@ static int __devinit max8925_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
max8925_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
max8925_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
...
...
@@ -273,7 +339,7 @@ static struct platform_driver max8925_regulator_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
max8925_regulator_probe
,
.
remove
=
__devexit_p
(
max8925_regulator_remove
)
,
.
remove
=
max8925_regulator_remove
,
};
static
int
__init
max8925_regulator_init
(
void
)
...
...
drivers/regulator/max8952.c
View file @
1f9cc5f7
...
...
@@ -126,7 +126,7 @@ static const struct regulator_desc regulator = {
.
owner
=
THIS_MODULE
,
};
static
int
__devinit
max8952_pmic_probe
(
struct
i2c_client
*
client
,
static
int
max8952_pmic_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
i2c_id
)
{
struct
i2c_adapter
*
adapter
=
to_i2c_adapter
(
client
->
dev
.
parent
);
...
...
@@ -247,7 +247,7 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client,
return
0
;
}
static
int
__devexit
max8952_pmic_remove
(
struct
i2c_client
*
client
)
static
int
max8952_pmic_remove
(
struct
i2c_client
*
client
)
{
struct
max8952_data
*
max8952
=
i2c_get_clientdata
(
client
);
struct
max8952_platform_data
*
pdata
=
max8952
->
pdata
;
...
...
@@ -268,7 +268,7 @@ MODULE_DEVICE_TABLE(i2c, max8952_ids);
static
struct
i2c_driver
max8952_pmic_driver
=
{
.
probe
=
max8952_pmic_probe
,
.
remove
=
__devexit_p
(
max8952_pmic_remove
)
,
.
remove
=
max8952_pmic_remove
,
.
driver
=
{
.
name
=
"max8952"
,
},
...
...
drivers/regulator/max8997.c
View file @
1f9cc5f7
...
...
@@ -933,7 +933,7 @@ static struct regulator_desc regulators[] = {
max8997_charger_fixedstate_ops
),
};
static
__devinit
int
max8997_pmic_probe
(
struct
platform_device
*
pdev
)
static
int
max8997_pmic_probe
(
struct
platform_device
*
pdev
)
{
struct
max8997_dev
*
iodev
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
max8997_platform_data
*
pdata
=
dev_get_platdata
(
iodev
->
dev
);
...
...
@@ -1120,7 +1120,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
max8997_pmic_remove
(
struct
platform_device
*
pdev
)
static
int
max8997_pmic_remove
(
struct
platform_device
*
pdev
)
{
struct
max8997_data
*
max8997
=
platform_get_drvdata
(
pdev
);
struct
regulator_dev
**
rdev
=
max8997
->
rdev
;
...
...
@@ -1143,7 +1143,7 @@ static struct platform_driver max8997_pmic_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
max8997_pmic_probe
,
.
remove
=
__devexit_p
(
max8997_pmic_remove
)
,
.
remove
=
max8997_pmic_remove
,
.
id_table
=
max8997_pmic_id
,
};
...
...
drivers/regulator/max8998.c
View file @
1f9cc5f7
...
...
@@ -633,7 +633,7 @@ static struct regulator_desc regulators[] = {
}
};
static
__devinit
int
max8998_pmic_probe
(
struct
platform_device
*
pdev
)
static
int
max8998_pmic_probe
(
struct
platform_device
*
pdev
)
{
struct
max8998_dev
*
iodev
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
max8998_platform_data
*
pdata
=
dev_get_platdata
(
iodev
->
dev
);
...
...
@@ -818,7 +818,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
max8998_pmic_remove
(
struct
platform_device
*
pdev
)
static
int
max8998_pmic_remove
(
struct
platform_device
*
pdev
)
{
struct
max8998_data
*
max8998
=
platform_get_drvdata
(
pdev
);
struct
regulator_dev
**
rdev
=
max8998
->
rdev
;
...
...
@@ -842,7 +842,7 @@ static struct platform_driver max8998_pmic_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
max8998_pmic_probe
,
.
remove
=
__devexit_p
(
max8998_pmic_remove
)
,
.
remove
=
max8998_pmic_remove
,
.
id_table
=
max8998_pmic_id
,
};
...
...
drivers/regulator/mc13783-regulator.c
View file @
1f9cc5f7
...
...
@@ -392,7 +392,7 @@ static struct regulator_ops mc13783_gpo_regulator_ops = {
.
set_voltage
=
mc13xxx_fixed_regulator_set_voltage
,
};
static
int
__devinit
mc13783_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
mc13783_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
mc13xxx_regulator_priv
*
priv
;
struct
mc13xxx
*
mc13783
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
...
...
@@ -445,7 +445,7 @@ static int __devinit mc13783_regulator_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
mc13783_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
mc13783_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
mc13xxx_regulator_priv
*
priv
=
platform_get_drvdata
(
pdev
);
struct
mc13xxx_regulator_platform_data
*
pdata
=
...
...
@@ -465,7 +465,7 @@ static struct platform_driver mc13783_regulator_driver = {
.
name
=
"mc13783-regulator"
,
.
owner
=
THIS_MODULE
,
},
.
remove
=
__devexit_p
(
mc13783_regulator_remove
)
,
.
remove
=
mc13783_regulator_remove
,
.
probe
=
mc13783_regulator_probe
,
};
...
...
drivers/regulator/mc13892-regulator.c
View file @
1f9cc5f7
...
...
@@ -486,7 +486,7 @@ static unsigned int mc13892_vcam_get_mode(struct regulator_dev *rdev)
}
static
int
__devinit
mc13892_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
mc13892_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
mc13xxx_regulator_priv
*
priv
;
struct
mc13xxx
*
mc13892
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
...
...
@@ -588,7 +588,7 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
mc13892_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
mc13892_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
mc13xxx_regulator_priv
*
priv
=
platform_get_drvdata
(
pdev
);
int
i
;
...
...
@@ -606,7 +606,7 @@ static struct platform_driver mc13892_regulator_driver = {
.
name
=
"mc13892-regulator"
,
.
owner
=
THIS_MODULE
,
},
.
remove
=
__devexit_p
(
mc13892_regulator_remove
)
,
.
remove
=
mc13892_regulator_remove
,
.
probe
=
mc13892_regulator_probe
,
};
...
...
drivers/regulator/mc13xxx-regulator-core.c
View file @
1f9cc5f7
...
...
@@ -162,7 +162,7 @@ struct regulator_ops mc13xxx_fixed_regulator_ops = {
EXPORT_SYMBOL_GPL
(
mc13xxx_fixed_regulator_ops
);
#ifdef CONFIG_OF
int
__devinit
mc13xxx_get_num_regulators_dt
(
struct
platform_device
*
pdev
)
int
mc13xxx_get_num_regulators_dt
(
struct
platform_device
*
pdev
)
{
struct
device_node
*
parent
,
*
child
;
int
num
=
0
;
...
...
@@ -179,7 +179,7 @@ int __devinit mc13xxx_get_num_regulators_dt(struct platform_device *pdev)
}
EXPORT_SYMBOL_GPL
(
mc13xxx_get_num_regulators_dt
);
struct
mc13xxx_regulator_init_data
*
__devinit
mc13xxx_parse_regulators_dt
(
struct
mc13xxx_regulator_init_data
*
mc13xxx_parse_regulators_dt
(
struct
platform_device
*
pdev
,
struct
mc13xxx_regulator
*
regulators
,
int
num_regulators
)
{
...
...
drivers/regulator/palmas-regulator.c
View file @
1f9cc5f7
...
...
@@ -595,7 +595,7 @@ static struct of_regulator_match palmas_matches[] = {
{
.
name
=
"ldousb"
,
},
};
static
void
__devinit
palmas_dt_to_pdata
(
struct
device
*
dev
,
static
void
palmas_dt_to_pdata
(
struct
device
*
dev
,
struct
device_node
*
node
,
struct
palmas_pmic_platform_data
*
pdata
)
{
...
...
@@ -663,7 +663,7 @@ static void __devinit palmas_dt_to_pdata(struct device *dev,
}
static
__devinit
int
palmas_probe
(
struct
platform_device
*
pdev
)
static
int
palmas_probe
(
struct
platform_device
*
pdev
)
{
struct
palmas
*
palmas
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
palmas_pmic_platform_data
*
pdata
=
pdev
->
dev
.
platform_data
;
...
...
@@ -868,7 +868,7 @@ static __devinit int palmas_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
palmas_remove
(
struct
platform_device
*
pdev
)
static
int
palmas_remove
(
struct
platform_device
*
pdev
)
{
struct
palmas_pmic
*
pmic
=
platform_get_drvdata
(
pdev
);
int
id
;
...
...
@@ -890,7 +890,7 @@ static struct platform_driver palmas_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
palmas_probe
,
.
remove
=
__devexit_p
(
palmas_remove
)
,
.
remove
=
palmas_remove
,
};
static
int
__init
palmas_init
(
void
)
...
...
drivers/regulator/pcap-regulator.c
View file @
1f9cc5f7
...
...
@@ -236,7 +236,7 @@ static const struct regulator_desc pcap_regulators[] = {
VREG
(
VAUX4
),
VREG
(
VSIM
),
VREG
(
VSIM2
),
VREG
(
VVIB
),
VREG
(
SW1
),
VREG
(
SW2
),
};
static
int
__devinit
pcap_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
pcap_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
;
void
*
pcap
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
...
...
@@ -255,7 +255,7 @@ static int __devinit pcap_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
pcap_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
pcap_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
...
...
@@ -271,7 +271,7 @@ static struct platform_driver pcap_regulator_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
pcap_regulator_probe
,
.
remove
=
__devexit_p
(
pcap_regulator_remove
)
,
.
remove
=
pcap_regulator_remove
,
};
static
int
__init
pcap_regulator_init
(
void
)
...
...
drivers/regulator/pcf50633-regulator.c
View file @
1f9cc5f7
...
...
@@ -196,7 +196,7 @@ static const struct regulator_desc regulators[] = {
[
PCF50633_REGULATOR_MEMLDO
]
=
PCF50633_REGULATOR
(
"memldo"
,
MEMLDO
,
28
),
};
static
int
__devinit
pcf50633_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
pcf50633_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
;
struct
pcf50633
*
pcf
;
...
...
@@ -222,7 +222,7 @@ static int __devinit pcf50633_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
pcf50633_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
pcf50633_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
...
...
@@ -237,7 +237,7 @@ static struct platform_driver pcf50633_regulator_driver = {
.
name
=
"pcf50633-regltr"
,
},
.
probe
=
pcf50633_regulator_probe
,
.
remove
=
__devexit_p
(
pcf50633_regulator_remove
)
,
.
remove
=
pcf50633_regulator_remove
,
};
static
int
__init
pcf50633_regulator_init
(
void
)
...
...
drivers/regulator/rc5t583-regulator.c
View file @
1f9cc5f7
...
...
@@ -119,7 +119,7 @@ static struct rc5t583_regulator_info rc5t583_reg_info[RC5T583_REGULATOR_MAX] = {
RC5T583_REG
(
LDO9
,
LDOEN1
,
1
,
LDODIS1
,
1
,
0x7F
,
900
,
3400
,
25000
,
133
),
};
static
int
__devinit
rc5t583_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
rc5t583_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
rc5t583
*
rc5t583
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
rc5t583_platform_data
*
pdata
=
dev_get_platdata
(
rc5t583
->
dev
);
...
...
@@ -198,7 +198,7 @@ static int __devinit rc5t583_regulator_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
rc5t583_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
rc5t583_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
rc5t583_regulator
*
regs
=
platform_get_drvdata
(
pdev
);
int
id
;
...
...
@@ -214,7 +214,7 @@ static struct platform_driver rc5t583_regulator_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
rc5t583_regulator_probe
,
.
remove
=
__devexit_p
(
rc5t583_regulator_remove
)
,
.
remove
=
rc5t583_regulator_remove
,
};
static
int
__init
rc5t583_regulator_init
(
void
)
...
...
drivers/regulator/s2mps11.c
View file @
1f9cc5f7
...
...
@@ -231,7 +231,7 @@ static struct regulator_desc regulators[] = {
regulator_desc_buck10
,
};
static
__devinit
int
s2mps11_pmic_probe
(
struct
platform_device
*
pdev
)
static
int
s2mps11_pmic_probe
(
struct
platform_device
*
pdev
)
{
struct
sec_pmic_dev
*
iodev
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
sec_platform_data
*
pdata
=
dev_get_platdata
(
iodev
->
dev
);
...
...
@@ -307,7 +307,7 @@ static __devinit int s2mps11_pmic_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
s2mps11_pmic_remove
(
struct
platform_device
*
pdev
)
static
int
s2mps11_pmic_remove
(
struct
platform_device
*
pdev
)
{
struct
s2mps11_info
*
s2mps11
=
platform_get_drvdata
(
pdev
);
int
i
;
...
...
@@ -330,7 +330,7 @@ static struct platform_driver s2mps11_pmic_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
s2mps11_pmic_probe
,
.
remove
=
__devexit_p
(
s2mps11_pmic_remove
)
,
.
remove
=
s2mps11_pmic_remove
,
.
id_table
=
s2mps11_pmic_id
,
};
...
...
drivers/regulator/s5m8767.c
View file @
1f9cc5f7
...
...
@@ -499,7 +499,7 @@ static struct regulator_desc regulators[] = {
s5m8767_regulator_desc
(
BUCK9
),
};
static
__devinit
int
s5m8767_pmic_probe
(
struct
platform_device
*
pdev
)
static
int
s5m8767_pmic_probe
(
struct
platform_device
*
pdev
)
{
struct
sec_pmic_dev
*
iodev
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
sec_platform_data
*
pdata
=
dev_get_platdata
(
iodev
->
dev
);
...
...
@@ -773,7 +773,7 @@ static __devinit int s5m8767_pmic_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
s5m8767_pmic_remove
(
struct
platform_device
*
pdev
)
static
int
s5m8767_pmic_remove
(
struct
platform_device
*
pdev
)
{
struct
s5m8767_info
*
s5m8767
=
platform_get_drvdata
(
pdev
);
struct
regulator_dev
**
rdev
=
s5m8767
->
rdev
;
...
...
@@ -798,7 +798,7 @@ static struct platform_driver s5m8767_pmic_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
s5m8767_pmic_probe
,
.
remove
=
__devexit_p
(
s5m8767_pmic_remove
)
,
.
remove
=
s5m8767_pmic_remove
,
.
id_table
=
s5m8767_pmic_id
,
};
...
...
drivers/regulator/tps51632-regulator.c
0 → 100644
View file @
1f9cc5f7
/*
* tps51632-regulator.c -- TI TPS51632
*
* Regulator driver for TPS51632 3-2-1 Phase D-Cap Step Down Driverless
* Controller with serial VID control and DVFS.
*
* Copyright (c) 2012, NVIDIA Corporation.
*
* Author: Laxman Dewangan <ldewangan@nvidia.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any kind,
* whether express or implied; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307, USA
*/
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/tps51632-regulator.h>
#include <linux/slab.h>
/* Register definitions */
#define TPS51632_VOLTAGE_SELECT_REG 0x0
#define TPS51632_VOLTAGE_BASE_REG 0x1
#define TPS51632_OFFSET_REG 0x2
#define TPS51632_IMON_REG 0x3
#define TPS51632_VMAX_REG 0x4
#define TPS51632_DVFS_CONTROL_REG 0x5
#define TPS51632_POWER_STATE_REG 0x6
#define TPS51632_SLEW_REGS 0x7
#define TPS51632_FAULT_REG 0x14
#define TPS51632_MAX_REG 0x15
#define TPS51632_VOUT_MASK 0x7F
#define TPS51632_VOUT_OFFSET_MASK 0x1F
#define TPS51632_VMAX_MASK 0x7F
#define TPS51632_VMAX_LOCK 0x80
/* TPS51632_DVFS_CONTROL_REG */
#define TPS51632_DVFS_PWMEN 0x1
#define TPS51632_DVFS_STEP_20 0x2
#define TPS51632_DVFS_VMAX_PG 0x4
#define TPS51632_DVFS_PWMRST 0x8
#define TPS51632_DVFS_OCA_EN 0x10
#define TPS51632_DVFS_FCCM 0x20
/* TPS51632_POWER_STATE_REG */
#define TPS51632_POWER_STATE_MASK 0x03
#define TPS51632_POWER_STATE_MULTI_PHASE_CCM 0x0
#define TPS51632_POWER_STATE_SINGLE_PHASE_CCM 0x1
#define TPS51632_POWER_STATE_SINGLE_PHASE_DCM 0x2
#define TPS51632_MIN_VOLATGE 500000
#define TPS51632_MAX_VOLATGE 1520000
#define TPS51632_VOLATGE_STEP_10mV 10000
#define TPS51632_VOLATGE_STEP_20mV 20000
#define TPS51632_MAX_VSEL 0x7F
#define TPS51632_MIN_VSEL 0x19
#define TPS51632_DEFAULT_RAMP_DELAY 6000
#define TPS51632_VOLT_VSEL(uV) \
(DIV_ROUND_UP(uV - TPS51632_MIN_VOLATGE, \
TPS51632_VOLATGE_STEP_10mV) + \
TPS51632_MIN_VSEL)
/* TPS51632 chip information */
struct
tps51632_chip
{
struct
device
*
dev
;
struct
regulator_desc
desc
;
struct
regulator_dev
*
rdev
;
struct
regmap
*
regmap
;
bool
enable_pwm_dvfs
;
};
static
int
tps51632_dcdc_get_voltage_sel
(
struct
regulator_dev
*
rdev
)
{
struct
tps51632_chip
*
tps
=
rdev_get_drvdata
(
rdev
);
unsigned
int
data
;
int
ret
;
unsigned
int
reg
=
TPS51632_VOLTAGE_SELECT_REG
;
int
vsel
;
if
(
tps
->
enable_pwm_dvfs
)
reg
=
TPS51632_VOLTAGE_BASE_REG
;
ret
=
regmap_read
(
tps
->
regmap
,
reg
,
&
data
);
if
(
ret
<
0
)
{
dev_err
(
tps
->
dev
,
"reg read failed, err %d
\n
"
,
ret
);
return
ret
;
}
vsel
=
data
&
TPS51632_VOUT_MASK
;
if
(
vsel
<
TPS51632_MIN_VSEL
)
return
0
;
else
return
vsel
-
TPS51632_MIN_VSEL
;
}
static
int
tps51632_dcdc_set_voltage_sel
(
struct
regulator_dev
*
rdev
,
unsigned
selector
)
{
struct
tps51632_chip
*
tps
=
rdev_get_drvdata
(
rdev
);
int
vsel
;
int
ret
;
unsigned
int
reg
=
TPS51632_VOLTAGE_SELECT_REG
;
if
(
tps
->
enable_pwm_dvfs
)
reg
=
TPS51632_VOLTAGE_BASE_REG
;
vsel
=
selector
+
TPS51632_MIN_VSEL
;
if
(
vsel
>
TPS51632_MAX_VSEL
)
return
-
EINVAL
;
ret
=
regmap_write
(
tps
->
regmap
,
TPS51632_VOLTAGE_SELECT_REG
,
vsel
);
if
(
ret
<
0
)
dev_err
(
tps
->
dev
,
"reg write failed, err %d
\n
"
,
ret
);
return
ret
;
}
static
int
tps51632_dcdc_set_ramp_delay
(
struct
regulator_dev
*
rdev
,
int
ramp_delay
)
{
struct
tps51632_chip
*
tps
=
rdev_get_drvdata
(
rdev
);
int
bit
=
ramp_delay
/
6000
;
int
ret
;
if
(
bit
)
bit
--
;
ret
=
regmap_write
(
tps
->
regmap
,
TPS51632_SLEW_REGS
,
BIT
(
bit
));
if
(
ret
<
0
)
dev_err
(
tps
->
dev
,
"SLEW reg write failed, err %d
\n
"
,
ret
);
return
ret
;
}
static
struct
regulator_ops
tps51632_dcdc_ops
=
{
.
get_voltage_sel
=
tps51632_dcdc_get_voltage_sel
,
.
set_voltage_sel
=
tps51632_dcdc_set_voltage_sel
,
.
list_voltage
=
regulator_list_voltage_linear
,
.
set_voltage_time_sel
=
regulator_set_voltage_time_sel
,
.
set_ramp_delay
=
tps51632_dcdc_set_ramp_delay
,
};
static
int
tps51632_init_dcdc
(
struct
tps51632_chip
*
tps
,
struct
tps51632_regulator_platform_data
*
pdata
)
{
int
ret
;
uint8_t
control
=
0
;
int
vsel
;
if
(
!
pdata
->
enable_pwm_dvfs
)
goto
skip_pwm_config
;
control
|=
TPS51632_DVFS_PWMEN
;
tps
->
enable_pwm_dvfs
=
pdata
->
enable_pwm_dvfs
;
vsel
=
TPS51632_VOLT_VSEL
(
pdata
->
base_voltage_uV
);
ret
=
regmap_write
(
tps
->
regmap
,
TPS51632_VOLTAGE_BASE_REG
,
vsel
);
if
(
ret
<
0
)
{
dev_err
(
tps
->
dev
,
"BASE reg write failed, err %d
\n
"
,
ret
);
return
ret
;
}
if
(
pdata
->
dvfs_step_20mV
)
control
|=
TPS51632_DVFS_STEP_20
;
if
(
pdata
->
max_voltage_uV
)
{
unsigned
int
vmax
;
/**
* TPS51632 hw behavior: VMAX register can be write only
* once as it get locked after first write. The lock get
* reset only when device is power-reset.
* Write register only when lock bit is not enabled.
*/
ret
=
regmap_read
(
tps
->
regmap
,
TPS51632_VMAX_REG
,
&
vmax
);
if
(
ret
<
0
)
{
dev_err
(
tps
->
dev
,
"VMAX read failed, err %d
\n
"
,
ret
);
return
ret
;
}
if
(
!
(
vmax
&
TPS51632_VMAX_LOCK
))
{
vsel
=
TPS51632_VOLT_VSEL
(
pdata
->
max_voltage_uV
);
ret
=
regmap_write
(
tps
->
regmap
,
TPS51632_VMAX_REG
,
vsel
);
if
(
ret
<
0
)
{
dev_err
(
tps
->
dev
,
"VMAX write failed, err %d
\n
"
,
ret
);
return
ret
;
}
}
}
skip_pwm_config:
ret
=
regmap_write
(
tps
->
regmap
,
TPS51632_DVFS_CONTROL_REG
,
control
);
if
(
ret
<
0
)
dev_err
(
tps
->
dev
,
"DVFS reg write failed, err %d
\n
"
,
ret
);
return
ret
;
}
static
bool
rd_wr_reg
(
struct
device
*
dev
,
unsigned
int
reg
)
{
if
((
reg
>=
0x8
)
&&
(
reg
<=
0x10
))
return
false
;
return
true
;
}
static
const
struct
regmap_config
tps51632_regmap_config
=
{
.
reg_bits
=
8
,
.
val_bits
=
8
,
.
writeable_reg
=
rd_wr_reg
,
.
readable_reg
=
rd_wr_reg
,
.
max_register
=
TPS51632_MAX_REG
-
1
,
.
cache_type
=
REGCACHE_RBTREE
,
};
static
int
tps51632_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
id
)
{
struct
tps51632_regulator_platform_data
*
pdata
;
struct
regulator_dev
*
rdev
;
struct
tps51632_chip
*
tps
;
int
ret
;
struct
regulator_config
config
=
{
};
pdata
=
client
->
dev
.
platform_data
;
if
(
!
pdata
)
{
dev_err
(
&
client
->
dev
,
"No Platform data
\n
"
);
return
-
EINVAL
;
}
tps
=
devm_kzalloc
(
&
client
->
dev
,
sizeof
(
*
tps
),
GFP_KERNEL
);
if
(
!
tps
)
{
dev_err
(
&
client
->
dev
,
"Memory allocation failed
\n
"
);
return
-
ENOMEM
;
}
tps
->
dev
=
&
client
->
dev
;
tps
->
desc
.
name
=
id
->
name
;
tps
->
desc
.
id
=
0
;
tps
->
desc
.
ramp_delay
=
TPS51632_DEFAULT_RAMP_DELAY
;
tps
->
desc
.
min_uV
=
TPS51632_MIN_VOLATGE
;
tps
->
desc
.
uV_step
=
TPS51632_VOLATGE_STEP_10mV
;
tps
->
desc
.
n_voltages
=
(
TPS51632_MAX_VSEL
-
TPS51632_MIN_VSEL
)
+
1
;
tps
->
desc
.
ops
=
&
tps51632_dcdc_ops
;
tps
->
desc
.
type
=
REGULATOR_VOLTAGE
;
tps
->
desc
.
owner
=
THIS_MODULE
;
tps
->
regmap
=
devm_regmap_init_i2c
(
client
,
&
tps51632_regmap_config
);
if
(
IS_ERR
(
tps
->
regmap
))
{
ret
=
PTR_ERR
(
tps
->
regmap
);
dev_err
(
&
client
->
dev
,
"regmap init failed, err %d
\n
"
,
ret
);
return
ret
;
}
i2c_set_clientdata
(
client
,
tps
);
ret
=
tps51632_init_dcdc
(
tps
,
pdata
);
if
(
ret
<
0
)
{
dev_err
(
tps
->
dev
,
"Init failed, err = %d
\n
"
,
ret
);
return
ret
;
}
/* Register the regulators */
config
.
dev
=
&
client
->
dev
;
config
.
init_data
=
pdata
->
reg_init_data
;
config
.
driver_data
=
tps
;
config
.
regmap
=
tps
->
regmap
;
config
.
of_node
=
client
->
dev
.
of_node
;
rdev
=
regulator_register
(
&
tps
->
desc
,
&
config
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
tps
->
dev
,
"regulator register failed
\n
"
);
return
PTR_ERR
(
rdev
);
}
tps
->
rdev
=
rdev
;
return
0
;
}
static
int
tps51632_remove
(
struct
i2c_client
*
client
)
{
struct
tps51632_chip
*
tps
=
i2c_get_clientdata
(
client
);
regulator_unregister
(
tps
->
rdev
);
return
0
;
}
static
const
struct
i2c_device_id
tps51632_id
[]
=
{
{.
name
=
"tps51632"
,},
{},
};
MODULE_DEVICE_TABLE
(
i2c
,
tps51632_id
);
static
struct
i2c_driver
tps51632_i2c_driver
=
{
.
driver
=
{
.
name
=
"tps51632"
,
.
owner
=
THIS_MODULE
,
},
.
probe
=
tps51632_probe
,
.
remove
=
tps51632_remove
,
.
id_table
=
tps51632_id
,
};
static
int
__init
tps51632_init
(
void
)
{
return
i2c_add_driver
(
&
tps51632_i2c_driver
);
}
subsys_initcall
(
tps51632_init
);
static
void
__exit
tps51632_cleanup
(
void
)
{
i2c_del_driver
(
&
tps51632_i2c_driver
);
}
module_exit
(
tps51632_cleanup
);
MODULE_AUTHOR
(
"Laxman Dewangan <ldewangan@nvidia.com>"
);
MODULE_DESCRIPTION
(
"TPS51632 voltage regulator driver"
);
MODULE_LICENSE
(
"GPL v2"
);
drivers/regulator/tps6105x-regulator.c
View file @
1f9cc5f7
...
...
@@ -127,7 +127,7 @@ static const struct regulator_desc tps6105x_regulator_desc = {
/*
* Registers the chip as a voltage regulator
*/
static
int
__devinit
tps6105x_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
tps6105x_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
tps6105x
*
tps6105x
=
dev_get_platdata
(
&
pdev
->
dev
);
struct
tps6105x_platform_data
*
pdata
=
tps6105x
->
pdata
;
...
...
@@ -159,7 +159,7 @@ static int __devinit tps6105x_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
tps6105x_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
tps6105x_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
tps6105x
*
tps6105x
=
dev_get_platdata
(
&
pdev
->
dev
);
regulator_unregister
(
tps6105x
->
regulator
);
...
...
@@ -172,7 +172,7 @@ static struct platform_driver tps6105x_regulator_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
tps6105x_regulator_probe
,
.
remove
=
__devexit_p
(
tps6105x_regulator_remove
)
,
.
remove
=
tps6105x_regulator_remove
,
};
static
__init
int
tps6105x_regulator_init
(
void
)
...
...
drivers/regulator/tps62360-regulator.c
View file @
1f9cc5f7
...
...
@@ -243,7 +243,7 @@ static struct regulator_ops tps62360_dcdc_ops = {
.
get_mode
=
tps62360_get_mode
,
};
static
int
__devinit
tps62360_init_dcdc
(
struct
tps62360_chip
*
tps
,
static
int
tps62360_init_dcdc
(
struct
tps62360_chip
*
tps
,
struct
tps62360_regulator_platform_data
*
pdata
)
{
int
ret
;
...
...
@@ -339,7 +339,7 @@ static const struct of_device_id tps62360_of_match[] = {
MODULE_DEVICE_TABLE
(
of
,
tps62360_of_match
);
#endif
static
int
__devinit
tps62360_probe
(
struct
i2c_client
*
client
,
static
int
tps62360_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
id
)
{
struct
regulator_config
config
=
{
};
...
...
@@ -490,7 +490,7 @@ static int __devinit tps62360_probe(struct i2c_client *client,
*
* Unregister TPS driver as an i2c client device driver
*/
static
int
__devexit
tps62360_remove
(
struct
i2c_client
*
client
)
static
int
tps62360_remove
(
struct
i2c_client
*
client
)
{
struct
tps62360_chip
*
tps
=
i2c_get_clientdata
(
client
);
...
...
@@ -531,7 +531,7 @@ static struct i2c_driver tps62360_i2c_driver = {
.
of_match_table
=
of_match_ptr
(
tps62360_of_match
),
},
.
probe
=
tps62360_probe
,
.
remove
=
__devexit_p
(
tps62360_remove
)
,
.
remove
=
tps62360_remove
,
.
shutdown
=
tps62360_shutdown
,
.
id_table
=
tps62360_id
,
};
...
...
drivers/regulator/tps65023-regulator.c
View file @
1f9cc5f7
...
...
@@ -219,7 +219,7 @@ static struct regmap_config tps65023_regmap_config = {
.
val_bits
=
8
,
};
static
int
__devinit
tps_65023_probe
(
struct
i2c_client
*
client
,
static
int
tps_65023_probe
(
struct
i2c_client
*
client
,
const
struct
i2c_device_id
*
id
)
{
const
struct
tps_driver_data
*
drv_data
=
(
void
*
)
id
->
driver_data
;
...
...
@@ -319,7 +319,7 @@ static int __devinit tps_65023_probe(struct i2c_client *client,
return
error
;
}
static
int
__devexit
tps_65023_remove
(
struct
i2c_client
*
client
)
static
int
tps_65023_remove
(
struct
i2c_client
*
client
)
{
struct
tps_pmic
*
tps
=
i2c_get_clientdata
(
client
);
int
i
;
...
...
@@ -446,7 +446,7 @@ static struct i2c_driver tps_65023_i2c_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
tps_65023_probe
,
.
remove
=
__devexit_p
(
tps_65023_remove
)
,
.
remove
=
tps_65023_remove
,
.
id_table
=
tps_65023_id
,
};
...
...
drivers/regulator/tps6507x-regulator.c
View file @
1f9cc5f7
...
...
@@ -356,7 +356,7 @@ static struct regulator_ops tps6507x_pmic_ops = {
.
list_voltage
=
regulator_list_voltage_table
,
};
static
__devinit
int
tps6507x_pmic_probe
(
struct
platform_device
*
pdev
)
static
int
tps6507x_pmic_probe
(
struct
platform_device
*
pdev
)
{
struct
tps6507x_dev
*
tps6507x_dev
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
tps_info
*
info
=
&
tps6507x_pmic_regs
[
0
];
...
...
@@ -439,7 +439,7 @@ static __devinit int tps6507x_pmic_probe(struct platform_device *pdev)
return
error
;
}
static
int
__devexit
tps6507x_pmic_remove
(
struct
platform_device
*
pdev
)
static
int
tps6507x_pmic_remove
(
struct
platform_device
*
pdev
)
{
struct
tps6507x_dev
*
tps6507x_dev
=
platform_get_drvdata
(
pdev
);
struct
tps6507x_pmic
*
tps
=
tps6507x_dev
->
pmic
;
...
...
@@ -456,7 +456,7 @@ static struct platform_driver tps6507x_pmic_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
tps6507x_pmic_probe
,
.
remove
=
__devexit_p
(
tps6507x_pmic_remove
)
,
.
remove
=
tps6507x_pmic_remove
,
};
static
int
__init
tps6507x_pmic_init
(
void
)
...
...
drivers/regulator/tps65090-regulator.c
View file @
1f9cc5f7
...
...
@@ -18,119 +18,240 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/gpio.h>
#include <linux/slab.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/tps65090.h>
#include <linux/regulator/tps65090-regulator.h>
struct
tps65090_regulator
{
int
id
;
/* used by regulator core */
struct
regulator_desc
desc
;
/* Device */
struct
device
*
dev
;
struct
regulator_desc
*
desc
;
struct
regulator_dev
*
rdev
;
};
static
struct
regulator_ops
tps65090_ext_control_ops
=
{
};
static
struct
regulator_ops
tps65090_reg_contol_ops
=
{
.
enable
=
regulator_enable_regmap
,
.
disable
=
regulator_disable_regmap
,
.
is_enabled
=
regulator_is_enabled_regmap
,
};
static
struct
regulator_ops
tps65090_ops
=
{
.
enable
=
regulator_enable_regmap
,
.
disable
=
regulator_disable_regmap
,
.
is_enabled
=
regulator_is_enabled_regmap
,
static
struct
regulator_ops
tps65090_ldo_ops
=
{
};
#define tps65090_REG
(_id)
\
#define tps65090_REG
_DESC(_id, _sname, _en_reg, _ops)
\
{ \
.id = TPS65090_ID_##_id, \
.desc = { \
.name = tps65090_rails(_id), \
.id = TPS65090_ID_##_id, \
.ops = &tps65090_ops, \
.type = REGULATOR_VOLTAGE, \
.owner = THIS_MODULE, \
.enable_reg = (TPS65090_ID_##_id) + 12, \
.enable_mask = BIT(0), \
}, \
.name = "TPS65090_RAILS"#_id, \
.supply_name = _sname, \
.id = TPS65090_REGULATOR_##_id, \
.ops = &_ops, \
.enable_reg = _en_reg, \
.enable_mask = BIT(0), \
.type = REGULATOR_VOLTAGE, \
.owner = THIS_MODULE, \
}
static
struct
tps65090_regulator
TPS65090_regulator
[]
=
{
tps65090_REG
(
DCDC1
),
tps65090_REG
(
DCDC2
),
tps65090_REG
(
DCDC3
),
tps65090_REG
(
FET1
),
tps65090_REG
(
FET2
),
tps65090_REG
(
FET3
),
tps65090_REG
(
FET4
),
tps65090_REG
(
FET5
),
tps65090_REG
(
FET6
),
tps65090_REG
(
FET7
),
static
struct
regulator_desc
tps65090_regulator_desc
[]
=
{
tps65090_REG_DESC
(
DCDC1
,
"vsys1"
,
0x0C
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
DCDC2
,
"vsys2"
,
0x0D
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
DCDC3
,
"vsys3"
,
0x0E
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
FET1
,
"infet1"
,
0x0F
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
FET2
,
"infet2"
,
0x10
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
FET3
,
"infet3"
,
0x11
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
FET4
,
"infet4"
,
0x12
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
FET5
,
"infet5"
,
0x13
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
FET6
,
"infet6"
,
0x14
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
FET7
,
"infet7"
,
0x15
,
tps65090_reg_contol_ops
),
tps65090_REG_DESC
(
LDO1
,
"vsys_l1"
,
0
,
tps65090_ldo_ops
),
tps65090_REG_DESC
(
LDO2
,
"vsys_l2"
,
0
,
tps65090_ldo_ops
),
};
static
inline
struct
tps65090_regulator
*
find_regulator_info
(
int
id
)
static
inline
bool
is_dcdc
(
int
id
)
{
struct
tps65090_regulator
*
ri
;
int
i
;
switch
(
id
)
{
case
TPS65090_REGULATOR_DCDC1
:
case
TPS65090_REGULATOR_DCDC2
:
case
TPS65090_REGULATOR_DCDC3
:
return
true
;
default:
return
false
;
}
}
static
int
tps65090_config_ext_control
(
struct
tps65090_regulator
*
ri
,
bool
enable
)
{
int
ret
;
struct
device
*
parent
=
ri
->
dev
->
parent
;
unsigned
int
reg_en_reg
=
ri
->
desc
->
enable_reg
;
if
(
enable
)
ret
=
tps65090_set_bits
(
parent
,
reg_en_reg
,
1
);
else
ret
=
tps65090_clr_bits
(
parent
,
reg_en_reg
,
1
);
if
(
ret
<
0
)
dev_err
(
ri
->
dev
,
"Error in updating reg 0x%x
\n
"
,
reg_en_reg
);
return
ret
;
}
static
int
tps65090_regulator_disable_ext_control
(
struct
tps65090_regulator
*
ri
,
struct
tps65090_regulator_plat_data
*
tps_pdata
)
{
int
ret
=
0
;
struct
device
*
parent
=
ri
->
dev
->
parent
;
unsigned
int
reg_en_reg
=
ri
->
desc
->
enable_reg
;
/*
* First enable output for internal control if require.
* And then disable external control.
*/
if
(
tps_pdata
->
reg_init_data
->
constraints
.
always_on
||
tps_pdata
->
reg_init_data
->
constraints
.
boot_on
)
{
ret
=
tps65090_set_bits
(
parent
,
reg_en_reg
,
0
);
if
(
ret
<
0
)
{
dev_err
(
ri
->
dev
,
"Error in set reg 0x%x
\n
"
,
reg_en_reg
);
return
ret
;
}
}
return
tps65090_config_ext_control
(
ri
,
false
);
}
static
void
tps65090_configure_regulator_config
(
struct
tps65090_regulator_plat_data
*
tps_pdata
,
struct
regulator_config
*
config
)
{
if
(
gpio_is_valid
(
tps_pdata
->
gpio
))
{
int
gpio_flag
=
GPIOF_OUT_INIT_LOW
;
if
(
tps_pdata
->
reg_init_data
->
constraints
.
always_on
||
tps_pdata
->
reg_init_data
->
constraints
.
boot_on
)
gpio_flag
=
GPIOF_OUT_INIT_HIGH
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
TPS65090_regulator
);
i
++
)
{
ri
=
&
TPS65090_regulator
[
i
];
if
(
ri
->
desc
.
id
==
id
)
return
ri
;
config
->
ena_gpio
=
tps_pdata
->
gpio
;
config
->
ena_gpio_flags
=
gpio_flag
;
}
return
NULL
;
}
static
int
__devinit
tps65090_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
tps65090_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
tps65090
*
tps65090_mfd
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
tps65090_regulator
*
ri
=
NULL
;
struct
regulator_config
config
=
{
};
struct
regulator_dev
*
rdev
;
struct
tps65090_regulator_platform_data
*
tps_pdata
;
int
id
=
pdev
->
id
;
struct
tps65090_regulator_plat_data
*
tps_pdata
;
struct
tps65090_regulator
*
pmic
;
struct
tps65090_platform_data
*
tps65090_pdata
;
int
num
;
int
ret
;
dev_dbg
(
&
pdev
->
dev
,
"Probing regulator
%d
\n
"
,
id
);
dev_dbg
(
&
pdev
->
dev
,
"Probing regulator
\n
"
);
ri
=
find_regulator_info
(
id
);
if
(
ri
==
NULL
)
{
dev_err
(
&
pdev
->
dev
,
"
invalid regulator ID specified
\n
"
);
tps65090_pdata
=
dev_get_platdata
(
pdev
->
dev
.
parent
);
if
(
!
tps65090_pdata
)
{
dev_err
(
&
pdev
->
dev
,
"
Platform data missing
\n
"
);
return
-
EINVAL
;
}
tps_pdata
=
pdev
->
dev
.
platform_data
;
ri
->
dev
=
&
pdev
->
dev
;
config
.
dev
=
&
pdev
->
dev
;
config
.
init_data
=
&
tps_pdata
->
regulator
;
config
.
driver_data
=
ri
;
config
.
regmap
=
tps65090_mfd
->
rmap
;
rdev
=
regulator_register
(
&
ri
->
desc
,
&
config
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
ri
->
desc
.
name
);
return
PTR_ERR
(
rdev
);
pmic
=
devm_kzalloc
(
&
pdev
->
dev
,
TPS65090_REGULATOR_MAX
*
sizeof
(
*
pmic
),
GFP_KERNEL
);
if
(
!
pmic
)
{
dev_err
(
&
pdev
->
dev
,
"mem alloc for pmic failed
\n
"
);
return
-
ENOMEM
;
}
for
(
num
=
0
;
num
<
TPS65090_REGULATOR_MAX
;
num
++
)
{
tps_pdata
=
tps65090_pdata
->
reg_pdata
[
num
];
ri
=
&
pmic
[
num
];
ri
->
dev
=
&
pdev
->
dev
;
ri
->
desc
=
&
tps65090_regulator_desc
[
num
];
/*
* TPS5090 DCDC support the control from external digital input.
* Configure it as per platform data.
*/
if
(
tps_pdata
&&
is_dcdc
(
num
)
&&
tps_pdata
->
reg_init_data
)
{
if
(
tps_pdata
->
enable_ext_control
)
{
tps65090_configure_regulator_config
(
tps_pdata
,
&
config
);
ri
->
desc
->
ops
=
&
tps65090_ext_control_ops
;
}
else
{
ret
=
tps65090_regulator_disable_ext_control
(
ri
,
tps_pdata
);
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"failed disable ext control
\n
"
);
goto
scrub
;
}
}
}
config
.
dev
=
&
pdev
->
dev
;
config
.
driver_data
=
ri
;
config
.
regmap
=
tps65090_mfd
->
rmap
;
if
(
tps_pdata
)
config
.
init_data
=
tps_pdata
->
reg_init_data
;
else
config
.
init_data
=
NULL
;
rdev
=
regulator_register
(
ri
->
desc
,
&
config
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
ri
->
desc
->
name
);
ret
=
PTR_ERR
(
rdev
);
goto
scrub
;
}
ri
->
rdev
=
rdev
;
/* Enable external control if it is require */
if
(
tps_pdata
&&
is_dcdc
(
num
)
&&
tps_pdata
->
reg_init_data
&&
tps_pdata
->
enable_ext_control
)
{
ret
=
tps65090_config_ext_control
(
ri
,
true
);
if
(
ret
<
0
)
{
/* Increment num to get unregister rdev */
num
++
;
goto
scrub
;
}
}
}
platform_set_drvdata
(
pdev
,
rdev
);
platform_set_drvdata
(
pdev
,
pmic
);
return
0
;
scrub:
while
(
--
num
>=
0
)
{
ri
=
&
pmic
[
num
];
regulator_unregister
(
ri
->
rdev
);
}
return
ret
;
}
static
int
__devexit
tps65090_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
tps65090_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
struct
tps65090_regulator
*
pmic
=
platform_get_drvdata
(
pdev
);
struct
tps65090_regulator
*
ri
;
int
num
;
regulator_unregister
(
rdev
);
for
(
num
=
0
;
num
<
TPS65090_REGULATOR_MAX
;
++
num
)
{
ri
=
&
pmic
[
num
];
regulator_unregister
(
ri
->
rdev
);
}
return
0
;
}
static
struct
platform_driver
tps65090_regulator_driver
=
{
.
driver
=
{
.
name
=
"tps65090-
regulator
"
,
.
name
=
"tps65090-
pmic
"
,
.
owner
=
THIS_MODULE
,
},
.
probe
=
tps65090_regulator_probe
,
.
remove
=
__devexit_p
(
tps65090_regulator_remove
)
,
.
remove
=
tps65090_regulator_remove
,
};
static
int
__init
tps65090_regulator_init
(
void
)
...
...
drivers/regulator/tps65217-regulator.c
View file @
1f9cc5f7
...
...
@@ -332,7 +332,7 @@ static struct tps65217_board *tps65217_parse_dt(struct platform_device *pdev)
}
#endif
static
int
__devinit
tps65217_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
tps65217_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
tps65217
*
tps
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
tps65217_board
*
pdata
=
dev_get_platdata
(
tps
->
dev
);
...
...
@@ -397,7 +397,7 @@ static int __devinit tps65217_regulator_probe(struct platform_device *pdev)
return
ret
;
}
static
int
__devexit
tps65217_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
tps65217_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
tps65217
*
tps
=
platform_get_drvdata
(
pdev
);
unsigned
int
i
;
...
...
@@ -415,7 +415,7 @@ static struct platform_driver tps65217_regulator_driver = {
.
name
=
"tps65217-pmic"
,
},
.
probe
=
tps65217_regulator_probe
,
.
remove
=
__devexit_p
(
tps65217_regulator_remove
)
,
.
remove
=
tps65217_regulator_remove
,
};
static
int
__init
tps65217_regulator_init
(
void
)
...
...
drivers/regulator/tps6524x-regulator.c
View file @
1f9cc5f7
...
...
@@ -592,7 +592,7 @@ static int pmic_remove(struct spi_device *spi)
return
0
;
}
static
int
__devinit
pmic_probe
(
struct
spi_device
*
spi
)
static
int
pmic_probe
(
struct
spi_device
*
spi
)
{
struct
tps6524x
*
hw
;
struct
device
*
dev
=
&
spi
->
dev
;
...
...
@@ -649,7 +649,7 @@ static int __devinit pmic_probe(struct spi_device *spi)
static
struct
spi_driver
pmic_driver
=
{
.
probe
=
pmic_probe
,
.
remove
=
__devexit_p
(
pmic_remove
)
,
.
remove
=
pmic_remove
,
.
driver
=
{
.
name
=
"tps6524x"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/tps6586x-regulator.c
View file @
1f9cc5f7
...
...
@@ -17,10 +17,12 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/of.h>
#include <linux/slab.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/of_regulator.h>
#include <linux/mfd/tps6586x.h>
/* supply control and voltage setting */
...
...
@@ -255,10 +257,10 @@ static inline int tps6586x_regulator_preinit(struct device *parent,
1
<<
ri
->
enable_bit
[
1
]);
}
static
int
tps6586x_regulator_set_slew_rate
(
struct
platform_device
*
pdev
)
static
int
tps6586x_regulator_set_slew_rate
(
struct
platform_device
*
pdev
,
int
id
,
struct
regulator_init_data
*
p
)
{
struct
device
*
parent
=
pdev
->
dev
.
parent
;
struct
regulator_init_data
*
p
=
pdev
->
dev
.
platform_data
;
struct
tps6586x_settings
*
setting
=
p
->
driver_data
;
uint8_t
reg
;
...
...
@@ -269,7 +271,7 @@ static int tps6586x_regulator_set_slew_rate(struct platform_device *pdev)
return
0
;
/* only SM0 and SM1 can have the slew rate settings */
switch
(
pdev
->
id
)
{
switch
(
id
)
{
case
TPS6586X_ID_SM_0
:
reg
=
TPS6586X_SM0SL
;
break
;
...
...
@@ -298,58 +300,185 @@ static inline struct tps6586x_regulator *find_regulator_info(int id)
return
NULL
;
}
static
int
__devinit
tps6586x_regulator_probe
(
struct
platform_device
*
pdev
)
#ifdef CONFIG_OF
static
struct
of_regulator_match
tps6586x_matches
[]
=
{
{
.
name
=
"sys"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_SYS
},
{
.
name
=
"sm0"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_SM_0
},
{
.
name
=
"sm1"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_SM_1
},
{
.
name
=
"sm2"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_SM_2
},
{
.
name
=
"ldo0"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_0
},
{
.
name
=
"ldo1"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_1
},
{
.
name
=
"ldo2"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_2
},
{
.
name
=
"ldo3"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_3
},
{
.
name
=
"ldo4"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_4
},
{
.
name
=
"ldo5"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_5
},
{
.
name
=
"ldo6"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_6
},
{
.
name
=
"ldo7"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_7
},
{
.
name
=
"ldo8"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_8
},
{
.
name
=
"ldo9"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_9
},
{
.
name
=
"ldo_rtc"
,
.
driver_data
=
(
void
*
)
TPS6586X_ID_LDO_RTC
},
};
static
struct
tps6586x_platform_data
*
tps6586x_parse_regulator_dt
(
struct
platform_device
*
pdev
,
struct
of_regulator_match
**
tps6586x_reg_matches
)
{
const
unsigned
int
num
=
ARRAY_SIZE
(
tps6586x_matches
);
struct
device_node
*
np
=
pdev
->
dev
.
parent
->
of_node
;
struct
device_node
*
regs
;
const
char
*
sys_rail
=
NULL
;
unsigned
int
i
;
struct
tps6586x_platform_data
*
pdata
;
int
err
;
regs
=
of_find_node_by_name
(
np
,
"regulators"
);
if
(
!
regs
)
{
dev_err
(
&
pdev
->
dev
,
"regulator node not found
\n
"
);
return
NULL
;
}
err
=
of_regulator_match
(
&
pdev
->
dev
,
regs
,
tps6586x_matches
,
num
);
if
(
err
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"Regulator match failed, e %d
\n
"
,
err
);
of_node_put
(
regs
);
return
NULL
;
}
of_node_put
(
regs
);
pdata
=
devm_kzalloc
(
&
pdev
->
dev
,
sizeof
(
*
pdata
),
GFP_KERNEL
);
if
(
!
pdata
)
{
dev_err
(
&
pdev
->
dev
,
"Memory alloction failed
\n
"
);
return
NULL
;
}
for
(
i
=
0
;
i
<
num
;
i
++
)
{
int
id
;
if
(
!
tps6586x_matches
[
i
].
init_data
)
continue
;
pdata
->
reg_init_data
[
i
]
=
tps6586x_matches
[
i
].
init_data
;
id
=
(
int
)
tps6586x_matches
[
i
].
driver_data
;
if
(
id
==
TPS6586X_ID_SYS
)
sys_rail
=
pdata
->
reg_init_data
[
i
]
->
constraints
.
name
;
if
((
id
==
TPS6586X_ID_LDO_5
)
||
(
id
==
TPS6586X_ID_LDO_RTC
))
pdata
->
reg_init_data
[
i
]
->
supply_regulator
=
sys_rail
;
}
*
tps6586x_reg_matches
=
tps6586x_matches
;
return
pdata
;
}
#else
static
struct
tps6586x_platform_data
*
tps6586x_parse_regulator_dt
(
struct
platform_device
*
pdev
,
struct
of_regulator_match
**
tps6586x_reg_matches
)
{
*
tps6586x_reg_matches
=
NULL
;
return
NULL
;
}
#endif
static
int
tps6586x_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
tps6586x_regulator
*
ri
=
NULL
;
struct
regulator_config
config
=
{
};
struct
regulator_dev
*
rdev
;
int
id
=
pdev
->
id
;
struct
regulator_dev
**
rdev
;
struct
regulator_init_data
*
reg_data
;
struct
tps6586x_platform_data
*
pdata
;
struct
of_regulator_match
*
tps6586x_reg_matches
=
NULL
;
int
id
;
int
err
;
dev_dbg
(
&
pdev
->
dev
,
"Probing regulator %d
\n
"
,
id
);
ri
=
find_regulator_info
(
id
);
if
(
ri
==
NULL
)
{
dev_err
(
&
pdev
->
dev
,
"invalid regulator ID specified
\n
"
);
return
-
EINVAL
;
}
pdata
=
dev_get_platdata
(
pdev
->
dev
.
parent
);
if
((
!
pdata
)
&&
(
pdev
->
dev
.
parent
->
of_node
))
pdata
=
tps6586x_parse_regulator_dt
(
pdev
,
&
tps6586x_reg_matches
);
err
=
tps6586x_regulator_preinit
(
pdev
->
dev
.
parent
,
ri
);
if
(
err
)
return
err
;
if
(
!
pdata
)
{
dev_err
(
&
pdev
->
dev
,
"Platform data not available, exiting
\n
"
);
return
-
ENODEV
;
}
config
.
dev
=
pdev
->
dev
.
parent
;
config
.
of_node
=
pdev
->
dev
.
of_node
;
config
.
init_data
=
pdev
->
dev
.
platform_data
;
config
.
driver_data
=
ri
;
rdev
=
devm_kzalloc
(
&
pdev
->
dev
,
TPS6586X_ID_MAX_REGULATOR
*
sizeof
(
*
rdev
),
GFP_KERNEL
);
if
(
!
rdev
)
{
dev_err
(
&
pdev
->
dev
,
"Mmemory alloc failed
\n
"
);
return
-
ENOMEM
;
}
rdev
=
regulator_register
(
&
ri
->
desc
,
&
config
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
ri
->
desc
.
name
);
return
PTR_ERR
(
rdev
);
for
(
id
=
0
;
id
<
TPS6586X_ID_MAX_REGULATOR
;
++
id
)
{
reg_data
=
pdata
->
reg_init_data
[
id
];
ri
=
find_regulator_info
(
id
);
if
(
!
ri
)
{
dev_err
(
&
pdev
->
dev
,
"invalid regulator ID specified
\n
"
);
err
=
-
EINVAL
;
goto
fail
;
}
err
=
tps6586x_regulator_preinit
(
pdev
->
dev
.
parent
,
ri
);
if
(
err
)
{
dev_err
(
&
pdev
->
dev
,
"regulator %d preinit failed, e %d
\n
"
,
id
,
err
);
goto
fail
;
}
config
.
dev
=
pdev
->
dev
.
parent
;
config
.
init_data
=
reg_data
;
config
.
driver_data
=
ri
;
if
(
tps6586x_reg_matches
)
config
.
of_node
=
tps6586x_reg_matches
[
id
].
of_node
;
rdev
[
id
]
=
regulator_register
(
&
ri
->
desc
,
&
config
);
if
(
IS_ERR
(
rdev
[
id
]))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
ri
->
desc
.
name
);
err
=
PTR_ERR
(
rdev
[
id
]);
goto
fail
;
}
if
(
reg_data
)
{
err
=
tps6586x_regulator_set_slew_rate
(
pdev
,
id
,
reg_data
);
if
(
err
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"Slew rate config failed, e %d
\n
"
,
err
);
regulator_unregister
(
rdev
[
id
]);
goto
fail
;
}
}
}
platform_set_drvdata
(
pdev
,
rdev
);
return
0
;
return
tps6586x_regulator_set_slew_rate
(
pdev
);
fail:
while
(
--
id
>=
0
)
regulator_unregister
(
rdev
[
id
]);
return
err
;
}
static
int
__devexit
tps6586x_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
tps6586x_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
struct
regulator_dev
**
rdev
=
platform_get_drvdata
(
pdev
);
int
id
=
TPS6586X_ID_MAX_REGULATOR
;
while
(
--
id
>=
0
)
regulator_unregister
(
rdev
[
id
]);
regulator_unregister
(
rdev
);
return
0
;
}
static
struct
platform_driver
tps6586x_regulator_driver
=
{
.
driver
=
{
.
name
=
"tps6586x-
regulator
"
,
.
name
=
"tps6586x-
pmic
"
,
.
owner
=
THIS_MODULE
,
},
.
probe
=
tps6586x_regulator_probe
,
.
remove
=
__devexit_p
(
tps6586x_regulator_remove
)
,
.
remove
=
tps6586x_regulator_remove
,
};
static
int
__init
tps6586x_regulator_init
(
void
)
...
...
drivers/regulator/tps65910-regulator.c
View file @
1f9cc5f7
...
...
@@ -1026,7 +1026,7 @@ static inline struct tps65910_board *tps65910_parse_dt_reg_data(
}
#endif
static
__devinit
int
tps65910_probe
(
struct
platform_device
*
pdev
)
static
int
tps65910_probe
(
struct
platform_device
*
pdev
)
{
struct
tps65910
*
tps65910
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
regulator_config
config
=
{
};
...
...
@@ -1184,7 +1184,7 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
return
err
;
}
static
int
__devexit
tps65910_remove
(
struct
platform_device
*
pdev
)
static
int
tps65910_remove
(
struct
platform_device
*
pdev
)
{
struct
tps65910_reg
*
pmic
=
platform_get_drvdata
(
pdev
);
int
i
;
...
...
@@ -1231,7 +1231,7 @@ static struct platform_driver tps65910_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
tps65910_probe
,
.
remove
=
__devexit_p
(
tps65910_remove
)
,
.
remove
=
tps65910_remove
,
.
shutdown
=
tps65910_shutdown
,
};
...
...
drivers/regulator/tps65912-regulator.c
View file @
1f9cc5f7
...
...
@@ -459,7 +459,7 @@ static struct regulator_ops tps65912_ops_ldo = {
.
list_voltage
=
tps65912_list_voltage
,
};
static
__devinit
int
tps65912_probe
(
struct
platform_device
*
pdev
)
static
int
tps65912_probe
(
struct
platform_device
*
pdev
)
{
struct
tps65912
*
tps65912
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
regulator_config
config
=
{
};
...
...
@@ -525,7 +525,7 @@ static __devinit int tps65912_probe(struct platform_device *pdev)
return
err
;
}
static
int
__devexit
tps65912_remove
(
struct
platform_device
*
pdev
)
static
int
tps65912_remove
(
struct
platform_device
*
pdev
)
{
struct
tps65912_reg
*
tps65912_reg
=
platform_get_drvdata
(
pdev
);
int
i
;
...
...
@@ -541,7 +541,7 @@ static struct platform_driver tps65912_driver = {
.
owner
=
THIS_MODULE
,
},
.
probe
=
tps65912_probe
,
.
remove
=
__devexit_p
(
tps65912_remove
)
,
.
remove
=
tps65912_remove
,
};
static
int
__init
tps65912_init
(
void
)
...
...
drivers/regulator/tps80031-regulator.c
0 → 100644
View file @
1f9cc5f7
This diff is collapsed.
Click to expand it.
drivers/regulator/twl-regulator.c
View file @
1f9cc5f7
...
...
@@ -1116,7 +1116,7 @@ static const struct of_device_id twl_of_match[] __devinitconst = {
};
MODULE_DEVICE_TABLE
(
of
,
twl_of_match
);
static
int
__devinit
twlreg_probe
(
struct
platform_device
*
pdev
)
static
int
twlreg_probe
(
struct
platform_device
*
pdev
)
{
int
i
,
id
;
struct
twlreg_info
*
info
;
...
...
@@ -1241,7 +1241,7 @@ static int __devinit twlreg_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
twlreg_remove
(
struct
platform_device
*
pdev
)
static
int
twlreg_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
struct
twlreg_info
*
info
=
rdev
->
reg_data
;
...
...
@@ -1255,7 +1255,7 @@ MODULE_ALIAS("platform:twl_reg");
static
struct
platform_driver
twlreg_driver
=
{
.
probe
=
twlreg_probe
,
.
remove
=
__devexit_p
(
twlreg_remove
)
,
.
remove
=
twlreg_remove
,
/* NOTE: short name, to work around driver model truncation of
* "twl_regulator.12" (and friends) to "twl_regulator.1".
*/
...
...
drivers/regulator/vexpress.c
0 → 100644
View file @
1f9cc5f7
/*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Copyright (C) 2012 ARM Limited
*/
#define DRVNAME "vexpress-regulator"
#define pr_fmt(fmt) DRVNAME ": " fmt
#include <linux/device.h>
#include <linux/err.h>
#include <linux/module.h>
#include <linux/of_device.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/of_regulator.h>
#include <linux/vexpress.h>
struct
vexpress_regulator
{
struct
regulator_desc
desc
;
struct
regulator_dev
*
regdev
;
struct
vexpress_config_func
*
func
;
};
static
int
vexpress_regulator_get_voltage
(
struct
regulator_dev
*
regdev
)
{
struct
vexpress_regulator
*
reg
=
rdev_get_drvdata
(
regdev
);
u32
uV
;
int
err
=
vexpress_config_read
(
reg
->
func
,
0
,
&
uV
);
return
err
?
err
:
uV
;
}
static
int
vexpress_regulator_set_voltage
(
struct
regulator_dev
*
regdev
,
int
min_uV
,
int
max_uV
,
unsigned
*
selector
)
{
struct
vexpress_regulator
*
reg
=
rdev_get_drvdata
(
regdev
);
return
vexpress_config_write
(
reg
->
func
,
0
,
min_uV
);
}
static
struct
regulator_ops
vexpress_regulator_ops_ro
=
{
.
get_voltage
=
vexpress_regulator_get_voltage
,
};
static
struct
regulator_ops
vexpress_regulator_ops
=
{
.
get_voltage
=
vexpress_regulator_get_voltage
,
.
set_voltage
=
vexpress_regulator_set_voltage
,
};
static
int
vexpress_regulator_probe
(
struct
platform_device
*
pdev
)
{
int
err
;
struct
vexpress_regulator
*
reg
;
struct
regulator_init_data
*
init_data
;
struct
regulator_config
config
=
{
};
reg
=
devm_kzalloc
(
&
pdev
->
dev
,
sizeof
(
*
reg
),
GFP_KERNEL
);
if
(
!
reg
)
{
err
=
-
ENOMEM
;
goto
error_kzalloc
;
}
reg
->
func
=
vexpress_config_func_get_by_dev
(
&
pdev
->
dev
);
if
(
!
reg
->
func
)
{
err
=
-
ENXIO
;
goto
error_get_func
;
}
reg
->
desc
.
name
=
dev_name
(
&
pdev
->
dev
);
reg
->
desc
.
type
=
REGULATOR_VOLTAGE
;
reg
->
desc
.
owner
=
THIS_MODULE
;
reg
->
desc
.
continuous_voltage_range
=
true
;
init_data
=
of_get_regulator_init_data
(
&
pdev
->
dev
,
pdev
->
dev
.
of_node
);
if
(
!
init_data
)
{
err
=
-
EINVAL
;
goto
error_get_regulator_init_data
;
}
init_data
->
constraints
.
apply_uV
=
0
;
if
(
init_data
->
constraints
.
min_uV
&&
init_data
->
constraints
.
max_uV
)
reg
->
desc
.
ops
=
&
vexpress_regulator_ops
;
else
reg
->
desc
.
ops
=
&
vexpress_regulator_ops_ro
;
config
.
dev
=
&
pdev
->
dev
;
config
.
init_data
=
init_data
;
config
.
driver_data
=
reg
;
config
.
of_node
=
pdev
->
dev
.
of_node
;
reg
->
regdev
=
regulator_register
(
&
reg
->
desc
,
&
config
);
if
(
IS_ERR
(
reg
->
regdev
))
{
err
=
PTR_ERR
(
reg
->
regdev
);
goto
error_regulator_register
;
}
platform_set_drvdata
(
pdev
,
reg
);
return
0
;
error_regulator_register:
error_get_regulator_init_data:
vexpress_config_func_put
(
reg
->
func
);
error_get_func:
error_kzalloc:
return
err
;
}
static
int
vexpress_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
vexpress_regulator
*
reg
=
platform_get_drvdata
(
pdev
);
vexpress_config_func_put
(
reg
->
func
);
regulator_unregister
(
reg
->
regdev
);
return
0
;
}
static
struct
of_device_id
vexpress_regulator_of_match
[]
=
{
{
.
compatible
=
"arm,vexpress-volt"
,
},
{
}
};
static
struct
platform_driver
vexpress_regulator_driver
=
{
.
probe
=
vexpress_regulator_probe
,
.
remove
=
vexpress_regulator_remove
,
.
driver
=
{
.
name
=
DRVNAME
,
.
owner
=
THIS_MODULE
,
.
of_match_table
=
vexpress_regulator_of_match
,
},
};
module_platform_driver
(
vexpress_regulator_driver
);
MODULE_AUTHOR
(
"Pawel Moll <pawel.moll@arm.com>"
);
MODULE_DESCRIPTION
(
"Versatile Express regulator"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_ALIAS
(
"platform:vexpress-regulator"
);
drivers/regulator/virtual.c
View file @
1f9cc5f7
...
...
@@ -285,7 +285,7 @@ static const struct attribute_group regulator_virtual_attr_group = {
.
attrs
=
regulator_virtual_attributes
,
};
static
int
__devinit
regulator_virtual_probe
(
struct
platform_device
*
pdev
)
static
int
regulator_virtual_probe
(
struct
platform_device
*
pdev
)
{
char
*
reg_id
=
pdev
->
dev
.
platform_data
;
struct
virtual_consumer_data
*
drvdata
;
...
...
@@ -321,7 +321,7 @@ static int __devinit regulator_virtual_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
regulator_virtual_remove
(
struct
platform_device
*
pdev
)
static
int
regulator_virtual_remove
(
struct
platform_device
*
pdev
)
{
struct
virtual_consumer_data
*
drvdata
=
platform_get_drvdata
(
pdev
);
...
...
@@ -337,7 +337,7 @@ static int __devexit regulator_virtual_remove(struct platform_device *pdev)
static
struct
platform_driver
regulator_virtual_consumer_driver
=
{
.
probe
=
regulator_virtual_probe
,
.
remove
=
__devexit_p
(
regulator_virtual_remove
)
,
.
remove
=
regulator_virtual_remove
,
.
driver
=
{
.
name
=
"reg-virt-consumer"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/wm831x-dcdc.c
View file @
1f9cc5f7
...
...
@@ -387,7 +387,7 @@ static struct regulator_ops wm831x_buckv_ops = {
* Set up DVS control. We just log errors since we can still run
* (with reduced performance) if we fail.
*/
static
__devinit
void
wm831x_buckv_dvs_init
(
struct
wm831x_dcdc
*
dcdc
,
static
void
wm831x_buckv_dvs_init
(
struct
wm831x_dcdc
*
dcdc
,
struct
wm831x_buckv_pdata
*
pdata
)
{
struct
wm831x
*
wm831x
=
dcdc
->
wm831x
;
...
...
@@ -448,7 +448,7 @@ static __devinit void wm831x_buckv_dvs_init(struct wm831x_dcdc *dcdc,
}
}
static
__devinit
int
wm831x_buckv_probe
(
struct
platform_device
*
pdev
)
static
int
wm831x_buckv_probe
(
struct
platform_device
*
pdev
)
{
struct
wm831x
*
wm831x
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm831x_pdata
*
pdata
=
wm831x
->
dev
->
platform_data
;
...
...
@@ -562,7 +562,7 @@ static __devinit int wm831x_buckv_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm831x_buckv_remove
(
struct
platform_device
*
pdev
)
static
int
wm831x_buckv_remove
(
struct
platform_device
*
pdev
)
{
struct
wm831x_dcdc
*
dcdc
=
platform_get_drvdata
(
pdev
);
struct
wm831x
*
wm831x
=
dcdc
->
wm831x
;
...
...
@@ -582,7 +582,7 @@ static __devexit int wm831x_buckv_remove(struct platform_device *pdev)
static
struct
platform_driver
wm831x_buckv_driver
=
{
.
probe
=
wm831x_buckv_probe
,
.
remove
=
__devexit_p
(
wm831x_buckv_remove
)
,
.
remove
=
wm831x_buckv_remove
,
.
driver
=
{
.
name
=
"wm831x-buckv"
,
.
owner
=
THIS_MODULE
,
...
...
@@ -623,7 +623,7 @@ static struct regulator_ops wm831x_buckp_ops = {
.
set_suspend_mode
=
wm831x_dcdc_set_suspend_mode
,
};
static
__devinit
int
wm831x_buckp_probe
(
struct
platform_device
*
pdev
)
static
int
wm831x_buckp_probe
(
struct
platform_device
*
pdev
)
{
struct
wm831x
*
wm831x
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm831x_pdata
*
pdata
=
wm831x
->
dev
->
platform_data
;
...
...
@@ -710,7 +710,7 @@ static __devinit int wm831x_buckp_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm831x_buckp_remove
(
struct
platform_device
*
pdev
)
static
int
wm831x_buckp_remove
(
struct
platform_device
*
pdev
)
{
struct
wm831x_dcdc
*
dcdc
=
platform_get_drvdata
(
pdev
);
...
...
@@ -725,7 +725,7 @@ static __devexit int wm831x_buckp_remove(struct platform_device *pdev)
static
struct
platform_driver
wm831x_buckp_driver
=
{
.
probe
=
wm831x_buckp_probe
,
.
remove
=
__devexit_p
(
wm831x_buckp_remove
)
,
.
remove
=
wm831x_buckp_remove
,
.
driver
=
{
.
name
=
"wm831x-buckp"
,
.
owner
=
THIS_MODULE
,
...
...
@@ -771,7 +771,7 @@ static struct regulator_ops wm831x_boostp_ops = {
.
disable
=
regulator_disable_regmap
,
};
static
__devinit
int
wm831x_boostp_probe
(
struct
platform_device
*
pdev
)
static
int
wm831x_boostp_probe
(
struct
platform_device
*
pdev
)
{
struct
wm831x
*
wm831x
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm831x_pdata
*
pdata
=
wm831x
->
dev
->
platform_data
;
...
...
@@ -845,7 +845,7 @@ static __devinit int wm831x_boostp_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm831x_boostp_remove
(
struct
platform_device
*
pdev
)
static
int
wm831x_boostp_remove
(
struct
platform_device
*
pdev
)
{
struct
wm831x_dcdc
*
dcdc
=
platform_get_drvdata
(
pdev
);
...
...
@@ -860,7 +860,7 @@ static __devexit int wm831x_boostp_remove(struct platform_device *pdev)
static
struct
platform_driver
wm831x_boostp_driver
=
{
.
probe
=
wm831x_boostp_probe
,
.
remove
=
__devexit_p
(
wm831x_boostp_remove
)
,
.
remove
=
wm831x_boostp_remove
,
.
driver
=
{
.
name
=
"wm831x-boostp"
,
.
owner
=
THIS_MODULE
,
...
...
@@ -883,7 +883,7 @@ static struct regulator_ops wm831x_epe_ops = {
.
get_status
=
wm831x_dcdc_get_status
,
};
static
__devinit
int
wm831x_epe_probe
(
struct
platform_device
*
pdev
)
static
int
wm831x_epe_probe
(
struct
platform_device
*
pdev
)
{
struct
wm831x
*
wm831x
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm831x_pdata
*
pdata
=
wm831x
->
dev
->
platform_data
;
...
...
@@ -936,7 +936,7 @@ static __devinit int wm831x_epe_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm831x_epe_remove
(
struct
platform_device
*
pdev
)
static
int
wm831x_epe_remove
(
struct
platform_device
*
pdev
)
{
struct
wm831x_dcdc
*
dcdc
=
platform_get_drvdata
(
pdev
);
...
...
@@ -948,7 +948,7 @@ static __devexit int wm831x_epe_remove(struct platform_device *pdev)
static
struct
platform_driver
wm831x_epe_driver
=
{
.
probe
=
wm831x_epe_probe
,
.
remove
=
__devexit_p
(
wm831x_epe_remove
)
,
.
remove
=
wm831x_epe_remove
,
.
driver
=
{
.
name
=
"wm831x-epe"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/wm831x-isink.c
View file @
1f9cc5f7
...
...
@@ -148,7 +148,7 @@ static irqreturn_t wm831x_isink_irq(int irq, void *data)
}
static
__devinit
int
wm831x_isink_probe
(
struct
platform_device
*
pdev
)
static
int
wm831x_isink_probe
(
struct
platform_device
*
pdev
)
{
struct
wm831x
*
wm831x
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm831x_pdata
*
pdata
=
wm831x
->
dev
->
platform_data
;
...
...
@@ -221,7 +221,7 @@ static __devinit int wm831x_isink_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm831x_isink_remove
(
struct
platform_device
*
pdev
)
static
int
wm831x_isink_remove
(
struct
platform_device
*
pdev
)
{
struct
wm831x_isink
*
isink
=
platform_get_drvdata
(
pdev
);
...
...
@@ -236,7 +236,7 @@ static __devexit int wm831x_isink_remove(struct platform_device *pdev)
static
struct
platform_driver
wm831x_isink_driver
=
{
.
probe
=
wm831x_isink_probe
,
.
remove
=
__devexit_p
(
wm831x_isink_remove
)
,
.
remove
=
wm831x_isink_remove
,
.
driver
=
{
.
name
=
"wm831x-isink"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/wm831x-ldo.c
View file @
1f9cc5f7
...
...
@@ -247,7 +247,7 @@ static struct regulator_ops wm831x_gp_ldo_ops = {
.
disable
=
regulator_disable_regmap
,
};
static
__devinit
int
wm831x_gp_ldo_probe
(
struct
platform_device
*
pdev
)
static
int
wm831x_gp_ldo_probe
(
struct
platform_device
*
pdev
)
{
struct
wm831x
*
wm831x
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm831x_pdata
*
pdata
=
wm831x
->
dev
->
platform_data
;
...
...
@@ -334,7 +334,7 @@ static __devinit int wm831x_gp_ldo_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm831x_gp_ldo_remove
(
struct
platform_device
*
pdev
)
static
int
wm831x_gp_ldo_remove
(
struct
platform_device
*
pdev
)
{
struct
wm831x_ldo
*
ldo
=
platform_get_drvdata
(
pdev
);
...
...
@@ -349,7 +349,7 @@ static __devexit int wm831x_gp_ldo_remove(struct platform_device *pdev)
static
struct
platform_driver
wm831x_gp_ldo_driver
=
{
.
probe
=
wm831x_gp_ldo_probe
,
.
remove
=
__devexit_p
(
wm831x_gp_ldo_remove
)
,
.
remove
=
wm831x_gp_ldo_remove
,
.
driver
=
{
.
name
=
"wm831x-ldo"
,
.
owner
=
THIS_MODULE
,
...
...
@@ -504,7 +504,7 @@ static struct regulator_ops wm831x_aldo_ops = {
.
disable
=
regulator_disable_regmap
,
};
static
__devinit
int
wm831x_aldo_probe
(
struct
platform_device
*
pdev
)
static
int
wm831x_aldo_probe
(
struct
platform_device
*
pdev
)
{
struct
wm831x
*
wm831x
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm831x_pdata
*
pdata
=
wm831x
->
dev
->
platform_data
;
...
...
@@ -590,7 +590,7 @@ static __devinit int wm831x_aldo_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm831x_aldo_remove
(
struct
platform_device
*
pdev
)
static
int
wm831x_aldo_remove
(
struct
platform_device
*
pdev
)
{
struct
wm831x_ldo
*
ldo
=
platform_get_drvdata
(
pdev
);
...
...
@@ -603,7 +603,7 @@ static __devexit int wm831x_aldo_remove(struct platform_device *pdev)
static
struct
platform_driver
wm831x_aldo_driver
=
{
.
probe
=
wm831x_aldo_probe
,
.
remove
=
__devexit_p
(
wm831x_aldo_remove
)
,
.
remove
=
wm831x_aldo_remove
,
.
driver
=
{
.
name
=
"wm831x-aldo"
,
.
owner
=
THIS_MODULE
,
...
...
@@ -660,7 +660,7 @@ static struct regulator_ops wm831x_alive_ldo_ops = {
.
disable
=
regulator_disable_regmap
,
};
static
__devinit
int
wm831x_alive_ldo_probe
(
struct
platform_device
*
pdev
)
static
int
wm831x_alive_ldo_probe
(
struct
platform_device
*
pdev
)
{
struct
wm831x
*
wm831x
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm831x_pdata
*
pdata
=
wm831x
->
dev
->
platform_data
;
...
...
@@ -737,7 +737,7 @@ static __devinit int wm831x_alive_ldo_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm831x_alive_ldo_remove
(
struct
platform_device
*
pdev
)
static
int
wm831x_alive_ldo_remove
(
struct
platform_device
*
pdev
)
{
struct
wm831x_ldo
*
ldo
=
platform_get_drvdata
(
pdev
);
...
...
@@ -748,7 +748,7 @@ static __devexit int wm831x_alive_ldo_remove(struct platform_device *pdev)
static
struct
platform_driver
wm831x_alive_ldo_driver
=
{
.
probe
=
wm831x_alive_ldo_probe
,
.
remove
=
__devexit_p
(
wm831x_alive_ldo_remove
)
,
.
remove
=
wm831x_alive_ldo_remove
,
.
driver
=
{
.
name
=
"wm831x-alive-ldo"
,
.
owner
=
THIS_MODULE
,
...
...
drivers/regulator/wm8400-regulator.c
View file @
1f9cc5f7
...
...
@@ -226,7 +226,7 @@ static struct regulator_desc regulators[] = {
},
};
static
int
__devinit
wm8400_regulator_probe
(
struct
platform_device
*
pdev
)
static
int
wm8400_regulator_probe
(
struct
platform_device
*
pdev
)
{
struct
wm8400
*
wm8400
=
container_of
(
pdev
,
struct
wm8400
,
regulators
[
pdev
->
id
]);
struct
regulator_config
config
=
{
};
...
...
@@ -246,7 +246,7 @@ static int __devinit wm8400_regulator_probe(struct platform_device *pdev)
return
0
;
}
static
int
__devexit
wm8400_regulator_remove
(
struct
platform_device
*
pdev
)
static
int
wm8400_regulator_remove
(
struct
platform_device
*
pdev
)
{
struct
regulator_dev
*
rdev
=
platform_get_drvdata
(
pdev
);
...
...
@@ -261,7 +261,7 @@ static struct platform_driver wm8400_regulator_driver = {
.
name
=
"wm8400-regulator"
,
},
.
probe
=
wm8400_regulator_probe
,
.
remove
=
__devexit_p
(
wm8400_regulator_remove
)
,
.
remove
=
wm8400_regulator_remove
,
};
/**
...
...
drivers/regulator/wm8994-regulator.c
View file @
1f9cc5f7
...
...
@@ -99,7 +99,7 @@ static const struct regulator_desc wm8994_ldo_desc[] = {
},
};
static
__devinit
int
wm8994_ldo_probe
(
struct
platform_device
*
pdev
)
static
int
wm8994_ldo_probe
(
struct
platform_device
*
pdev
)
{
struct
wm8994
*
wm8994
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
struct
wm8994_pdata
*
pdata
=
wm8994
->
dev
->
platform_data
;
...
...
@@ -142,7 +142,7 @@ static __devinit int wm8994_ldo_probe(struct platform_device *pdev)
return
ret
;
}
static
__devexit
int
wm8994_ldo_remove
(
struct
platform_device
*
pdev
)
static
int
wm8994_ldo_remove
(
struct
platform_device
*
pdev
)
{
struct
wm8994_ldo
*
ldo
=
platform_get_drvdata
(
pdev
);
...
...
@@ -155,7 +155,7 @@ static __devexit int wm8994_ldo_remove(struct platform_device *pdev)
static
struct
platform_driver
wm8994_ldo_driver
=
{
.
probe
=
wm8994_ldo_probe
,
.
remove
=
__devexit_p
(
wm8994_ldo_remove
)
,
.
remove
=
wm8994_ldo_remove
,
.
driver
=
{
.
name
=
"wm8994-ldo"
,
.
owner
=
THIS_MODULE
,
...
...
include/linux/mfd/tps65090.h
View file @
1f9cc5f7
...
...
@@ -24,6 +24,25 @@
#include <linux/irq.h>
/* TPS65090 Regulator ID */
enum
{
TPS65090_REGULATOR_DCDC1
,
TPS65090_REGULATOR_DCDC2
,
TPS65090_REGULATOR_DCDC3
,
TPS65090_REGULATOR_FET1
,
TPS65090_REGULATOR_FET2
,
TPS65090_REGULATOR_FET3
,
TPS65090_REGULATOR_FET4
,
TPS65090_REGULATOR_FET5
,
TPS65090_REGULATOR_FET6
,
TPS65090_REGULATOR_FET7
,
TPS65090_REGULATOR_LDO1
,
TPS65090_REGULATOR_LDO2
,
/* Last entry for maximum ID */
TPS65090_REGULATOR_MAX
,
};
struct
tps65090
{
struct
mutex
lock
;
struct
device
*
dev
;
...
...
@@ -41,10 +60,26 @@ struct tps65090_subdev_info {
void
*
platform_data
;
};
/*
* struct tps65090_regulator_plat_data
*
* @reg_init_data: The regulator init data.
* @enable_ext_control: Enable extrenal control or not. Only available for
* DCDC1, DCDC2 and DCDC3.
* @gpio: Gpio number if external control is enabled and controlled through
* gpio.
*/
struct
tps65090_regulator_plat_data
{
struct
regulator_init_data
*
reg_init_data
;
bool
enable_ext_control
;
int
gpio
;
};
struct
tps65090_platform_data
{
int
irq_base
;
int
num_subdevs
;
struct
tps65090_subdev_info
*
subdevs
;
struct
tps65090_regulator_plat_data
*
reg_pdata
[
TPS65090_REGULATOR_MAX
];
};
/*
...
...
include/linux/mfd/tps6586x.h
View file @
1f9cc5f7
...
...
@@ -29,6 +29,7 @@ enum {
TPS6586X_ID_LDO_8
,
TPS6586X_ID_LDO_9
,
TPS6586X_ID_LDO_RTC
,
TPS6586X_ID_MAX_REGULATOR
,
};
enum
{
...
...
@@ -79,6 +80,8 @@ struct tps6586x_platform_data {
int
gpio_base
;
int
irq_base
;
bool
pm_off
;
struct
regulator_init_data
*
reg_init_data
[
TPS6586X_ID_MAX_REGULATOR
];
};
/*
...
...
include/linux/regulator/driver.h
View file @
1f9cc5f7
...
...
@@ -181,6 +181,8 @@ enum regulator_type {
* @type: Indicates if the regulator is a voltage or current regulator.
* @owner: Module providing the regulator, used for refcounting.
*
* @continuous_voltage_range: Indicates if the regulator can set any
* voltage within constrains range.
* @n_voltages: Number of selectors available for ops.list_voltage().
*
* @min_uV: Voltage given by the lowest selector (if linear mapping)
...
...
@@ -199,6 +201,7 @@ struct regulator_desc {
const
char
*
name
;
const
char
*
supply_name
;
int
id
;
bool
continuous_voltage_range
;
unsigned
n_voltages
;
struct
regulator_ops
*
ops
;
int
irq
;
...
...
include/linux/regulator/tps51632-regulator.h
0 → 100644
View file @
1f9cc5f7
/*
* tps51632-regulator.h -- TPS51632 regulator
*
* Interface for regulator driver for TPS51632 3-2-1 Phase D-Cap Step Down
* Driverless Controller with serial VID control and DVFS.
*
* Copyright (C) 2012 NVIDIA Corporation
* Author: Laxman Dewangan <ldewangan@nvidia.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef __LINUX_REGULATOR_TPS51632_H
#define __LINUX_REGULATOR_TPS51632_H
/*
* struct tps51632_regulator_platform_data - tps51632 regulator platform data.
*
* @reg_init_data: The regulator init data.
* @enable_pwm_dvfs: Enable PWM DVFS or not.
* @dvfs_step_20mV: Step for DVFS is 20mV or 10mV.
* @max_voltage_uV: Maximum possible voltage in PWM-DVFS mode.
* @base_voltage_uV: Base voltage when PWM-DVFS enabled.
*/
struct
tps51632_regulator_platform_data
{
struct
regulator_init_data
*
reg_init_data
;
bool
enable_pwm_dvfs
;
bool
dvfs_step_20mV
;
int
max_voltage_uV
;
int
base_voltage_uV
;
};
#endif
/* __LINUX_REGULATOR_TPS51632_H */
include/linux/regulator/tps65090-regulator.h
deleted
100644 → 0
View file @
207f3089
/*
* Regulator driver interface for TI TPS65090 PMIC family
*
* Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved.
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __REGULATOR_TPS65090_H
#define __REGULATOR_TPS65090_H
#include <linux/regulator/machine.h>
#define tps65090_rails(_name) "tps65090_"#_name
enum
{
TPS65090_ID_DCDC1
,
TPS65090_ID_DCDC2
,
TPS65090_ID_DCDC3
,
TPS65090_ID_FET1
,
TPS65090_ID_FET2
,
TPS65090_ID_FET3
,
TPS65090_ID_FET4
,
TPS65090_ID_FET5
,
TPS65090_ID_FET6
,
TPS65090_ID_FET7
,
};
/*
* struct tps65090_regulator_platform_data
*
* @regulator: The regulator init data.
* @slew_rate_uV_per_us: Slew rate microvolt per microsec.
*/
struct
tps65090_regulator_platform_data
{
struct
regulator_init_data
regulator
;
};
#endif
/* __REGULATOR_TPS65090_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment