dt: binding: Add Qualcomm WCNSS control binding
authorBjorn Andersson <bjorn.andersson@linaro.org>
Mon, 6 Jun 2016 23:58:19 +0000 (16:58 -0700)
committerAndy Gross <andy.gross@linaro.org>
Sun, 12 Jun 2016 03:57:15 +0000 (22:57 -0500)
This binding describes the control interface for the Qualcomm WCNSS.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt
new file mode 100644 (file)
index 0000000..4ea39e9
--- /dev/null
@@ -0,0 +1,116 @@
+Qualcomm WCNSS Binding
+
+This binding describes the Qualcomm WCNSS hardware. It consists of control
+block and a BT, WiFi and FM radio block, all using SMD as command channels.
+
+- compatible:
+       Usage: required
+       Value type: <string>
+       Definition: must be: "qcom,wcnss",
+
+- qcom,smd-channel:
+       Usage: required
+       Value type: <string>
+       Definition: standard SMD property specifying the SMD channel used for
+                   communication with the WiFi firmware.
+                   Should be "WCNSS_CTRL".
+
+- qcom,mmio:
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: reference to a node specifying the wcnss "ccu" and "dxe"
+                   register blocks. The node must be compatible with one of
+                   the following:
+                   "qcom,riva",
+                   "qcom,pronto"
+
+= SUBNODES
+The subnodes of the wcnss node are optional and describe the individual blocks in
+the WCNSS.
+
+== Bluetooth
+The following properties are defined to the bluetooth node:
+
+- compatible:
+       Usage: required
+       Value type: <string>
+       Definition: must be:
+                   "qcom,wcnss-bt"
+
+== WiFi
+The following properties are defined to the WiFi node:
+
+- compatible:
+       Usage: required
+       Value type: <string>
+       Definition: must be one of:
+                   "qcom,wcnss-wlan",
+
+- interrupts:
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: should specify the "rx" and "tx" interrupts
+
+- interrupt-names:
+       Usage: required
+       Value type: <stringlist>
+       Definition: must contain "rx" and "tx"
+
+- qcom,smem-state:
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: should reference the tx-enable and tx-rings-empty SMEM states
+
+- qcom,smem-state-names:
+       Usage: required
+       Value type: <stringlist>
+       Definition: must contain "tx-enable" and "tx-rings-empty"
+
+= EXAMPLE
+The following example represents a SMD node, with one edge representing the
+"pronto" subsystem, with the wcnss device and its wcn3680 BT and WiFi blocks
+described; as found on the 8974 platform.
+
+smd {
+       compatible = "qcom,smd";
+
+       pronto-edge {
+               interrupts = <0 142 1>;
+
+               qcom,ipc = <&apcs 8 17>;
+               qcom,smd-edge = <6>;
+
+               wcnss {
+                       compatible = "qcom,wcnss";
+                       qcom,smd-channels = "WCNSS_CTRL";
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       qcom,mmio = <&pronto>;
+
+                       bt {
+                               compatible = "qcom,wcnss-bt";
+                       };
+
+                       wlan {
+                               compatible = "qcom,wcnss-wlan";
+
+                               interrupts = <0 145 0>, <0 146 0>;
+                               interrupt-names = "tx", "rx";
+
+                               qcom,smem-state = <&apps_smsm 10>, <&apps_smsm 9>;
+                               qcom,smem-state-names = "tx-enable", "tx-rings-empty";
+                       };
+               };
+       };
+};
+
+soc {
+       pronto: pronto {
+               compatible = "qcom,pronto";
+
+               reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
+               reg-names = "ccu", "dxe", "pmu";
+       };
+};