devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Qualcomm Shared Memory Driver
@ 2015-04-11  0:16 Bjorn Andersson
  2015-04-11  0:16 ` [PATCH 1/2] soc: qcom: Add device tree binding for Shared Memory Device Bjorn Andersson
  0 siblings, 1 reply; 3+ messages in thread
From: Bjorn Andersson @ 2015-04-11  0:16 UTC (permalink / raw)
  To: Kumar Gala, agross-sgV2jX0FEOL9JmXXK+q4OQ
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	linux-kernel-msm-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-soc-u79uwXL29TY76Z2rM5mHXA

This patch implements the shared memory based communication system found on all
Qualcomm platforms. SMD was originally used to communicate with the modem but
has grown to be part of power management as well as the various DSPs etc found
in Qualcomm platforms.

The code depends on the SMEM implementation found here:
https://patchwork.kernel.org/patch/6160431/

Bjorn Andersson (2):
  soc: qcom: Add device tree binding for Shared Memory Device
  soc: qcom: Add Shared Memory Driver

 .../devicetree/bindings/soc/qcom/qcom,smd.txt      |   78 ++
 drivers/soc/qcom/Kconfig                           |    8 +
 drivers/soc/qcom/Makefile                          |    1 +
 drivers/soc/qcom/smd.c                             | 1263 ++++++++++++++++++++
 include/linux/soc/qcom/smd.h                       |   47 +
 5 files changed, 1397 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
 create mode 100644 drivers/soc/qcom/smd.c
 create mode 100644 include/linux/soc/qcom/smd.h

-- 
1.8.2.2

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] soc: qcom: Add device tree binding for Shared Memory Device
  2015-04-11  0:16 [PATCH 0/2] Qualcomm Shared Memory Driver Bjorn Andersson
@ 2015-04-11  0:16 ` Bjorn Andersson
  2015-04-11  0:41   ` Bjorn Andersson
  0 siblings, 1 reply; 3+ messages in thread
From: Bjorn Andersson @ 2015-04-11  0:16 UTC (permalink / raw)
  To: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala,
	agross
  Cc: linux-kernel-msm, devicetree, linux-kernel, linux-soc

Add device tree binding documentation for the Qualcomm Shared Memory
Device, used for communication between the various CPUs in the Qualcomm
SoCs.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
---
 .../devicetree/bindings/soc/qcom/qcom,smd.txt      | 78 ++++++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
new file mode 100644
index 0000000..0fdb7f9d
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
@@ -0,0 +1,78 @@
+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.
+
+- 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 representing the remote processor in the
+		    smd channel allocation table
+
+= 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";
+
+				...
+			};
+		};
+	};
-- 
1.8.2.2

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] soc: qcom: Add device tree binding for Shared Memory Device
  2015-04-11  0:16 ` [PATCH 1/2] soc: qcom: Add device tree binding for Shared Memory Device Bjorn Andersson
@ 2015-04-11  0:41   ` Bjorn Andersson
  0 siblings, 0 replies; 3+ messages in thread
From: Bjorn Andersson @ 2015-04-11  0:41 UTC (permalink / raw)
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala,
	agross@codeaurora.org, linux-arm-msm, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-soc@vger.kernel.org

Corrected spelling of the msm mailing list...

On Fri 10 Apr 17:16 PDT 2015, Bjorn Andersson wrote:

> Add device tree binding documentation for the Qualcomm Shared Memory
> Device, used for communication between the various CPUs in the Qualcomm
> SoCs.
> 
> Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
> ---
>  .../devicetree/bindings/soc/qcom/qcom,smd.txt      | 78 ++++++++++++++++++++++
>  1 file changed, 78 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
> 
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
> new file mode 100644
> index 0000000..0fdb7f9d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
> @@ -0,0 +1,78 @@
> +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.
> +
> +- 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 representing the remote processor in the
> +		    smd channel allocation table
> +
> += 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";
> +
> +				...
> +			};
> +		};
> +	};
> -- 
> 1.8.2.2
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-04-11  0:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-11  0:16 [PATCH 0/2] Qualcomm Shared Memory Driver Bjorn Andersson
2015-04-11  0:16 ` [PATCH 1/2] soc: qcom: Add device tree binding for Shared Memory Device Bjorn Andersson
2015-04-11  0:41   ` Bjorn Andersson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).