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
c20d7a9b
Commit
c20d7a9b
authored
Jul 26, 2021
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'regulator-5.14' into regulator-5.15
parents
d0f95e64
ccb2a74e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
27 deletions
+31
-27
drivers/regulator/hi6421-regulator.c
drivers/regulator/hi6421-regulator.c
+13
-9
drivers/regulator/hi6421v600-regulator.c
drivers/regulator/hi6421v600-regulator.c
+18
-18
No files found.
drivers/regulator/hi6421-regulator.c
View file @
c20d7a9b
...
...
@@ -366,9 +366,8 @@ static struct hi6421_regulator_info
static
int
hi6421_regulator_enable
(
struct
regulator_dev
*
rdev
)
{
struct
hi6421_regulator_pdata
*
pdata
;
struct
hi6421_regulator_pdata
*
pdata
=
rdev_get_drvdata
(
rdev
)
;
pdata
=
dev_get_drvdata
(
rdev
->
dev
.
parent
);
/* hi6421 spec requires regulator enablement must be serialized:
* - Because when BUCK, LDO switching from off to on, it will have
* a huge instantaneous current; so you can not turn on two or
...
...
@@ -385,9 +384,10 @@ static int hi6421_regulator_enable(struct regulator_dev *rdev)
static
unsigned
int
hi6421_regulator_ldo_get_mode
(
struct
regulator_dev
*
rdev
)
{
struct
hi6421_regulator_info
*
info
=
rdev_get_drvdata
(
rdev
)
;
struct
hi6421_regulator_info
*
info
;
unsigned
int
reg_val
;
info
=
container_of
(
rdev
->
desc
,
struct
hi6421_regulator_info
,
desc
);
regmap_read
(
rdev
->
regmap
,
rdev
->
desc
->
enable_reg
,
&
reg_val
);
if
(
reg_val
&
info
->
mode_mask
)
return
REGULATOR_MODE_IDLE
;
...
...
@@ -397,9 +397,10 @@ static unsigned int hi6421_regulator_ldo_get_mode(struct regulator_dev *rdev)
static
unsigned
int
hi6421_regulator_buck_get_mode
(
struct
regulator_dev
*
rdev
)
{
struct
hi6421_regulator_info
*
info
=
rdev_get_drvdata
(
rdev
)
;
struct
hi6421_regulator_info
*
info
;
unsigned
int
reg_val
;
info
=
container_of
(
rdev
->
desc
,
struct
hi6421_regulator_info
,
desc
);
regmap_read
(
rdev
->
regmap
,
rdev
->
desc
->
enable_reg
,
&
reg_val
);
if
(
reg_val
&
info
->
mode_mask
)
return
REGULATOR_MODE_STANDBY
;
...
...
@@ -410,9 +411,10 @@ static unsigned int hi6421_regulator_buck_get_mode(struct regulator_dev *rdev)
static
int
hi6421_regulator_ldo_set_mode
(
struct
regulator_dev
*
rdev
,
unsigned
int
mode
)
{
struct
hi6421_regulator_info
*
info
=
rdev_get_drvdata
(
rdev
)
;
struct
hi6421_regulator_info
*
info
;
unsigned
int
new_mode
;
info
=
container_of
(
rdev
->
desc
,
struct
hi6421_regulator_info
,
desc
);
switch
(
mode
)
{
case
REGULATOR_MODE_NORMAL
:
new_mode
=
0
;
...
...
@@ -434,9 +436,10 @@ static int hi6421_regulator_ldo_set_mode(struct regulator_dev *rdev,
static
int
hi6421_regulator_buck_set_mode
(
struct
regulator_dev
*
rdev
,
unsigned
int
mode
)
{
struct
hi6421_regulator_info
*
info
=
rdev_get_drvdata
(
rdev
)
;
struct
hi6421_regulator_info
*
info
;
unsigned
int
new_mode
;
info
=
container_of
(
rdev
->
desc
,
struct
hi6421_regulator_info
,
desc
);
switch
(
mode
)
{
case
REGULATOR_MODE_NORMAL
:
new_mode
=
0
;
...
...
@@ -459,7 +462,9 @@ static unsigned int
hi6421_regulator_ldo_get_optimum_mode
(
struct
regulator_dev
*
rdev
,
int
input_uV
,
int
output_uV
,
int
load_uA
)
{
struct
hi6421_regulator_info
*
info
=
rdev_get_drvdata
(
rdev
);
struct
hi6421_regulator_info
*
info
;
info
=
container_of
(
rdev
->
desc
,
struct
hi6421_regulator_info
,
desc
);
if
(
load_uA
>
info
->
eco_microamp
)
return
REGULATOR_MODE_NORMAL
;
...
...
@@ -543,14 +548,13 @@ static int hi6421_regulator_probe(struct platform_device *pdev)
if
(
!
pdata
)
return
-
ENOMEM
;
mutex_init
(
&
pdata
->
lock
);
platform_set_drvdata
(
pdev
,
pdata
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
hi6421_regulator_info
);
i
++
)
{
/* assign per-regulator data */
info
=
&
hi6421_regulator_info
[
i
];
config
.
dev
=
pdev
->
dev
.
parent
;
config
.
driver_data
=
info
;
config
.
driver_data
=
pdata
;
config
.
regmap
=
pmic
->
regmap
;
rdev
=
devm_regulator_register
(
&
pdev
->
dev
,
&
info
->
desc
,
...
...
drivers/regulator/hi6421v600-regulator.c
View file @
c20d7a9b
...
...
@@ -73,14 +73,14 @@ static const unsigned int ldo34_voltages[] = {
*/
#define HI6421V600_LDO(_id, vtable, ereg, emask, vreg, \
odelay, etime, ecomask, ecoamp) \
[
HI6421V
600_##_id] = { \
[
hi6421v
600_##_id] = { \
.desc = { \
.name = #_id, \
.of_match = of_match_ptr(#_id), \
.regulators_node = of_match_ptr("regulators"), \
.ops = &hi6421_spmi_ldo_rops, \
.type = REGULATOR_VOLTAGE, \
.id =
HI6421V
600_##_id, \
.id =
hi6421v
600_##_id, \
.owner = THIS_MODULE, \
.volt_table = vtable, \
.n_voltages = ARRAY_SIZE(vtable), \
...
...
@@ -185,46 +185,46 @@ static const struct regulator_ops hi6421_spmi_ldo_rops = {
/* HI6421v600 regulators with known registers */
enum
hi6421_spmi_regulator_id
{
HI6421V600_LDO
3
,
HI6421V600_LDO
4
,
HI6421V600_LDO
9
,
HI6421V600_LDO
15
,
HI6421V600_LDO
16
,
HI6421V600_LDO
17
,
HI6421V600_LDO
33
,
HI6421V600_LDO
34
,
hi6421v600_ldo
3
,
hi6421v600_ldo
4
,
hi6421v600_ldo
9
,
hi6421v600_ldo
15
,
hi6421v600_ldo
16
,
hi6421v600_ldo
17
,
hi6421v600_ldo
33
,
hi6421v600_ldo
34
,
};
static
struct
hi6421_spmi_reg_info
regulator_info
[]
=
{
HI6421V600_LDO
(
LDO
3
,
ldo3_voltages
,
HI6421V600_LDO
(
ldo
3
,
ldo3_voltages
,
0x16
,
0x01
,
0x51
,
20000
,
120
,
0
,
0
),
HI6421V600_LDO
(
LDO
4
,
ldo4_voltages
,
HI6421V600_LDO
(
ldo
4
,
ldo4_voltages
,
0x17
,
0x01
,
0x52
,
20000
,
120
,
0x10
,
10000
),
HI6421V600_LDO
(
LDO
9
,
ldo9_voltages
,
HI6421V600_LDO
(
ldo
9
,
ldo9_voltages
,
0x1c
,
0x01
,
0x57
,
20000
,
360
,
0x10
,
10000
),
HI6421V600_LDO
(
LDO
15
,
ldo15_voltages
,
HI6421V600_LDO
(
ldo
15
,
ldo15_voltages
,
0x21
,
0x01
,
0x5c
,
20000
,
360
,
0x10
,
10000
),
HI6421V600_LDO
(
LDO
16
,
ldo15_voltages
,
HI6421V600_LDO
(
ldo
16
,
ldo15_voltages
,
0x22
,
0x01
,
0x5d
,
20000
,
360
,
0x10
,
10000
),
HI6421V600_LDO
(
LDO
17
,
ldo17_voltages
,
HI6421V600_LDO
(
ldo
17
,
ldo17_voltages
,
0x23
,
0x01
,
0x5e
,
20000
,
120
,
0x10
,
10000
),
HI6421V600_LDO
(
LDO
33
,
ldo17_voltages
,
HI6421V600_LDO
(
ldo
33
,
ldo17_voltages
,
0x32
,
0x01
,
0x6d
,
20000
,
120
,
0
,
0
),
HI6421V600_LDO
(
LDO
34
,
ldo34_voltages
,
HI6421V600_LDO
(
ldo
34
,
ldo34_voltages
,
0x33
,
0x01
,
0x6e
,
20000
,
120
,
0
,
0
),
...
...
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