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