blob: 8e033b22d28cfa8203234f744b3b408e976e20c3 [file] [log] [blame]
# 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";
};
};
};
};