xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/remoteproc/qcom,hexagon-v56.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunQualcomm Technology Inc. Hexagon v56 Peripheral Image Loader
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThis document defines the binding for a component that loads and boots firmware
4*4882a593Smuzhiyunon the Qualcomm Technology Inc. Hexagon v56 core.
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun- compatible:
7*4882a593Smuzhiyun	Usage: required
8*4882a593Smuzhiyun	Value type: <string>
9*4882a593Smuzhiyun	Definition: must be one of:
10*4882a593Smuzhiyun		    "qcom,qcs404-cdsp-pil",
11*4882a593Smuzhiyun		    "qcom,sdm845-adsp-pil"
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun- reg:
14*4882a593Smuzhiyun	Usage: required
15*4882a593Smuzhiyun	Value type: <prop-encoded-array>
16*4882a593Smuzhiyun	Definition: must specify the base address and size of the qdsp6ss register
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun- interrupts-extended:
19*4882a593Smuzhiyun	Usage: required
20*4882a593Smuzhiyun	Value type: <prop-encoded-array>
21*4882a593Smuzhiyun	Definition: must list the watchdog, fatal IRQs ready, handover and
22*4882a593Smuzhiyun		    stop-ack IRQs
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun- interrupt-names:
25*4882a593Smuzhiyun	Usage: required
26*4882a593Smuzhiyun	Value type: <stringlist>
27*4882a593Smuzhiyun	Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun- clocks:
30*4882a593Smuzhiyun	Usage: required
31*4882a593Smuzhiyun	Value type: <prop-encoded-array>
32*4882a593Smuzhiyun	Definition:  List of phandles and clock specifier pairs for the Hexagon,
33*4882a593Smuzhiyun		     per clock-names below.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun- clock-names:
36*4882a593Smuzhiyun	Usage: required for SDM845 ADSP
37*4882a593Smuzhiyun	Value type: <stringlist>
38*4882a593Smuzhiyun	Definition: List of clock input name strings sorted in the same
39*4882a593Smuzhiyun		    order as the clocks property. Definition must have
40*4882a593Smuzhiyun		    "xo", "sway_cbcr", "lpass_ahbs_aon_cbcr",
41*4882a593Smuzhiyun		    "lpass_ahbm_aon_cbcr", "qdsp6ss_xo", "qdsp6ss_sleep"
42*4882a593Smuzhiyun		    and "qdsp6ss_core".
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun- clock-names:
45*4882a593Smuzhiyun	Usage: required for QCS404 CDSP
46*4882a593Smuzhiyun	Value type: <stringlist>
47*4882a593Smuzhiyun	Definition: List of clock input name strings sorted in the same
48*4882a593Smuzhiyun		    order as the clocks property. Definition must have
49*4882a593Smuzhiyun		    "xo", "sway", "tbu", "bimc", "ahb_aon", "q6ss_slave",
50*4882a593Smuzhiyun		    "q6ss_master", "q6_axim".
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun- power-domains:
53*4882a593Smuzhiyun	Usage: required
54*4882a593Smuzhiyun	Value type: <phandle>
55*4882a593Smuzhiyun	Definition: reference to cx power domain node.
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun- resets:
58*4882a593Smuzhiyun	Usage: required
59*4882a593Smuzhiyun	Value type: <phandle>
60*4882a593Smuzhiyun	Definition: reference to the list of resets for the Hexagon.
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun- reset-names:
63*4882a593Smuzhiyun        Usage: required for SDM845 ADSP
64*4882a593Smuzhiyun        Value type: <stringlist>
65*4882a593Smuzhiyun        Definition: must be "pdc_sync" and "cc_lpass"
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun- reset-names:
68*4882a593Smuzhiyun        Usage: required for QCS404 CDSP
69*4882a593Smuzhiyun        Value type: <stringlist>
70*4882a593Smuzhiyun        Definition: must be "restart"
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun- qcom,halt-regs:
73*4882a593Smuzhiyun	Usage: required
74*4882a593Smuzhiyun	Value type: <prop-encoded-array>
75*4882a593Smuzhiyun	Definition: a phandle reference to a syscon representing TCSR followed
76*4882a593Smuzhiyun		    by the offset within syscon for Hexagon halt register.
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun- memory-region:
79*4882a593Smuzhiyun	Usage: required
80*4882a593Smuzhiyun	Value type: <phandle>
81*4882a593Smuzhiyun	Definition: reference to the reserved-memory for the firmware
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun- qcom,smem-states:
84*4882a593Smuzhiyun	Usage: required
85*4882a593Smuzhiyun	Value type: <phandle>
86*4882a593Smuzhiyun	Definition: reference to the smem state for requesting the Hexagon to
87*4882a593Smuzhiyun		    shut down
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun- qcom,smem-state-names:
90*4882a593Smuzhiyun	Usage: required
91*4882a593Smuzhiyun	Value type: <stringlist>
92*4882a593Smuzhiyun	Definition: must be "stop"
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun= SUBNODES
96*4882a593SmuzhiyunThe adsp node may have an subnode named "glink-edge" that describes the
97*4882a593Smuzhiyuncommunication edge, channels and devices related to the Hexagon.
98*4882a593SmuzhiyunSee ../soc/qcom/qcom,glink.txt for details on how to describe these.
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun= EXAMPLE
101*4882a593SmuzhiyunThe following example describes the resources needed to boot control the
102*4882a593SmuzhiyunADSP, as it is found on SDM845 boards.
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun	remoteproc@17300000 {
105*4882a593Smuzhiyun		compatible = "qcom,sdm845-adsp-pil";
106*4882a593Smuzhiyun		reg = <0x17300000 0x40c>;
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun		interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
109*4882a593Smuzhiyun			<&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
110*4882a593Smuzhiyun			<&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
111*4882a593Smuzhiyun			<&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
112*4882a593Smuzhiyun			<&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
113*4882a593Smuzhiyun		interrupt-names = "wdog", "fatal", "ready",
114*4882a593Smuzhiyun			"handover", "stop-ack";
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun		clocks = <&rpmhcc RPMH_CXO_CLK>,
117*4882a593Smuzhiyun			<&gcc GCC_LPASS_SWAY_CLK>,
118*4882a593Smuzhiyun			<&lpasscc LPASS_Q6SS_AHBS_AON_CLK>,
119*4882a593Smuzhiyun			<&lpasscc LPASS_Q6SS_AHBM_AON_CLK>,
120*4882a593Smuzhiyun			<&lpasscc LPASS_QDSP6SS_XO_CLK>,
121*4882a593Smuzhiyun			<&lpasscc LPASS_QDSP6SS_SLEEP_CLK>,
122*4882a593Smuzhiyun			<&lpasscc LPASS_QDSP6SS_CORE_CLK>;
123*4882a593Smuzhiyun		clock-names = "xo", "sway_cbcr",
124*4882a593Smuzhiyun			"lpass_ahbs_aon_cbcr",
125*4882a593Smuzhiyun			"lpass_ahbm_aon_cbcr", "qdsp6ss_xo",
126*4882a593Smuzhiyun			"qdsp6ss_sleep", "qdsp6ss_core";
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun		power-domains = <&rpmhpd SDM845_CX>;
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun		resets = <&pdc_reset PDC_AUDIO_SYNC_RESET>,
131*4882a593Smuzhiyun			 <&aoss_reset AOSS_CC_LPASS_RESTART>;
132*4882a593Smuzhiyun		reset-names = "pdc_sync", "cc_lpass";
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun		qcom,halt-regs = <&tcsr_mutex_regs 0x22000>;
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun		memory-region = <&pil_adsp_mem>;
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun		qcom,smem-states = <&adsp_smp2p_out 0>;
139*4882a593Smuzhiyun		qcom,smem-state-names = "stop";
140*4882a593Smuzhiyun	};
141