Commit 56aa7b21 authored by David S. Miller's avatar David S. Miller
Browse files

Merge tag 'wireless-drivers-next-2021-04-18' of...

Merge tag 'wireless-drivers-next-2021-04-18' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next



Kalle Valo says:

====================
wireless-drivers-next patches for v5.13

Second set of patches for v5.13. A lot of iwlwifi and mt76 patches
this time, and also smaller features and fixes all over.

mt76

* mt7915/mt7615 decapsulation offload support

* threaded NAPI support

* new device IDs

* mt7921 device reset support

* rx timestamp support

iwlwifi

* passive scan support for 6GHz

* new hardware support

wilc1000

* CRC support for SPI bus
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 11ac4e66 fb8517f4
Loading
Loading
Loading
Loading
+0 −24
Original line number Diff line number Diff line
Common IEEE 802.11 properties

This provides documentation of common properties that are valid for all wireless
devices.

Optional properties:
 - ieee80211-freq-limit : list of supported frequency ranges in KHz. This can be
	used for devices that in a given config support less channels than
	normally. It may happen chipset supports a wide wireless band but it is
	limited to some part of it due to used antennas or power amplifier.
	An example case for this can be tri-band wireless router with two
	identical chipsets used for two different 5 GHz subbands. Using them
	incorrectly could not work or decrease performance noticeably.

Example:

pcie@0,0 {
	reg = <0x0000 0 0 0 0>;
	wifi@0,0 {
		reg = <0x0000 0 0 0 0>;
		ieee80211-freq-limit = <2402000 2482000>,
				       <5170000 5250000>;
	};
};
+45 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.

%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/ieee80211.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Common IEEE 802.11 Binding

maintainers:
  - Lorenzo Bianconi <lorenzo@kernel.org>

description: |
  This provides documentation of common properties that are valid for
  all wireless devices

properties:
  ieee80211-freq-limit:
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    items:
      minItems: 2
      maxItems: 2
    description:
      List of supported frequency ranges in KHz. This can be used for devices
      that in a given config support less channels than normally. It may happen
      chipset supports a wide wireless band but it is limited to some part of
      it due to used antennas or power amplifier. An example case for this
      can be tri-band wireless router with two identical chipsets used for two
      different 5 GHz subbands. Using them incorrectly could not work or
      decrease performance noticeably

additionalProperties: true

examples:
  - |
    pcie0 {
      #address-cells = <3>;
      #size-cells = <2>;
      wifi@0,0 {
        reg = <0x0000 0 0 0 0>;
        ieee80211-freq-limit = <2402000 2482000>,
                               <5170000 5250000>;
      };
    };
+0 −78
Original line number Diff line number Diff line
* MediaTek mt76xx devices

This node provides properties for configuring the MediaTek mt76xx wireless
device. The node is expected to be specified as a child node of the PCI
controller to which the wireless chip is connected.

Alternatively, it can specify the wireless part of the MT7628/MT7688 or
MT7622 SoC. For SoC, use the following compatible strings:

compatible:
- "mediatek,mt7628-wmac" for MT7628/MT7688
- "mediatek,mt7622-wmac" for MT7622

properties:
- reg: Address and length of the register set for the device.
- interrupts: Main device interrupt

MT7622 specific properties:
- power-domains: phandle to the power domain that the WMAC is part of
- mediatek,infracfg: phandle to the infrastructure bus fabric syscon node

Optional properties:

- ieee80211-freq-limit: See ieee80211.txt
- mediatek,mtd-eeprom: Specify a MTD partition + offset containing EEPROM data
- big-endian: if the radio eeprom partition is written in big-endian, specify
  this property
- mediatek,eeprom-merge-otp: Merge EEPROM data with OTP data. Can be used on
  boards where the flash calibration data is generic and specific calibration
  data should be pulled from the OTP ROM

The MAC address can as well be set with corresponding optional properties
defined in net/ethernet.txt.

