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