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