xref: /linux/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom BCM4329 family fullmac wireless SDIO/PCIE devices
8
9maintainers:
10  - Arend van Spriel <arend@broadcom.com>
11
12description:
13  The Broadcom Single chip MAC part for the BCM4329 family and
14  later Cypress chips in the same family named CYW4373 and similar.
15  These chips also have a Bluetooth portion described in a separate
16  binding.
17
18allOf:
19  - $ref: /schemas/net/wireless/wireless-controller.yaml#
20
21properties:
22  compatible:
23    oneOf:
24      - items:
25          - enum:
26              - brcm,bcm43143-fmac
27              - brcm,bcm4341b0-fmac
28              - brcm,bcm4341b4-fmac
29              - brcm,bcm4341b5-fmac
30              - brcm,bcm4329-fmac
31              - brcm,bcm4330-fmac
32              - brcm,bcm4334-fmac
33              - brcm,bcm43340-fmac
34              - brcm,bcm4335-fmac
35              - brcm,bcm43362-fmac
36              - brcm,bcm4339-fmac
37              - brcm,bcm43430a0-fmac
38              - brcm,bcm43430a1-fmac
39              - brcm,bcm43455-fmac
40              - brcm,bcm43456-fmac
41              - brcm,bcm4354-fmac
42              - brcm,bcm4356-fmac
43              - brcm,bcm4359-fmac
44              - brcm,bcm4366-fmac
45              - cypress,cyw4373-fmac
46              - cypress,cyw43012-fmac
47              - infineon,cyw43439-fmac
48          - const: brcm,bcm4329-fmac
49      - enum:
50          - brcm,bcm4329-fmac
51          - pci14e4,43dc  # BCM4355
52          - pci14e4,4464  # BCM4364
53          - pci14e4,4488  # BCM4377
54          - pci14e4,4425  # BCM4378
55          - pci14e4,4433  # BCM4387
56          - pci14e4,4434  # BCM4388
57          - pci14e4,449d  # BCM43752
58
59  reg:
60    description: SDIO function number for the device (for most cases
61      this will be 1) or PCI device identifier.
62
63  interrupts:
64    maxItems: 1
65    description: Out-of-band (OOB) IRQ line for waking up the host
66      in response to WLAN activity. This corresponds to the HOST_WAKE
67      line into the chip.
68
69  interrupt-names:
70    description: Name for the OOB IRQ, this must be set to "host-wake".
71    const: host-wake
72
73  brcm,drive-strength:
74    $ref: /schemas/types.yaml#/definitions/uint32
75    description: Drive strength used for the SDIO pins on the device in mA.
76    minimum: 0
77    maximum: 32
78
79  reset-gpios:
80    maxItems: 1
81    description: A GPIO line connected to the WL_RST line, if present
82      this shall be flagged as active low.
83
84  brcm,ccode-map:
85    $ref: /schemas/types.yaml#/definitions/string-array
86    description: Multiple strings for translating ISO3166 country code to
87      brcmfmac firmware country code and revision.
88    items:
89      pattern: '^[A-Z][A-Z]-[A-Z][0-9A-Z]-[0-9]+$'
90
91  brcm,ccode-map-trivial:
92    description: |
93      Use a trivial mapping of ISO3166 country codes to brcmfmac firmware
94      country code and revision: cc -> { cc, 0 }. In other words, assume that
95      the CLM blob firmware uses ISO3166 country codes as well, and that all
96      revisions are zero. This property is mutually exclusive with
97      brcm,ccode-map. If both properties are specified, then brcm,ccode-map
98      takes precedence.
99    type: boolean
100
101  brcm,cal-blob:
102    $ref: /schemas/types.yaml#/definitions/uint8-array
103    description: A per-device calibration blob for the Wi-Fi radio. This
104      should be filled in by the bootloader from platform configuration
105      data, if necessary, and will be uploaded to the device if present.
106
107  brcm,board-type:
108    $ref: /schemas/types.yaml#/definitions/string
109    description: Overrides the board type, which is normally the compatible of
110      the root node. This can be used to decouple the overall system board or
111      device name from the board type for WiFi purposes, which is used to
112      construct firmware and NVRAM configuration filenames, allowing for
113      multiple devices that share the same module or characteristics for the
114      WiFi subsystem to share the same firmware/NVRAM files. On Apple platforms,
115      this should be the Apple module-instance codename prefixed by "apple,",
116      e.g. "apple,honshu".
117
118  apple,antenna-sku:
119    $ref: /schemas/types.yaml#/definitions/string
120    description: Antenna SKU used to identify a specific antenna configuration
121      on Apple platforms. This is use to build firmware filenames, to allow
122      platforms with different antenna configs to have different firmware and/or
123      NVRAM. This would normally be filled in by the bootloader from platform
124      configuration data.
125
126  clocks:
127    items:
128      - description: External Low Power Clock input (32.768KHz)
129
130  clock-names:
131    items:
132      - const: lpo
133
134required:
135  - compatible
136  - reg
137
138unevaluatedProperties: false
139
140examples:
141  - |
142    #include <dt-bindings/interrupt-controller/irq.h>
143    #include <dt-bindings/gpio/gpio.h>
144    mmc@80118000 {
145      compatible = "arm,pl18x", "arm,primecell";
146      reg = <0x80118000 0x1000>;
147      clocks = <&clk 0>, <&clk 1>;
148      clock-names = "mclk", "apb_pclk";
149      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
150      bus-width = <4>;
151      non-removable;
152      vmmc-supply = <&wl_bt_reg>;
153      #address-cells = <1>;
154      #size-cells = <0>;
155
156      wifi@1 {
157        compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
158        reg = <1>;
159        interrupt-parent = <&gpio>;
160        interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
161        interrupt-names = "host-wake";
162        reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
163        brcm,ccode-map = "JP-JP-78", "US-Q2-86";
164      };
165    };
166