Optional nodes:
- led: Properties for a connected LED
  Optional properties:
    - led-sources: See Documentation/devicetree/bindings/leds/common.txt

&pcie {
	pcie0 {
		wifi@0,0 {
			compatible = "mediatek,mt76";
			reg = <0x0000 0 0 0 0>;
			ieee80211-freq-limit = <5000000 6000000>;
			mediatek,mtd-eeprom = <&factory 0x8000>;
			big-endian;

			led {
				led-sources = <2>;
			};
		};
	};
};

MT7628 example:

wmac: wmac@10300000 {
	compatible = "mediatek,mt7628-wmac";
	reg = <0x10300000 0x100000>;

	interrupt-parent = <&cpuintc>;
	interrupts = <6>;

	mediatek,mtd-eeprom = <&factory 0x0000>;
};

MT7622 example:

wmac: wmac@18000000 {
	compatible = "mediatek,mt7622-wmac";
	reg = <0 0x18000000 0 0x100000>;
	interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_LOW>;

	mediatek,infracfg = <&infracfg>;

	power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
};
+121 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.

%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/mediatek,mt76.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek mt76 wireless devices Generic Binding

maintainers:
  - Felix Fietkau <nbd@nbd.name>
  - Lorenzo Bianconi <lorenzo@kernel.org>
  - Ryder Lee <ryder.lee@mediatek.com>

description: |
  This node provides properties for configuring the MediaTek mt76xx
  wireless device. The node is expected to be specified as a child
  node of the PCI controller to which the wireless chip is connected.
  Alternatively, it can specify the wireless part of the MT7628/MT7688
  or MT7622 SoC.

allOf:
  - $ref: ieee80211.yaml#

properties:
  compatible:
    enum:
      - mediatek,mt76
      - mediatek,mt7628-wmac
      - mediatek,mt7622-wmac

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  power-domains:
    maxItems: 1

  mediatek,infracfg:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to the infrastructure bus fabric syscon node.
      This property is MT7622 specific

  ieee80211-freq-limit: true

  mediatek,mtd-eeprom:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description:
      Phandle to a MTD partition + offset containing EEPROM data

  big-endian:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Specify if the radio eeprom partition is written in big-endian

  mediatek,eeprom-merge-otp:
    type: boolean
    description:
      Merge EEPROM data with OTP data. Can be used on boards where the flash
      calibration data is generic and specific calibration data should be
      pulled from the OTP ROM

  led:
    type: object
    $ref: /schemas/leds/common.yaml#
    additionalProperties: false
    properties:
      led-sources:
        maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    pcie0 {
      #address-cells = <3>;
      #size-cells = <2>;
      wifi@0,0 {
        compatible = "mediatek,mt76";
        reg = <0x0000 0 0 0 0>;
        ieee80211-freq-limit = <5000000 6000000>;
        mediatek,mtd-eeprom = <&factory 0x8000>;
        big-endian;

        led {
          led-sources = <2>;
        };
      };
    };

  - |
    wifi@10300000 {
      compatible = "mediatek,mt7628-wmac";
      reg = <0x10300000 0x100000>;

      interrupt-parent = <&cpuintc>;
      interrupts = <6>;

      mediatek,mtd-eeprom = <&factory 0x0>;
    };

  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    wifi@18000000 {
      compatible = "mediatek,mt7622-wmac";
      reg = <0x10300000 0x100000>;
      interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_LOW>;

      mediatek,infracfg = <&infracfg>;

      power-domains = <&scpsys 3>;
    };
+0 −7
Original line number Diff line number Diff line
@@ -52,13 +52,6 @@ static inline u32 mips_read32(struct bcma_drv_mips *mcore,
	return bcma_read32(mcore->core, offset);
}

static inline void mips_write32(struct bcma_drv_mips *mcore,
				u16 offset,
				u32 value)
{
	bcma_write32(mcore->core, offset, value);
}

static u32 bcma_core_mips_irqflag(struct bcma_device *dev)
{
	u32 flag;
Loading