Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: remoteproc: qcom,q6v5: Move MSM8996 to schema

Convert MSM8996 and similar (MSM8998/SDM845) MSS PIL bindings to schema.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230117085840.32356-2-quic_sibis@quicinc.com

authored by

Sibi Sankar and committed by
Bjorn Andersson
bdea1422 7eddedc9

+382 -132
+377
Documentation/devicetree/bindings/remoteproc/qcom,msm8996-mss-pil.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/remoteproc/qcom,msm8996-mss-pil.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm MSM8996 MSS Peripheral Image Loader (and similar) 8 + 9 + maintainers: 10 + - Bjorn Andersson <andersson@kernel.org> 11 + - Sibi Sankar <quic_sibis@quicinc.com> 12 + 13 + description: 14 + MSS Peripheral Image Loader loads and boots firmware on the 15 + Qualcomm Technology Inc. MSM8996 Modem Hexagon Core (and similar). 16 + 17 + properties: 18 + compatible: 19 + enum: 20 + - qcom,msm8996-mss-pil 21 + - qcom,msm8998-mss-pil 22 + - qcom,sdm845-mss-pil 23 + 24 + reg: 25 + items: 26 + - description: MSS QDSP6 registers 27 + - description: RMB registers 28 + 29 + reg-names: 30 + items: 31 + - const: qdsp6 32 + - const: rmb 33 + 34 + iommus: 35 + items: 36 + - description: MSA Stream 1 37 + - description: MSA Stream 2 38 + 39 + interrupts: 40 + items: 41 + - description: Watchdog interrupt 42 + - description: Fatal interrupt 43 + - description: Ready interrupt 44 + - description: Handover interrupt 45 + - description: Stop acknowledge interrupt 46 + - description: Shutdown acknowledge interrupt 47 + 48 + interrupt-names: 49 + items: 50 + - const: wdog 51 + - const: fatal 52 + - const: ready 53 + - const: handover 54 + - const: stop-ack 55 + - const: shutdown-ack 56 + 57 + clocks: 58 + minItems: 8 59 + maxItems: 9 60 + 61 + clock-names: 62 + minItems: 8 63 + maxItems: 9 64 + 65 + power-domains: 66 + items: 67 + - description: CX power domain 68 + - description: MX power domain 69 + - description: MSS power domain (only valid for qcom,sdm845-mss-pil) 70 + minItems: 2 71 + 72 + power-domain-names: 73 + items: 74 + - const: cx 75 + - const: mx 76 + - const: mss # only valid for qcom,sdm845-mss-pil 77 + minItems: 2 78 + 79 + pll-supply: 80 + description: PLL supply 81 + 82 + resets: 83 + items: 84 + - description: AOSS restart 85 + - description: PDC reset (only valid for qcom,sdm845-mss-pil) 86 + minItems: 1 87 + 88 + reset-names: 89 + items: 90 + - const: mss_restart 91 + - const: pdc_reset # only valid for qcom,sdm845-mss-pil 92 + minItems: 1 93 + 94 + qcom,qmp: 95 + $ref: /schemas/types.yaml#/definitions/phandle 96 + description: Reference to the AOSS side-channel message RAM. 97 + 98 + qcom,smem-states: 99 + $ref: /schemas/types.yaml#/definitions/phandle-array 100 + description: States used by the AP to signal the Hexagon core 101 + items: 102 + - description: Stop modem 103 + 104 + qcom,smem-state-names: 105 + description: Names of the states used by the AP to signal the Hexagon core 106 + items: 107 + - const: stop 108 + 109 + qcom,halt-regs: 110 + $ref: /schemas/types.yaml#/definitions/phandle-array 111 + description: 112 + Halt registers are used to halt transactions of various sub-components 113 + within MSS. 114 + items: 115 + - items: 116 + - description: phandle to TCSR syscon region 117 + - description: offset to the Q6 halt register 118 + - description: offset to the modem halt register 119 + - description: offset to the nc halt register 120 + 121 + memory-region: 122 + items: 123 + - description: MBA reserved region 124 + - description: Modem reserved region 125 + 126 + firmware-name: 127 + $ref: /schemas/types.yaml#/definitions/string-array 128 + items: 129 + - description: Name of MBA firmware 130 + - description: Name of modem firmware 131 + 132 + smd-edge: 133 + $ref: /schemas/remoteproc/qcom,smd-edge.yaml# 134 + description: 135 + Qualcomm Shared Memory subnode which represents communication edge, 136 + channels and devices related to the Modem. 137 + unevaluatedProperties: false 138 + 139 + glink-edge: 140 + $ref: /schemas/remoteproc/qcom,glink-edge.yaml# 141 + description: 142 + Qualcomm G-Link subnode which represents communication edge, channels 143 + and devices related to the Modem. 144 + unevaluatedProperties: false 145 + 146 + # Deprecated properties 147 + mba: 148 + type: object 149 + description: 150 + MBA reserved region 151 + 152 + properties: 153 + memory-region: true 154 + 155 + required: 156 + - memory-region 157 + 158 + additionalProperties: false 159 + deprecated: true 160 + 161 + mpss: 162 + type: object 163 + description: 164 + MPSS reserved region 165 + 166 + properties: 167 + memory-region: true 168 + 169 + required: 170 + - memory-region 171 + 172 + additionalProperties: false 173 + deprecated: true 174 + 175 + required: 176 + - compatible 177 + - reg 178 + - reg-names 179 + - interrupts 180 + - interrupt-names 181 + - clocks 182 + - clock-names 183 + - power-domains 184 + - power-domain-names 185 + - resets 186 + - reset-names 187 + - qcom,halt-regs 188 + - qcom,smem-states 189 + - qcom,smem-state-names 190 + 191 + allOf: 192 + - if: 193 + properties: 194 + compatible: 195 + const: qcom,msm8996-mss-pil 196 + then: 197 + properties: 198 + clocks: 199 + items: 200 + - description: GCC MSS IFACE clock 201 + - description: GCC MSS BUS clock 202 + - description: GCC MSS MEM clock 203 + - description: RPMH XO clock 204 + - description: GCC MSS GPLL0 clock 205 + - description: GCC MSS SNOC_AXI clock 206 + - description: GCC MSS MNOC_AXI clock 207 + - description: RPMH PNOC clock 208 + - description: GCC MSS PRNG clock 209 + - description: RPMH QDSS clock 210 + clock-names: 211 + items: 212 + - const: iface 213 + - const: bus 214 + - const: mem 215 + - const: xo 216 + - const: gpll0_mss 217 + - const: snoc_axi 218 + - const: mnoc_axi 219 + - const: pnoc 220 + - const: qdss 221 + glink-edge: false 222 + required: 223 + - pll-supply 224 + - smd-edge 225 + else: 226 + properties: 227 + pll-supply: false 228 + smd-edge: false 229 + 230 + - if: 231 + properties: 232 + compatible: 233 + const: qcom,msm8998-mss-pil 234 + then: 235 + properties: 236 + clocks: 237 + items: 238 + - description: GCC MSS IFACE clock 239 + - description: GCC MSS BUS clock 240 + - description: GCC MSS MEM clock 241 + - description: GCC MSS GPLL0 clock 242 + - description: GCC MSS SNOC_AXI clock 243 + - description: GCC MSS MNOC_AXI clock 244 + - description: RPMH QDSS clock 245 + - description: RPMH XO clock 246 + clock-names: 247 + items: 248 + - const: iface 249 + - const: bus 250 + - const: mem 251 + - const: gpll0_mss 252 + - const: snoc_axi 253 + - const: mnoc_axi 254 + - const: qdss 255 + - const: xo 256 + required: 257 + - glink-edge 258 + 259 + - if: 260 + properties: 261 + compatible: 262 + const: qcom,sdm845-mss-pil 263 + then: 264 + properties: 265 + power-domains: 266 + minItems: 3 267 + power-domain-names: 268 + minItems: 3 269 + resets: 270 + minItems: 2 271 + reset-names: 272 + minItems: 2 273 + clocks: 274 + items: 275 + - description: GCC MSS IFACE clock 276 + - description: GCC MSS BUS clock 277 + - description: GCC MSS MEM clock 278 + - description: GCC MSS GPLL0 clock 279 + - description: GCC MSS SNOC_AXI clock 280 + - description: GCC MSS MNOC_AXI clock 281 + - description: GCC MSS PRNG clock 282 + - description: RPMH XO clock 283 + clock-names: 284 + items: 285 + - const: iface 286 + - const: bus 287 + - const: mem 288 + - const: gpll0_mss 289 + - const: snoc_axi 290 + - const: mnoc_axi 291 + - const: prng 292 + - const: xo 293 + required: 294 + - qcom,qmp 295 + - glink-edge 296 + else: 297 + properties: 298 + iommus: false 299 + power-domains: 300 + maxItems: 2 301 + power-domain-names: 302 + maxItems: 2 303 + resets: 304 + maxItems: 1 305 + reset-names: 306 + maxItems: 1 307 + qcom,qmp: false 308 + 309 + # Fallbacks for deprecated properties 310 + - oneOf: 311 + - required: 312 + - memory-region 313 + - required: 314 + - mba 315 + - mpss 316 + 317 + additionalProperties: false 318 + 319 + examples: 320 + - | 321 + #include <dt-bindings/clock/qcom,gcc-sdm845.h> 322 + #include <dt-bindings/clock/qcom,rpmh.h> 323 + #include <dt-bindings/interrupt-controller/arm-gic.h> 324 + #include <dt-bindings/power/qcom-rpmpd.h> 325 + #include <dt-bindings/reset/qcom,sdm845-aoss.h> 326 + #include <dt-bindings/reset/qcom,sdm845-pdc.h> 327 + 328 + remoteproc@4080000 { 329 + compatible = "qcom,sdm845-mss-pil"; 330 + reg = <0x04080000 0x408>, <0x04180000 0x48>; 331 + reg-names = "qdsp6", "rmb"; 332 + 333 + interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>, 334 + <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 335 + <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 336 + <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 337 + <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, 338 + <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; 339 + interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack", 340 + "shutdown-ack"; 341 + 342 + clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, 343 + <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>, 344 + <&gcc GCC_BOOT_ROM_AHB_CLK>, 345 + <&gcc GCC_MSS_GPLL0_DIV_CLK_SRC>, 346 + <&gcc GCC_MSS_SNOC_AXI_CLK>, 347 + <&gcc GCC_MSS_MFAB_AXIS_CLK>, 348 + <&gcc GCC_PRNG_AHB_CLK>, 349 + <&rpmhcc RPMH_CXO_CLK>; 350 + clock-names = "iface", "bus", "mem", "gpll0_mss", 351 + "snoc_axi", "mnoc_axi", "prng", "xo"; 352 + 353 + power-domains = <&rpmhpd SDM845_CX>, 354 + <&rpmhpd SDM845_MX>, 355 + <&rpmhpd SDM845_MSS>; 356 + power-domain-names = "cx", "mx", "mss"; 357 + 358 + memory-region = <&mba_mem>, <&mpss_mem>; 359 + 360 + resets = <&aoss_reset AOSS_CC_MSS_RESTART>, 361 + <&pdc_reset PDC_MODEM_SYNC_RESET>; 362 + reset-names = "mss_restart", "pdc_reset"; 363 + 364 + qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>; 365 + 366 + qcom,qmp = <&aoss_qmp>; 367 + 368 + qcom,smem-states = <&modem_smp2p_out 0>; 369 + qcom,smem-state-names = "stop"; 370 + 371 + glink-edge { 372 + interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>; 373 + label = "modem"; 374 + qcom,remote-pid = <1>; 375 + mboxes = <&apss_shared 12>; 376 + }; 377 + };
+5 -132
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt
··· 9 9 Definition: must be one of: 10 10 "qcom,ipq8074-wcss-pil" 11 11 "qcom,qcs404-wcss-pil" 12 - "qcom,msm8996-mss-pil" 13 - "qcom,msm8998-mss-pil" 14 - "qcom,sdm845-mss-pil" 15 12 16 13 - reg: 17 14 Usage: required ··· 29 32 - interrupt-names: 30 33 Usage: required 31 34 Value type: <stringlist> 32 - Definition: The interrupts needed depends on the compatible 33 - string: 34 - qcom,ipq8074-wcss-pil: 35 - qcom,qcs404-wcss-pil: 36 - must be "wdog", "fatal", "ready", "handover", "stop-ack" 37 - qcom,msm8996-mss-pil: 38 - qcom,msm8998-mss-pil: 39 - qcom,sdm845-mss-pil: 40 - must be "wdog", "fatal", "ready", "handover", "stop-ack", 41 - "shutdown-ack" 42 - 43 - - firmware-name: 44 - Usage: optional 45 - Value type: <stringlist> 46 - Definition: must list the relative firmware image paths for mba and 47 - modem. They are used for booting and authenticating the 48 - Hexagon core. 35 + Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack" 49 36 50 37 - clocks: 51 38 Usage: required ··· 47 66 "gcc_axim_cbcr", "lcc_ahbfabric_cbc", "tcsr_lcc_cbc", 48 67 "lcc_abhs_cbc", "lcc_tcm_slave_cbc", "lcc_abhm_cbc", 49 68 "lcc_axim_cbc", "lcc_bcr_sleep" 50 - qcom,msm8996-mss-pil: 51 - must be "iface", "bus", "mem", "xo", "gpll0_mss", 52 - "snoc_axi", "mnoc_axi", "pnoc", "qdss" 53 - qcom,msm8998-mss-pil: 54 - must be "iface", "bus", "mem", "xo", "gpll0_mss", 55 - "snoc_axi", "mnoc_axi", "qdss" 56 - qcom,sdm845-mss-pil: 57 - must be "iface", "bus", "mem", "xo", "gpll0_mss", 58 - "snoc_axi", "mnoc_axi", "prng" 59 69 60 70 - resets: 61 71 Usage: required 62 72 Value type: <phandle> 63 - Definition: reference to the reset-controller for the modem sub-system 64 - reference to the list of 3 reset-controllers for the 73 + Definition: reference to the list of 3 reset-controllers for the 65 74 wcss sub-system 66 - reference to the list of 2 reset-controllers for the modem 67 - sub-system on SDM845 SoCs 68 75 69 76 - reset-names: 70 77 Usage: required 71 78 Value type: <stringlist> 72 - Definition: must be "mss_restart" for the modem sub-system 73 - must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset" 79 + Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset" 74 80 for the wcss sub-system 75 - must be "mss_restart", "pdc_reset" for the modem 76 - sub-system on SDM845 SoCs 77 81 78 - For devices where the mba and mpss sub-nodes are not specified, mba/mpss region 79 - should be referenced as follows: 80 82 - memory-region: 81 83 Usage: required 82 84 Value type: <phandle> 83 - Definition: reference to the reserved-memory for the mba region followed 84 - by the mpss region 85 + Definition: reference to wcss reserved-memory region. 85 86 86 87 For the compatible string below the following supplies are required: 87 88 "qcom,qcs404-wcss-pil" ··· 72 109 Value type: <phandle> 73 110 Definition: reference to the regulators to be held on behalf of the 74 111 booting of the Hexagon core 75 - 76 - For the compatible string below the following supplies are required: 77 - "qcom,msm8996-mss-pil" 78 - - pll-supply: 79 - Usage: required 80 - Value type: <phandle> 81 - Definition: reference to the regulators to be held on behalf of the 82 - booting of the Hexagon core 83 - 84 - - power-domains: 85 - Usage: required 86 - Value type: <phandle> 87 - Definition: reference to power-domains that match power-domain-names 88 - 89 - - power-domain-names: 90 - Usage: required 91 - Value type: <stringlist> 92 - Definition: The power-domains needed depend on the compatible string: 93 - qcom,ipq8074-wcss-pil: 94 - no power-domain names required 95 - qcom,msm8996-mss-pil: 96 - qcom,msm8998-mss-pil: 97 - must be "cx", "mx" 98 - qcom,sdm845-mss-pil: 99 - must be "cx", "mx", "mss" 100 - 101 - - qcom,qmp: 102 - Usage: optional 103 - Value type: <phandle> 104 - Definition: reference to the AOSS side-channel message RAM. 105 112 106 113 - qcom,smem-states: 107 114 Usage: required ··· 88 155 Usage: required 89 156 Value type: <prop-encoded-array> 90 157 Definition: a phandle reference to a syscon representing TCSR followed 91 - by the three offsets within syscon for q6, modem and nc 158 + by the three offsets within syscon for q6, wcss and nc 92 159 halt registers. 93 - 94 - The Hexagon node must contain iommus property as described in ../iommu/iommu.txt 95 - on platforms which do not have TrustZone. 96 - 97 - = SUBNODES: 98 - The Hexagon node must contain two subnodes, named "mba" and "mpss" representing 99 - the memory regions used by the Hexagon firmware. Each sub-node must contain: 100 160 101 161 - memory-region: 102 162 Usage: required ··· 100 174 "glink-edge" that describes the communication edge, channels and devices 101 175 related to the Hexagon. See ../soc/qcom/qcom,smd.yaml and 102 176 ../soc/qcom/qcom,glink.txt for details on how to describe these. 103 - 104 - = EXAMPLE 105 - The following example describes the resources needed to boot control the 106 - Hexagon, as it is found on MSM8974 boards. 107 - 108 - remoteproc@fc880000 { 109 - compatible = "qcom,msm8974-mss-pil"; 110 - reg = <0xfc880000 0x100>, <0xfc820000 0x020>; 111 - reg-names = "qdsp6", "rmb"; 112 - 113 - interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>, 114 - <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 115 - <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 116 - <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 117 - <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 118 - interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; 119 - 120 - clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, 121 - <&gcc GCC_MSS_CFG_AHB_CLK>, 122 - <&gcc GCC_BOOT_ROM_AHB_CLK>, 123 - <&xo_board>; 124 - clock-names = "iface", "bus", "mem", "xo"; 125 - 126 - resets = <&gcc GCC_MSS_RESTART>; 127 - reset-names = "mss_restart"; 128 - 129 - cx-supply = <&pm8841_s2>; 130 - mss-supply = <&pm8841_s3>; 131 - mx-supply = <&pm8841_s1>; 132 - pll-supply = <&pm8941_l12>; 133 - 134 - qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>; 135 - 136 - qcom,smem-states = <&modem_smp2p_out 0>; 137 - qcom,smem-state-names = "stop"; 138 - 139 - mba { 140 - memory-region = <&mba_region>; 141 - }; 142 - 143 - mpss { 144 - memory-region = <&mpss_region>; 145 - }; 146 - 147 - smd-edge { 148 - interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>; 149 - 150 - qcom,ipc = <&apcs 8 12>; 151 - qcom,smd-edge = <0>; 152 - 153 - label = "modem"; 154 - }; 155 - };