506355c577
dtschema package defines firmware-name as string-array, so individual bindings should not make it a string but instead just narrow the number of expected firmware file names. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org> Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20240115182031.1610088-1-krzysztof.kozlowski@linaro.org Signed-off-by: Bjorn Andersson <andersson@kernel.org>
295 lines
7.0 KiB
YAML
295 lines
7.0 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/remoteproc/qcom,wcnss-pil.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Qualcomm WCNSS Peripheral Image Loader
|
|
|
|
maintainers:
|
|
- Bjorn Andersson <andersson@kernel.org>
|
|
|
|
description:
|
|
This document defines the binding for a component that loads and boots
|
|
firmware on the Qualcomm WCNSS core.
|
|
|
|
properties:
|
|
compatible:
|
|
description:
|
|
Append "qcom,pronto" if the device is actually pronto, and not riva
|
|
oneOf:
|
|
- items:
|
|
- enum:
|
|
- qcom,pronto-v1-pil
|
|
- qcom,pronto-v2-pil
|
|
- qcom,pronto-v3-pil
|
|
- const: qcom,pronto
|
|
- const: qcom,riva-pil
|
|
|
|
reg:
|
|
maxItems: 3
|
|
description:
|
|
The base address and size of the CCU, DXE and PMU register blocks
|
|
|
|
reg-names:
|
|
items:
|
|
- const: ccu
|
|
- const: dxe
|
|
- const: pmu
|
|
|
|
interrupts:
|
|
minItems: 2
|
|
maxItems: 5
|
|
|
|
interrupt-names:
|
|
minItems: 2
|
|
items:
|
|
- const: wdog
|
|
- const: fatal
|
|
- const: ready
|
|
- const: handover
|
|
- const: stop-ack
|
|
|
|
firmware-name:
|
|
maxItems: 1
|
|
description:
|
|
Relative firmware image path for the WCNSS core. Defaults to
|
|
"wcnss.mdt".
|
|
|
|
vddpx-supply:
|
|
description:
|
|
PX regulator to be held on behalf of the booting of the WCNSS core
|
|
|
|
vddmx-supply:
|
|
description:
|
|
MX regulator to be held on behalf of the booting of the WCNSS core.
|
|
|
|
vddcx-supply:
|
|
description:
|
|
CX regulator to be held on behalf of the booting of the WCNSS core.
|
|
|
|
power-domains:
|
|
maxItems: 2
|
|
|
|
power-domain-names:
|
|
items:
|
|
- const: cx
|
|
- const: mx
|
|
|
|
qcom,smem-states:
|
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
|
description:
|
|
States used by the AP to signal the WCNSS core that it should shutdown
|
|
items:
|
|
- description: Stop the modem
|
|
|
|
qcom,smem-state-names:
|
|
description: The names of the state bits used for SMP2P output
|
|
items:
|
|
- const: stop
|
|
|
|
memory-region:
|
|
maxItems: 1
|
|
description: reserved-memory for the WCNSS core
|
|
|
|
smd-edge:
|
|
$ref: /schemas/remoteproc/qcom,smd-edge.yaml#
|
|
description:
|
|
Qualcomm Shared Memory subnode which represents communication edge,
|
|
channels and devices related to the ADSP.
|
|
|
|
iris:
|
|
type: object
|
|
description:
|
|
The iris subnode of the WCNSS PIL is used to describe the attached RF module
|
|
and its resource dependencies.
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- qcom,wcn3620
|
|
- qcom,wcn3660
|
|
- qcom,wcn3660b
|
|
- qcom,wcn3680
|
|
|
|
clocks:
|
|
minItems: 1
|
|
items:
|
|
- description: XO clock
|
|
- description: RF clock
|
|
|
|
clock-names:
|
|
minItems: 1
|
|
items:
|
|
- const: xo
|
|
- const: rf
|
|
|
|
vddxo-supply:
|
|
description:
|
|
Reference to the regulator to be held on behalf of the booting WCNSS
|
|
core
|
|
|
|
vddrfa-supply:
|
|
description:
|
|
Reference to the regulator to be held on behalf of the booting WCNSS
|
|
core
|
|
|
|
vddpa-supply:
|
|
description:
|
|
Reference to the regulator to be held on behalf of the booting WCNSS
|
|
core
|
|
|
|
vdddig-supply:
|
|
description:
|
|
Reference to the regulator to be held on behalf of the booting WCNSS
|
|
core
|
|
|
|
required:
|
|
- compatible
|
|
- clocks
|
|
- clock-names
|
|
- vddxo-supply
|
|
- vddrfa-supply
|
|
- vddpa-supply
|
|
- vdddig-supply
|
|
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- reg-names
|
|
- interrupts
|
|
- interrupt-names
|
|
- iris
|
|
- vddpx-supply
|
|
- memory-region
|
|
- smd-edge
|
|
|
|
additionalProperties: false
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: qcom,riva-pil
|
|
then:
|
|
required:
|
|
- vddcx-supply
|
|
- vddmx-supply
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,pronto-v1-pil
|
|
- qcom,pronto-v2-pil
|
|
then:
|
|
properties:
|
|
vddmx-supply:
|
|
deprecated: true
|
|
description: Deprecated for qcom,pronto-v1/2-pil
|
|
|
|
vddcx-supply:
|
|
deprecated: true
|
|
description: Deprecated for qcom,pronto-v1/2-pil
|
|
|
|
oneOf:
|
|
- required:
|
|
- power-domains
|
|
- power-domain-names
|
|
- required:
|
|
- vddmx-supply
|
|
- vddcx-supply
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,pronto-v3-pil
|
|
then:
|
|
properties:
|
|
vddmx-supply: false
|
|
vddcx-supply: false
|
|
|
|
required:
|
|
- power-domains
|
|
- power-domain-names
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/clock/qcom,rpmcc.h>
|
|
#include <dt-bindings/power/qcom-rpmpd.h>
|
|
pronto@a21b000 {
|
|
compatible = "qcom,pronto-v2-pil", "qcom,pronto";
|
|
reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
|
|
reg-names = "ccu", "dxe", "pmu";
|
|
|
|
interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
|
|
<&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
|
|
<&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
|
|
<&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
|
|
<&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
|
|
interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
|
|
|
|
power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>;
|
|
power-domain-names = "cx", "mx";
|
|
|
|
vddpx-supply = <&pm8916_l7>;
|
|
|
|
qcom,smem-states = <&wcnss_smp2p_out 0>;
|
|
qcom,smem-state-names = "stop";
|
|
|
|
memory-region = <&wcnss_region>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&wcnss_pin_a>;
|
|
|
|
iris {
|
|
compatible = "qcom,wcn3620";
|
|
vddxo-supply = <&pm8916_l7>;
|
|
vddrfa-supply = <&pm8916_s3>;
|
|
vddpa-supply = <&pm8916_l9>;
|
|
vdddig-supply = <&pm8916_l5>;
|
|
|
|
clocks = <&rpmcc RPM_SMD_RF_CLK2>;
|
|
clock-names = "xo";
|
|
};
|
|
|
|
smd-edge {
|
|
interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
|
|
|
|
qcom,ipc = <&apcs 8 17>;
|
|
qcom,smd-edge = <6>;
|
|
qcom,remote-pid = <4>;
|
|
|
|
label = "pronto";
|
|
|
|
wcnss_ctrl: wcnss {
|
|
compatible = "qcom,wcnss";
|
|
qcom,smd-channels = "WCNSS_CTRL";
|
|
|
|
qcom,mmio = <&pronto>;
|
|
|
|
bluetooth {
|
|
compatible = "qcom,wcnss-bt";
|
|
};
|
|
|
|
wifi {
|
|
compatible = "qcom,wcnss-wlan";
|
|
|
|
interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
|
|
interrupt-names = "tx", "rx";
|
|
|
|
qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
|
|
qcom,smem-state-names = "tx-enable", "tx-rings-empty";
|
|
};
|
|
};
|
|
};
|
|
};
|