xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/soc/qcom/qcom,apr.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunQualcomm APR (Asynchronous Packet Router) binding
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThis binding describes the Qualcomm APR. APR is a IPC protocol for
4*4882a593Smuzhiyuncommunication between Application processor and QDSP. APR is mainly
5*4882a593Smuzhiyunused for audio/voice services on the QDSP.
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun- compatible:
8*4882a593Smuzhiyun	Usage: required
9*4882a593Smuzhiyun	Value type: <stringlist>
10*4882a593Smuzhiyun	Definition: must be "qcom,apr-v<VERSION-NUMBER>", example "qcom,apr-v2"
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun- qcom,apr-domain
13*4882a593Smuzhiyun	Usage: required
14*4882a593Smuzhiyun	Value type: <u32>
15*4882a593Smuzhiyun	Definition: Destination processor ID.
16*4882a593Smuzhiyun	Possible values are :
17*4882a593Smuzhiyun			1 - APR simulator
18*4882a593Smuzhiyun			2 - PC
19*4882a593Smuzhiyun			3 - MODEM
20*4882a593Smuzhiyun			4 - ADSP
21*4882a593Smuzhiyun			5 - APPS
22*4882a593Smuzhiyun			6 - MODEM2
23*4882a593Smuzhiyun			7 - APPS2
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun= APR SERVICES
26*4882a593SmuzhiyunEach subnode of the APR node represents service tied to this apr. The name
27*4882a593Smuzhiyunof the nodes are not important. The properties of these nodes are defined
28*4882a593Smuzhiyunby the individual bindings for the specific service
29*4882a593Smuzhiyun- All APR services MUST contain the following property:
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun- reg
32*4882a593Smuzhiyun	Usage: required
33*4882a593Smuzhiyun	Value type: <u32>
34*4882a593Smuzhiyun	Definition: APR Service ID
35*4882a593Smuzhiyun	Possible values are :
36*4882a593Smuzhiyun			3 - DSP Core Service
37*4882a593Smuzhiyun			4 - Audio Front End Service.
38*4882a593Smuzhiyun			5 - Voice Stream Manager Service.
39*4882a593Smuzhiyun			6 - Voice processing manager.
40*4882a593Smuzhiyun			7 - Audio Stream Manager Service.
41*4882a593Smuzhiyun			8 - Audio Device Manager Service.
42*4882a593Smuzhiyun			9 - Multimode voice manager.
43*4882a593Smuzhiyun			10 - Core voice stream.
44*4882a593Smuzhiyun			11 - Core voice processor.
45*4882a593Smuzhiyun			12 - Ultrasound stream manager.
46*4882a593Smuzhiyun			13 - Listen stream manager.
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun- qcom,protection-domain
49*4882a593Smuzhiyun	Usage: optional
50*4882a593Smuzhiyun	Value type: <stringlist>
51*4882a593Smuzhiyun	Definition: Must list the protection domain service name and path
52*4882a593Smuzhiyun		    that the particular apr service has a dependency on.
53*4882a593Smuzhiyun	Possible values are :
54*4882a593Smuzhiyun			"avs/audio", "msm/adsp/audio_pd".
55*4882a593Smuzhiyun			"kernel/elf_loader", "msm/modem/wlan_pd".
56*4882a593Smuzhiyun			"tms/servreg", "msm/adsp/audio_pd".
57*4882a593Smuzhiyun			"tms/servreg", "msm/modem/wlan_pd".
58*4882a593Smuzhiyun			"tms/servreg", "msm/slpi/sensor_pd".
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun= EXAMPLE
61*4882a593SmuzhiyunThe following example represents a QDSP based sound card on a MSM8996 device
62*4882a593Smuzhiyunwhich uses apr as communication between Apps and QDSP.
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun	apr {
65*4882a593Smuzhiyun		compatible = "qcom,apr-v2";
66*4882a593Smuzhiyun		qcom,apr-domain = <APR_DOMAIN_ADSP>;
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun		apr-service@3 {
69*4882a593Smuzhiyun			compatible = "qcom,q6core";
70*4882a593Smuzhiyun			reg = <APR_SVC_ADSP_CORE>;
71*4882a593Smuzhiyun		};
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun		apr-service@4 {
74*4882a593Smuzhiyun			compatible = "qcom,q6afe";
75*4882a593Smuzhiyun			reg = <APR_SVC_AFE>;
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun			dais {
78*4882a593Smuzhiyun				#sound-dai-cells = <1>;
79*4882a593Smuzhiyun				dai@1 {
80*4882a593Smuzhiyun					reg = <HDMI_RX>;
81*4882a593Smuzhiyun				};
82*4882a593Smuzhiyun			};
83*4882a593Smuzhiyun		};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun		apr-service@7 {
86*4882a593Smuzhiyun			compatible = "qcom,q6asm";
87*4882a593Smuzhiyun			reg = <APR_SVC_ASM>;
88*4882a593Smuzhiyun			...
89*4882a593Smuzhiyun		};
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun		apr-service@8 {
92*4882a593Smuzhiyun			compatible = "qcom,q6adm";
93*4882a593Smuzhiyun			reg = <APR_SVC_ADM>;
94*4882a593Smuzhiyun			...
95*4882a593Smuzhiyun		};
96*4882a593Smuzhiyun	};
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun= EXAMPLE 2
99*4882a593SmuzhiyunThe following example represents a QDSP based sound card with protection domain
100*4882a593Smuzhiyundependencies specified. Here some of the apr services are dependent on services
101*4882a593Smuzhiyunrunning on protection domain hosted on ADSP/SLPI remote processors while others
102*4882a593Smuzhiyunhave no such dependency.
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun	apr {
105*4882a593Smuzhiyun		compatible = "qcom,apr-v2";
106*4882a593Smuzhiyun		qcom,glink-channels = "apr_audio_svc";
107*4882a593Smuzhiyun		qcom,apr-domain = <APR_DOMAIN_ADSP>;
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun		apr-service@3 {
110*4882a593Smuzhiyun			compatible = "qcom,q6core";
111*4882a593Smuzhiyun			reg = <APR_SVC_ADSP_CORE>;
112*4882a593Smuzhiyun		};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun		q6afe: apr-service@4 {
115*4882a593Smuzhiyun			compatible = "qcom,q6afe";
116*4882a593Smuzhiyun			reg = <APR_SVC_AFE>;
117*4882a593Smuzhiyun			qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
118*4882a593Smuzhiyun			...
119*4882a593Smuzhiyun		};
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun		q6asm: apr-service@7 {
122*4882a593Smuzhiyun			compatible = "qcom,q6asm";
123*4882a593Smuzhiyun			reg = <APR_SVC_ASM>;
124*4882a593Smuzhiyun			qcom,protection-domain = "tms/servreg", "msm/slpi/sensor_pd";
125*4882a593Smuzhiyun			...
126*4882a593Smuzhiyun		};
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun		q6adm: apr-service@8 {
129*4882a593Smuzhiyun			compatible = "qcom,q6adm";
130*4882a593Smuzhiyun			reg = <APR_SVC_ADM>;
131*4882a593Smuzhiyun			qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
132*4882a593Smuzhiyun			...
133*4882a593Smuzhiyun		};
134*4882a593Smuzhiyun	};
135