* Memory Share Driver (MEMSHARE)

The Memshare driver implements a Kernel QMI service on the
LA-APSS, which is responsible for providing contiguous physical
memory to MPSS for use cases when the modem requires additional
memory (e.g. GPS).

Required properties for Memshare

-Root Node-

- compatible:	Must be "qcom,memshare"

Required properties for child nodes:

- compatible:	Must be "qcom,memshare-peripheral"

- qcom,peripheral-size:	Indicates the size (in bytes) required for that child.

- qcom,client-id:	Indicates the client id of the child node.

- label:	Indicates the peripheral information for the node. Should be one of
  the following:
  - modem	/* Represent Modem Peripheral */
  - adsp	/* Represent ADSP Peripheral */
  - wcnss	/* Represent WCNSS Peripheral */

Optional properties for child nodes:

- qcom,allocate-boot-time:	Indicates whether clients needs boot time memory allocation.

- qcom,allocate-on-request:	Indicates memory allocation happens only upon client request

Note: qcom,allocate-boot-time and qcom,allocate-on-request are mutually exclusive rite now.

- qcom,guard-band:	Indicates addition of a guard band memory allocation in addition to the client's memory region.

Example 1:

qcom,memshare {
	compatible = "qcom,memshare";

	qcom,client_1 {
		compatible = "qcom,memshare-peripheral";
		qcom,peripheral-size = <0x200000>;
		qcom,client-id = <0>;
		qcom,allocate-boot-time;
		label = "modem";
	};
};

Example 2:

qcom,memshare {
	compatible = "qcom,memshare";

	qcom,client_3 {
		compatible = "qcom,memshare-peripheral";
		qcom,peripheral-size = <0x500000>;
		qcom,client-id = <1>;
		qcom,allocate-on-request;
		qcom,guard-band;
		label = "modem";
	};
};