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
924ee2c9
Commit
924ee2c9
authored
Nov 23, 2011
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'regulator/topic/dt' into regulator-next
parents
68aaa37d
69511a45
Changes
46
Hide whitespace changes
Inline
Side-by-side
Showing
46 changed files
with
367 additions
and
58 deletions
+367
-58
Documentation/devicetree/bindings/regulator/fixed-regulator.txt
...ntation/devicetree/bindings/regulator/fixed-regulator.txt
+29
-0
Documentation/devicetree/bindings/regulator/regulator.txt
Documentation/devicetree/bindings/regulator/regulator.txt
+54
-0
drivers/regulator/88pm8607.c
drivers/regulator/88pm8607.c
+1
-1
drivers/regulator/Makefile
drivers/regulator/Makefile
+1
-0
drivers/regulator/aat2870-regulator.c
drivers/regulator/aat2870-regulator.c
+1
-1
drivers/regulator/ab3100.c
drivers/regulator/ab3100.c
+1
-1
drivers/regulator/ab8500.c
drivers/regulator/ab8500.c
+1
-1
drivers/regulator/ad5398.c
drivers/regulator/ad5398.c
+1
-1
drivers/regulator/bq24022.c
drivers/regulator/bq24022.c
+1
-1
drivers/regulator/core.c
drivers/regulator/core.c
+69
-13
drivers/regulator/da903x.c
drivers/regulator/da903x.c
+1
-1
drivers/regulator/db8500-prcmu.c
drivers/regulator/db8500-prcmu.c
+1
-1
drivers/regulator/dummy.c
drivers/regulator/dummy.c
+1
-1
drivers/regulator/fixed.c
drivers/regulator/fixed.c
+66
-1
drivers/regulator/isl6271a-regulator.c
drivers/regulator/isl6271a-regulator.c
+1
-1
drivers/regulator/lp3971.c
drivers/regulator/lp3971.c
+1
-1
drivers/regulator/lp3972.c
drivers/regulator/lp3972.c
+1
-1
drivers/regulator/max1586.c
drivers/regulator/max1586.c
+1
-1
drivers/regulator/max8649.c
drivers/regulator/max8649.c
+1
-1
drivers/regulator/max8660.c
drivers/regulator/max8660.c
+1
-1
drivers/regulator/max8925-regulator.c
drivers/regulator/max8925-regulator.c
+1
-1
drivers/regulator/max8952.c
drivers/regulator/max8952.c
+1
-1
drivers/regulator/max8997.c
drivers/regulator/max8997.c
+1
-1
drivers/regulator/max8998.c
drivers/regulator/max8998.c
+1
-1
drivers/regulator/mc13783-regulator.c
drivers/regulator/mc13783-regulator.c
+1
-1
drivers/regulator/mc13892-regulator.c
drivers/regulator/mc13892-regulator.c
+1
-1
drivers/regulator/of_regulator.c
drivers/regulator/of_regulator.c
+81
-0
drivers/regulator/pcap-regulator.c
drivers/regulator/pcap-regulator.c
+1
-1
drivers/regulator/pcf50633-regulator.c
drivers/regulator/pcf50633-regulator.c
+1
-1
drivers/regulator/tps6105x-regulator.c
drivers/regulator/tps6105x-regulator.c
+2
-1
drivers/regulator/tps65023-regulator.c
drivers/regulator/tps65023-regulator.c
+1
-1
drivers/regulator/tps6507x-regulator.c
drivers/regulator/tps6507x-regulator.c
+1
-1
drivers/regulator/tps6524x-regulator.c
drivers/regulator/tps6524x-regulator.c
+1
-1
drivers/regulator/tps6586x-regulator.c
drivers/regulator/tps6586x-regulator.c
+1
-1
drivers/regulator/tps65910-regulator.c
drivers/regulator/tps65910-regulator.c
+1
-1
drivers/regulator/tps65912-regulator.c
drivers/regulator/tps65912-regulator.c
+1
-1
drivers/regulator/twl-regulator.c
drivers/regulator/twl-regulator.c
+1
-1
drivers/regulator/wm831x-dcdc.c
drivers/regulator/wm831x-dcdc.c
+4
-4
drivers/regulator/wm831x-isink.c
drivers/regulator/wm831x-isink.c
+1
-1
drivers/regulator/wm831x-ldo.c
drivers/regulator/wm831x-ldo.c
+3
-3
drivers/regulator/wm8350-regulator.c
drivers/regulator/wm8350-regulator.c
+1
-1
drivers/regulator/wm8400-regulator.c
drivers/regulator/wm8400-regulator.c
+1
-1
drivers/regulator/wm8994-regulator.c
drivers/regulator/wm8994-regulator.c
+1
-1
include/linux/regulator/driver.h
include/linux/regulator/driver.h
+3
-1
include/linux/regulator/of_regulator.h
include/linux/regulator/of_regulator.h
+20
-0
sound/soc/codecs/sgtl5000.c
sound/soc/codecs/sgtl5000.c
+1
-1
No files found.
Documentation/devicetree/bindings/regulator/fixed-regulator.txt
0 → 100644
View file @
924ee2c9
Fixed Voltage regulators
Required properties:
- compatible: Must be "regulator-fixed";
Optional properties:
- gpio: gpio to use for enable control
- startup-delay-us: startup time in microseconds
- enable-active-high: Polarity of GPIO is Active high
If this property is missing, the default assumed is Active low.
Any property defined as part of the core regulator
binding, defined in regulator.txt, can also be used.
However a fixed voltage regulator is expected to have the
regulator-min-microvolt and regulator-max-microvolt
to be the same.
Example:
abc: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "fixed-supply";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&gpio1 16 0>;
startup-delay-us = <70000>;
enable-active-high;
regulator-boot-on
};
Documentation/devicetree/bindings/regulator/regulator.txt
0 → 100644
View file @
924ee2c9
Voltage/Current Regulators
Optional properties:
- regulator-name: A string used as a descriptive name for regulator outputs
- regulator-min-microvolt: smallest voltage consumers may set
- regulator-max-microvolt: largest voltage consumers may set
- regulator-microvolt-offset: Offset applied to voltages to compensate for voltage drops
- regulator-min-microamp: smallest current consumers may set
- regulator-max-microamp: largest current consumers may set
- regulator-always-on: boolean, regulator should never be disabled
- regulator-boot-on: bootloader/firmware enabled regulator
- <name>-supply: phandle to the parent supply/regulator node
Example:
xyzreg: regulator@0 {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <2500000>;
regulator-always-on;
vin-supply = <&vin>;
};
Regulator Consumers:
Consumer nodes can reference one or more of its supplies/
regulators using the below bindings.
- <name>-supply: phandle to the regulator node
These are the same bindings that a regulator in the above
example used to reference its own supply, in which case
its just seen as a special case of a regulator being a
consumer itself.
Example of a consumer device node (mmc) referencing two
regulators (twl-reg1 and twl-reg2),
twl-reg1: regulator@0 {
...
...
...
};
twl-reg2: regulator@1 {
...
...
...
};
mmc: mmc@0x0 {
...
...
vmmc-supply = <&twl-reg1>;
vmmcaux-supply = <&twl-reg2>;
};
drivers/regulator/88pm8607.c
View file @
924ee2c9
...
...
@@ -427,7 +427,7 @@ static int __devinit pm8607_regulator_probe(struct platform_device *pdev)
/* replace driver_data with info */
info
->
regulator
=
regulator_register
(
&
info
->
desc
,
&
pdev
->
dev
,
pdata
,
info
);
pdata
,
info
,
NULL
);
if
(
IS_ERR
(
info
->
regulator
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
info
->
desc
.
name
);
...
...
drivers/regulator/Makefile
View file @
924ee2c9
...
...
@@ -4,6 +4,7 @@
obj-$(CONFIG_REGULATOR)
+=
core.o dummy.o
obj-$(CONFIG_OF)
+=
of_regulator.o
obj-$(CONFIG_REGULATOR_FIXED_VOLTAGE)
+=
fixed.o
obj-$(CONFIG_REGULATOR_VIRTUAL_CONSUMER)
+=
virtual.o
obj-$(CONFIG_REGULATOR_USERSPACE_CONSUMER)
+=
userspace-consumer.o
...
...
drivers/regulator/aat2870-regulator.c
View file @
924ee2c9
...
...
@@ -188,7 +188,7 @@ static int aat2870_regulator_probe(struct platform_device *pdev)
ri
->
pdev
=
pdev
;
rdev
=
regulator_register
(
&
ri
->
desc
,
&
pdev
->
dev
,
pdev
->
dev
.
platform_data
,
ri
);
pdev
->
dev
.
platform_data
,
ri
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"Failed to register regulator %s
\n
"
,
ri
->
desc
.
name
);
...
...
drivers/regulator/ab3100.c
View file @
924ee2c9
...
...
@@ -634,7 +634,7 @@ static int __devinit ab3100_regulators_probe(struct platform_device *pdev)
rdev
=
regulator_register
(
&
ab3100_regulator_desc
[
i
],
&
pdev
->
dev
,
&
plfdata
->
reg_constraints
[
i
],
reg
);
reg
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
err
=
PTR_ERR
(
rdev
);
...
...
drivers/regulator/ab8500.c
View file @
924ee2c9
...
...
@@ -822,7 +822,7 @@ static __devinit int ab8500_regulator_probe(struct platform_device *pdev)
/* register regulator with framework */
info
->
regulator
=
regulator_register
(
&
info
->
desc
,
&
pdev
->
dev
,
&
pdata
->
regulator
[
i
],
info
);
&
pdata
->
regulator
[
i
],
info
,
NULL
);
if
(
IS_ERR
(
info
->
regulator
))
{
err
=
PTR_ERR
(
info
->
regulator
);
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
...
...
drivers/regulator/ad5398.c
View file @
924ee2c9
...
...
@@ -233,7 +233,7 @@ static int __devinit ad5398_probe(struct i2c_client *client,
chip
->
current_mask
=
(
chip
->
current_level
-
1
)
<<
chip
->
current_offset
;
chip
->
rdev
=
regulator_register
(
&
ad5398_reg
,
&
client
->
dev
,
init_data
,
chip
);
init_data
,
chip
,
NULL
);
if
(
IS_ERR
(
chip
->
rdev
))
{
ret
=
PTR_ERR
(
chip
->
rdev
);
dev_err
(
&
client
->
dev
,
"failed to register %s %s
\n
"
,
...
...
drivers/regulator/bq24022.c
View file @
924ee2c9
...
...
@@ -107,7 +107,7 @@ static int __init bq24022_probe(struct platform_device *pdev)
ret
=
gpio_direction_output
(
pdata
->
gpio_nce
,
1
);
bq24022
=
regulator_register
(
&
bq24022_desc
,
&
pdev
->
dev
,
pdata
->
init_data
,
pdata
);
pdata
->
init_data
,
pdata
,
NULL
);
if
(
IS_ERR
(
bq24022
))
{
dev_dbg
(
&
pdev
->
dev
,
"couldn't register regulator
\n
"
);
ret
=
PTR_ERR
(
bq24022
);
...
...
drivers/regulator/core.c
View file @
924ee2c9
...
...
@@ -25,6 +25,8 @@
#include <linux/mutex.h>
#include <linux/suspend.h>
#include <linux/delay.h>
#include <linux/of.h>
#include <linux/regulator/of_regulator.h>
#include <linux/regulator/consumer.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
...
...
@@ -132,6 +134,33 @@ static struct regulator *get_device_regulator(struct device *dev)
return
NULL
;
}
/**
* of_get_regulator - get a regulator device node based on supply name
* @dev: Device pointer for the consumer (of regulator) device
* @supply: regulator supply name
*
* Extract the regulator device node corresponding to the supply name.
* retruns the device node corresponding to the regulator if found, else
* returns NULL.
*/
static
struct
device_node
*
of_get_regulator
(
struct
device
*
dev
,
const
char
*
supply
)
{
struct
device_node
*
regnode
=
NULL
;
char
prop_name
[
32
];
/* 32 is max size of property name */
dev_dbg
(
dev
,
"Looking up %s-supply from device tree
\n
"
,
supply
);
snprintf
(
prop_name
,
32
,
"%s-supply"
,
supply
);
regnode
=
of_parse_phandle
(
dev
->
of_node
,
prop_name
,
0
);
if
(
!
regnode
)
{
dev_warn
(
dev
,
"%s property in node %s references invalid phandle"
,
prop_name
,
dev
->
of_node
->
full_name
);
return
NULL
;
}
return
regnode
;
}
/* Platform voltage constraint check */
static
int
regulator_check_voltage
(
struct
regulator_dev
*
rdev
,
int
*
min_uV
,
int
*
max_uV
)
...
...
@@ -1148,6 +1177,30 @@ static int _regulator_get_enable_time(struct regulator_dev *rdev)
return
rdev
->
desc
->
ops
->
enable_time
(
rdev
);
}
static
struct
regulator_dev
*
regulator_dev_lookup
(
struct
device
*
dev
,
const
char
*
supply
)
{
struct
regulator_dev
*
r
;
struct
device_node
*
node
;
/* first do a dt based lookup */
if
(
dev
&&
dev
->
of_node
)
{
node
=
of_get_regulator
(
dev
,
supply
);
if
(
node
)
list_for_each_entry
(
r
,
&
regulator_list
,
list
)
if
(
r
->
dev
.
parent
&&
node
==
r
->
dev
.
of_node
)
return
r
;
}
/* if not found, try doing it non-dt way */
list_for_each_entry
(
r
,
&
regulator_list
,
list
)
if
(
strcmp
(
rdev_get_name
(
r
),
supply
)
==
0
)
return
r
;
return
NULL
;
}
/* Internal regulator request function */
static
struct
regulator
*
_regulator_get
(
struct
device
*
dev
,
const
char
*
id
,
int
exclusive
)
...
...
@@ -1168,6 +1221,10 @@ static struct regulator *_regulator_get(struct device *dev, const char *id,
mutex_lock
(
&
regulator_list_mutex
);
rdev
=
regulator_dev_lookup
(
dev
,
id
);
if
(
rdev
)
goto
found
;
list_for_each_entry
(
map
,
&
regulator_map_list
,
list
)
{
/* If the mapping has a device set up it must match */
if
(
map
->
dev_name
&&
...
...
@@ -2638,11 +2695,12 @@ static void rdev_init_debugfs(struct regulator_dev *rdev)
*/
struct
regulator_dev
*
regulator_register
(
struct
regulator_desc
*
regulator_desc
,
struct
device
*
dev
,
const
struct
regulator_init_data
*
init_data
,
void
*
driver_data
)
void
*
driver_data
,
struct
device_node
*
of_node
)
{
static
atomic_t
regulator_no
=
ATOMIC_INIT
(
0
);
struct
regulator_dev
*
rdev
;
int
ret
,
i
;
const
char
*
supply
=
NULL
;
if
(
regulator_desc
==
NULL
)
return
ERR_PTR
(
-
EINVAL
);
...
...
@@ -2697,6 +2755,7 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
/* register with sysfs */
rdev
->
dev
.
class
=
&
regulator_class
;
rdev
->
dev
.
of_node
=
of_node
;
rdev
->
dev
.
parent
=
dev
;
dev_set_name
(
&
rdev
->
dev
,
"regulator.%d"
,
atomic_inc_return
(
&
regulator_no
)
-
1
);
...
...
@@ -2718,21 +2777,18 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
if
(
ret
<
0
)
goto
scrub
;
if
(
init_data
->
supply_regulator
)
{
if
(
init_data
->
supply_regulator
)
supply
=
init_data
->
supply_regulator
;
else
if
(
regulator_desc
->
supply_name
)
supply
=
regulator_desc
->
supply_name
;
if
(
supply
)
{
struct
regulator_dev
*
r
;
int
found
=
0
;
list_for_each_entry
(
r
,
&
regulator_list
,
list
)
{
if
(
strcmp
(
rdev_get_name
(
r
),
init_data
->
supply_regulator
)
==
0
)
{
found
=
1
;
break
;
}
}
r
=
regulator_dev_lookup
(
dev
,
supply
);
if
(
!
found
)
{
dev_err
(
dev
,
"Failed to find supply %s
\n
"
,
init_data
->
supply_regulator
);
if
(
!
r
)
{
dev_err
(
dev
,
"Failed to find supply %s
\n
"
,
supply
);
ret
=
-
ENODEV
;
goto
scrub
;
}
...
...
drivers/regulator/da903x.c
View file @
924ee2c9
...
...
@@ -537,7 +537,7 @@ static int __devinit da903x_regulator_probe(struct platform_device *pdev)
ri
->
desc
.
ops
=
&
da9030_regulator_ldo1_15_ops
;
rdev
=
regulator_register
(
&
ri
->
desc
,
&
pdev
->
dev
,
pdev
->
dev
.
platform_data
,
ri
);
pdev
->
dev
.
platform_data
,
ri
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
ri
->
desc
.
name
);
...
...
drivers/regulator/db8500-prcmu.c
View file @
924ee2c9
...
...
@@ -486,7 +486,7 @@ static int __devinit db8500_regulator_probe(struct platform_device *pdev)
/* register with the regulator framework */
info
->
rdev
=
regulator_register
(
&
info
->
desc
,
&
pdev
->
dev
,
init_data
,
info
);
init_data
,
info
,
NULL
);
if
(
IS_ERR
(
info
->
rdev
))
{
err
=
PTR_ERR
(
info
->
rdev
);
dev_err
(
&
pdev
->
dev
,
"failed to register %s: err %i
\n
"
,
...
...
drivers/regulator/dummy.c
View file @
924ee2c9
...
...
@@ -42,7 +42,7 @@ static int __devinit dummy_regulator_probe(struct platform_device *pdev)
int
ret
;
dummy_regulator_rdev
=
regulator_register
(
&
dummy_desc
,
NULL
,
&
dummy_initdata
,
NULL
);
&
dummy_initdata
,
NULL
,
NULL
);
if
(
IS_ERR
(
dummy_regulator_rdev
))
{
ret
=
PTR_ERR
(
dummy_regulator_rdev
);
pr_err
(
"Failed to register regulator: %d
\n
"
,
ret
);
...
...
drivers/regulator/fixed.c
View file @
924ee2c9
...
...
@@ -27,6 +27,10 @@
#include <linux/gpio.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <linux/regulator/of_regulator.h>
#include <linux/regulator/machine.h>
struct
fixed_voltage_data
{
struct
regulator_desc
desc
;
...
...
@@ -38,6 +42,53 @@ struct fixed_voltage_data {
bool
is_enabled
;
};
/**
* of_get_fixed_voltage_config - extract fixed_voltage_config structure info
* @dev: device requesting for fixed_voltage_config
*
* Populates fixed_voltage_config structure by extracting data from device
* tree node, returns a pointer to the populated structure of NULL if memory
* alloc fails.
*/
struct
fixed_voltage_config
*
of_get_fixed_voltage_config
(
struct
device
*
dev
)
{
struct
fixed_voltage_config
*
config
;
struct
device_node
*
np
=
dev
->
of_node
;
const
__be32
*
delay
;
struct
regulator_init_data
*
init_data
;
config
=
devm_kzalloc
(
dev
,
sizeof
(
struct
fixed_voltage_config
),
GFP_KERNEL
);
if
(
!
config
)
return
NULL
;
config
->
init_data
=
of_get_regulator_init_data
(
dev
);
init_data
=
config
->
init_data
;
config
->
supply_name
=
init_data
->
constraints
.
name
;
if
(
init_data
->
constraints
.
min_uV
==
init_data
->
constraints
.
max_uV
)
{
config
->
microvolts
=
init_data
->
constraints
.
min_uV
;
}
else
{
dev_err
(
dev
,
"Fixed regulator specified with variable voltages
\n
"
);
return
NULL
;
}
if
(
init_data
->
constraints
.
boot_on
)
config
->
enabled_at_boot
=
true
;
config
->
gpio
=
of_get_named_gpio
(
np
,
"gpio"
,
0
);
delay
=
of_get_property
(
np
,
"startup-delay-us"
,
NULL
);
if
(
delay
)
config
->
startup_delay
=
be32_to_cpu
(
*
delay
);
if
(
of_find_property
(
np
,
"enable-active-high"
,
NULL
))
config
->
enable_high
=
true
;
return
config
;
}
static
int
fixed_voltage_is_enabled
(
struct
regulator_dev
*
dev
)
{
struct
fixed_voltage_data
*
data
=
rdev_get_drvdata
(
dev
);
...
...
@@ -112,6 +163,9 @@ static int __devinit reg_fixed_voltage_probe(struct platform_device *pdev)
struct
fixed_voltage_data
*
drvdata
;
int
ret
;
if
(
pdev
->
dev
.
of_node
)
config
=
of_get_fixed_voltage_config
(
&
pdev
->
dev
);
drvdata
=
kzalloc
(
sizeof
(
struct
fixed_voltage_data
),
GFP_KERNEL
);
if
(
drvdata
==
NULL
)
{
dev_err
(
&
pdev
->
dev
,
"Failed to allocate device data
\n
"
);
...
...
@@ -183,7 +237,7 @@ static int __devinit reg_fixed_voltage_probe(struct platform_device *pdev)
}
drvdata
->
dev
=
regulator_register
(
&
drvdata
->
desc
,
&
pdev
->
dev
,
config
->
init_data
,
drvdata
);
config
->
init_data
,
drvdata
,
NULL
);
if
(
IS_ERR
(
drvdata
->
dev
))
{
ret
=
PTR_ERR
(
drvdata
->
dev
);
dev_err
(
&
pdev
->
dev
,
"Failed to register regulator: %d
\n
"
,
ret
);
...
...
@@ -220,12 +274,23 @@ static int __devexit reg_fixed_voltage_remove(struct platform_device *pdev)
return
0
;
}
#if defined(CONFIG_OF)
static
const
struct
of_device_id
fixed_of_match
[]
__devinitconst
=
{
{
.
compatible
=
"regulator-fixed"
,
},
{},
};
MODULE_DEVICE_TABLE
(
of
,
fixed_of_match
);
#else
#define fixed_of_match NULL
#endif
static
struct
platform_driver
regulator_fixed_voltage_driver
=
{
.
probe
=
reg_fixed_voltage_probe
,
.
remove
=
__devexit_p
(
reg_fixed_voltage_remove
),
.
driver
=
{
.
name
=
"reg-fixed-voltage"
,
.
owner
=
THIS_MODULE
,
.
of_match_table
=
fixed_of_match
,
},
};
...
...
drivers/regulator/isl6271a-regulator.c
View file @
924ee2c9
...
...
@@ -170,7 +170,7 @@ static int __devinit isl6271a_probe(struct i2c_client *i2c,
for
(
i
=
0
;
i
<
3
;
i
++
)
{
pmic
->
rdev
[
i
]
=
regulator_register
(
&
isl_rd
[
i
],
&
i2c
->
dev
,
init_data
,
pmic
);
init_data
,
pmic
,
NULL
);
if
(
IS_ERR
(
pmic
->
rdev
[
i
]))
{
dev_err
(
&
i2c
->
dev
,
"failed to register %s
\n
"
,
id
->
name
);
err
=
PTR_ERR
(
pmic
->
rdev
[
i
]);
...
...
drivers/regulator/lp3971.c
View file @
924ee2c9
...
...
@@ -451,7 +451,7 @@ static int __devinit setup_regulators(struct lp3971 *lp3971,
for
(
i
=
0
;
i
<
pdata
->
num_regulators
;
i
++
)
{
struct
lp3971_regulator_subdev
*
reg
=
&
pdata
->
regulators
[
i
];
lp3971
->
rdev
[
i
]
=
regulator_register
(
&
regulators
[
reg
->
id
],
lp3971
->
dev
,
reg
->
initdata
,
lp3971
);
lp3971
->
dev
,
reg
->
initdata
,
lp3971
,
NULL
);
if
(
IS_ERR
(
lp3971
->
rdev
[
i
]))
{
err
=
PTR_ERR
(
lp3971
->
rdev
[
i
]);
...
...
drivers/regulator/lp3972.c
View file @
924ee2c9
...
...
@@ -555,7 +555,7 @@ static int __devinit setup_regulators(struct lp3972 *lp3972,
for
(
i
=
0
;
i
<
pdata
->
num_regulators
;
i
++
)
{
struct
lp3972_regulator_subdev
*
reg
=
&
pdata
->
regulators
[
i
];
lp3972
->
rdev
[
i
]
=
regulator_register
(
&
regulators
[
reg
->
id
],
lp3972
->
dev
,
reg
->
initdata
,
lp3972
);
lp3972
->
dev
,
reg
->
initdata
,
lp3972
,
NULL
);
if
(
IS_ERR
(
lp3972
->
rdev
[
i
]))
{
err
=
PTR_ERR
(
lp3972
->
rdev
[
i
]);
...
...
drivers/regulator/max1586.c
View file @
924ee2c9
...
...
@@ -214,7 +214,7 @@ static int __devinit max1586_pmic_probe(struct i2c_client *client,
}
rdev
[
i
]
=
regulator_register
(
&
max1586_reg
[
id
],
&
client
->
dev
,
pdata
->
subdevs
[
i
].
platform_data
,
max1586
);
max1586
,
NULL
);
if
(
IS_ERR
(
rdev
[
i
]))
{
ret
=
PTR_ERR
(
rdev
[
i
]);
dev_err
(
&
client
->
dev
,
"failed to register %s
\n
"
,
...
...
drivers/regulator/max8649.c
View file @
924ee2c9
...
...
@@ -299,7 +299,7 @@ static int __devinit max8649_regulator_probe(struct i2c_client *client,
}
info
->
regulator
=
regulator_register
(
&
dcdc_desc
,
&
client
->
dev
,
pdata
->
regulator
,
info
);
pdata
->
regulator
,
info
,
NULL
);
if
(
IS_ERR
(
info
->
regulator
))
{
dev_err
(
info
->
dev
,
"failed to register regulator %s
\n
"
,
dcdc_desc
.
name
);
...
...
drivers/regulator/max8660.c
View file @
924ee2c9
...
...
@@ -449,7 +449,7 @@ static int __devinit max8660_probe(struct i2c_client *client,
rdev
[
i
]
=
regulator_register
(
&
max8660_reg
[
id
],
&
client
->
dev
,
pdata
->
subdevs
[
i
].
platform_data
,
max8660
);
max8660
,
NULL
);
if
(
IS_ERR
(
rdev
[
i
]))
{
ret
=
PTR_ERR
(
rdev
[
i
]);
dev_err
(
&
client
->
dev
,
"failed to register %s
\n
"
,
...
...
drivers/regulator/max8925-regulator.c
View file @
924ee2c9
...
...
@@ -266,7 +266,7 @@ static int __devinit max8925_regulator_probe(struct platform_device *pdev)
ri
->
chip
=
chip
;
rdev
=
regulator_register
(
&
ri
->
desc
,
&
pdev
->
dev
,
pdata
->
regulator
[
pdev
->
id
],
ri
);
pdata
->
regulator
[
pdev
->
id
],
ri
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
ri
->
desc
.
name
);
...
...
drivers/regulator/max8952.c
View file @
924ee2c9
...
...
@@ -208,7 +208,7 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client,
max8952
->
pdata
=
pdata
;
max8952
->
rdev
=
regulator_register
(
&
regulator
,
max8952
->
dev
,
&
pdata
->
reg_data
,
max8952
);
&
pdata
->
reg_data
,
max8952
,
NULL
);
if
(
IS_ERR
(
max8952
->
rdev
))
{
ret
=
PTR_ERR
(
max8952
->
rdev
);
...
...
drivers/regulator/max8997.c
View file @
924ee2c9
...
...
@@ -1146,7 +1146,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev)
regulators
[
id
].
n_voltages
=
16
;
rdev
[
i
]
=
regulator_register
(
&
regulators
[
id
],
max8997
->
dev
,
pdata
->
regulators
[
i
].
initdata
,
max8997
);
pdata
->
regulators
[
i
].
initdata
,
max8997
,
NULL
);
if
(
IS_ERR
(
rdev
[
i
]))
{
ret
=
PTR_ERR
(
rdev
[
i
]);
dev_err
(
max8997
->
dev
,
"regulator init failed for %d
\n
"
,
...
...
drivers/regulator/max8998.c
View file @
924ee2c9
...
...
@@ -847,7 +847,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev)
regulators
[
index
].
n_voltages
=
count
;
}
rdev
[
i
]
=
regulator_register
(
&
regulators
[
index
],
max8998
->
dev
,
pdata
->
regulators
[
i
].
initdata
,
max8998
);
pdata
->
regulators
[
i
].
initdata
,
max8998
,
NULL
);
if
(
IS_ERR
(
rdev
[
i
]))
{
ret
=
PTR_ERR
(
rdev
[
i
]);
dev_err
(
max8998
->
dev
,
"regulator init failed
\n
"
);
...
...
drivers/regulator/mc13783-regulator.c
View file @
924ee2c9
...
...
@@ -357,7 +357,7 @@ static int __devinit mc13783_regulator_probe(struct platform_device *pdev)
init_data
=
&
pdata
->
regulators
[
i
];
priv
->
regulators
[
i
]
=
regulator_register
(
&
mc13783_regulators
[
init_data
->
id
].
desc
,
&
pdev
->
dev
,
init_data
->
init_data
,
priv
);
&
pdev
->
dev
,
init_data
->
init_data
,
priv
,
NULL
);
if
(
IS_ERR
(
priv
->
regulators
[
i
]))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
...
...
drivers/regulator/mc13892-regulator.c
View file @
924ee2c9
...
...
@@ -573,7 +573,7 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)
init_data
=
&
pdata
->
regulators
[
i
];
priv
->
regulators
[
i
]
=
regulator_register
(
&
mc13892_regulators
[
init_data
->
id
].
desc
,
&
pdev
->
dev
,
init_data
->
init_data
,
priv
);
&
pdev
->
dev
,
init_data
->
init_data
,
priv
,
NULL
);
if
(
IS_ERR
(
priv
->
regulators
[
i
]))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
...
...
drivers/regulator/of_regulator.c
0 → 100644
View file @
924ee2c9
/*
* OF helpers for regulator framework
*
* Copyright (C) 2011 Texas Instruments, Inc.
* Rajendra Nayak <rnayak@ti.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.
*/
#include <linux/slab.h>
#include <linux/of.h>
#include <linux/regulator/machine.h>
static
void
of_get_regulation_constraints
(
struct
device_node
*
np
,
struct
regulator_init_data
**
init_data
)
{
const
__be32
*
min_uV
,
*
max_uV
,
*
uV_offset
;
const
__be32
*
min_uA
,
*
max_uA
;
struct
regulation_constraints
*
constraints
=
&
(
*
init_data
)
->
constraints
;
constraints
->
name
=
of_get_property
(
np
,
"regulator-name"
,
NULL
);
min_uV
=
of_get_property
(
np
,
"regulator-min-microvolt"
,
NULL
);
if
(
min_uV
)
constraints
->
min_uV
=
be32_to_cpu
(
*
min_uV
);
max_uV
=
of_get_property
(
np
,
"regulator-max-microvolt"
,
NULL
);
if
(
max_uV
)
constraints
->
max_uV
=
be32_to_cpu
(
*
max_uV
);
/* Voltage change possible? */
if
(
constraints
->
min_uV
!=
constraints
->
max_uV
)
constraints
->
valid_ops_mask
|=
REGULATOR_CHANGE_VOLTAGE
;
uV_offset
=
of_get_property
(
np
,
"regulator-microvolt-offset"
,
NULL
);
if
(
uV_offset
)
constraints
->
uV_offset
=
be32_to_cpu
(
*
uV_offset
);
min_uA
=
of_get_property
(
np
,
"regulator-min-microamp"
,
NULL
);
if
(
min_uA
)
constraints
->
min_uA
=
be32_to_cpu
(
*
min_uA
);
max_uA
=
of_get_property
(
np
,
"regulator-max-microamp"
,
NULL
);
if
(
max_uA
)
constraints
->
max_uA
=
be32_to_cpu
(
*
max_uA
);
/* Current change possible? */
if
(
constraints
->
min_uA
!=
constraints
->
max_uA
)
constraints
->
valid_ops_mask
|=
REGULATOR_CHANGE_CURRENT
;
if
(
of_find_property
(
np
,
"regulator-boot-on"
,
NULL
))
constraints
->
boot_on
=
true
;
if
(
of_find_property
(
np
,
"regulator-always-on"
,
NULL
))
constraints
->
always_on
=
true
;
else
/* status change should be possible if not always on. */
constraints
->
valid_ops_mask
|=
REGULATOR_CHANGE_STATUS
;
}
/**
* of_get_regulator_init_data - extract regulator_init_data structure info
* @dev: device requesting for regulator_init_data
*
* Populates regulator_init_data structure by extracting data from device
* tree node, returns a pointer to the populated struture or NULL if memory
* alloc fails.
*/
struct
regulator_init_data
*
of_get_regulator_init_data
(
struct
device
*
dev
)
{
struct
regulator_init_data
*
init_data
;
if
(
!
dev
->
of_node
)
return
NULL
;
init_data
=
devm_kzalloc
(
dev
,
sizeof
(
*
init_data
),
GFP_KERNEL
);
if
(
!
init_data
)
return
NULL
;
/* Out of memory? */
of_get_regulation_constraints
(
dev
->
of_node
,
&
init_data
);
return
init_data
;
}
drivers/regulator/pcap-regulator.c
View file @
924ee2c9
...
...
@@ -277,7 +277,7 @@ static int __devinit pcap_regulator_probe(struct platform_device *pdev)
void
*
pcap
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
rdev
=
regulator_register
(
&
pcap_regulators
[
pdev
->
id
],
&
pdev
->
dev
,
pdev
->
dev
.
platform_data
,
pcap
);
pdev
->
dev
.
platform_data
,
pcap
,
NULL
);
if
(
IS_ERR
(
rdev
))
return
PTR_ERR
(
rdev
);
...
...
drivers/regulator/pcf50633-regulator.c
View file @
924ee2c9
...
...
@@ -320,7 +320,7 @@ static int __devinit pcf50633_regulator_probe(struct platform_device *pdev)
pcf
=
dev_to_pcf50633
(
pdev
->
dev
.
parent
);
rdev
=
regulator_register
(
&
regulators
[
pdev
->
id
],
&
pdev
->
dev
,
pdev
->
dev
.
platform_data
,
pcf
);
pdev
->
dev
.
platform_data
,
pcf
,
NULL
);
if
(
IS_ERR
(
rdev
))
return
PTR_ERR
(
rdev
);
...
...
drivers/regulator/tps6105x-regulator.c
View file @
924ee2c9
...
...
@@ -151,7 +151,8 @@ static int __devinit tps6105x_regulator_probe(struct platform_device *pdev)
/* Register regulator with framework */
tps6105x
->
regulator
=
regulator_register
(
&
tps6105x_regulator_desc
,
&
tps6105x
->
client
->
dev
,
pdata
->
regulator_data
,
tps6105x
);
pdata
->
regulator_data
,
tps6105x
,
NULL
);
if
(
IS_ERR
(
tps6105x
->
regulator
))
{
ret
=
PTR_ERR
(
tps6105x
->
regulator
);
dev_err
(
&
tps6105x
->
client
->
dev
,
...
...
drivers/regulator/tps65023-regulator.c
View file @
924ee2c9
...
...
@@ -473,7 +473,7 @@ static int __devinit tps_65023_probe(struct i2c_client *client,
/* Register the regulators */
rdev
=
regulator_register
(
&
tps
->
desc
[
i
],
&
client
->
dev
,
init_data
,
tps
);
init_data
,
tps
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
client
->
dev
,
"failed to register %s
\n
"
,
id
->
name
);
...
...
drivers/regulator/tps6507x-regulator.c
View file @
924ee2c9
...
...
@@ -599,7 +599,7 @@ int tps6507x_pmic_probe(struct platform_device *pdev)
tps
->
desc
[
i
].
owner
=
THIS_MODULE
;
rdev
=
regulator_register
(
&
tps
->
desc
[
i
],
tps6507x_dev
->
dev
,
init_data
,
tps
);
tps6507x_dev
->
dev
,
init_data
,
tps
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
tps6507x_dev
->
dev
,
"failed to register %s regulator
\n
"
,
...
...
drivers/regulator/tps6524x-regulator.c
View file @
924ee2c9
...
...
@@ -651,7 +651,7 @@ static int __devinit pmic_probe(struct spi_device *spi)
hw
->
desc
[
i
].
n_voltages
=
1
;
hw
->
rdev
[
i
]
=
regulator_register
(
&
hw
->
desc
[
i
],
dev
,
init_data
,
hw
);
init_data
,
hw
,
NULL
);
if
(
IS_ERR
(
hw
->
rdev
[
i
]))
{
ret
=
PTR_ERR
(
hw
->
rdev
[
i
]);
hw
->
rdev
[
i
]
=
NULL
;
...
...
drivers/regulator/tps6586x-regulator.c
View file @
924ee2c9
...
...
@@ -396,7 +396,7 @@ static int __devinit tps6586x_regulator_probe(struct platform_device *pdev)
return
err
;
rdev
=
regulator_register
(
&
ri
->
desc
,
&
pdev
->
dev
,
pdev
->
dev
.
platform_data
,
ri
);
pdev
->
dev
.
platform_data
,
ri
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register regulator %s
\n
"
,
ri
->
desc
.
name
);
...
...
drivers/regulator/tps65910-regulator.c
View file @
924ee2c9
...
...
@@ -948,7 +948,7 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
pmic
->
desc
[
i
].
owner
=
THIS_MODULE
;
rdev
=
regulator_register
(
&
pmic
->
desc
[
i
],
tps65910
->
dev
,
reg_data
,
pmic
);
tps65910
->
dev
,
reg_data
,
pmic
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
tps65910
->
dev
,
"failed to register %s regulator
\n
"
,
...
...
drivers/regulator/tps65912-regulator.c
View file @
924ee2c9
...
...
@@ -727,7 +727,7 @@ static __devinit int tps65912_probe(struct platform_device *pdev)
pmic
->
desc
[
i
].
owner
=
THIS_MODULE
;
range
=
tps65912_get_range
(
pmic
,
i
);
rdev
=
regulator_register
(
&
pmic
->
desc
[
i
],
tps65912
->
dev
,
reg_data
,
pmic
);
tps65912
->
dev
,
reg_data
,
pmic
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
tps65912
->
dev
,
"failed to register %s regulator
\n
"
,
...
...
drivers/regulator/twl-regulator.c
View file @
924ee2c9
...
...
@@ -1070,7 +1070,7 @@ static int __devinit twlreg_probe(struct platform_device *pdev)
break
;
}
rdev
=
regulator_register
(
&
info
->
desc
,
&
pdev
->
dev
,
initdata
,
info
);
rdev
=
regulator_register
(
&
info
->
desc
,
&
pdev
->
dev
,
initdata
,
info
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"can't register %s, %ld
\n
"
,
info
->
desc
.
name
,
PTR_ERR
(
rdev
));
...
...
drivers/regulator/wm831x-dcdc.c
View file @
924ee2c9
...
...
@@ -553,7 +553,7 @@ static __devinit int wm831x_buckv_probe(struct platform_device *pdev)
wm831x_buckv_dvs_init
(
dcdc
,
pdata
->
dcdc
[
id
]
->
driver_data
);
dcdc
->
regulator
=
regulator_register
(
&
dcdc
->
desc
,
&
pdev
->
dev
,
pdata
->
dcdc
[
id
],
dcdc
);
pdata
->
dcdc
[
id
],
dcdc
,
NULL
);
if
(
IS_ERR
(
dcdc
->
regulator
))
{
ret
=
PTR_ERR
(
dcdc
->
regulator
);
dev_err
(
wm831x
->
dev
,
"Failed to register DCDC%d: %d
\n
"
,
...
...
@@ -747,7 +747,7 @@ static __devinit int wm831x_buckp_probe(struct platform_device *pdev)
dcdc
->
desc
.
owner
=
THIS_MODULE
;
dcdc
->
regulator
=
regulator_register
(
&
dcdc
->
desc
,
&
pdev
->
dev
,
pdata
->
dcdc
[
id
],
dcdc
);
pdata
->
dcdc
[
id
],
dcdc
,
NULL
);
if
(
IS_ERR
(
dcdc
->
regulator
))
{
ret
=
PTR_ERR
(
dcdc
->
regulator
);
dev_err
(
wm831x
->
dev
,
"Failed to register DCDC%d: %d
\n
"
,
...
...
@@ -874,7 +874,7 @@ static __devinit int wm831x_boostp_probe(struct platform_device *pdev)
dcdc
->
desc
.
owner
=
THIS_MODULE
;
dcdc
->
regulator
=
regulator_register
(
&
dcdc
->
desc
,
&
pdev
->
dev
,
pdata
->
dcdc
[
id
],
dcdc
);
pdata
->
dcdc
[
id
],
dcdc
,
NULL
);
if
(
IS_ERR
(
dcdc
->
regulator
))
{
ret
=
PTR_ERR
(
dcdc
->
regulator
);
dev_err
(
wm831x
->
dev
,
"Failed to register DCDC%d: %d
\n
"
,
...
...
@@ -973,7 +973,7 @@ static __devinit int wm831x_epe_probe(struct platform_device *pdev)
dcdc
->
desc
.
owner
=
THIS_MODULE
;
dcdc
->
regulator
=
regulator_register
(
&
dcdc
->
desc
,
&
pdev
->
dev
,
pdata
->
epe
[
id
],
dcdc
);
pdata
->
epe
[
id
],
dcdc
,
NULL
);
if
(
IS_ERR
(
dcdc
->
regulator
))
{
ret
=
PTR_ERR
(
dcdc
->
regulator
);
dev_err
(
wm831x
->
dev
,
"Failed to register EPE%d: %d
\n
"
,
...
...
drivers/regulator/wm831x-isink.c
View file @
924ee2c9
...
...
@@ -189,7 +189,7 @@ static __devinit int wm831x_isink_probe(struct platform_device *pdev)
isink
->
desc
.
owner
=
THIS_MODULE
;
isink
->
regulator
=
regulator_register
(
&
isink
->
desc
,
&
pdev
->
dev
,
pdata
->
isink
[
id
],
isink
);
pdata
->
isink
[
id
],
isink
,
NULL
);
if
(
IS_ERR
(
isink
->
regulator
))
{
ret
=
PTR_ERR
(
isink
->
regulator
);
dev_err
(
wm831x
->
dev
,
"Failed to register ISINK%d: %d
\n
"
,
...
...
drivers/regulator/wm831x-ldo.c
View file @
924ee2c9
...
...
@@ -351,7 +351,7 @@ static __devinit int wm831x_gp_ldo_probe(struct platform_device *pdev)
ldo
->
desc
.
owner
=
THIS_MODULE
;
ldo
->
regulator
=
regulator_register
(
&
ldo
->
desc
,
&
pdev
->
dev
,
pdata
->
ldo
[
id
],
ldo
);
pdata
->
ldo
[
id
],
ldo
,
NULL
);
if
(
IS_ERR
(
ldo
->
regulator
))
{
ret
=
PTR_ERR
(
ldo
->
regulator
);
dev_err
(
wm831x
->
dev
,
"Failed to register LDO%d: %d
\n
"
,
...
...
@@ -621,7 +621,7 @@ static __devinit int wm831x_aldo_probe(struct platform_device *pdev)
ldo
->
desc
.
owner
=
THIS_MODULE
;
ldo
->
regulator
=
regulator_register
(
&
ldo
->
desc
,
&
pdev
->
dev
,
pdata
->
ldo
[
id
],
ldo
);
pdata
->
ldo
[
id
],
ldo
,
NULL
);
if
(
IS_ERR
(
ldo
->
regulator
))
{
ret
=
PTR_ERR
(
ldo
->
regulator
);
dev_err
(
wm831x
->
dev
,
"Failed to register LDO%d: %d
\n
"
,
...
...
@@ -818,7 +818,7 @@ static __devinit int wm831x_alive_ldo_probe(struct platform_device *pdev)
ldo
->
desc
.
owner
=
THIS_MODULE
;
ldo
->
regulator
=
regulator_register
(
&
ldo
->
desc
,
&
pdev
->
dev
,
pdata
->
ldo
[
id
],
ldo
);
pdata
->
ldo
[
id
],
ldo
,
NULL
);
if
(
IS_ERR
(
ldo
->
regulator
))
{
ret
=
PTR_ERR
(
ldo
->
regulator
);
dev_err
(
wm831x
->
dev
,
"Failed to register LDO%d: %d
\n
"
,
...
...
drivers/regulator/wm8350-regulator.c
View file @
924ee2c9
...
...
@@ -1428,7 +1428,7 @@ static int wm8350_regulator_probe(struct platform_device *pdev)
/* register regulator */
rdev
=
regulator_register
(
&
wm8350_reg
[
pdev
->
id
],
&
pdev
->
dev
,
pdev
->
dev
.
platform_data
,
dev_get_drvdata
(
&
pdev
->
dev
));
dev_get_drvdata
(
&
pdev
->
dev
)
,
NULL
);
if
(
IS_ERR
(
rdev
))
{
dev_err
(
&
pdev
->
dev
,
"failed to register %s
\n
"
,
wm8350_reg
[
pdev
->
id
].
name
);
...
...
drivers/regulator/wm8400-regulator.c
View file @
924ee2c9
...
...
@@ -326,7 +326,7 @@ static int __devinit wm8400_regulator_probe(struct platform_device *pdev)
struct
regulator_dev
*
rdev
;
rdev
=
regulator_register
(
&
regulators
[
pdev
->
id
],
&
pdev
->
dev
,
pdev
->
dev
.
platform_data
,
wm8400
);
pdev
->
dev
.
platform_data
,
wm8400
,
NULL
);
if
(
IS_ERR
(
rdev
))
return
PTR_ERR
(
rdev
);
...
...
drivers/regulator/wm8994-regulator.c
View file @
924ee2c9
...
...
@@ -269,7 +269,7 @@ static __devinit int wm8994_ldo_probe(struct platform_device *pdev)
ldo
->
is_enabled
=
true
;
ldo
->
regulator
=
regulator_register
(
&
wm8994_ldo_desc
[
id
],
&
pdev
->
dev
,
pdata
->
ldo
[
id
].
init_data
,
ldo
);
pdata
->
ldo
[
id
].
init_data
,
ldo
,
NULL
);
if
(
IS_ERR
(
ldo
->
regulator
))
{
ret
=
PTR_ERR
(
ldo
->
regulator
);
dev_err
(
wm8994
->
dev
,
"Failed to register LDO%d: %d
\n
"
,
...
...
include/linux/regulator/driver.h
View file @
924ee2c9
...
...
@@ -154,6 +154,7 @@ enum regulator_type {
* this type.
*
* @name: Identifying name for the regulator.
* @supply_name: Identifying the regulator supply
* @id: Numerical identifier for the regulator.
* @n_voltages: Number of selectors available for ops.list_voltage().
* @ops: Regulator operations table.
...
...
@@ -163,6 +164,7 @@ enum regulator_type {
*/
struct
regulator_desc
{
const
char
*
name
;
const
char
*
supply_name
;
int
id
;
unsigned
n_voltages
;
struct
regulator_ops
*
ops
;
...
...
@@ -212,7 +214,7 @@ struct regulator_dev {
struct
regulator_dev
*
regulator_register
(
struct
regulator_desc
*
regulator_desc
,
struct
device
*
dev
,
const
struct
regulator_init_data
*
init_data
,
void
*
driver_data
);
void
*
driver_data
,
struct
device_node
*
of_node
);
void
regulator_unregister
(
struct
regulator_dev
*
rdev
);
int
regulator_notifier_call_chain
(
struct
regulator_dev
*
rdev
,
...
...
include/linux/regulator/of_regulator.h
0 → 100644
View file @
924ee2c9
/*
* OpenFirmware regulator support routines
*
*/
#ifndef __LINUX_OF_REG_H
#define __LINUX_OF_REG_H
#if defined(CONFIG_OF)
extern
struct
regulator_init_data
*
of_get_regulator_init_data
(
struct
device
*
dev
);
#else
static
inline
struct
regulator_init_data
*
of_get_regulator_init_data
(
struct
device
*
dev
)
{
return
NULL
;
}
#endif
/* CONFIG_OF */
#endif
/* __LINUX_OF_REG_H */
sound/soc/codecs/sgtl5000.c
View file @
924ee2c9
...
...
@@ -833,7 +833,7 @@ static int ldo_regulator_register(struct snd_soc_codec *codec,
ldo
->
voltage
=
voltage
;
ldo
->
dev
=
regulator_register
(
&
ldo
->
desc
,
codec
->
dev
,
init_data
,
ldo
);
init_data
,
ldo
,
NULL
);
if
(
IS_ERR
(
ldo
->
dev
))
{
int
ret
=
PTR_ERR
(
ldo
->
dev
);
...
...
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