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
9a13ce38
Commit
9a13ce38
authored
Mar 28, 2018
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'regulator/topic/qcom' into regulator-next
parents
9dc886a2
3cdb741e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
170 additions
and
0 deletions
+170
-0
Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt
.../devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt
+48
-0
drivers/regulator/qcom_smd-regulator.c
drivers/regulator/qcom_smd-regulator.c
+121
-0
include/linux/soc/qcom/smd-rpm.h
include/linux/soc/qcom/smd-rpm.h
+1
-0
No files found.
Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt
View file @
9a13ce38
...
...
@@ -23,7 +23,9 @@ Regulator nodes are identified by their compatible:
"qcom,rpm-pm8916-regulators"
"qcom,rpm-pm8941-regulators"
"qcom,rpm-pm8994-regulators"
"qcom,rpm-pm8998-regulators"
"qcom,rpm-pma8084-regulators"
"qcom,rpm-pmi8998-regulators"
- vdd_s1-supply:
- vdd_s2-supply:
...
...
@@ -119,6 +121,38 @@ Regulator nodes are identified by their compatible:
Definition: reference to regulator supplying the input pin, as
described in the data sheet
- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s3-supply:
- vdd_s4-supply:
- vdd_s5-supply:
- vdd_s6-supply:
- vdd_s7-supply:
- vdd_s8-supply:
- vdd_s9-supply:
- vdd_s10-supply:
- vdd_s11-supply:
- vdd_s12-supply:
- vdd_s13-supply:
- vdd_l1_l27-supply:
- vdd_l20_l24-supply:
- vdd_l26-supply:
- vdd_l2_l8_l17-supply:
- vdd_l3_l11-supply:
- vdd_l4_l5-supply:
- vdd_l6-supply:
- vdd_l7_l12_l14_l15-supply:
- vdd_l9-supply:
- vdd_l10_l23_l25-supply:
- vdd_l13_l19_l21-supply:
- vdd_l16_l28-supply:
- vdd_l18_l22-supply:
- vdd_lvs1_lvs2-supply:
Usage: optional (pmi8998 only)
Value type: <phandle>
Definition: reference to regulator supplying the input pin, as
described in the data sheet
- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s3-supply:
...
...
@@ -148,6 +182,12 @@ Regulator nodes are identified by their compatible:
Definition: reference to regulator supplying the input pin, as
described in the data sheet
- vdd_bob-supply:
Usage: optional (pmi8998 only)
Value type: <phandle>
Definition: reference to regulator supplying the input pin, as
described in the data sheet
The regulator node houses sub-nodes for each regulator within the device. Each
sub-node is identified using the node's name, with valid values listed for each
of the pmics below.
...
...
@@ -169,11 +209,19 @@ pm8994:
l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20,
l21, l22, l23, l24, l25, l26, l27, l28, l29, l30, l31, l32, lvs1, lvs2
pm8998:
s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, l1, l2, l3, l4,
l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19,
l20, l21, l22, l23, l24, l25, l26, l27, l28, lvs1, lvs2
pma8084:
s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, l1, l2, l3, l4, l5,
l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20,
l21, l22, l23, l24, l25, l26, l27, lvs1, lvs2, lvs3, lvs4, 5vs1
pmi8998:
bob
The content of each sub-node is defined by the standard binding for regulators -
see regulator.txt.
...
...
drivers/regulator/qcom_smd-regulator.c
View file @
9a13ce38
...
...
@@ -165,6 +165,15 @@ static const struct regulator_ops rpm_switch_ops = {
.
is_enabled
=
rpm_reg_is_enabled
,
};
static
const
struct
regulator_ops
rpm_bob_ops
=
{
.
enable
=
rpm_reg_enable
,
.
disable
=
rpm_reg_disable
,
.
is_enabled
=
rpm_reg_is_enabled
,
.
get_voltage
=
rpm_reg_get_voltage
,
.
set_voltage
=
rpm_reg_set_voltage
,
};
static
const
struct
regulator_desc
pma8084_hfsmps
=
{
.
linear_ranges
=
(
struct
regulator_linear_range
[])
{
REGULATOR_LINEAR_RANGE
(
375000
,
0
,
95
,
12500
),
...
...
@@ -355,6 +364,64 @@ static const struct regulator_desc pm8994_lnldo = {
.
ops
=
&
rpm_smps_ldo_ops_fixed
,
};
static
const
struct
regulator_desc
pm8998_ftsmps
=
{
.
linear_ranges
=
(
struct
regulator_linear_range
[])
{
REGULATOR_LINEAR_RANGE
(
320000
,
0
,
258
,
4000
),
},
.
n_linear_ranges
=
1
,
.
n_voltages
=
259
,
.
ops
=
&
rpm_smps_ldo_ops
,
};
static
const
struct
regulator_desc
pm8998_hfsmps
=
{
.
linear_ranges
=
(
struct
regulator_linear_range
[])
{
REGULATOR_LINEAR_RANGE
(
320000
,
0
,
215
,
8000
),
},
.
n_linear_ranges
=
1
,
.
n_voltages
=
216
,
.
ops
=
&
rpm_smps_ldo_ops
,
};
static
const
struct
regulator_desc
pm8998_nldo
=
{
.
linear_ranges
=
(
struct
regulator_linear_range
[])
{
REGULATOR_LINEAR_RANGE
(
312000
,
0
,
127
,
8000
),
},
.
n_linear_ranges
=
1
,
.
n_voltages
=
128
,
.
ops
=
&
rpm_smps_ldo_ops
,
};
static
const
struct
regulator_desc
pm8998_pldo
=
{
.
linear_ranges
=
(
struct
regulator_linear_range
[])
{
REGULATOR_LINEAR_RANGE
(
1664000
,
0
,
255
,
8000
),
},
.
n_linear_ranges
=
1
,
.
n_voltages
=
256
,
.
ops
=
&
rpm_smps_ldo_ops
,
};
static
const
struct
regulator_desc
pm8998_pldo_lv
=
{
.
linear_ranges
=
(
struct
regulator_linear_range
[])
{
REGULATOR_LINEAR_RANGE
(
1256000
,
0
,
127
,
8000
),
},
.
n_linear_ranges
=
1
,
.
n_voltages
=
128
,
.
ops
=
&
rpm_smps_ldo_ops
,
};
static
const
struct
regulator_desc
pm8998_switch
=
{
.
ops
=
&
rpm_switch_ops
,
};
static
const
struct
regulator_desc
pmi8998_bob
=
{
.
linear_ranges
=
(
struct
regulator_linear_range
[])
{
REGULATOR_LINEAR_RANGE
(
1824000
,
0
,
83
,
32000
),
},
.
n_linear_ranges
=
1
,
.
n_voltages
=
84
,
.
ops
=
&
rpm_bob_ops
,
};
struct
rpm_regulator_data
{
const
char
*
name
;
u32
type
;
...
...
@@ -544,12 +611,66 @@ static const struct rpm_regulator_data rpm_pm8994_regulators[] = {
{}
};
static
const
struct
rpm_regulator_data
rpm_pm8998_regulators
[]
=
{
{
"s1"
,
QCOM_SMD_RPM_SMPA
,
1
,
&
pm8998_ftsmps
,
"vdd_s1"
},
{
"s2"
,
QCOM_SMD_RPM_SMPA
,
2
,
&
pm8998_ftsmps
,
"vdd_s2"
},
{
"s3"
,
QCOM_SMD_RPM_SMPA
,
3
,
&
pm8998_hfsmps
,
"vdd_s3"
},
{
"s4"
,
QCOM_SMD_RPM_SMPA
,
4
,
&
pm8998_hfsmps
,
"vdd_s4"
},
{
"s5"
,
QCOM_SMD_RPM_SMPA
,
5
,
&
pm8998_hfsmps
,
"vdd_s5"
},
{
"s6"
,
QCOM_SMD_RPM_SMPA
,
6
,
&
pm8998_ftsmps
,
"vdd_s6"
},
{
"s7"
,
QCOM_SMD_RPM_SMPA
,
7
,
&
pm8998_ftsmps
,
"vdd_s7"
},
{
"s8"
,
QCOM_SMD_RPM_SMPA
,
8
,
&
pm8998_ftsmps
,
"vdd_s8"
},
{
"s9"
,
QCOM_SMD_RPM_SMPA
,
9
,
&
pm8998_ftsmps
,
"vdd_s9"
},
{
"s10"
,
QCOM_SMD_RPM_SMPA
,
10
,
&
pm8998_ftsmps
,
"vdd_s10"
},
{
"s11"
,
QCOM_SMD_RPM_SMPA
,
11
,
&
pm8998_ftsmps
,
"vdd_s11"
},
{
"s12"
,
QCOM_SMD_RPM_SMPA
,
12
,
&
pm8998_ftsmps
,
"vdd_s12"
},
{
"s13"
,
QCOM_SMD_RPM_SMPA
,
13
,
&
pm8998_ftsmps
,
"vdd_s13"
},
{
"l1"
,
QCOM_SMD_RPM_LDOA
,
1
,
&
pm8998_nldo
,
"vdd_l1_l27"
},
{
"l2"
,
QCOM_SMD_RPM_LDOA
,
2
,
&
pm8998_nldo
,
"vdd_l2_l8_l17"
},
{
"l3"
,
QCOM_SMD_RPM_LDOA
,
3
,
&
pm8998_nldo
,
"vdd_l3_l11"
},
{
"l4"
,
QCOM_SMD_RPM_LDOA
,
4
,
&
pm8998_nldo
,
"vdd_l4_l5"
},
{
"l5"
,
QCOM_SMD_RPM_LDOA
,
5
,
&
pm8998_nldo
,
"vdd_l4_l5"
},
{
"l6"
,
QCOM_SMD_RPM_LDOA
,
6
,
&
pm8998_pldo
,
"vdd_l6"
},
{
"l7"
,
QCOM_SMD_RPM_LDOA
,
7
,
&
pm8998_pldo_lv
,
"vdd_l7_l12_l14_l15"
},
{
"l8"
,
QCOM_SMD_RPM_LDOA
,
8
,
&
pm8998_nldo
,
"vdd_l2_l8_l17"
},
{
"l9"
,
QCOM_SMD_RPM_LDOA
,
9
,
&
pm8998_pldo
,
"vdd_l9"
},
{
"l10"
,
QCOM_SMD_RPM_LDOA
,
10
,
&
pm8998_pldo
,
"vdd_l10_l23_l25"
},
{
"l11"
,
QCOM_SMD_RPM_LDOA
,
11
,
&
pm8998_nldo
,
"vdd_l3_l11"
},
{
"l12"
,
QCOM_SMD_RPM_LDOA
,
12
,
&
pm8998_pldo_lv
,
"vdd_l7_l12_l14_l15"
},
{
"l13"
,
QCOM_SMD_RPM_LDOA
,
13
,
&
pm8998_pldo
,
"vdd_l13_l19_l21"
},
{
"l14"
,
QCOM_SMD_RPM_LDOA
,
14
,
&
pm8998_pldo_lv
,
"vdd_l7_l12_l14_l15"
},
{
"l15"
,
QCOM_SMD_RPM_LDOA
,
15
,
&
pm8998_pldo_lv
,
"vdd_l7_l12_l14_l15"
},
{
"l16"
,
QCOM_SMD_RPM_LDOA
,
16
,
&
pm8998_pldo
,
"vdd_l16_l28"
},
{
"l17"
,
QCOM_SMD_RPM_LDOA
,
17
,
&
pm8998_nldo
,
"vdd_l2_l8_l17"
},
{
"l18"
,
QCOM_SMD_RPM_LDOA
,
18
,
&
pm8998_pldo
,
"vdd_l18_l22"
},
{
"l19"
,
QCOM_SMD_RPM_LDOA
,
19
,
&
pm8998_pldo
,
"vdd_l13_l19_l21"
},
{
"l20"
,
QCOM_SMD_RPM_LDOA
,
20
,
&
pm8998_pldo
,
"vdd_l20_l24"
},
{
"l21"
,
QCOM_SMD_RPM_LDOA
,
21
,
&
pm8998_pldo
,
"vdd_l13_l19_l21"
},
{
"l22"
,
QCOM_SMD_RPM_LDOA
,
22
,
&
pm8998_pldo
,
"vdd_l18_l22"
},
{
"l23"
,
QCOM_SMD_RPM_LDOA
,
23
,
&
pm8998_pldo
,
"vdd_l10_l23_l25"
},
{
"l24"
,
QCOM_SMD_RPM_LDOA
,
24
,
&
pm8998_pldo
,
"vdd_l20_l24"
},
{
"l25"
,
QCOM_SMD_RPM_LDOA
,
25
,
&
pm8998_pldo
,
"vdd_l10_l23_l25"
},
{
"l26"
,
QCOM_SMD_RPM_LDOA
,
26
,
&
pm8998_nldo
,
"vdd_l26"
},
{
"l27"
,
QCOM_SMD_RPM_LDOA
,
27
,
&
pm8998_nldo
,
"vdd_l1_l27"
},
{
"l28"
,
QCOM_SMD_RPM_LDOA
,
28
,
&
pm8998_pldo
,
"vdd_l16_l28"
},
{
"lvs1"
,
QCOM_SMD_RPM_VSA
,
1
,
&
pm8998_switch
,
"vdd_lvs1_lvs2"
},
{
"lvs2"
,
QCOM_SMD_RPM_VSA
,
2
,
&
pm8998_switch
,
"vdd_lvs1_lvs2"
},
{}
};
static
const
struct
rpm_regulator_data
rpm_pmi8998_regulators
[]
=
{
{
"bob"
,
QCOM_SMD_RPM_BOBB
,
1
,
&
pmi8998_bob
,
"vdd_bob"
},
{}
};
static
const
struct
of_device_id
rpm_of_match
[]
=
{
{
.
compatible
=
"qcom,rpm-pm8841-regulators"
,
.
data
=
&
rpm_pm8841_regulators
},
{
.
compatible
=
"qcom,rpm-pm8916-regulators"
,
.
data
=
&
rpm_pm8916_regulators
},
{
.
compatible
=
"qcom,rpm-pm8941-regulators"
,
.
data
=
&
rpm_pm8941_regulators
},
{
.
compatible
=
"qcom,rpm-pm8994-regulators"
,
.
data
=
&
rpm_pm8994_regulators
},
{
.
compatible
=
"qcom,rpm-pm8998-regulators"
,
.
data
=
&
rpm_pm8998_regulators
},
{
.
compatible
=
"qcom,rpm-pma8084-regulators"
,
.
data
=
&
rpm_pma8084_regulators
},
{
.
compatible
=
"qcom,rpm-pmi8998-regulators"
,
.
data
=
&
rpm_pmi8998_regulators
},
{}
};
MODULE_DEVICE_TABLE
(
of
,
rpm_of_match
);
...
...
include/linux/soc/qcom/smd-rpm.h
View file @
9a13ce38
...
...
@@ -10,6 +10,7 @@ struct qcom_smd_rpm;
/*
* Constants used for addressing resources in the RPM.
*/
#define QCOM_SMD_RPM_BOBB 0x62626f62
#define QCOM_SMD_RPM_BOOST 0x61747362
#define QCOM_SMD_RPM_BUS_CLK 0x316b6c63
#define QCOM_SMD_RPM_BUS_MASTER 0x73616d62
...
...
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