Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
4c35c867
Commit
4c35c867
authored
Oct 24, 2013
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'regulator/topic/linear' into regulator-next
parents
a6117615
8828bae4
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
51 additions
and
81 deletions
+51
-81
drivers/regulator/88pm800.c
drivers/regulator/88pm800.c
+4
-8
drivers/regulator/as3711-regulator.c
drivers/regulator/as3711-regulator.c
+7
-14
drivers/regulator/as3722-regulator.c
drivers/regulator/as3722-regulator.c
+5
-14
drivers/regulator/da903x.c
drivers/regulator/da903x.c
+2
-4
drivers/regulator/helpers.c
drivers/regulator/helpers.c
+5
-1
drivers/regulator/tps65217-regulator.c
drivers/regulator/tps65217-regulator.c
+8
-16
drivers/regulator/tps65912-regulator.c
drivers/regulator/tps65912-regulator.c
+3
-6
drivers/regulator/wm831x-ldo.c
drivers/regulator/wm831x-ldo.c
+4
-8
drivers/regulator/wm8350-regulator.c
drivers/regulator/wm8350-regulator.c
+2
-4
drivers/regulator/wm8400-regulator.c
drivers/regulator/wm8400-regulator.c
+2
-4
include/linux/regulator/driver.h
include/linux/regulator/driver.h
+9
-2
No files found.
drivers/regulator/88pm800.c
View file @
4c35c867
...
...
@@ -141,18 +141,14 @@ struct pm800_regulators {
/* Ranges are sorted in ascending order. */
static
const
struct
regulator_linear_range
buck1_volt_range
[]
=
{
{
.
min_uV
=
600000
,
.
max_uV
=
1587500
,
.
min_sel
=
0
,
.
max_sel
=
0x4f
,
.
uV_step
=
12500
},
{
.
min_uV
=
1600000
,
.
max_uV
=
1800000
,
.
min_sel
=
0x50
,
.
max_sel
=
0x54
,
.
uV_step
=
50000
},
REGULATOR_LINEAR_RANGE
(
600000
,
0
,
0x4f
,
12500
),
REGULATOR_LINEAR_RANGE
(
1600000
,
0x50
,
0x54
,
50000
),
};
/* BUCK 2~5 have same ranges. */
static
const
struct
regulator_linear_range
buck2_5_volt_range
[]
=
{
{
.
min_uV
=
600000
,
.
max_uV
=
1587500
,
.
min_sel
=
0
,
.
max_sel
=
0x4f
,
.
uV_step
=
12500
},
{
.
min_uV
=
1600000
,
.
max_uV
=
3300000
,
.
min_sel
=
0x50
,
.
max_sel
=
0x72
,
.
uV_step
=
50000
},
REGULATOR_LINEAR_RANGE
(
600000
,
0
,
0x4f
,
12500
),
REGULATOR_LINEAR_RANGE
(
1600000
,
0x50
,
0x72
,
50000
),
};
static
const
unsigned
int
ldo1_volt_table
[]
=
{
...
...
drivers/regulator/as3711-regulator.c
View file @
4c35c867
...
...
@@ -117,26 +117,19 @@ static struct regulator_ops as3711_dldo_ops = {
};
static
const
struct
regulator_linear_range
as3711_sd_ranges
[]
=
{
{
.
min_uV
=
612500
,
.
max_uV
=
1400000
,
.
min_sel
=
0x1
,
.
max_sel
=
0x40
,
.
uV_step
=
12500
},
{
.
min_uV
=
1425000
,
.
max_uV
=
2600000
,
.
min_sel
=
0x41
,
.
max_sel
=
0x70
,
.
uV_step
=
25000
},
{
.
min_uV
=
2650000
,
.
max_uV
=
3350000
,
.
min_sel
=
0x71
,
.
max_sel
=
0x7f
,
.
uV_step
=
50000
},
REGULATOR_LINEAR_RANGE
(
612500
,
0x1
,
0x40
,
12500
),
REGULATOR_LINEAR_RANGE
(
1425000
,
0x41
,
0x70
,
25000
),
REGULATOR_LINEAR_RANGE
(
2650000
,
0x71
,
0x7f
,
50000
),
};
static
const
struct
regulator_linear_range
as3711_aldo_ranges
[]
=
{
{
.
min_uV
=
1200000
,
.
max_uV
=
1950000
,
.
min_sel
=
0
,
.
max_sel
=
0xf
,
.
uV_step
=
50000
},
{
.
min_uV
=
1800000
,
.
max_uV
=
3300000
,
.
min_sel
=
0x10
,
.
max_sel
=
0x1f
,
.
uV_step
=
100000
},
REGULATOR_LINEAR_RANGE
(
1200000
,
0
,
0xf
,
50000
),
REGULATOR_LINEAR_RANGE
(
1800000
,
0x10
,
0x1f
,
100000
),
};
static
const
struct
regulator_linear_range
as3711_dldo_ranges
[]
=
{
{
.
min_uV
=
900000
,
.
max_uV
=
1700000
,
.
min_sel
=
0
,
.
max_sel
=
0x10
,
.
uV_step
=
50000
},
{
.
min_uV
=
1750000
,
.
max_uV
=
3300000
,
.
min_sel
=
0x20
,
.
max_sel
=
0x3f
,
.
uV_step
=
50000
},
REGULATOR_LINEAR_RANGE
(
900000
,
0
,
0x10
,
50000
),
REGULATOR_LINEAR_RANGE
(
1750000
,
0x20
,
0x3f
,
50000
),
};
#define AS3711_REG(_id, _en_reg, _en_bit, _vmask, _vshift, _min_uV, _max_uV, _sfx) \
...
...
drivers/regulator/as3722-regulator.c
View file @
4c35c867
...
...
@@ -435,18 +435,9 @@ static struct regulator_ops as3722_ldo3_extcntrl_ops = {
.
get_current_limit
=
as3722_ldo3_get_current_limit
,
};
#define regulator_lin_range(_min_sel, _max_sel, _min_uV, _step_uV) \
{ \
.min_sel = _min_sel, \
.max_sel = _max_sel, \
.uV_step = _step_uV, \
.min_uV = _min_uV, \
.max_uV = _min_uV + (_max_sel - _min_sel) * _step_uV, \
}
static
const
struct
regulator_linear_range
as3722_ldo_ranges
[]
=
{
regulator_lin_range
(
0x01
,
0x24
,
825000
,
25000
),
regulator_lin_range
(
0x40
,
0x7F
,
1725000
,
25000
),
REGULATOR_LINEAR_RANGE
(
825000
,
0x01
,
0x24
,
25000
),
REGULATOR_LINEAR_RANGE
(
1725000
,
0x40
,
0x7F
,
25000
),
};
static
struct
regulator_ops
as3722_ldo_ops
=
{
...
...
@@ -605,9 +596,9 @@ static int as3722_sd016_set_current_limit(struct regulator_dev *rdev,
}
static
const
struct
regulator_linear_range
as3722_sd2345_ranges
[]
=
{
regulator_lin_range
(
0x01
,
0x40
,
61250
0
,
12500
),
regulator_lin_range
(
0x41
,
0x70
,
142500
0
,
25000
),
regulator_lin_range
(
0x71
,
0x7F
,
2650000
,
50000
),
REGULATOR_LINEAR_RANGE
(
612500
,
0x01
,
0x4
0
,
12500
),
REGULATOR_LINEAR_RANGE
(
1425000
,
0x41
,
0x7
0
,
25000
),
REGULATOR_LINEAR_RANGE
(
2650000
,
0x71
,
0x7F
,
50000
),
};
static
struct
regulator_ops
as3722_sd016_ops
=
{
...
...
drivers/regulator/da903x.c
View file @
4c35c867
...
...
@@ -253,10 +253,8 @@ static int da9034_set_dvc_voltage_sel(struct regulator_dev *rdev,
}
static
const
struct
regulator_linear_range
da9034_ldo12_ranges
[]
=
{
{
.
min_uV
=
1700000
,
.
max_uV
=
2050000
,
.
min_sel
=
0
,
.
max_sel
=
7
,
.
uV_step
=
50000
},
{
.
min_uV
=
2700000
,
.
max_uV
=
3050000
,
.
min_sel
=
8
,
.
max_sel
=
15
,
.
uV_step
=
50000
},
REGULATOR_LINEAR_RANGE
(
1700000
,
0
,
7
,
50000
),
REGULATOR_LINEAR_RANGE
(
2700000
,
8
,
15
,
50000
),
};
static
struct
regulator_ops
da903x_regulator_ldo_ops
=
{
...
...
drivers/regulator/helpers.c
View file @
4c35c867
...
...
@@ -284,9 +284,13 @@ int regulator_map_voltage_linear_range(struct regulator_dev *rdev,
}
for
(
i
=
0
;
i
<
rdev
->
desc
->
n_linear_ranges
;
i
++
)
{
int
linear_max_uV
;
range
=
&
rdev
->
desc
->
linear_ranges
[
i
];
linear_max_uV
=
range
->
min_uV
+
(
range
->
max_sel
-
range
->
min_sel
)
*
range
->
uV_step
;
if
(
!
(
min_uV
<=
range
->
max_uV
&&
max_uV
>=
range
->
min_uV
))
if
(
!
(
min_uV
<=
linear_
max_uV
&&
max_uV
>=
range
->
min_uV
))
continue
;
if
(
min_uV
<=
range
->
min_uV
)
...
...
drivers/regulator/tps65217-regulator.c
View file @
4c35c867
...
...
@@ -52,25 +52,17 @@ static const unsigned int LDO1_VSEL_table[] = {
};
static
const
struct
regulator_linear_range
tps65217_uv1_ranges
[]
=
{
{
.
min_uV
=
900000
,
.
max_uV
=
1500000
,
.
min_sel
=
0
,
.
max_sel
=
24
,
.
uV_step
=
25000
},
{
.
min_uV
=
1550000
,
.
max_uV
=
1800000
,
.
min_sel
=
25
,
.
max_sel
=
30
,
.
uV_step
=
50000
},
{
.
min_uV
=
1850000
,
.
max_uV
=
2900000
,
.
min_sel
=
31
,
.
max_sel
=
52
,
.
uV_step
=
50000
},
{
.
min_uV
=
3000000
,
.
max_uV
=
3200000
,
.
min_sel
=
53
,
.
max_sel
=
55
,
.
uV_step
=
100000
},
{
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
min_sel
=
56
,
.
max_sel
=
62
,
.
uV_step
=
0
},
REGULATOR_LINEAR_RANGE
(
900000
,
0
,
24
,
25000
),
REGULATOR_LINEAR_RANGE
(
1550000
,
25
,
30
,
50000
),
REGULATOR_LINEAR_RANGE
(
1850000
,
31
,
52
,
50000
),
REGULATOR_LINEAR_RANGE
(
3000000
,
53
,
55
,
100000
),
REGULATOR_LINEAR_RANGE
(
3300000
,
56
,
62
,
0
),
};
static
const
struct
regulator_linear_range
tps65217_uv2_ranges
[]
=
{
{
.
min_uV
=
1500000
,
.
max_uV
=
1900000
,
.
min_sel
=
0
,
.
max_sel
=
8
,
.
uV_step
=
50000
},
{
.
min_uV
=
2000000
,
.
max_uV
=
2400000
,
.
min_sel
=
9
,
.
max_sel
=
13
,
.
uV_step
=
100000
},
{
.
min_uV
=
2450000
,
.
max_uV
=
3300000
,
.
min_sel
=
14
,
.
max_sel
=
31
,
.
uV_step
=
50000
},
REGULATOR_LINEAR_RANGE
(
1500000
,
0
,
8
,
50000
),
REGULATOR_LINEAR_RANGE
(
2000000
,
9
,
13
,
100000
),
REGULATOR_LINEAR_RANGE
(
2450000
,
14
,
31
,
50000
),
};
static
int
tps65217_pmic_enable
(
struct
regulator_dev
*
dev
)
...
...
drivers/regulator/tps65912-regulator.c
View file @
4c35c867
...
...
@@ -119,12 +119,9 @@ struct tps65912_reg {
};
static
const
struct
regulator_linear_range
tps65912_ldo_ranges
[]
=
{
{
.
min_uV
=
800000
,
.
max_uV
=
1600000
,
.
min_sel
=
0
,
.
max_sel
=
32
,
.
uV_step
=
25000
},
{
.
min_uV
=
1650000
,
.
max_uV
=
3000000
,
.
min_sel
=
33
,
.
max_sel
=
60
,
.
uV_step
=
50000
},
{
.
min_uV
=
3100000
,
.
max_uV
=
3300000
,
.
min_sel
=
61
,
.
max_sel
=
63
,
.
uV_step
=
100000
},
REGULATOR_LINEAR_RANGE
(
800000
,
0
,
32
,
25000
),
REGULATOR_LINEAR_RANGE
(
1650000
,
33
,
60
,
50000
),
REGULATOR_LINEAR_RANGE
(
3100000
,
61
,
63
,
100000
),
};
static
int
tps65912_get_range
(
struct
tps65912_reg
*
pmic
,
int
id
)
...
...
drivers/regulator/wm831x-ldo.c
View file @
4c35c867
...
...
@@ -63,10 +63,8 @@ static irqreturn_t wm831x_ldo_uv_irq(int irq, void *data)
*/
static
const
struct
regulator_linear_range
wm831x_gp_ldo_ranges
[]
=
{
{
.
min_uV
=
900000
,
.
max_uV
=
1600000
,
.
min_sel
=
0
,
.
max_sel
=
14
,
.
uV_step
=
50000
},
{
.
min_uV
=
1700000
,
.
max_uV
=
3300000
,
.
min_sel
=
15
,
.
max_sel
=
31
,
.
uV_step
=
100000
},
REGULATOR_LINEAR_RANGE
(
900000
,
0
,
14
,
50000
),
REGULATOR_LINEAR_RANGE
(
1700000
,
15
,
31
,
100000
),
};
static
int
wm831x_gp_ldo_set_suspend_voltage
(
struct
regulator_dev
*
rdev
,
...
...
@@ -320,10 +318,8 @@ static struct platform_driver wm831x_gp_ldo_driver = {
*/
static
const
struct
regulator_linear_range
wm831x_aldo_ranges
[]
=
{
{
.
min_uV
=
1000000
,
.
max_uV
=
1600000
,
.
min_sel
=
0
,
.
max_sel
=
12
,
.
uV_step
=
50000
},
{
.
min_uV
=
1700000
,
.
max_uV
=
3500000
,
.
min_sel
=
13
,
.
max_sel
=
31
,
.
uV_step
=
100000
},
REGULATOR_LINEAR_RANGE
(
1000000
,
0
,
12
,
50000
),
REGULATOR_LINEAR_RANGE
(
1700000
,
13
,
31
,
100000
),
};
static
int
wm831x_aldo_set_suspend_voltage
(
struct
regulator_dev
*
rdev
,
...
...
drivers/regulator/wm8350-regulator.c
View file @
4c35c867
...
...
@@ -543,10 +543,8 @@ static int wm8350_dcdc_set_suspend_mode(struct regulator_dev *rdev,
}
static
const
struct
regulator_linear_range
wm8350_ldo_ranges
[]
=
{
{
.
min_uV
=
900000
,
.
max_uV
=
1650000
,
.
min_sel
=
0
,
.
max_sel
=
15
,
.
uV_step
=
50000
},
{
.
min_uV
=
1800000
,
.
max_uV
=
3300000
,
.
min_sel
=
16
,
.
max_sel
=
31
,
.
uV_step
=
100000
},
REGULATOR_LINEAR_RANGE
(
900000
,
0
,
15
,
50000
),
REGULATOR_LINEAR_RANGE
(
1800000
,
16
,
31
,
100000
),
};
static
int
wm8350_ldo_set_suspend_voltage
(
struct
regulator_dev
*
rdev
,
int
uV
)
...
...
drivers/regulator/wm8400-regulator.c
View file @
4c35c867
...
...
@@ -20,10 +20,8 @@
#include <linux/mfd/wm8400-private.h>
static
const
struct
regulator_linear_range
wm8400_ldo_ranges
[]
=
{
{
.
min_uV
=
900000
,
.
max_uV
=
1600000
,
.
min_sel
=
0
,
.
max_sel
=
14
,
.
uV_step
=
50000
},
{
.
min_uV
=
1700000
,
.
max_uV
=
3300000
,
.
min_sel
=
15
,
.
max_sel
=
31
,
.
uV_step
=
100000
},
REGULATOR_LINEAR_RANGE
(
900000
,
0
,
14
,
50000
),
REGULATOR_LINEAR_RANGE
(
1700000
,
15
,
31
,
100000
),
};
static
struct
regulator_ops
wm8400_ldo_ops
=
{
...
...
include/linux/regulator/driver.h
View file @
4c35c867
...
...
@@ -46,19 +46,26 @@ enum regulator_status {
* regulator_list_linear_range().
*
* @min_uV: Lowest voltage in range
* @max_uV: Highest voltage in range
* @min_sel: Lowest selector for range
* @max_sel: Highest selector for range
* @uV_step: Step size
*/
struct
regulator_linear_range
{
unsigned
int
min_uV
;
unsigned
int
max_uV
;
unsigned
int
min_sel
;
unsigned
int
max_sel
;
unsigned
int
uV_step
;
};
/* Initialize struct regulator_linear_range */
#define REGULATOR_LINEAR_RANGE(_min_uV, _min_sel, _max_sel, _step_uV) \
{ \
.min_uV = _min_uV, \
.min_sel = _min_sel, \
.max_sel = _max_sel, \
.uV_step = _step_uV, \
}
/**
* struct regulator_ops - regulator operations.
*
...
...
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