-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'qcom-soc-for-4.3-rc2' of git://codeaurora.org/quic/kernel/…
…agross-msm into next/late Qualcomm ARM Based SoC Updates for 4.3-rc2 * Fix errant private access in SMEM * Fix use of correct remote processor ID in SMD transactions * Correct SMD fBLOCKREADINTR handling * tag 'qcom-soc-for-4.3-rc2' of git://codeaurora.org/quic/kernel/agross-msm: soc: qcom: smd: Correct fBLOCKREADINTR handling soc: qcom: smd: Use correct remote processor ID soc: qcom: smem: Fix errant private access devicetree: soc: Add Qualcomm SMD based RPM DT binding soc: qcom: Driver for the Qualcomm RPM over SMD soc: qcom: Add Shared Memory Driver soc: qcom: Add device tree binding for Shared Memory Device drivers: qcom: Select QCOM_SCM unconditionally for QCOM_PM soc: qcom: Add Shared Memory Manager driver
- Loading branch information
Showing
10 changed files
with
2,668 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
Qualcomm Resource Power Manager (RPM) over SMD | ||
|
||
This driver is used to interface with the Resource Power Manager (RPM) found in | ||
various Qualcomm platforms. The RPM allows each component in the system to vote | ||
for state of the system resources, such as clocks, regulators and bus | ||
frequencies. | ||
|
||
- compatible: | ||
Usage: required | ||
Value type: <string> | ||
Definition: must be one of: | ||
"qcom,rpm-msm8974" | ||
|
||
- qcom,smd-channels: | ||
Usage: required | ||
Value type: <stringlist> | ||
Definition: Shared Memory channel used for communication with the RPM | ||
|
||
= SUBDEVICES | ||
|
||
The RPM exposes resources to its subnodes. The below bindings specify the set | ||
of valid subnodes that can operate on these resources. | ||
|
||
== Regulators | ||
|
||
Regulator nodes are identified by their compatible: | ||
|
||
- compatible: | ||
Usage: required | ||
Value type: <string> | ||
Definition: must be one of: | ||
"qcom,rpm-pm8841-regulators" | ||
"qcom,rpm-pm8941-regulators" | ||
|
||
- vdd_s1-supply: | ||
- vdd_s2-supply: | ||
- vdd_s3-supply: | ||
- vdd_s4-supply: | ||
- vdd_s5-supply: | ||
- vdd_s6-supply: | ||
- vdd_s7-supply: | ||
- vdd_s8-supply: | ||
Usage: optional (pm8841 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: | ||
- vdd_l1_l3-supply: | ||
- vdd_l2_lvs1_2_3-supply: | ||
- vdd_l4_l11-supply: | ||
- vdd_l5_l7-supply: | ||
- vdd_l6_l12_l14_l15-supply: | ||
- vdd_l8_l16_l18_l19-supply: | ||
- vdd_l9_l10_l17_l22-supply: | ||
- vdd_l13_l20_l23_l24-supply: | ||
- vdd_l21-supply: | ||
- vin_5vs-supply: | ||
Usage: optional (pm8941 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. | ||
|
||
pm8841: | ||
s1, s2, s3, s4, s5, s6, s7, s8 | ||
|
||
pm8941: | ||
s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, | ||
l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2, | ||
lvs3, 5vs1, 5vs2 | ||
|
||
The content of each sub-node is defined by the standard binding for regulators - | ||
see regulator.txt. | ||
|
||
= EXAMPLE | ||
|
||
smd { | ||
compatible = "qcom,smd"; | ||
|
||
rpm { | ||
interrupts = <0 168 1>; | ||
qcom,ipc = <&apcs 8 0>; | ||
qcom,smd-edge = <15>; | ||
|
||
rpm_requests { | ||
compatible = "qcom,rpm-msm8974"; | ||
qcom,smd-channels = "rpm_requests"; | ||
|
||
pm8941-regulators { | ||
compatible = "qcom,rpm-pm8941-regulators"; | ||
vdd_l13_l20_l23_l24-supply = <&pm8941_boost>; | ||
|
||
pm8941_s3: s3 { | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
}; | ||
|
||
pm8941_boost: s4 { | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
}; | ||
|
||
pm8941_l20: l20 { | ||
regulator-min-microvolt = <2950000>; | ||
regulator-max-microvolt = <2950000>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
Qualcomm Shared Memory Driver (SMD) binding | ||
|
||
This binding describes the Qualcomm Shared Memory Driver, a fifo based | ||
communication channel for sending data between the various subsystems in | ||
Qualcomm platforms. | ||
|
||
- compatible: | ||
Usage: required | ||
Value type: <stringlist> | ||
Definition: must be "qcom,smd" | ||
|
||
= EDGES | ||
|
||
Each subnode of the SMD node represents a remote subsystem or a remote | ||
processor of some sort - or in SMD language an "edge". The name of the edges | ||
are not important. | ||
The edge is described by the following properties: | ||
|
||
- interrupts: | ||
Usage: required | ||
Value type: <prop-encoded-array> | ||
Definition: should specify the IRQ used by the remote processor to | ||
signal this processor about communication related updates | ||
|
||
- qcom,ipc: | ||
Usage: required | ||
Value type: <prop-encoded-array> | ||
Definition: three entries specifying the outgoing ipc bit used for | ||
signaling the remote processor: | ||
- phandle to a syscon node representing the apcs registers | ||
- u32 representing offset to the register within the syscon | ||
- u32 representing the ipc bit within the register | ||
|
||
- qcom,smd-edge: | ||
Usage: required | ||
Value type: <u32> | ||
Definition: the identifier of the remote processor in the smd channel | ||
allocation table | ||
|
||
- qcom,remote-pid: | ||
Usage: optional | ||
Value type: <u32> | ||
Definition: the identifier for the remote processor as known by the rest | ||
of the system. | ||
|
||
= SMD DEVICES | ||
|
||
In turn, subnodes of the "edges" represent devices tied to SMD channels on that | ||
"edge". The names of the devices are not important. The properties of these | ||
nodes are defined by the individual bindings for the SMD devices - but must | ||
contain the following property: | ||
|
||
- qcom,smd-channels: | ||
Usage: required | ||
Value type: <stringlist> | ||
Definition: a list of channels tied to this device, used for matching | ||
the device to channels | ||
|
||
= EXAMPLE | ||
|
||
The following example represents a smd node, with one edge representing the | ||
"rpm" subsystem. For the "rpm" subsystem we have a device tied to the | ||
"rpm_request" channel. | ||
|
||
apcs: syscon@f9011000 { | ||
compatible = "syscon"; | ||
reg = <0xf9011000 0x1000>; | ||
}; | ||
|
||
smd { | ||
compatible = "qcom,smd"; | ||
|
||
rpm { | ||
interrupts = <0 168 1>; | ||
qcom,ipc = <&apcs 8 0>; | ||
qcom,smd-edge = <15>; | ||
|
||
rpm_requests { | ||
compatible = "qcom,rpm-msm8974"; | ||
qcom,smd-channels = "rpm_requests"; | ||
|
||
... | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,5 @@ | ||
obj-$(CONFIG_QCOM_GSBI) += qcom_gsbi.o | ||
obj-$(CONFIG_QCOM_PM) += spm.o | ||
obj-$(CONFIG_QCOM_SMD) += smd.o | ||
obj-$(CONFIG_QCOM_SMD_RPM) += smd-rpm.o | ||
obj-$(CONFIG_QCOM_SMEM) += smem.o |
Oops, something went wrong.