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
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