Commit 9a660c7f authored by Sireesh Kodali's avatar Sireesh Kodali Committed by Bjorn Andersson

dt-bindings: remoteproc: qcom: Convert wcnss documentation to YAML

This is a direct conversion of the existing txt documentation to YAML.
It is in preparation for the addition of pronto-v3 to the docs. This
patch doesn't document any of the existing subnodes/properties that are
not documented in the existing txt file. That is done in a separate
patch.
Signed-off-by: default avatarSireesh Kodali <sireeshkodali1@gmail.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221001031345.31293-3-sireeshkodali1@gmail.com
parent 4c707cf5
Qualcomm WCNSS Peripheral Image Loader
This document defines the binding for a component that loads and boots firmware
on the Qualcomm WCNSS core.
- compatible:
Usage: required
Value type: <string>
Definition: must be one of:
"qcom,riva-pil",
"qcom,pronto-v1-pil",
"qcom,pronto-v2-pil"
- reg:
Usage: required
Value type: <prop-encoded-array>
Definition: must specify the base address and size of the CCU, DXE and
PMU register blocks
- reg-names:
Usage: required
Value type: <stringlist>
Definition: must be "ccu", "dxe", "pmu"
- interrupts-extended:
Usage: required
Value type: <prop-encoded-array>
Definition: must list the watchdog and fatal IRQs and may specify the
ready, handover and stop-ack IRQs
- interrupt-names:
Usage: required
Value type: <stringlist>
Definition: should be "wdog", "fatal", optionally followed by "ready",
"handover", "stop-ack"
- firmware-name:
Usage: optional
Value type: <string>
Definition: must list the relative firmware image path for the
WCNSS core. Defaults to "wcnss.mdt".
- vddmx-supply: (deprecated for qcom,pronto-v1/2-pil)
- vddcx-supply: (deprecated for qcom,pronto-v1/2-pil)
- vddpx-supply:
Usage: required
Value type: <phandle>
Definition: reference to the regulators to be held on behalf of the
booting of the WCNSS core
- power-domains:
Usage: required (for qcom,pronto-v1/2-pil)
Value type: <phandle>
Definition: reference to the power domains to be held on behalf of the
booting of the WCNSS core
- power-domain-names:
Usage: required (for qcom,pronto-v1/2-pil)
Value type: <stringlist>
Definition: must be "cx", "mx"
- qcom,smem-states:
Usage: optional
Value type: <prop-encoded-array>
Definition: reference to the SMEM state used to indicate to WCNSS that
it should shut down
- qcom,smem-state-names:
Usage: optional
Value type: <stringlist>
Definition: should be "stop"
- memory-region:
Usage: required
Value type: <prop-encoded-array>
Definition: reference to reserved-memory node for the remote processor
see ../reserved-memory/reserved-memory.txt
= SUBNODES
A required subnode of the WCNSS PIL is used to describe the attached rf module
and its resource dependencies. It is described by the following properties:
- compatible:
Usage: required
Value type: <string>
Definition: must be one of:
"qcom,wcn3620",
"qcom,wcn3660",
"qcom,wcn3660b",
"qcom,wcn3680"
- clocks:
Usage: required
Value type: <prop-encoded-array>
Definition: should specify the xo clock and optionally the rf clock
- clock-names:
Usage: required
Value type: <stringlist>
Definition: should be "xo", optionally followed by "rf"
- vddxo-supply:
- vddrfa-supply:
- vddpa-supply:
- vdddig-supply:
Usage: required
Value type: <phandle>
Definition: reference to the regulators to be held on behalf of the
booting of the WCNSS core
The wcnss node can also have an subnode named "smd-edge" that describes the SMD
edge, channels and devices related to the WCNSS.
See ../soc/qcom/qcom,smd.yaml for details on how to describe the SMD edge.
= EXAMPLE
The following example describes the resources needed to boot control the WCNSS,
with attached WCN3680, as it is commonly found on MSM8974 boards.
pronto@fb204000 {
compatible = "qcom,pronto-v2-pil";
reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
reg-names = "ccu", "dxe", "pmu";
interrupts-extended = <&intc 0 149 1>,
<&wcnss_smp2p_slave 0 0>,
<&wcnss_smp2p_slave 1 0>,
<&wcnss_smp2p_slave 2 0>,
<&wcnss_smp2p_slave 3 0>;
interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
power-domains = <&rpmpd MSM8974_VDDCX>, <&rpmpd MSM8974_VDDMX>;
power-domain-names = "cx", "mx";
vddpx-supply = <&pm8941_s3>;
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,wcn3680";
clocks = <&rpmcc RPM_CXO_CLK_SRC>, <&rpmcc RPM_CXO_A2>;
clock-names = "xo", "rf";
vddxo-supply = <&pm8941_l6>;
vddrfa-supply = <&pm8941_l11>;
vddpa-supply = <&pm8941_l19>;
vdddig-supply = <&pm8941_s3>;
};
smd-edge {
interrupts = <0 142 1>;
qcom,ipc = <&apcs 8 17>;
qcom,smd-edge = <6>;
qcom,remote-pid = <4>;
label = "pronto";
wcnss {
compatible = "qcom,wcnss";
qcom,smd-channels = "WCNSS_CTRL";
qcom,mmio = <&pronto>;
bt {
compatible = "qcom,wcnss-bt";
};
};
};
};
# 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:
enum:
- qcom,riva-pil
- qcom,pronto-v1-pil
- qcom,pronto-v2-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:
$ref: /schemas/types.yaml#/definitions/string
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
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";
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";
};
};
};
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment