Commit 2601ab54 authored by Linus Walleij's avatar Linus Walleij Committed by Rob Herring
Browse files

dt-bindings: Convert the BCM4329 bindings to YAML and extend



This converts the BCM4329 family bindings to YAML schema, and
extends and fixes the bindings like this:

- Name the bindings after the first chip (BCM4329) since
  wildcards like 43xx are nowadays frowned upon by the DT
  binding reviewers. We call this the "BCM4329 family"
- Add compatible strings for all the variants that seem to
  exist in the wild. (Derived from firmware listings.)
- Support specific-to-generic compatible strings (as already
  in use in DTS files).
- Add required reg property (SDIO function number)
- Add reset-gpios property (some systems wire this to a GPIO
  line).
- I have only listed Arend as maintainer for now, volunteers
  can be added.

Cc: Arend van Spriel <aspriel@gmail.com>
Cc: Franky Lin <franky.lin@broadcom.com>
Cc: Hante Meuleman <hante.meuleman@broadcom.com>
Cc: Chi-hsien Lin <chi-hsien.lin@infineon.com>
Cc: Wright Feng <wright.feng@infineon.com>
Cc: Chung-hsien Hsu <chung-hsien.hsu@infineon.com>
Cc: Julian Calaby <julian.calaby@gmail.com>
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: SHA-cyfmac-dev-list@infineon.com
Cc: linux-mmc@vger.kernel.org
Cc: devicetree@vger.kernel.org
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20210315105911.138553-1-linus.walleij@linaro.org


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent ad1ce1ab
Loading
Loading
Loading
Loading
+101 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM4329 family fullmac wireless SDIO devices

maintainers:
  - Arend van Spriel <arend@broadcom.com>

description:
  The Broadcom Single chip MAC part for the BCM4329 family and
  later Cypress chips in the same family named CYW4373 and similar.
  These chips also have a Bluetooth portion described in a separate
  binding.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - brcm,bcm43143-fmac
              - brcm,bcm4341b0-fmac
              - brcm,bcm4341b4-fmac
              - brcm,bcm4341b5-fmac
              - brcm,bcm4329-fmac
              - brcm,bcm4330-fmac
              - brcm,bcm4334-fmac
              - brcm,bcm43340-fmac
              - brcm,bcm4335-fmac
              - brcm,bcm43362-fmac
              - brcm,bcm4339-fmac
              - brcm,bcm43430a0-fmac
              - brcm,bcm43430a1-fmac
              - brcm,bcm43455-fmac
              - brcm,bcm43456-fmac
              - brcm,bcm4354-fmac
              - brcm,bcm4356-fmac
              - brcm,bcm4359-fmac
              - cypress,cyw4373-fmac
              - cypress,cyw43012-fmac
          - const: brcm,bcm4329-fmac
      - const: brcm,bcm4329-fmac

  reg:
    description: SDIO function number for the device, for most cases
      this will be 1.

  interrupts:
    maxItems: 1
    description: Out-of-band (OOB) IRQ line for waking up the host
      in response to WLAN activity. This corresponds to the HOST_WAKE
      line into the chip.

  interrupt-names:
    description: Name for the OOB IRQ, this must be set to "host-wake".
    const: host-wake

  brcm,drive-strength:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Drive strength used for the SDIO pins on the device in mA.
    minimum: 0
    maximum: 32

  reset-gpios:
    maxItems: 1
    description: A GPIO line connected to the WL_RST line, if present
      this shall be flagged as active low.

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/gpio/gpio.h>
    mmc@80118000 {
      compatible = "arm,pl18x", "arm,primecell";
      reg = <0x80118000 0x1000>;
      clocks = <&clk 0>, <&clk 1>;
      clock-names = "mclk", "apb_pclk";
      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
      bus-width = <4>;
      non-removable;
      vmmc-supply = <&wl_bt_reg>;
      #address-cells = <1>;
      #size-cells = <0>;

      wifi@1 {
        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
        reg = <1>;
        interrupt-parent = <&gpio>;
        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
        interrupt-names = "host-wake";
        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
      };
    };
+0 −38
Original line number Diff line number Diff line
Broadcom BCM43xx Fullmac wireless SDIO devices

This node provides properties for controlling the Broadcom wireless device. The
node is expected to be specified as a child node to the SDIO controller that
connects the device to the system.

Required properties:

 - compatible : Should be "brcm,bcm4329-fmac".

Optional properties:
 - brcm,drive-strength : drive strength used for SDIO pins on device in mA
	(default = 6).
 - interrupts : specifies attributes for the out-of-band interrupt (host-wake).
	When not specified the device will use in-band SDIO interrupts.
 - interrupt-names : name of the out-of-band interrupt, which must be set
	to "host-wake".

Example:

mmc3: mmc@1c12000 {
	#address-cells = <1>;
	#size-cells = <0>;

	pinctrl-names = "default";
	pinctrl-0 = <&mmc3_pins_a>;
	vmmc-supply = <&reg_vmmc3>;
	bus-width = <4>;
	non-removable;

	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
		interrupt-parent = <&pio>;
		interrupts = <10 8>; /* PH10 / EINT10 */
		interrupt-names = "host-wake";
	};
};