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
979268cd
Commit
979268cd
authored
Nov 28, 2011
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branches 'regulator/topic/dt' and 'regulator/for-linus' into regulator-next
parents
12f457dd
7728c14a
ba305e31
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
7 deletions
+49
-7
Documentation/devicetree/bindings/regulator/regulator.txt
Documentation/devicetree/bindings/regulator/regulator.txt
+5
-5
drivers/regulator/twl-regulator.c
drivers/regulator/twl-regulator.c
+44
-2
No files found.
Documentation/devicetree/bindings/regulator/regulator.txt
View file @
979268cd
...
@@ -32,15 +32,15 @@ its just seen as a special case of a regulator being a
...
@@ -32,15 +32,15 @@ its just seen as a special case of a regulator being a
consumer itself.
consumer itself.
Example of a consumer device node (mmc) referencing two
Example of a consumer device node (mmc) referencing two
regulators (twl
-reg1 and twl-
reg2),
regulators (twl
_reg1 and twl_
reg2),
twl
-
reg1: regulator@0 {
twl
_
reg1: regulator@0 {
...
...
...
...
...
...
};
};
twl
-
reg2: regulator@1 {
twl
_
reg2: regulator@1 {
...
...
...
...
...
...
...
@@ -49,6 +49,6 @@ regulators (twl-reg1 and twl-reg2),
...
@@ -49,6 +49,6 @@ regulators (twl-reg1 and twl-reg2),
mmc: mmc@0x0 {
mmc: mmc@0x0 {
...
...
...
...
vmmc-supply = <&twl
-
reg1>;
vmmc-supply = <&twl
_
reg1>;
vmmcaux-supply = <&twl
-
reg2>;
vmmcaux-supply = <&twl
_
reg2>;
};
};
drivers/regulator/twl-regulator.c
View file @
979268cd
...
@@ -71,6 +71,7 @@ struct twlreg_info {
...
@@ -71,6 +71,7 @@ struct twlreg_info {
#define VREG_TYPE 1
#define VREG_TYPE 1
#define VREG_REMAP 2
#define VREG_REMAP 2
#define VREG_DEDICATED 3
/* LDO control */
#define VREG_DEDICATED 3
/* LDO control */
#define VREG_VOLTAGE_SMPS_4030 9
/* TWL6030 register offsets */
/* TWL6030 register offsets */
#define VREG_TRANS 1
#define VREG_TRANS 1
#define VREG_STATE 2
#define VREG_STATE 2
...
@@ -514,6 +515,32 @@ static struct regulator_ops twl4030ldo_ops = {
...
@@ -514,6 +515,32 @@ static struct regulator_ops twl4030ldo_ops = {
.
get_status
=
twl4030reg_get_status
,
.
get_status
=
twl4030reg_get_status
,
};
};
static
int
twl4030smps_set_voltage
(
struct
regulator_dev
*
rdev
,
int
min_uV
,
int
max_uV
,
unsigned
*
selector
)
{
struct
twlreg_info
*
info
=
rdev_get_drvdata
(
rdev
);
int
vsel
=
DIV_ROUND_UP
(
min_uV
-
600000
,
12500
);
twlreg_write
(
info
,
TWL_MODULE_PM_RECEIVER
,
VREG_VOLTAGE_SMPS_4030
,
vsel
);
return
0
;
}
static
int
twl4030smps_get_voltage
(
struct
regulator_dev
*
rdev
)
{
struct
twlreg_info
*
info
=
rdev_get_drvdata
(
rdev
);
int
vsel
=
twlreg_read
(
info
,
TWL_MODULE_PM_RECEIVER
,
VREG_VOLTAGE_SMPS_4030
);
return
vsel
*
12500
+
600000
;
}
static
struct
regulator_ops
twl4030smps_ops
=
{
.
set_voltage
=
twl4030smps_set_voltage
,
.
get_voltage
=
twl4030smps_get_voltage
,
};
static
int
twl6030ldo_list_voltage
(
struct
regulator_dev
*
rdev
,
unsigned
index
)
static
int
twl6030ldo_list_voltage
(
struct
regulator_dev
*
rdev
,
unsigned
index
)
{
{
struct
twlreg_info
*
info
=
rdev_get_drvdata
(
rdev
);
struct
twlreg_info
*
info
=
rdev_get_drvdata
(
rdev
);
...
@@ -856,6 +883,21 @@ static struct regulator_ops twlsmps_ops = {
...
@@ -856,6 +883,21 @@ static struct regulator_ops twlsmps_ops = {
}, \
}, \
}
}
#define TWL4030_ADJUSTABLE_SMPS(label, offset, num, turnon_delay, remap_conf) \
{ \
.base = offset, \
.id = num, \
.delay = turnon_delay, \
.remap = remap_conf, \
.desc = { \
.name = #label, \
.id = TWL4030_REG_##label, \
.ops = &twl4030smps_ops, \
.type = REGULATOR_VOLTAGE, \
.owner = THIS_MODULE, \
}, \
}
#define TWL6030_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts) { \
#define TWL6030_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts) { \
.base = offset, \
.base = offset, \
.min_mV = min_mVolts, \
.min_mV = min_mVolts, \
...
@@ -947,8 +989,8 @@ static struct twlreg_info twl_regs[] = {
...
@@ -947,8 +989,8 @@ static struct twlreg_info twl_regs[] = {
TWL4030_ADJUSTABLE_LDO
(
VINTANA2
,
0x43
,
12
,
100
,
0x08
),
TWL4030_ADJUSTABLE_LDO
(
VINTANA2
,
0x43
,
12
,
100
,
0x08
),
TWL4030_FIXED_LDO
(
VINTDIG
,
0x47
,
1500
,
13
,
100
,
0x08
),
TWL4030_FIXED_LDO
(
VINTDIG
,
0x47
,
1500
,
13
,
100
,
0x08
),
TWL4030_ADJUSTABLE_LDO
(
VIO
,
0x4b
,
14
,
1000
,
0x08
),
TWL4030_ADJUSTABLE_LDO
(
VIO
,
0x4b
,
14
,
1000
,
0x08
),
TWL4030_ADJUSTABLE_
LDO
(
VDD1
,
0x55
,
15
,
1000
,
0x08
),
TWL4030_ADJUSTABLE_
SMPS
(
VDD1
,
0x55
,
15
,
1000
,
0x08
),
TWL4030_ADJUSTABLE_
LDO
(
VDD2
,
0x63
,
16
,
1000
,
0x08
),
TWL4030_ADJUSTABLE_
SMPS
(
VDD2
,
0x63
,
16
,
1000
,
0x08
),
TWL4030_FIXED_LDO
(
VUSB1V5
,
0x71
,
1500
,
17
,
100
,
0x08
),
TWL4030_FIXED_LDO
(
VUSB1V5
,
0x71
,
1500
,
17
,
100
,
0x08
),
TWL4030_FIXED_LDO
(
VUSB1V8
,
0x74
,
1800
,
18
,
100
,
0x08
),
TWL4030_FIXED_LDO
(
VUSB1V8
,
0x74
,
1800
,
18
,
100
,
0x08
),
TWL4030_FIXED_LDO
(
VUSB3V1
,
0x77
,
3100
,
19
,
150
,
0x08
),
TWL4030_FIXED_LDO
(
VUSB3V1
,
0x77
,
3100
,
19
,
150
,
0x08
),
...
...
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