Re: [PATCH v3 1/2] dt-bindings: net: bluetooth: Add MediaTek MT7921S SDIO Bluetooth

From: Chen-Yu Tsai
Date: Wed Apr 17 2024 - 19:32:21 EST


On Wed, Apr 17, 2024 at 4:04 PM Sean Wang <sean.wang@xxxxxxxxxx> wrote:
>
> Hi Chen-Yu,
>
> On Fri, Apr 12, 2024 at 12:31 AM Chen-Yu Tsai <wenst@xxxxxxxxxxxx> wrote:
> >
> > The MediaTek MT7921S is a WiFi/Bluetooth combo chip that works over
> > SDIO. WiFi and Bluetooth are separate SDIO functions within the chip.
> > While the Bluetooth SDIO function is fully discoverable, the chip has
> > a pin that can reset just the Bluetooth core, as opposed to the full
> > chip. This should be described in the device tree.
> >
> > Add a device tree binding for the Bluetooth SDIO function of the MT7921S
> > specifically to document the reset line. This binding is based on the MMC
> > controller binding, which specifies one device node per SDIO function.
> >
> > Cc: Sean Wang <sean.wang@xxxxxxxxxxxx>
> > Signed-off-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
> > ---
> > Changes since v2:
> > - Expand description and commit message to clearly state that WiFi and
> > Bluetooth are separate SDIO functions, and that each function should
> > be a separate device node, as specified by the MMC binding.
> > - Change 'additionalProperties' to 'unevaluatedProperties'
> > - Add missing separating new line
> > - s/ot/to/
> >
> > Angelo's reviewed-by was not picked up due to the above changes.
> >
> > Changes since v1:
> > - Reworded descriptions
> > - Moved binding maintainer section before description
> > - Added missing reference to bluetooth-controller.yaml
> > - Added missing GPIO header to example
> > ---
> > .../bluetooth/mediatek,mt7921s-bluetooth.yaml | 55 +++++++++++++++++++
> > MAINTAINERS | 1 +
> > 2 files changed, 56 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
> > new file mode 100644
> > index 000000000000..67ff7caad599
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
> > @@ -0,0 +1,55 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/bluetooth/mediatek,mt7921s-bluetooth.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: MediaTek MT7921S Bluetooth
> > +
> > +maintainers:
> > + - Sean Wang <sean.wang@xxxxxxxxxxxx>
> > +
> > +description:
> > + MT7921S is an SDIO-attached dual-radio WiFi+Bluetooth Combo chip; each
> > + function is its own SDIO function on a shared SDIO interface. The chip
> > + has two dedicated reset lines, one for each function core.
> > + This binding only covers the Bluetooth SDIO function, with one device
> > + node describing only this SDIO function.
> > +
> > +allOf:
> > + - $ref: bluetooth-controller.yaml#
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - mediatek,mt7921s-bluetooth
> > +
> > + reg:
> > + const: 2
> > +
> > + reset-gpios:
> > + maxItems: 1
> > + description:
> > + An active-low reset line for the Bluetooth core; on typical M.2
> > + key E modules this is the W_DISABLE2# pin.
> > +
>
> Thanks for adding the new setup for the MT7921S devices. They look good to me.
> Sometimes, the MT7921S might be set up to wake up the host when it's
> asleep using a sideband signal.
> This might need an extra pin called "wakeup" to make it happen. Can
> you help add this pin to the settings in the same update, or should I
> do it later?

I suggest you send a patch on top of this one? I'm not sure if you
would model it as a GPIO or interrupt. And there doesn't seem to be
any code in the driver expecting it.


ChenYu

> > +required:
> > + - compatible
> > + - reg
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/gpio/gpio.h>
> > +
> > + mmc {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + bluetooth@2 {
> > + compatible = "mediatek,mt7921s-bluetooth";
> > + reg = <2>;
> > + reset-gpios = <&pio 8 GPIO_ACTIVE_LOW>;
> > + };
> > + };
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 88981d9f3958..218bc2a21207 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -13818,6 +13818,7 @@ M: Sean Wang <sean.wang@xxxxxxxxxxxx>
> > L: linux-bluetooth@xxxxxxxxxxxxxxx
> > L: linux-mediatek@xxxxxxxxxxxxxxxxxxx (moderated for non-subscribers)
> > S: Maintained
> > +F: Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
> > F: Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
> > F: drivers/bluetooth/btmtkuart.c
> >
> > --
> > 2.44.0.683.g7961c838ac-goog
> >
> >