Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Binding for the Qualcomm APCS global block
==========================================

This binding describes the APCS "global" block found in various Qualcomm
platforms.

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,msm8916-apcs-kpss-global",
		    "qcom,msm8996-apcs-hmss-global"
		    "qcom,msm8998-apcs-hmss-global"
		    "qcom,qcs404-apcs-apps-global"
		    "qcom,sc7180-apss-shared"
		    "qcom,sdm845-apss-shared"
		    "qcom,sm8150-apss-shared"
		    "qcom,ipq8074-apcs-apps-global"

- reg:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: must specify the base address and size of the global block
- clocks:
	Usage: required if #clocks-cells property is present
	Value type: <phandle>
	Definition: phandle to the input PLL, which feeds the APCS mux/divider

- #mbox-cells:
	Usage: required
	Value type: <u32>
	Definition: as described in mailbox.txt, must be 1

- #clock-cells:
	Usage: optional
	Value type: <u32>
	Definition: as described in clock.txt, must be 0


= EXAMPLE
The following example describes the APCS HMSS found in MSM8996 and part of the
GLINK RPM referencing the "rpm_hlos" doorbell therein.

	apcs_glb: mailbox@9820000 {
		compatible = "qcom,msm8996-apcs-hmss-global";
		reg = <0x9820000 0x1000>;

		#mbox-cells = <1>;
	};

	rpm-glink {
		compatible = "qcom,glink-rpm";

		interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;

		qcom,rpm-msg-ram = <&rpm_msg_ram>;

		mboxes = <&apcs_glb 0>;
		mbox-names = "rpm_hlos";
	};

Below is another example of the APCS binding on MSM8916 platforms:

	apcs: mailbox@b011000 {
		compatible = "qcom,msm8916-apcs-kpss-global";
		reg = <0xb011000 0x1000>;
		#mbox-cells = <1>;
		clocks = <&a53pll>;
		#clock-cells = <0>;
	};