# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/marvell,sd8787.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell 8787/8897/8978/8997 (sd8787/sd8897/sd8978/sd8997/pcie8997) SDIO/PCIE devices

maintainers:
  - Brian Norris <briannorris@chromium.org>
  - Frank Li <Frank.Li@nxp.com>

description:
  This node provides properties for describing the Marvell SDIO/PCIE wireless device.
  The node is expected to be specified as a child node to the SDIO/PCIE controller that
  connects the device to the system.

properties:
  compatible:
    enum:
      - marvell,sd8787
      - marvell,sd8897
      - marvell,sd8978
      - marvell,sd8997
      - nxp,iw416
      - pci11ab,2b42
      - pci1b4b,2b42

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  wakeup-source: true

  marvell,caldata-txpwrlimit-2g:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description: Calibration data for the 2GHz band.
    maxItems: 566

  marvell,caldata-txpwrlimit-5g-sub0:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description: Calibration data for sub-band 0 in the 5GHz band.
    maxItems: 502

  marvell,caldata-txpwrlimit-5g-sub1:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description: Calibration data for sub-band 1 in the 5GHz band.
    maxItems: 688

  marvell,caldata-txpwrlimit-5g-sub2:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description: Calibration data for sub-band 2 in the 5GHz band.
    maxItems: 750

  marvell,caldata-txpwrlimit-5g-sub3:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description: Calibration data for sub-band 3 in the 5GHz band.
    maxItems: 502

  marvell,wakeup-pin:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Provides the pin number for the wakeup pin from the device's point of
      view. The wakeup pin is used for the device to wake the host system
      from sleep. This property is only necessary if the wakeup pin is
      wired in a non-standard way, such that the default pin assignments
      are invalid.

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    mmc {
         #address-cells = <1>;
         #size-cells = <0>;

         wifi@1 {
             compatible = "marvell,sd8897";
             reg = <1>;
             interrupt-parent = <&pio>;
             interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
             marvell,wakeup-pin = <3>;
        };
    };

