[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4d273cac-8955-4850-bd8a-0bad318c1e4f@quicinc.com>
Date: Wed, 30 Oct 2024 12:04:17 -0700
From: Jeff Johnson <quic_jjohnson@...cinc.com>
To: Raj Kumar Bhagat <quic_rajkbhag@...cinc.com>, <ath12k@...ts.infradead.org>
CC: <linux-wireless@...r.kernel.org>, Kalle Valo <kvalo@...nel.org>,
"Rob
Herring" <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
"Conor
Dooley" <conor+dt@...nel.org>,
Jeff Johnson <jjohnson@...nel.org>,
"Bjorn
Andersson" <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-arm-msm@...r.kernel.org>
Subject: Re: [RFC PATCH v2 1/5] dt-bindings: net: wireless: ath12k: describe
WSI properties for QCN9274
On 10/29/2024 10:30 AM, Raj Kumar Bhagat wrote:
> QCN9274 device has WSI support. WSI stands for WLAN Serial Interface.
> It is used for the exchange of specific control information across
> radios based on the doorbell mechanism. This WSI connection is
> essential to exchange control information among these devices
>
> Hence, describe WSI interface supported in QCN9274 with the following
> properties:
>
> - qcom,wsi-group-id: It represents the identifier assigned to the WSI
> connection. All the ath12k devices connected to same WSI connection
> have the same wsi-group-id.
>
> - qcom,wsi-master: Indicates if this device is the WSI master.
>
> - ports: This is a graph ports schema that has two ports: TX (port@0)
> and RX (port@1). This represents the actual WSI connection among
> multiple devices.
>
> Also, describe the ath12k device property
> "qcom,ath12k-calibration-variant". This is a common property among
> ath12k devices.
>
> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@...cinc.com>
> ---
> .../bindings/net/wireless/qcom,ath12k.yaml | 241 +++++++++++++++++-
> 1 file changed, 232 insertions(+), 9 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k.yaml
> index 1b5884015b15..42bcd73dd159 100644
> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k.yaml
> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k.yaml
> @@ -1,5 +1,6 @@
> # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> # Copyright (c) 2024 Linaro Limited
> +# Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
> %YAML 1.2
> ---
> $id: http://devicetree.org/schemas/net/wireless/qcom,ath12k.yaml#
> @@ -18,10 +19,17 @@ properties:
> compatible:
> enum:
> - pci17cb,1107 # WCN7850
> + - pci17cb,1109 # QCN9274
>
> reg:
> maxItems: 1
>
> + qcom,ath12k-calibration-variant:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: |
> + string to uniquely identify variant of the calibration data for designs
> + with colliding bus and device ids
> +
> vddaon-supply:
> description: VDD_AON supply regulator handle
>
> @@ -49,21 +57,100 @@ properties:
> vddpcie1p8-supply:
> description: VDD_PCIE_1P8 supply regulator handle
>
> + wsi:
> + type: object
> + description: |
> + The ath12k devices (QCN9274) feature WSI support. WSI stands for
> + WLAN Serial Interface. It is used for the exchange of specific
> + control information across radios based on the doorbell mechanism.
> + This WSI connection is essential to exchange control information
> + among these devices.
> +
> + Diagram to represent one WSI connection (one WSI group) among
> + three devices.
> +
> + +-------+ +-------+ +-------+
> + | pcie2 | | pcie3 | | pcie1 |
is there a reason to not have these in some order?
> + | | | | | |
> + +----->| wsi |------->| wsi |------->| wsi |-----+
> + | | grp 0 | | grp 0 | | grp 2 | |
s/grp 2/grp 0/??? ^ typo?
> + | +-------+ +-------+ +-------+ |
> + +------------------------------------------------------+
> +
> + Diagram to represent two WSI connections (two separate WSI groups)
> + among four devices.
> +
> + +-------+ +-------+ +-------+ +-------+
> + | pcie2 | | pcie3 | | pcie1 | | pcie0 |
again seems strange to not have any logical (to me) order
> + | | | | | | | |
> + +-->| wsi |--->| wsi |--+ +-->| wsi |--->| wsi |--+
> + | | grp 0 | | grp 0 | | | | grp 1 | | grp 1 | |
> + | +-------+ +-------+ | | +-------+ +-------+ |
> + +---------------------------+ +---------------------------+
> +
> + properties:
> + qcom,wsi-group-id:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + It represents the identifier assigned to the WSI connection. All
> + the ath12k devices connected to same WSI connection have the
> + same wsi-group-id.
> +
> + qcom,wsi-master:
> + type: boolean
> + description:
> + Indicates if this device is the WSI master.
> +
> + ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> + description:
> + These ports are used to connect multiple WSI supported devices to
> + form the WSI group.
> +
> + properties:
> + port@0:
> + $ref: /schemas/graph.yaml#/properties/port
> + description:
> + This is the TX port of WSI interface. It is attached to the RX
> + port of the next device in the WSI connection.
> +
> + port@1:
> + $ref: /schemas/graph.yaml#/properties/port
> + description:
> + This is the RX port of WSI interface. It is attached to the TX
> + port of the previous device in the WSI connection.
> +
> + required:
> + - qcom,wsi-group-id
> + - ports
> +
> + additionalProperties: false
> +
> required:
> - compatible
> - reg
> - - vddaon-supply
> - - vddwlcx-supply
> - - vddwlmx-supply
> - - vddrfacmn-supply
> - - vddrfa0p8-supply
> - - vddrfa1p2-supply
> - - vddrfa1p8-supply
> - - vddpcie0p9-supply
> - - vddpcie1p8-supply
>
> additionalProperties: false
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - pci17cb,1107
> + then:
> + required:
> + - vddaon-supply
> + - vddwlcx-supply
> + - vddwlmx-supply
> + - vddrfacmn-supply
> + - vddrfa0p8-supply
> + - vddrfa1p2-supply
> + - vddrfa1p8-supply
> + - vddpcie0p9-supply
> + - vddpcie1p8-supply
> +
> examples:
> - |
> #include <dt-bindings/clock/qcom,rpmh.h>
> @@ -97,3 +184,139 @@ examples:
> };
> };
> };
> +
> + - |
in the description above you have two different diagrams:
- one that shows 3 pcie* devices in a single group with apparently one port
per device
- one that shows 4 pcie* devices split into two groups of two, again with
apparently one port per device
but in the representation that follows you describe three pcie* devices, each
with two distinct ports, all 6 of which are part of group 0.
can we have diagrams that match the actual bindings. does the real product
actually have 6 ports in one group?
> + pcie1 {
> + #address-cells = <3>;
> + #size-cells = <2>;
> +
> + pcie@0 {
> + device_type = "pci";
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> + #address-cells = <3>;
> + #size-cells = <2>;
> + ranges;
> +
> + wifi1@0 {
> + compatible = "pci17cb,1109";
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> +
> + qcom,ath12k-calibration-variant = "RDP433_1";
> +
> + wsi {
> + qcom,wsi-group-id = <0>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + wifi1_wsi_tx: endpoint {
> + remote-endpoint = <&wifi2_wsi_rx>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + wifi1_wsi_rx: endpoint {
> + remote-endpoint = <&wifi3_wsi_tx>;
> + };
> + };
> + };
> + };
> + };
> + };
> + };
> +
> + pcie2 {
> + #address-cells = <3>;
> + #size-cells = <2>;
> +
> + pcie@0 {
> + device_type = "pci";
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> + #address-cells = <3>;
> + #size-cells = <2>;
> + ranges;
> +
> + wifi2@0 {
> + compatible = "pci17cb,1109";
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> +
> + qcom,ath12k-calibration-variant = "RDP433_2";
> +
> + wsi {
> + qcom,wsi-group-id = <0>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + wifi2_wsi_tx: endpoint {
> + remote-endpoint = <&wifi3_wsi_rx>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + wifi2_wsi_rx: endpoint {
> + remote-endpoint = <&wifi1_wsi_tx>;
> + };
> + };
> + };
> + };
> + };
> + };
> + };
> +
> + pcie3 {
> + #address-cells = <3>;
> + #size-cells = <2>;
> +
> + pcie@0 {
> + device_type = "pci";
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> + #address-cells = <3>;
> + #size-cells = <2>;
> + ranges;
> +
> + wifi3@0 {
> + compatible = "pci17cb,1109";
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> +
> + qcom,ath12k-calibration-variant = "RDP433_3";
> +
> + wsi {
> + qcom,wsi-group-id = <0>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + wifi3_wsi_tx: endpoint {
> + remote-endpoint = <&wifi1_wsi_rx>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + wifi3_wsi_rx: endpoint {
> + remote-endpoint = <&wifi2_wsi_tx>;
> + };
> + };
> + };
> + };
> + };
> + };
> + };
Powered by blists - more mailing lists