From f5178fe3dd7bf74057932c33e1282c4f7d0a9c6f Mon Sep 17 00:00:00 2001 From: Chris Lew Date: Tue, 6 Aug 2019 15:59:19 -0700 Subject: [PATCH 1/2] dt-bindings: soc: qcom: Introduce Glink Probe bindings The RPMSG over GLINK transport expects to be a subdev in a remote proc node. This driver helps probe the glink transports when remote proc is disabled. Change-Id: I2b29ad88d347321434470c1d0db365bccc4f1e92 --- bindings/soc/qcom/qcom,glink-probe.txt | 69 ++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 bindings/soc/qcom/qcom,glink-probe.txt diff --git a/bindings/soc/qcom/qcom,glink-probe.txt b/bindings/soc/qcom/qcom,glink-probe.txt new file mode 100644 index 000000000000..badb9f9bcd53 --- /dev/null +++ b/bindings/soc/qcom/qcom,glink-probe.txt @@ -0,0 +1,69 @@ +Qualcomm Technologies, Inc. GLINK Probe + +This binding describes the GLINK Probe driver, a device +that initializes the GLINK edge pairs within the system. + +- compatible : + Usage: required + Value type: + Definition: must be "qcom,glink" + += SUBNODES +The GLINK probe node must contain subnodes that describes the +edge-pairs. See qcom,glink.txt for details on how to describe them. + +In addition to the properties in qcom,glink.txt, The GLINK Probe driver +requires the qcom,glink-label and transport type to be specified in the +subnodes. + +- transport : + Usage: required + Value type: + Definition: must be "smem", "spss", or "spi" + +- qcom,glink-label : + Usage: required + Value type: + Definition: specifies the identifier of the remote proc of this edge. + += GLINK_SSR +The GLINK probe driver also initializes the GLINK_SSR channel for the edges +that it brings up. The channel should be specified as a subnode to each edge. In +addition to the properties in qcom,glink.txt to specify a channel device node, +the qcom,notify-edges property must be defined. + +- qcom,notify-edges : + Usage: required + Value type: + Definition: list of phandles that specify the subsystems this glink edge + needs to receive ssr notifications about. + += EXAMPLE +qcom,glink { + compatible = "qcom,glink"; + glink_modem: modem { + transport = "smem"; + qcom,remote-pid = <0>; + mboxes = <&apcs_glb 8>; + mbox-names = "mpss_smem"; + interrupts = ; + + qcom,modem_glink_ssr { + qcom,glink-channels = "glink_ssr"; + qcom,notify-edges = <&glink_adsp>; + }; + }; + + glink_adsp: adsp { + transport = "smem"; + qcom,remote-pid = <2>; + mboxes = <&apcs_glb 4>; + mbox-names = "adsp_smem"; + interrupts = ; + + qcom,modem_glink_ssr { + qcom,glink-channels = "glink_ssr"; + qcom,notify-edges = <&glink_modem>; + }; + }; +}; From 732211dd4d650abb9ebaacc1c449bc7974ff00c5 Mon Sep 17 00:00:00 2001 From: Chris Lew Date: Tue, 6 Aug 2019 16:00:00 -0700 Subject: [PATCH 2/2] dt-bindings: soc: qcom: Introduce Glink Pkt bindings The RPMSG char driver requires clients to ioctl into a ctrl node to create corresponding userspace char devices. Not all GLINK clients can follow this standard. Add the GLINK PKT driver to create char devs from boot time. Change-Id: I363013b0cb99b8335b8d211ddd0116dfc95522ac --- bindings/soc/qcom/qcom,glink-pkt.txt | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 bindings/soc/qcom/qcom,glink-pkt.txt diff --git a/bindings/soc/qcom/qcom,glink-pkt.txt b/bindings/soc/qcom/qcom,glink-pkt.txt new file mode 100644 index 000000000000..b5c660c808e0 --- /dev/null +++ b/bindings/soc/qcom/qcom,glink-pkt.txt @@ -0,0 +1,40 @@ +Qualcomm Technologies, Inc. G-Link Packet Driver (glinkpkt) + +[Root level node] +Required properties: +-compatible : should be "qcom,glinkpkt" + +[Second level nodes] +qcom,glinkpkt-channel-names +Required properties: +-qcom,glinkpkt-transport : the glinkpkt transport layer +-qcom,glinkpkt-edge : the remote subsystem name +-qcom,glinkpkt-ch-name : the glink channel name +-qcom,glinkpkt-dev-name : the glinkpkt device name + +Example: + + qcom,glink_pkt { + compatible = "qcom,glinkpkt"; + + qcom,glinkpkt-at-mdm0 { + qcom,glinkpkt-transport = "smd_trans"; + qcom,glinkpkt-edge = "mpss"; + qcom,glinkpkt-ch-name = "DS"; + qcom,glinkpkt-dev-name = "at_mdm0"; + }; + + qcom,glinkpkt-loopback-cntl { + qcom,glinkpkt-transport = "lloop"; + qcom,glinkpkt-edge = "local"; + qcom,glinkpkt-ch-name = "LOCAL_LOOPBACK_CLNT"; + qcom,glinkpkt-dev-name = "glink_pkt_loopback_ctrl"; + }; + + qcom,glinkpkt-loopback-data { + qcom,glinkpkt-transport = "lloop"; + qcom,glinkpkt-edge = "local"; + qcom,glinkpkt-ch-name = "glink_pkt_lloop_CLNT"; + qcom,glinkpkt-dev-name = "glink_pkt_loopback"; + }; + };