292 lines
7.3 KiB
YAML
292 lines
7.3 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/remoteproc/qcom,msm8916-mss-pil.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Qualcomm MSM8916 MSS Peripheral Image Loader (and similar)
|
|
|
|
maintainers:
|
|
- Stephan Gerhold <stephan@gerhold.net>
|
|
|
|
description:
|
|
This document describes the hardware for a component that loads and boots
|
|
firmware on the Qualcomm MSM8916 Modem Hexagon Core (and similar).
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- qcom,msm8909-mss-pil
|
|
- qcom,msm8916-mss-pil
|
|
- qcom,msm8953-mss-pil
|
|
- qcom,msm8974-mss-pil
|
|
|
|
- const: qcom,q6v5-pil
|
|
description: Deprecated, prefer using qcom,msm8916-mss-pil
|
|
deprecated: true
|
|
|
|
reg:
|
|
items:
|
|
- description: MSS QDSP6 registers
|
|
- description: RMB registers
|
|
|
|
reg-names:
|
|
items:
|
|
- const: qdsp6
|
|
- const: rmb
|
|
|
|
interrupts:
|
|
items:
|
|
- description: Watchdog interrupt
|
|
- description: Fatal interrupt
|
|
- description: Ready interrupt
|
|
- description: Handover interrupt
|
|
- description: Stop acknowledge interrupt
|
|
|
|
interrupt-names:
|
|
items:
|
|
- const: wdog
|
|
- const: fatal
|
|
- const: ready
|
|
- const: handover
|
|
- const: stop-ack
|
|
|
|
clocks:
|
|
items:
|
|
- description: Configuration interface (AXI) clock
|
|
- description: Configuration bus (AHB) clock
|
|
- description: Boot ROM (AHB) clock
|
|
- description: XO proxy clock (control handed over after startup)
|
|
|
|
clock-names:
|
|
items:
|
|
- const: iface
|
|
- const: bus
|
|
- const: mem
|
|
- const: xo
|
|
|
|
power-domains:
|
|
items:
|
|
- description: CX proxy power domain (control handed over after startup)
|
|
- description: MX proxy power domain (control handed over after startup)
|
|
- description: MSS proxy power domain (control handed over after startup)
|
|
(only valid for qcom,msm8953-mss-pil)
|
|
minItems: 2
|
|
|
|
power-domain-names:
|
|
items:
|
|
- const: cx
|
|
- const: mx
|
|
- const: mss # only valid for qcom,msm8953-mss-pil
|
|
minItems: 2
|
|
|
|
pll-supply:
|
|
description: PLL proxy supply (control handed over after startup)
|
|
|
|
mss-supply:
|
|
description: MSS power domain supply (only valid for qcom,msm8974-mss-pil)
|
|
|
|
resets:
|
|
items:
|
|
- description: MSS restart control
|
|
|
|
reset-names:
|
|
items:
|
|
- const: mss_restart
|
|
|
|
qcom,smem-states:
|
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
|
description: States used by the AP to signal the Hexagon core
|
|
items:
|
|
- description: Stop modem
|
|
|
|
qcom,smem-state-names:
|
|
description: Names of the states used by the AP to signal the Hexagon core
|
|
items:
|
|
- const: stop
|
|
|
|
qcom,halt-regs:
|
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
|
description:
|
|
Halt registers are used to halt transactions of various sub-components
|
|
within MSS.
|
|
items:
|
|
- items:
|
|
- description: phandle to TCSR syscon region
|
|
- description: offset to the Q6 halt register
|
|
- description: offset to the modem halt register
|
|
- description: offset to the nc halt register
|
|
|
|
memory-region:
|
|
items:
|
|
- description: MBA reserved region
|
|
- description: MPSS reserved region
|
|
|
|
firmware-name:
|
|
$ref: /schemas/types.yaml#/definitions/string-array
|
|
items:
|
|
- description: Name of MBA firmware
|
|
- description: Name of modem firmware
|
|
|
|
bam-dmux:
|
|
$ref: /schemas/net/qcom,bam-dmux.yaml#
|
|
description:
|
|
Qualcomm BAM Data Multiplexer (provides network interface to the modem)
|
|
|
|
smd-edge:
|
|
$ref: qcom,smd-edge.yaml#
|
|
description:
|
|
Qualcomm SMD subnode which represents communication edge, channels
|
|
and devices related to the DSP.
|
|
properties:
|
|
label:
|
|
enum:
|
|
- modem
|
|
- hexagon
|
|
unevaluatedProperties: false
|
|
|
|
# Deprecated properties
|
|
cx-supply:
|
|
description: CX power domain regulator supply (prefer using power-domains)
|
|
deprecated: true
|
|
|
|
mx-supply:
|
|
description: MX power domain regulator supply (prefer using power-domains)
|
|
deprecated: true
|
|
|
|
mba:
|
|
type: object
|
|
additionalProperties: false
|
|
description:
|
|
MBA reserved region (prefer using memory-region with two items)
|
|
properties:
|
|
memory-region: true
|
|
required:
|
|
- memory-region
|
|
deprecated: true
|
|
|
|
mpss:
|
|
type: object
|
|
additionalProperties: false
|
|
description:
|
|
MPSS reserved region (prefer using memory-region with two items)
|
|
properties:
|
|
memory-region: true
|
|
required:
|
|
- memory-region
|
|
deprecated: true
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- reg-names
|
|
- interrupts
|
|
- interrupt-names
|
|
- clocks
|
|
- clock-names
|
|
- pll-supply
|
|
- resets
|
|
- reset-names
|
|
- qcom,halt-regs
|
|
- qcom,smem-states
|
|
- qcom,smem-state-names
|
|
- smd-edge
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
const: qcom,msm8953-mss-pil
|
|
then:
|
|
properties:
|
|
power-domains:
|
|
minItems: 3
|
|
power-domain-names:
|
|
minItems: 3
|
|
required:
|
|
- power-domains
|
|
- power-domain-names
|
|
else:
|
|
properties:
|
|
power-domains:
|
|
maxItems: 2
|
|
power-domain-names:
|
|
maxItems: 2
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
const: qcom,msm8974-mss-pil
|
|
then:
|
|
required:
|
|
- mss-supply
|
|
else:
|
|
properties:
|
|
mss-supply: false
|
|
|
|
# Fallbacks for deprecated properties
|
|
- oneOf:
|
|
- required:
|
|
- memory-region
|
|
- required:
|
|
- mba
|
|
- mpss
|
|
- oneOf:
|
|
- required:
|
|
- power-domains
|
|
- power-domain-names
|
|
- required:
|
|
- cx-supply
|
|
- mx-supply
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/qcom,gcc-msm8916.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/power/qcom-rpmpd.h>
|
|
|
|
remoteproc_mpss: remoteproc@4080000 {
|
|
compatible = "qcom,msm8916-mss-pil";
|
|
reg = <0x04080000 0x100>, <0x04020000 0x40>;
|
|
reg-names = "qdsp6", "rmb";
|
|
|
|
interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
|
|
<&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
|
|
<&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
|
|
<&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
|
|
<&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
|
|
interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
|
|
|
|
qcom,smem-states = <&hexagon_smp2p_out 0>;
|
|
qcom,smem-state-names = "stop";
|
|
qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
|
|
|
|
clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
|
|
<&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
|
|
<&gcc GCC_BOOT_ROM_AHB_CLK>,
|
|
<&xo_board>;
|
|
clock-names = "iface", "bus", "mem", "xo";
|
|
|
|
power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>;
|
|
power-domain-names = "cx", "mx";
|
|
pll-supply = <&pm8916_l7>;
|
|
|
|
resets = <&scm 0>;
|
|
reset-names = "mss_restart";
|
|
|
|
memory-region = <&mba_mem>, <&mpss_mem>;
|
|
|
|
smd-edge {
|
|
interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
|
|
|
|
qcom,smd-edge = <0>;
|
|
qcom,ipc = <&apcs 8 12>;
|
|
qcom,remote-pid = <1>;
|
|
|
|
label = "hexagon";
|
|
};
|
|
};
|