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
978371cb
Commit
978371cb
authored
Jun 02, 2014
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'regulator/topic/tps6586x' into regulator-next
parents
b58e917b
ae8b70c9
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
64 additions
and
10 deletions
+64
-10
drivers/mfd/tps6586x.c
drivers/mfd/tps6586x.c
+4
-0
drivers/regulator/tps6586x-regulator.c
drivers/regulator/tps6586x-regulator.c
+58
-10
include/linux/mfd/tps6586x.h
include/linux/mfd/tps6586x.h
+2
-0
No files found.
drivers/mfd/tps6586x.c
View file @
978371cb
...
@@ -495,6 +495,10 @@ static void tps6586x_print_version(struct i2c_client *client, int version)
...
@@ -495,6 +495,10 @@ static void tps6586x_print_version(struct i2c_client *client, int version)
case
TPS658623
:
case
TPS658623
:
name
=
"TPS658623"
;
name
=
"TPS658623"
;
break
;
break
;
case
TPS658640
:
case
TPS658640v2
:
name
=
"TPS658640"
;
break
;
case
TPS658643
:
case
TPS658643
:
name
=
"TPS658643"
;
name
=
"TPS658643"
;
break
;
break
;
...
...
drivers/regulator/tps6586x-regulator.c
View file @
978371cb
...
@@ -63,12 +63,7 @@ struct tps6586x_regulator {
...
@@ -63,12 +63,7 @@ struct tps6586x_regulator {
int
enable_reg
[
2
];
int
enable_reg
[
2
];
};
};
static
inline
struct
device
*
to_tps6586x_dev
(
struct
regulator_dev
*
rdev
)
static
struct
regulator_ops
tps6586x_rw_regulator_ops
=
{
{
return
rdev_get_dev
(
rdev
)
->
parent
;
}
static
struct
regulator_ops
tps6586x_regulator_ops
=
{
.
list_voltage
=
regulator_list_voltage_table
,
.
list_voltage
=
regulator_list_voltage_table
,
.
map_voltage
=
regulator_map_voltage_ascend
,
.
map_voltage
=
regulator_map_voltage_ascend
,
.
get_voltage_sel
=
regulator_get_voltage_sel_regmap
,
.
get_voltage_sel
=
regulator_get_voltage_sel_regmap
,
...
@@ -79,6 +74,16 @@ static struct regulator_ops tps6586x_regulator_ops = {
...
@@ -79,6 +74,16 @@ static struct regulator_ops tps6586x_regulator_ops = {
.
disable
=
regulator_disable_regmap
,
.
disable
=
regulator_disable_regmap
,
};
};
static
struct
regulator_ops
tps6586x_ro_regulator_ops
=
{
.
list_voltage
=
regulator_list_voltage_table
,
.
map_voltage
=
regulator_map_voltage_ascend
,
.
get_voltage_sel
=
regulator_get_voltage_sel_regmap
,
.
is_enabled
=
regulator_is_enabled_regmap
,
.
enable
=
regulator_enable_regmap
,
.
disable
=
regulator_disable_regmap
,
};
static
struct
regulator_ops
tps6586x_sys_regulator_ops
=
{
static
struct
regulator_ops
tps6586x_sys_regulator_ops
=
{
};
};
...
@@ -106,6 +111,13 @@ static const unsigned int tps6586x_sm2_voltages[] = {
...
@@ -106,6 +111,13 @@ static const unsigned int tps6586x_sm2_voltages[] = {
4200000
,
4250000
,
4300000
,
4350000
,
4400000
,
4450000
,
4500000
,
4550000
,
4200000
,
4250000
,
4300000
,
4350000
,
4400000
,
4450000
,
4500000
,
4550000
,
};
};
static
int
tps658640_sm2_voltages
[]
=
{
2150000
,
2200000
,
2250000
,
2300000
,
2350000
,
2400000
,
2450000
,
2500000
,
2550000
,
2600000
,
2650000
,
2700000
,
2750000
,
2800000
,
2850000
,
2900000
,
2950000
,
3000000
,
3050000
,
3100000
,
3150000
,
3200000
,
3250000
,
3300000
,
3350000
,
3400000
,
3450000
,
3500000
,
3550000
,
3600000
,
3650000
,
3700000
,
};
static
const
unsigned
int
tps658643_sm2_voltages
[]
=
{
static
const
unsigned
int
tps658643_sm2_voltages
[]
=
{
1025000
,
1050000
,
1075000
,
1100000
,
1125000
,
1150000
,
1175000
,
1200000
,
1025000
,
1050000
,
1075000
,
1100000
,
1125000
,
1150000
,
1175000
,
1200000
,
1225000
,
1250000
,
1275000
,
1300000
,
1325000
,
1350000
,
1375000
,
1400000
,
1225000
,
1250000
,
1275000
,
1300000
,
1325000
,
1350000
,
1375000
,
1400000
,
...
@@ -120,12 +132,16 @@ static const unsigned int tps6586x_dvm_voltages[] = {
...
@@ -120,12 +132,16 @@ static const unsigned int tps6586x_dvm_voltages[] = {
1325000
,
1350000
,
1375000
,
1400000
,
1425000
,
1450000
,
1475000
,
1500000
,
1325000
,
1350000
,
1375000
,
1400000
,
1425000
,
1450000
,
1475000
,
1500000
,
};
};
#define TPS6586X_REGULATOR(_id, _pin_name, vdata, vreg, shift, nbits, \
static
int
tps658640_rtc_voltages
[]
=
{
2500000
,
2850000
,
3100000
,
3300000
,
};
#define TPS6586X_REGULATOR(_id, _ops, _pin_name, vdata, vreg, shift, nbits, \
ereg0, ebit0, ereg1, ebit1, goreg, gobit) \
ereg0, ebit0, ereg1, ebit1, goreg, gobit) \
.desc = { \
.desc = { \
.supply_name = _pin_name, \
.supply_name = _pin_name, \
.name = "REG-" #_id, \
.name = "REG-" #_id, \
.ops = &tps6586x_
regulator_ops,
\
.ops = &tps6586x_
## _ops ## _regulator_ops,
\
.type = REGULATOR_VOLTAGE, \
.type = REGULATOR_VOLTAGE, \
.id = TPS6586X_ID_##_id, \
.id = TPS6586X_ID_##_id, \
.n_voltages = ARRAY_SIZE(vdata##_voltages), \
.n_voltages = ARRAY_SIZE(vdata##_voltages), \
...
@@ -146,14 +162,21 @@ static const unsigned int tps6586x_dvm_voltages[] = {
...
@@ -146,14 +162,21 @@ static const unsigned int tps6586x_dvm_voltages[] = {
#define TPS6586X_LDO(_id, _pname, vdata, vreg, shift, nbits, \
#define TPS6586X_LDO(_id, _pname, vdata, vreg, shift, nbits, \
ereg0, ebit0, ereg1, ebit1) \
ereg0, ebit0, ereg1, ebit1) \
{ \
{ \
TPS6586X_REGULATOR(_id, _pname, vdata, vreg, shift, nbits, \
TPS6586X_REGULATOR(_id, rw, _pname, vdata, vreg, shift, nbits, \
ereg0, ebit0, ereg1, ebit1, 0, 0) \
}
#define TPS6586X_FIXED_LDO(_id, _pname, vdata, vreg, shift, nbits, \
ereg0, ebit0, ereg1, ebit1) \
{ \
TPS6586X_REGULATOR(_id, ro, _pname, vdata, vreg, shift, nbits, \
ereg0, ebit0, ereg1, ebit1, 0, 0) \
ereg0, ebit0, ereg1, ebit1, 0, 0) \
}
}
#define TPS6586X_DVM(_id, _pname, vdata, vreg, shift, nbits, \
#define TPS6586X_DVM(_id, _pname, vdata, vreg, shift, nbits, \
ereg0, ebit0, ereg1, ebit1, goreg, gobit) \
ereg0, ebit0, ereg1, ebit1, goreg, gobit) \
{ \
{ \
TPS6586X_REGULATOR(_id, _pname, vdata, vreg, shift, nbits, \
TPS6586X_REGULATOR(_id,
rw,
_pname, vdata, vreg, shift, nbits, \
ereg0, ebit0, ereg1, ebit1, goreg, gobit) \
ereg0, ebit0, ereg1, ebit1, goreg, gobit) \
}
}
...
@@ -207,6 +230,26 @@ static struct tps6586x_regulator tps658623_regulator[] = {
...
@@ -207,6 +230,26 @@ static struct tps6586x_regulator tps658623_regulator[] = {
END
,
7
),
END
,
7
),
};
};
static
struct
tps6586x_regulator
tps658640_regulator
[]
=
{
TPS6586X_LDO
(
LDO_3
,
"vinldo23"
,
tps6586x_ldo0
,
SUPPLYV4
,
0
,
3
,
ENC
,
2
,
END
,
2
),
TPS6586X_LDO
(
LDO_5
,
"REG-SYS"
,
tps6586x_ldo0
,
SUPPLYV6
,
0
,
3
,
ENE
,
6
,
ENE
,
6
),
TPS6586X_LDO
(
LDO_6
,
"vinldo678"
,
tps6586x_ldo0
,
SUPPLYV3
,
0
,
3
,
ENC
,
4
,
END
,
4
),
TPS6586X_LDO
(
LDO_7
,
"vinldo678"
,
tps6586x_ldo0
,
SUPPLYV3
,
3
,
3
,
ENC
,
5
,
END
,
5
),
TPS6586X_LDO
(
LDO_8
,
"vinldo678"
,
tps6586x_ldo0
,
SUPPLYV2
,
5
,
3
,
ENC
,
6
,
END
,
6
),
TPS6586X_LDO
(
LDO_9
,
"vinldo9"
,
tps6586x_ldo0
,
SUPPLYV6
,
3
,
3
,
ENE
,
7
,
ENE
,
7
),
TPS6586X_LDO
(
SM_2
,
"vin-sm2"
,
tps658640_sm2
,
SUPPLYV2
,
0
,
5
,
ENC
,
7
,
END
,
7
),
TPS6586X_FIXED_LDO
(
LDO_RTC
,
"REG-SYS"
,
tps658640_rtc
,
SUPPLYV4
,
3
,
2
,
V4
,
7
,
V4
,
7
),
};
static
struct
tps6586x_regulator
tps658643_regulator
[]
=
{
static
struct
tps6586x_regulator
tps658643_regulator
[]
=
{
TPS6586X_LDO
(
SM_2
,
"vin-sm2"
,
tps658643_sm2
,
SUPPLYV2
,
0
,
5
,
ENC
,
7
,
TPS6586X_LDO
(
SM_2
,
"vin-sm2"
,
tps658643_sm2
,
SUPPLYV2
,
0
,
5
,
ENC
,
7
,
END
,
7
),
END
,
7
),
...
@@ -295,6 +338,11 @@ static struct tps6586x_regulator *find_regulator_info(int id, int version)
...
@@ -295,6 +338,11 @@ static struct tps6586x_regulator *find_regulator_info(int id, int version)
table
=
tps658623_regulator
;
table
=
tps658623_regulator
;
num
=
ARRAY_SIZE
(
tps658623_regulator
);
num
=
ARRAY_SIZE
(
tps658623_regulator
);
break
;
break
;
case
TPS658640
:
case
TPS658640v2
:
table
=
tps658640_regulator
;
num
=
ARRAY_SIZE
(
tps658640_regulator
);
break
;
case
TPS658643
:
case
TPS658643
:
table
=
tps658643_regulator
;
table
=
tps658643_regulator
;
num
=
ARRAY_SIZE
(
tps658643_regulator
);
num
=
ARRAY_SIZE
(
tps658643_regulator
);
...
...
include/linux/mfd/tps6586x.h
View file @
978371cb
...
@@ -17,6 +17,8 @@
...
@@ -17,6 +17,8 @@
#define TPS658621A 0x15
#define TPS658621A 0x15
#define TPS658621CD 0x2c
#define TPS658621CD 0x2c
#define TPS658623 0x1b
#define TPS658623 0x1b
#define TPS658640 0x01
#define TPS658640v2 0x02
#define TPS658643 0x03
#define TPS658643 0x03
enum
{
enum
{
...
...
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