Devicetree
 help / color / mirror / Atom feed
From: Avinash Bhatt <avinash.bhatt@intel.com>
To: devicetree@vger.kernel.org, linux-wireless@vger.kernel.org
Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
	johannes@sipsolutions.net, miriam.rachel.korenblit@intel.com,
	linux-kernel@vger.kernel.org, kobi.guetta@intel.com,
	emmanuel.grumbach@intel.com
Subject: [PATCH v3 1/3] dt-bindings: net: wireless: Add Intel Wi-Fi 7 BE200 PCIe adapter
Date: Wed, 13 May 2026 09:05:29 +0300	[thread overview]
Message-ID: <20260513060531.8130-2-avinash.bhatt@intel.com> (raw)
In-Reply-To: <20260513060531.8130-1-avinash.bhatt@intel.com>

The Intel Wi-Fi 7 BE200 is a discrete PCIe Wi-Fi adapter supporting
802.11be with tri-band operation including the 6 GHz band.

Signed-off-by: Avinash Bhatt <avinash.bhatt@intel.com>
---
 .../bindings/net/wireless/intel,iwlwifi.yaml  | 248 ++++++++++++++++++
 MAINTAINERS                                   |   1 +
 2 files changed, 249 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/wireless/intel,iwlwifi.yaml

diff --git a/Documentation/devicetree/bindings/net/wireless/intel,iwlwifi.yaml b/Documentation/devicetree/bindings/net/wireless/intel,iwlwifi.yaml
new file mode 100644
index 000000000000..e5ba5e7608e2
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/wireless/intel,iwlwifi.yaml
@@ -0,0 +1,248 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (c) 2026 Intel Corporation
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/wireless/intel,iwlwifi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Intel Wi-Fi 7 BE200 PCIe adapter
+
+maintainers:
+  - Avinash Bhatt <avinash.bhatt@intel.com>
+  - Miri Korenblit <miriam.rachel.korenblit@intel.com>
+
+description:
+  Intel Wi-Fi 7 BE200 (BE200NGW) IEEE 802.11be discrete PCIe adapter.
+
+allOf:
+  - $ref: /schemas/net/wireless/ieee80211.yaml#
+
+properties:
+  compatible:
+    enum:
+      - pci8086,272b
+
+  reg:
+    maxItems: 1
+
+  intel,wrds:
+    description: |
+      SAR (Specific Absorption Rate) transmit power limits per antenna chain
+      and frequency subband, in units of 0.125 dBm.
+
+      First cell is the mode word: bit 0 set enables SAR limiting, bit 0
+      clear disables it (device uses its certified maximum).
+
+      Followed by 48 limit values for four antenna chains in order:
+      chain A, chain B, CDB chain A, CDB chain B. Each chain has 12
+      subband values covering the following frequency ranges:
+
+        [0]  2.4 GHz  ch  1-13   (2412-2472 MHz)
+        [1]  5 GHz    ch 36-64   (5180-5320 MHz)
+        [2]  5 GHz    ch 68-96   (5340-5480 MHz)
+        [3]  5 GHz    ch 100-144 (5500-5720 MHz)
+        [4]  5 GHz    ch 149-177 (5745-5885 MHz)
+        [5]  6 GHz    ch  1-45   (5955-6175 MHz)
+        [6]  6 GHz    ch 49-93   (6195-6415 MHz)
+        [7]  6 GHz    ch 97-115  (6435-6525 MHz)
+        [8]  6 GHz    ch 117-151 (6535-6705 MHz)
+        [9]  6 GHz    ch 153-183 (6715-6865 MHz)
+        [10] 6 GHz    ch 185-233 (6875-7115 MHz)
+        [11] 6 GHz    ch 237-253 (7135-7215 MHz)
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 49
+    maxItems: 49
+
+  intel,uats:
+    description: |
+      Per-country enablement matrix for 6 GHz AP types. 338-byte array
+      encoding which AP types (AFC, VLP, LPI) are permitted per country.
+
+      Countries are identified by ISO 3166-1 alpha-2 code. The matrix
+      covers all 26x26 = 676 two-letter combinations (AA..ZZ), stored
+      column-major (all second-letter variants for first letter A first,
+      then B, and so on). 26 columns x 13 bytes = 338 bytes total.
+
+      Each country occupies 4 bits (a nibble); two countries are packed
+      per byte, low nibble first:
+        bit 0: AFC (Standard Power AP) permitted
+        bit 1: VLP (Very Low Power AP) permitted
+        bit 2: LPI (Low Power Indoor AP) permitted
+
+      A bit is only effective when the corresponding control bit in
+      intel,6e-uhb is also set (bit 30 for AFC, bit 29 for VLP,
+      bit 31 for LPI per-country mode).
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    minItems: 338
+    maxItems: 338
+
+  intel,srd:
+    description: |
+      ETSI 5.8 GHz SRD (Short Range Device) channel behaviour in the
+      5725-5875 MHz band for ETSI regulatory domains.
+
+        active-scan  - active scanning permitted (default)
+        passive-scan - device may associate and transfer data but must
+                       not transmit probe requests on SRD channels
+        disabled     - device must not scan, associate, or operate on
+                       any SRD channel
+    enum:
+      - active-scan
+      - passive-scan
+      - disabled
+
+  intel,6e-uhb:
+    description: |
+      6-7 GHz Ultra-High Band (UHB) per-country enable bitmask.
+
+        bit 0:     override control; 0 = use device defaults,
+                   1 = force-disable all countries not explicitly
+                   enabled in bits 1-25
+        bit  1:    USA
+        bit  2:    Rest of World (ROW)
+        bit  3:    EU
+        bit  4:    South Korea
+        bit  5:    Brazil
+        bit  6:    Chile
+        bit  7:    Japan
+        bit  8:    Canada
+        bit  9:    Morocco
+        bit 10:    Mongolia
+        bit 11:    Malaysia
+        bit 12:    Saudi Arabia
+        bit 13:    Mexico
+        bit 14:    Nigeria
+        bit 15:    Thailand
+        bit 16:    Singapore
+        bit 17:    Taiwan
+        bit 18:    South Africa
+        bit 19:    Philippines
+        bit 20:    Serbia
+        bit 21:    Indonesia
+        bit 22:    Azerbaijan
+        bit 23:    Paraguay
+        bit 24:    Vietnam
+        bit 25:    India
+        bit 27:    enable VLP active scan, SoftAP, and P2P-GO in Japan
+        bit 29:    enable VLP mode per intel,uats country table
+        bit 30:    enable AFC mode per intel,uats country table
+        bit 31:    use intel,uats country table for LPI (0 = group mode)
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  intel,regulatory-special:
+    description: |
+      Special regulatory configuration flags.
+
+        bit 4:    enable Australia UHB band extension
+        bit 5:    Bangladesh 6 GHz UHB enablement
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  intel,activate-channel:
+    description: |
+      Indoor channel activation bitmask. Enables specific frequency bands
+      for active use when the platform is operating indoors.
+
+        bit 0:    EU U-NII-1 (5150-5250 MHz)
+        bit 1:    Japan U-NII-1 (5150-5250 MHz)
+        bit 2:    China Mainland U-NII-1 (5150-5250 MHz)
+        bit 3:    USA U-NII-4 (5850-5925 MHz)
+        bit 4:    Worldwide U-NII-1 (5150-5250 MHz) for any country
+                  where the band is permitted indoors
+        bit 5:    Canada U-NII-4 (5850-5925 MHz)
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  intel,force-disable-channels:
+    description: |
+      Per-band force-disable bitmask. Permanently disables specific
+      frequency bands regardless of regulatory domain.
+
+        bit  0:    2.4 GHz  (ch   1-13,  2412-2472 MHz)
+        bit  1:    5.2 GHz  (ch  36-48,  5180-5240 MHz)
+        bit  2:    5.3 GHz  (ch  52-64,  5260-5320 MHz)
+        bit  3:    5.5 GHz  (ch 100-144, 5500-5720 MHz)
+        bit  4:    5.8 GHz  (ch 149-165, 5745-5825 MHz)
+        bit  5:    5.9 GHz  (ch 169-177, 5845-5885 MHz)
+        bit  6:    6.2 GHz  (ch   1-93,  5955-6415 MHz)
+        bit  7:    6.5 GHz  (ch  97-113, 6435-6525 MHz)
+        bit  8:    6.6 GHz  (ch 117-153, 6535-6705 MHz)
+        bit  9:    6.8 GHz  (ch 157-185, 6715-6885 MHz)
+        bit 10:    7.0 GHz  (ch 185-233, 6875-7115 MHz)
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  intel,11be:
+    description: |
+      802.11be (Wi-Fi 7) per-country enable bitmask.
+
+        bit 0:    China (CN)
+        bit 1:    South Korea
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  intel,splc:
+    description:
+      Platform thermal power limit for the Wi-Fi core in mW. The device
+      will not exceed this limit regardless of regulatory maximums.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+
+  intel,wcpe:
+    description: |
+      802.11be channel puncturing enable bitmask. When set, allows the
+      device to puncture (skip) sub-channels within a wide channel for
+      coexistence with incumbents, subject to country certification.
+
+        bit 0:    USA
+        bit 1:    Canada
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  intel,wbem:
+    description: |
+      320 MHz channel bandwidth enable bitmask per country. Each bit
+      takes effect only if the installed module is certified for 320 MHz
+      in that country.
+
+        bit 0:    Japan
+        bit 1:    South Korea
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    pcie {
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+            bus-range = <0x01 0xff>;
+
+            wifi@0 {
+                compatible = "pci8086,272b";
+                reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+                /* SAR power limits: mode + 4 chains x 12 subbands */
+                intel,wrds = <
+                    0x01
+                    0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38
+                    0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38 0x38
+                    0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c
+                    0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c 0x3c
+                >;
+
+                intel,splc = <4500>;
+                intel,wcpe = <0x03>;
+                intel,wbem = <0x03>;
+                intel,srd = "passive-scan";
+                intel,activate-channel = <0x01>;
+                intel,6e-uhb = <0x06>;
+            };
+        };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 77fdfcb55f06..674320ef137e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13256,6 +13256,7 @@ L:	linux-wireless@vger.kernel.org
 S:	Supported
 W:	https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
 T:	git https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next.git/
+F:	Documentation/devicetree/bindings/net/wireless/intel,iwlwifi.yaml
 F:	drivers/net/wireless/intel/iwlwifi/
 
 INTEL VISION SENSING CONTROLLER DRIVER
-- 
2.34.1


  reply	other threads:[~2026-05-13  6:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-13  6:05 [PATCH v3 0/3] wifi: iwlwifi: add Device Tree hardware integration information Avinash Bhatt
2026-05-13  6:05 ` Avinash Bhatt [this message]
2026-05-13  6:05 ` [PATCH v3 2/3] wifi: iwlwifi: dt: add Device Tree BIOS configuration infrastructure Avinash Bhatt
2026-05-13  6:05 ` [PATCH v3 3/3] wifi: iwlwifi: dt: use Device Tree as fallback BIOS configuration source Avinash Bhatt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260513060531.8130-2-avinash.bhatt@intel.com \
    --to=avinash.bhatt@intel.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=emmanuel.grumbach@intel.com \
    --cc=johannes@sipsolutions.net \
    --cc=kobi.guetta@intel.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=miriam.rachel.korenblit@intel.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox