0001 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/soc/qcom/qcom,wcnss.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Qualcomm WCNSS
0008
0009 maintainers:
0010 - Andy Gross <agross@kernel.org>
0011 - Bjorn Andersson <bjorn.andersson@linaro.org>
0012
0013 description:
0014 The Qualcomm WCNSS hardware consists of control block and a BT, WiFi and FM
0015 radio block, all using SMD as command channels.
0016
0017 properties:
0018 compatible:
0019 const: qcom,wcnss
0020
0021 firmware-name:
0022 $ref: /schemas/types.yaml#/definitions/string
0023 default: "wlan/prima/WCNSS_qcom_wlan_nv.bin"
0024 description:
0025 Relative firmware image path for the WLAN NV blob.
0026
0027 qcom,mmio:
0028 $ref: /schemas/types.yaml#/definitions/phandle
0029 description: |
0030 Reference to a node specifying the wcnss "ccu" and "dxe" register blocks.
0031 The node must be compatible with one of the following::
0032 - qcom,riva"
0033 - qcom,pronto"
0034
0035 qcom,smd-channels:
0036 $ref: /schemas/types.yaml#/definitions/string
0037 const: WCNSS_CTRL
0038 description:
0039 Standard SMD property specifying the SMD channel used for communication
0040 with the WiFi firmware.
0041
0042 bluetooth:
0043 type: object
0044 additionalProperties: false
0045 properties:
0046 compatible:
0047 const: qcom,wcnss-bt
0048
0049 local-bd-address:
0050 $ref: /schemas/types.yaml#/definitions/uint8-array
0051 maxItems: 6
0052 description:
0053 See Documentation/devicetree/bindings/net/bluetooth.txt
0054
0055 required:
0056 - compatible
0057
0058 wifi:
0059 additionalProperties: false
0060 type: object
0061 properties:
0062 compatible:
0063 const: qcom,wcnss-wlan
0064
0065 interrupts:
0066 maxItems: 2
0067
0068 interrupt-names:
0069 items:
0070 - const: tx
0071 - const: rx
0072
0073 qcom,smem-states:
0074 $ref: /schemas/types.yaml#/definitions/phandle-array
0075 maxItems: 2
0076 description:
0077 Should reference the tx-enable and tx-rings-empty SMEM states.
0078
0079 qcom,smem-state-names:
0080 items:
0081 - const: tx-enable
0082 - const: tx-rings-empty
0083 description:
0084 Names of SMEM states.
0085
0086 required:
0087 - compatible
0088 - interrupts
0089 - interrupt-names
0090 - qcom,smem-states
0091 - qcom,smem-state-names
0092
0093 required:
0094 - compatible
0095 - qcom,mmio
0096 - qcom,smd-channels
0097
0098 additionalProperties: false
0099
0100 examples:
0101 - |
0102 #include <dt-bindings/interrupt-controller/arm-gic.h>
0103
0104 smd-edge {
0105 interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
0106
0107 qcom,ipc = <&apcs 8 17>;
0108 qcom,smd-edge = <6>;
0109 qcom,remote-pid = <4>;
0110
0111 label = "pronto";
0112
0113 wcnss {
0114 compatible = "qcom,wcnss";
0115 qcom,smd-channels = "WCNSS_CTRL";
0116
0117 qcom,mmio = <&pronto>;
0118
0119 bluetooth {
0120 compatible = "qcom,wcnss-bt";
0121 /* BD address 00:11:22:33:44:55 */
0122 local-bd-address = [ 55 44 33 22 11 00 ];
0123 };
0124
0125 wifi {
0126 compatible = "qcom,wcnss-wlan";
0127
0128 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
0129 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
0130 interrupt-names = "tx", "rx";
0131
0132 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
0133 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
0134 };
0135 };
0136 };