1*f86e09fdSRaj Kumar Bhagat# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*f86e09fdSRaj Kumar Bhagat# Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. 3*f86e09fdSRaj Kumar Bhagat%YAML 1.2 4*f86e09fdSRaj Kumar Bhagat--- 5*f86e09fdSRaj Kumar Bhagat$id: http://devicetree.org/schemas/net/wireless/qcom,ath12k-wsi.yaml# 6*f86e09fdSRaj Kumar Bhagat$schema: http://devicetree.org/meta-schemas/core.yaml# 7*f86e09fdSRaj Kumar Bhagat 8*f86e09fdSRaj Kumar Bhagattitle: Qualcomm Technologies ath12k wireless devices (PCIe) with WSI interface 9*f86e09fdSRaj Kumar Bhagat 10*f86e09fdSRaj Kumar Bhagatmaintainers: 11*f86e09fdSRaj Kumar Bhagat - Jeff Johnson <jjohnson@kernel.org> 12*f86e09fdSRaj Kumar Bhagat - Kalle Valo <kvalo@kernel.org> 13*f86e09fdSRaj Kumar Bhagat 14*f86e09fdSRaj Kumar Bhagatdescription: | 15*f86e09fdSRaj Kumar Bhagat Qualcomm Technologies IEEE 802.11be PCIe devices with WSI interface. 16*f86e09fdSRaj Kumar Bhagat 17*f86e09fdSRaj Kumar Bhagat The ath12k devices (QCN9274) feature WSI support. WSI stands for 18*f86e09fdSRaj Kumar Bhagat WLAN Serial Interface. It is used for the exchange of specific 19*f86e09fdSRaj Kumar Bhagat control information across radios based on the doorbell mechanism. 20*f86e09fdSRaj Kumar Bhagat This WSI connection is essential to exchange control information 21*f86e09fdSRaj Kumar Bhagat among these devices. 22*f86e09fdSRaj Kumar Bhagat 23*f86e09fdSRaj Kumar Bhagat The WSI interface includes TX and RX ports, which are used to connect 24*f86e09fdSRaj Kumar Bhagat multiple WSI-supported devices together, forming a WSI group. 25*f86e09fdSRaj Kumar Bhagat 26*f86e09fdSRaj Kumar Bhagat Diagram to represent one WSI connection (one WSI group) among 27*f86e09fdSRaj Kumar Bhagat three devices. 28*f86e09fdSRaj Kumar Bhagat 29*f86e09fdSRaj Kumar Bhagat +-------+ +-------+ +-------+ 30*f86e09fdSRaj Kumar Bhagat | pcie1 | | pcie2 | | pcie3 | 31*f86e09fdSRaj Kumar Bhagat | | | | | | 32*f86e09fdSRaj Kumar Bhagat +----->| wsi |------->| wsi |------->| wsi |-----+ 33*f86e09fdSRaj Kumar Bhagat | | grp 0 | | grp 0 | | grp 0 | | 34*f86e09fdSRaj Kumar Bhagat | +-------+ +-------+ +-------+ | 35*f86e09fdSRaj Kumar Bhagat +------------------------------------------------------+ 36*f86e09fdSRaj Kumar Bhagat 37*f86e09fdSRaj Kumar Bhagat Diagram to represent two WSI connections (two separate WSI groups) 38*f86e09fdSRaj Kumar Bhagat among four devices. 39*f86e09fdSRaj Kumar Bhagat 40*f86e09fdSRaj Kumar Bhagat +-------+ +-------+ +-------+ +-------+ 41*f86e09fdSRaj Kumar Bhagat | pcie0 | | pcie1 | | pcie2 | | pcie3 | 42*f86e09fdSRaj Kumar Bhagat | | | | | | | | 43*f86e09fdSRaj Kumar Bhagat +-->| wsi |--->| wsi |--+ +-->| wsi |--->| wsi |--+ 44*f86e09fdSRaj Kumar Bhagat | | grp 0 | | grp 0 | | | | grp 1 | | grp 1 | | 45*f86e09fdSRaj Kumar Bhagat | +-------+ +-------+ | | +-------+ +-------+ | 46*f86e09fdSRaj Kumar Bhagat +---------------------------+ +---------------------------+ 47*f86e09fdSRaj Kumar Bhagat 48*f86e09fdSRaj Kumar Bhagatproperties: 49*f86e09fdSRaj Kumar Bhagat compatible: 50*f86e09fdSRaj Kumar Bhagat enum: 51*f86e09fdSRaj Kumar Bhagat - pci17cb,1109 # QCN9274 52*f86e09fdSRaj Kumar Bhagat 53*f86e09fdSRaj Kumar Bhagat reg: 54*f86e09fdSRaj Kumar Bhagat maxItems: 1 55*f86e09fdSRaj Kumar Bhagat 56*f86e09fdSRaj Kumar Bhagat qcom,ath12k-calibration-variant: 57*f86e09fdSRaj Kumar Bhagat $ref: /schemas/types.yaml#/definitions/string 58*f86e09fdSRaj Kumar Bhagat description: 59*f86e09fdSRaj Kumar Bhagat String to uniquely identify variant of the calibration data for designs 60*f86e09fdSRaj Kumar Bhagat with colliding bus and device ids 61*f86e09fdSRaj Kumar Bhagat 62*f86e09fdSRaj Kumar Bhagat qcom,wsi-controller: 63*f86e09fdSRaj Kumar Bhagat $ref: /schemas/types.yaml#/definitions/flag 64*f86e09fdSRaj Kumar Bhagat description: 65*f86e09fdSRaj Kumar Bhagat The WSI controller device in the WSI group aids (is capable) to 66*f86e09fdSRaj Kumar Bhagat synchronize the Timing Synchronization Function (TSF) clock across 67*f86e09fdSRaj Kumar Bhagat all devices in the WSI group. 68*f86e09fdSRaj Kumar Bhagat 69*f86e09fdSRaj Kumar Bhagat ports: 70*f86e09fdSRaj Kumar Bhagat $ref: /schemas/graph.yaml#/properties/ports 71*f86e09fdSRaj Kumar Bhagat properties: 72*f86e09fdSRaj Kumar Bhagat port@0: 73*f86e09fdSRaj Kumar Bhagat $ref: /schemas/graph.yaml#/properties/port 74*f86e09fdSRaj Kumar Bhagat description: 75*f86e09fdSRaj Kumar Bhagat This is the TX port of WSI interface. It is attached to the RX 76*f86e09fdSRaj Kumar Bhagat port of the next device in the WSI connection. 77*f86e09fdSRaj Kumar Bhagat 78*f86e09fdSRaj Kumar Bhagat port@1: 79*f86e09fdSRaj Kumar Bhagat $ref: /schemas/graph.yaml#/properties/port 80*f86e09fdSRaj Kumar Bhagat description: 81*f86e09fdSRaj Kumar Bhagat This is the RX port of WSI interface. It is attached to the TX 82*f86e09fdSRaj Kumar Bhagat port of the previous device in the WSI connection. 83*f86e09fdSRaj Kumar Bhagat 84*f86e09fdSRaj Kumar Bhagatrequired: 85*f86e09fdSRaj Kumar Bhagat - compatible 86*f86e09fdSRaj Kumar Bhagat - reg 87*f86e09fdSRaj Kumar Bhagat 88*f86e09fdSRaj Kumar BhagatadditionalProperties: false 89*f86e09fdSRaj Kumar Bhagat 90*f86e09fdSRaj Kumar Bhagatexamples: 91*f86e09fdSRaj Kumar Bhagat - | 92*f86e09fdSRaj Kumar Bhagat pcie { 93*f86e09fdSRaj Kumar Bhagat #address-cells = <3>; 94*f86e09fdSRaj Kumar Bhagat #size-cells = <2>; 95*f86e09fdSRaj Kumar Bhagat 96*f86e09fdSRaj Kumar Bhagat pcie@0 { 97*f86e09fdSRaj Kumar Bhagat device_type = "pci"; 98*f86e09fdSRaj Kumar Bhagat reg = <0x0 0x0 0x0 0x0 0x0>; 99*f86e09fdSRaj Kumar Bhagat #address-cells = <3>; 100*f86e09fdSRaj Kumar Bhagat #size-cells = <2>; 101*f86e09fdSRaj Kumar Bhagat ranges; 102*f86e09fdSRaj Kumar Bhagat 103*f86e09fdSRaj Kumar Bhagat wifi@0 { 104*f86e09fdSRaj Kumar Bhagat compatible = "pci17cb,1109"; 105*f86e09fdSRaj Kumar Bhagat reg = <0x0 0x0 0x0 0x0 0x0>; 106*f86e09fdSRaj Kumar Bhagat 107*f86e09fdSRaj Kumar Bhagat qcom,ath12k-calibration-variant = "RDP433_1"; 108*f86e09fdSRaj Kumar Bhagat 109*f86e09fdSRaj Kumar Bhagat ports { 110*f86e09fdSRaj Kumar Bhagat #address-cells = <1>; 111*f86e09fdSRaj Kumar Bhagat #size-cells = <0>; 112*f86e09fdSRaj Kumar Bhagat 113*f86e09fdSRaj Kumar Bhagat port@0 { 114*f86e09fdSRaj Kumar Bhagat reg = <0>; 115*f86e09fdSRaj Kumar Bhagat 116*f86e09fdSRaj Kumar Bhagat wifi1_wsi_tx: endpoint { 117*f86e09fdSRaj Kumar Bhagat remote-endpoint = <&wifi2_wsi_rx>; 118*f86e09fdSRaj Kumar Bhagat }; 119*f86e09fdSRaj Kumar Bhagat }; 120*f86e09fdSRaj Kumar Bhagat 121*f86e09fdSRaj Kumar Bhagat port@1 { 122*f86e09fdSRaj Kumar Bhagat reg = <1>; 123*f86e09fdSRaj Kumar Bhagat 124*f86e09fdSRaj Kumar Bhagat wifi1_wsi_rx: endpoint { 125*f86e09fdSRaj Kumar Bhagat remote-endpoint = <&wifi3_wsi_tx>; 126*f86e09fdSRaj Kumar Bhagat }; 127*f86e09fdSRaj Kumar Bhagat }; 128*f86e09fdSRaj Kumar Bhagat }; 129*f86e09fdSRaj Kumar Bhagat }; 130*f86e09fdSRaj Kumar Bhagat }; 131*f86e09fdSRaj Kumar Bhagat 132*f86e09fdSRaj Kumar Bhagat pcie@1 { 133*f86e09fdSRaj Kumar Bhagat device_type = "pci"; 134*f86e09fdSRaj Kumar Bhagat reg = <0x0 0x0 0x1 0x0 0x0>; 135*f86e09fdSRaj Kumar Bhagat #address-cells = <3>; 136*f86e09fdSRaj Kumar Bhagat #size-cells = <2>; 137*f86e09fdSRaj Kumar Bhagat ranges; 138*f86e09fdSRaj Kumar Bhagat 139*f86e09fdSRaj Kumar Bhagat wifi@0 { 140*f86e09fdSRaj Kumar Bhagat compatible = "pci17cb,1109"; 141*f86e09fdSRaj Kumar Bhagat reg = <0x0 0x0 0x0 0x0 0x0>; 142*f86e09fdSRaj Kumar Bhagat 143*f86e09fdSRaj Kumar Bhagat qcom,ath12k-calibration-variant = "RDP433_2"; 144*f86e09fdSRaj Kumar Bhagat qcom,wsi-controller; 145*f86e09fdSRaj Kumar Bhagat 146*f86e09fdSRaj Kumar Bhagat ports { 147*f86e09fdSRaj Kumar Bhagat #address-cells = <1>; 148*f86e09fdSRaj Kumar Bhagat #size-cells = <0>; 149*f86e09fdSRaj Kumar Bhagat 150*f86e09fdSRaj Kumar Bhagat port@0 { 151*f86e09fdSRaj Kumar Bhagat reg = <0>; 152*f86e09fdSRaj Kumar Bhagat 153*f86e09fdSRaj Kumar Bhagat wifi2_wsi_tx: endpoint { 154*f86e09fdSRaj Kumar Bhagat remote-endpoint = <&wifi3_wsi_rx>; 155*f86e09fdSRaj Kumar Bhagat }; 156*f86e09fdSRaj Kumar Bhagat }; 157*f86e09fdSRaj Kumar Bhagat 158*f86e09fdSRaj Kumar Bhagat port@1 { 159*f86e09fdSRaj Kumar Bhagat reg = <1>; 160*f86e09fdSRaj Kumar Bhagat 161*f86e09fdSRaj Kumar Bhagat wifi2_wsi_rx: endpoint { 162*f86e09fdSRaj Kumar Bhagat remote-endpoint = <&wifi1_wsi_tx>; 163*f86e09fdSRaj Kumar Bhagat }; 164*f86e09fdSRaj Kumar Bhagat }; 165*f86e09fdSRaj Kumar Bhagat }; 166*f86e09fdSRaj Kumar Bhagat }; 167*f86e09fdSRaj Kumar Bhagat }; 168*f86e09fdSRaj Kumar Bhagat 169*f86e09fdSRaj Kumar Bhagat pcie@2 { 170*f86e09fdSRaj Kumar Bhagat device_type = "pci"; 171*f86e09fdSRaj Kumar Bhagat reg = <0x0 0x0 0x2 0x0 0x0>; 172*f86e09fdSRaj Kumar Bhagat #address-cells = <3>; 173*f86e09fdSRaj Kumar Bhagat #size-cells = <2>; 174*f86e09fdSRaj Kumar Bhagat ranges; 175*f86e09fdSRaj Kumar Bhagat 176*f86e09fdSRaj Kumar Bhagat wifi@0 { 177*f86e09fdSRaj Kumar Bhagat compatible = "pci17cb,1109"; 178*f86e09fdSRaj Kumar Bhagat reg = <0x0 0x0 0x0 0x0 0x0>; 179*f86e09fdSRaj Kumar Bhagat 180*f86e09fdSRaj Kumar Bhagat qcom,ath12k-calibration-variant = "RDP433_3"; 181*f86e09fdSRaj Kumar Bhagat 182*f86e09fdSRaj Kumar Bhagat ports { 183*f86e09fdSRaj Kumar Bhagat #address-cells = <1>; 184*f86e09fdSRaj Kumar Bhagat #size-cells = <0>; 185*f86e09fdSRaj Kumar Bhagat 186*f86e09fdSRaj Kumar Bhagat port@0 { 187*f86e09fdSRaj Kumar Bhagat reg = <0>; 188*f86e09fdSRaj Kumar Bhagat 189*f86e09fdSRaj Kumar Bhagat wifi3_wsi_tx: endpoint { 190*f86e09fdSRaj Kumar Bhagat remote-endpoint = <&wifi1_wsi_rx>; 191*f86e09fdSRaj Kumar Bhagat }; 192*f86e09fdSRaj Kumar Bhagat }; 193*f86e09fdSRaj Kumar Bhagat 194*f86e09fdSRaj Kumar Bhagat port@1 { 195*f86e09fdSRaj Kumar Bhagat reg = <1>; 196*f86e09fdSRaj Kumar Bhagat 197*f86e09fdSRaj Kumar Bhagat wifi3_wsi_rx: endpoint { 198*f86e09fdSRaj Kumar Bhagat remote-endpoint = <&wifi2_wsi_tx>; 199*f86e09fdSRaj Kumar Bhagat }; 200*f86e09fdSRaj Kumar Bhagat }; 201*f86e09fdSRaj Kumar Bhagat }; 202*f86e09fdSRaj Kumar Bhagat }; 203*f86e09fdSRaj Kumar Bhagat }; 204*f86e09fdSRaj Kumar Bhagat }; 205