Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba22e483 authored by Eric Holmberg's avatar Eric Holmberg
Browse files

soc: qcom: glink: Initial version of G-Link Driver



G-Link is a generic link-layer transport similar to SMD that supports a
plug-in framework for the physical transport.  This allows it to adapt
to different physical transports such as shared memory, UARTs, buses,
and DMA.

Change-Id: I7c43ebff23a6f376672d10166b1e34e197ec06dd
Signed-off-by: default avatarArun Kumar Neelakantam <aneela@codeaurora.org>
Signed-off-by: default avatarEric Holmberg <eholmber@codeaurora.org>
Signed-off-by: default avatarJeffrey Hugo <jhugo@codeaurora.org>
Signed-off-by: default avatarKarthikeyan Ramasubramanian <kramasub@codeaurora.org>
Signed-off-by: default avatarSteven Cahail <scahail@codeaurora.org>
Signed-off-by: default avatarZaheerulla Meer <zmeer@codeaurora.org>
Signed-off-by: default avatarAtish Patra <apatra@codeaurora.org>
parent cb0b4937
Loading
Loading
Loading
Loading
+853 −0

File added.

Preview size limit exceeded, changes collapsed.

+21 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. G-link RPM Native Transport

Required properties:
-compatible : should be "qcom,glink-rpm-native-xprt"
-reg : the location and size of RPM message RAM
	the irq register base address for triggering interrupts
-reg-names : "msgram" - string to identify the RPM message RAM region
		"irq-reg-base" - string to identify the irq register region
-qcom,irq-mask : the bitmark to trigger an interrupt
-interrupts : the receiving interrupt line

Example:

	qcom,glink-rpm-native-xprt@68000 {
		compatible = "qcom,glink-rpm-native-xprt";
		reg = <0x68000 0x8000>,
			<0xfa006008 0x4>;
		reg-names = "msgram", "irq-reg-base";
		qcom,irq-mask = <0x1000>;
		interrupts = <0 25 1>;
	};
+23 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. G-link SMEM Native Transport

Required properties:
-compatible : should be "qcom,glink-smem-native-xprt"
-reg : the location and size of shared memory
	the irq register base address for triggering interrupts
-reg-names : "smem" - string to identify the shared memory region
		"irq-reg-base" - string to identify the irq register region
-qcom,irq-mask : the bitmark to trigger an interrupt
-interrupts : the receiving interrupt line
-label : the name of the subsystem this link connects to

Example:

	qcom,glink-smem-native-xprt-modem@fa00000 {
		compatible = "qcom,glink-smem-native-xprt";
		reg = <0xfa00000 0x200000>,
			<0xfa006008 0x4>;
		reg-names = "smem", "irq-reg-base";
		qcom,irq-mask = <0x1000>;
		interrupts = <0 25 1>;
		label = "mpss";
	};
+36 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. G-Link SSR

[Root level node]
Required properties:
-compatible : should be "qcom,glink_ssr"
-label : The name of this subsystem.
-qcom,edge : The name of the edge to this subsystem.
-qcom,notify-edges : Reference to other subsystems to notify when this
	subsystem goes down.

Optional properties:
-qcom,xprt : The name of the transport on which to notify this subystem.

Example:

	glink_mpss: qcom,glink-ssr-modem {
		compatible = "qcom,glink_ssr";
		label = "modem";
		qcom,edge = "mpss";
		qcom,notify-edges = <&glink_adsp>, <&glink_wcnss>;
		qcom,xprt = "smem";
	};

	glink_adsp: qcom,glink-ssr-adsp {
		compatible = "qcom,glink_ssr";
		label = "adsp";
		qcom,edge = "adsp";
		qcom,notify-edges = <&glink_mpss>, <&glink_wcnss>;
	};

	glink_wcnss: qcom,glink-ssr-wcnss {
		compatible = "qcom,glink_ssr";
		label = "wcnss";
		qcom,edge = "wcnss";
		qcom,notify-edges = <&glink_mpss>;
	};
+31 −0
Original line number Diff line number Diff line
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

Example:

	qcom,glinkpkt {
		compatible = "qcom,glinkpkt";

		qcom,glinkpkt-glink1 {
			qcom,glinkpkt-transport = "smem";
			qcom,glinkpkt-edge = "mpss";
			qcom,glinkpkt-ch-name = "glink1";
		};

		qcom,glinkpkt-loopback {
			qcom,glinkpkt-transport = "smem";
			qcom,glinkpkt-edge = "mpss";
			qcom,glinkpkt-ch-name = "glink_pkt_loopback";
		};
	};
Loading