diff mbox series

[v2,1/2] soc: qcom: Add device tree binding for GLINK RPM

Message ID 20170320210956.29641-1-bjorn.andersson@linaro.org
State New
Headers show
Series [v2,1/2] soc: qcom: Add device tree binding for GLINK RPM | expand

Commit Message

Bjorn Andersson March 20, 2017, 9:09 p.m. UTC
Add device tree binding documentation for the Qualcomm GLINK RPM, used
for communication with the Resource Power Management subsystem in
various Qualcomm SoCs.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

---

Changes since v1:
- None

 .../devicetree/bindings/soc/qcom/qcom,glink.txt    | 73 ++++++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt

-- 
2.12.0

Comments

Rob Herring (Arm) March 24, 2017, 4:07 p.m. UTC | #1
On Mon, Mar 20, 2017 at 02:09:55PM -0700, Bjorn Andersson wrote:
> Add device tree binding documentation for the Qualcomm GLINK RPM, used

> for communication with the Resource Power Management subsystem in

> various Qualcomm SoCs.

> 

> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

> ---

> 

> Changes since v1:

> - None

> 

>  .../devicetree/bindings/soc/qcom/qcom,glink.txt    | 73 ++++++++++++++++++++++

>  1 file changed, 73 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt

> 

> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt

> new file mode 100644

> index 000000000000..da92c4f787f3

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt

> @@ -0,0 +1,73 @@

> +Qualcomm RPM GLINK binding

> +

> +This binding describes the Qualcomm RPM GLINK, a fifo based mechanism for

> +communication with the Resource Power Management system on various Qualcomm

> +platforms.

> +

> +- compatible:

> +	Usage: required

> +	Value type: <stringlist>

> +	Definition: must be "qcom,glink-rpm"


SoC specific compatibles please.

> +

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

> +

> +- qcom,rpm-msg-ram:

> +	Usage: required

> +	Value type: <prop-encoded-array>

> +	Definition: handle to RPM message memory resource

> +

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

> +

> += GLINK DEVICES

> +Each subnode of the GLINK node represent function tied to a virtual

> +communication channel. The name of the nodes are not important. The properties

> +of these nodes are defined by the individual bindings for the specific function

> +- but must contain the following property:

> +

> +- qcom,glink-channels:

> +	Usage: required

> +	Value type: <stringlist>

> +	Definition: a list of channels tied to this function, used for matching

> +		    the function to a set of virtual channels

> +

> += EXAMPLE

> +The following example represents the GLINK RPM node on a MSM8996 device, with

> +the function for the "rpm_request" channel defined, which is used for

> +regualtors and root clocks.

> +

> +	apcs: syscon@f9011000 {

> +		compatible = "syscon";


syscon alone is not valid.

> +		reg = <0xf9011000 0x1000>;

> +	};

> +

> +	rpm_msg_ram: memory@68000 {

> +		compatible = "qcom,rpm-msg-ram";


Is this more than just mmio-sram?

Or with a fixed use could be part of another node?

> +		reg = <0x68000 0x6000>;

> +	};

> +

> +        rpm-glink {

> +		compatible = "qcom,glink-rpm";

> +

> +		interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;

> +

> +		qcom,rpm-msg-ram = <&rpm_msg_ram>;

> +		qcom,ipc = <&apcs 0x10 0>;

> +

> +		rpm-requests {

> +			compatible = "qcom,rpm-msm8996";

> +			qcom,glink-channels = "rpm_requests";

> +

> +			...

> +		};

> +	};

> -- 

> 2.12.0

>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
new file mode 100644
index 000000000000..da92c4f787f3
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
@@ -0,0 +1,73 @@ 
+Qualcomm RPM GLINK binding
+
+This binding describes the Qualcomm RPM GLINK, a fifo based mechanism for
+communication with the Resource Power Management system on various Qualcomm
+platforms.
+
+- compatible:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "qcom,glink-rpm"
+
+- 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 events
+
+- qcom,rpm-msg-ram:
+	Usage: required
+	Value type: <prop-encoded-array>
+	Definition: handle to RPM message memory resource
+
+- 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
+
+= GLINK DEVICES
+Each subnode of the GLINK node represent function tied to a virtual
+communication channel. The name of the nodes are not important. The properties
+of these nodes are defined by the individual bindings for the specific function
+- but must contain the following property:
+
+- qcom,glink-channels:
+	Usage: required
+	Value type: <stringlist>
+	Definition: a list of channels tied to this function, used for matching
+		    the function to a set of virtual channels
+
+= EXAMPLE
+The following example represents the GLINK RPM node on a MSM8996 device, with
+the function for the "rpm_request" channel defined, which is used for
+regualtors and root clocks.
+
+	apcs: syscon@f9011000 {
+		compatible = "syscon";
+		reg = <0xf9011000 0x1000>;
+	};
+
+	rpm_msg_ram: memory@68000 {
+		compatible = "qcom,rpm-msg-ram";
+		reg = <0x68000 0x6000>;
+	};
+
+        rpm-glink {
+		compatible = "qcom,glink-rpm";
+
+		interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+
+		qcom,rpm-msg-ram = <&rpm_msg_ram>;
+		qcom,ipc = <&apcs 0x10 0>;
+
+		rpm-requests {
+			compatible = "qcom,rpm-msm8996";
+			qcom,glink-channels = "rpm_requests";
+
+			...
+		};
+	};