2024-01-25 09:53:30

by Chen-Yu Tsai

[permalink] [raw]
Subject: [PATCH 1/2] dt-bindings: net: bluetooth: Add MediaTek MT7921S SDIO Bluetooth

The MediaTek MT7921S is a WiFi/Bluetooth combo chip that works over
SDIO. While the Bluetooth function is fully discoverable, the chip
has a pin that can reset just the Bluetooth side, as opposed to the
full chip. This needs to be described in the device tree.

Add a device tree binding for MT7921S Bluetooth over SDIO specifically
ot document the reset line.

Cc: Sean Wang <[email protected]>
Signed-off-by: Chen-Yu Tsai <[email protected]>
---
.../bluetooth/mediatek,mt7921s-bluetooth.yaml | 49 +++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 50 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..bbe240e7cc40
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
@@ -0,0 +1,49 @@
+# 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
+
+description:
+ This binding describes the Bluetooth side of the SDIO-attached MT7921S
+ WiFi+Bluetooth combo chips. These chips are dual-radio chips supporting
+ WiFi and Bluetooth. Bluetooth works over SDIO just like WiFi. Bluetooth
+ has its own reset line, separate from WiFi, which can be used to reset
+ the Bluetooth core.
+
+maintainers:
+ - Sean Wang <[email protected]>
+
+properties:
+ compatible:
+ enum:
+ - mediatek,mt7921s-bluetooth
+ reg:
+ const: 2
+
+ reset-gpios:
+ maxItems: 1
+ description: A GPIO line connected to the Bluetooth subsystem reset line.
+ Typically the W_DISABLE2# pin on M.2 E-key modules. If present this
+ shall be flagged as active low.
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ 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 b64a64ca7916..662957146852 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13657,6 +13657,7 @@ M: Sean Wang <[email protected]>
L: [email protected]
L: [email protected] (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.43.0.429.g432eaa2c6b-goog



2024-01-25 10:34:51

by bluez.test.bot

[permalink] [raw]
Subject: RE: bluetooth: mt7921s: Add binding and fixup existing dts

This is an automated email and please do not reply to this email.

Dear Submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository.

----- Output -----

error: arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico6.dts: does not exist in index
hint: Use 'git am --show-current-patch' to see the failed patch

Please resolve the issue and submit the patches again.


---
Regards,
Linux Bluetooth

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

Il 25/01/24 10:52, Chen-Yu Tsai ha scritto:
> The MediaTek MT7921S is a WiFi/Bluetooth combo chip that works over
> SDIO. While the Bluetooth function is fully discoverable, the chip
> has a pin that can reset just the Bluetooth side, as opposed to the
> full chip. This needs to be described in the device tree.
>
> Add a device tree binding for MT7921S Bluetooth over SDIO specifically
> ot document the reset line.
>
> Cc: Sean Wang <[email protected]>
> Signed-off-by: Chen-Yu Tsai <[email protected]>
> ---
> .../bluetooth/mediatek,mt7921s-bluetooth.yaml | 49 +++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 50 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..bbe240e7cc40
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
> @@ -0,0 +1,49 @@
> +# 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
> +

title:

maintainers:

description:

... and then, you missed

allOf:
- $ref: bluetooth-controller.yaml#

Everything else looks good.

Cheers,
Angelo

> +description:

MT7921S is a (dual?) SDIO-attached dual-radio WiFi+Bluetooth combo chip;
this chip has two dedicated reset lines, one of which is used to reset
the Bluetooth core.
The WiFi part of this chip is described in ....where? :-)

> + This binding describes the Bluetooth side of the SDIO-attached MT7921S
> + WiFi+Bluetooth combo chips. These chips are dual-radio chips supporting
> + WiFi and Bluetooth. Bluetooth works over SDIO just like WiFi. Bluetooth
> + has its own reset line, separate from WiFi, which can be used to reset
> + the Bluetooth core.
> +
> +maintainers:
> + - Sean Wang <[email protected]>
> +
> +properties:
> + compatible:
> + enum:
> + - mediatek,mt7921s-bluetooth
> + reg:
> + const: 2
> +
> + reset-gpios:
> + maxItems: 1
> + description: A GPIO line connected to the Bluetooth subsystem reset line.
> + Typically the W_DISABLE2# pin on M.2 E-key modules. If present this
> + shall be flagged as active low.

description:
An active-low reset line connected for the Bluetooth core;
on typical M.2 Key-E modules this is the W_DISABLE2# pin.

Cheers,
Angelo

> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + 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 b64a64ca7916..662957146852 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -13657,6 +13657,7 @@ M: Sean Wang <[email protected]>
> L: [email protected]
> L: [email protected] (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
>


2024-01-26 03:02:27

by Rob Herring

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


On Thu, 25 Jan 2024 17:52:37 +0800, Chen-Yu Tsai wrote:
> The MediaTek MT7921S is a WiFi/Bluetooth combo chip that works over
> SDIO. While the Bluetooth function is fully discoverable, the chip
> has a pin that can reset just the Bluetooth side, as opposed to the
> full chip. This needs to be described in the device tree.
>
> Add a device tree binding for MT7921S Bluetooth over SDIO specifically
> ot document the reset line.
>
> Cc: Sean Wang <[email protected]>
> Signed-off-by: Chen-Yu Tsai <[email protected]>
> ---
> .../bluetooth/mediatek,mt7921s-bluetooth.yaml | 49 +++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 50 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
>

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
Error: Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.example.dts:25.39-40 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.example.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1428: dt_binding_check] Error 2
make: *** [Makefile:240: __sub-make] Error 2

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/[email protected]

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.


2024-01-26 03:26:48

by Chen-Yu Tsai

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

On Thu, Jan 25, 2024 at 7:39 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> Il 25/01/24 10:52, Chen-Yu Tsai ha scritto:
> > The MediaTek MT7921S is a WiFi/Bluetooth combo chip that works over
> > SDIO. While the Bluetooth function is fully discoverable, the chip
> > has a pin that can reset just the Bluetooth side, as opposed to the
> > full chip. This needs to be described in the device tree.
> >
> > Add a device tree binding for MT7921S Bluetooth over SDIO specifically
> > ot document the reset line.
> >
> > Cc: Sean Wang <[email protected]>
> > Signed-off-by: Chen-Yu Tsai <[email protected]>
> > ---
> > .../bluetooth/mediatek,mt7921s-bluetooth.yaml | 49 +++++++++++++++++++
> > MAINTAINERS | 1 +
> > 2 files changed, 50 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..bbe240e7cc40
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
> > @@ -0,0 +1,49 @@
> > +# 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
> > +
>
> title:
>
> maintainers:
>
> description:
>
> ... and then, you missed
>
> allOf:
> - $ref: bluetooth-controller.yaml#

(facepalm)

> Everything else looks good.
>
> Cheers,
> Angelo
>
> > +description:
>
> MT7921S is a (dual?) SDIO-attached dual-radio WiFi+Bluetooth combo chip;
> this chip has two dedicated reset lines, one of which is used to reset
> the Bluetooth core.
> The WiFi part of this chip is described in ....where? :-)

The function itself is fully probable and the implementation doesn't make
use of the WiFi's reset line, so I don't see any reason to describe it?
I don't actually know what the reset line does in the chip hardware.
This patch is just described what is already used.

> > + This binding describes the Bluetooth side of the SDIO-attached MT7921S
> > + WiFi+Bluetooth combo chips. These chips are dual-radio chips supporting
> > + WiFi and Bluetooth. Bluetooth works over SDIO just like WiFi. Bluetooth
> > + has its own reset line, separate from WiFi, which can be used to reset
> > + the Bluetooth core.
> > +
> > +maintainers:
> > + - Sean Wang <[email protected]>
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - mediatek,mt7921s-bluetooth
> > + reg:
> > + const: 2
> > +
> > + reset-gpios:
> > + maxItems: 1
> > + description: A GPIO line connected to the Bluetooth subsystem reset line.
> > + Typically the W_DISABLE2# pin on M.2 E-key modules. If present this
> > + shall be flagged as active low.
>
> description:
> An active-low reset line connected for the Bluetooth core;

connected to?

> on typical M.2 Key-E modules this is the W_DISABLE2# pin.

Otherwise this looks better. Thanks.


ChenYu

> Cheers,
> Angelo
>
> > +
> > +required:
> > + - compatible
> > + - reg
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + 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 b64a64ca7916..662957146852 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -13657,6 +13657,7 @@ M: Sean Wang <[email protected]>
> > L: [email protected]
> > L: [email protected] (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
> >
>

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

Il 26/01/24 04:26, Chen-Yu Tsai ha scritto:
> On Thu, Jan 25, 2024 at 7:39 PM AngeloGioacchino Del Regno
> <[email protected]> wrote:
>>
>> Il 25/01/24 10:52, Chen-Yu Tsai ha scritto:
>>> The MediaTek MT7921S is a WiFi/Bluetooth combo chip that works over
>>> SDIO. While the Bluetooth function is fully discoverable, the chip
>>> has a pin that can reset just the Bluetooth side, as opposed to the
>>> full chip. This needs to be described in the device tree.
>>>
>>> Add a device tree binding for MT7921S Bluetooth over SDIO specifically
>>> ot document the reset line.
>>>
>>> Cc: Sean Wang <[email protected]>
>>> Signed-off-by: Chen-Yu Tsai <[email protected]>
>>> ---
>>> .../bluetooth/mediatek,mt7921s-bluetooth.yaml | 49 +++++++++++++++++++
>>> MAINTAINERS | 1 +
>>> 2 files changed, 50 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..bbe240e7cc40
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
>>> @@ -0,0 +1,49 @@
>>> +# 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
>>> +
>>
>> title:
>>
>> maintainers:
>>
>> description:
>>
>> ... and then, you missed
>>
>> allOf:
>> - $ref: bluetooth-controller.yaml#
>
> (facepalm)
>
>> Everything else looks good.
>>
>> Cheers,
>> Angelo
>>
>>> +description:
>>
>> MT7921S is a (dual?) SDIO-attached dual-radio WiFi+Bluetooth combo chip;
>> this chip has two dedicated reset lines, one of which is used to reset
>> the Bluetooth core.
>> The WiFi part of this chip is described in ....where? :-)
>
> The function itself is fully probable and the implementation doesn't make
> use of the WiFi's reset line, so I don't see any reason to describe it?
> I don't actually know what the reset line does in the chip hardware.
> This patch is just described what is already used.
>
>>> + This binding describes the Bluetooth side of the SDIO-attached MT7921S
>>> + WiFi+Bluetooth combo chips. These chips are dual-radio chips supporting
>>> + WiFi and Bluetooth. Bluetooth works over SDIO just like WiFi. Bluetooth
>>> + has its own reset line, separate from WiFi, which can be used to reset
>>> + the Bluetooth core.
>>> +
>>> +maintainers:
>>> + - Sean Wang <[email protected]>
>>> +
>>> +properties:
>>> + compatible:
>>> + enum:
>>> + - mediatek,mt7921s-bluetooth
>>> + reg:
>>> + const: 2
>>> +
>>> + reset-gpios:
>>> + maxItems: 1
>>> + description: A GPIO line connected to the Bluetooth subsystem reset line.
>>> + Typically the W_DISABLE2# pin on M.2 E-key modules. If present this
>>> + shall be flagged as active low.
>>
>> description:
>> An active-low reset line connected for the Bluetooth core;
>
> connected to?

Eh yes, sorry - I edited that statement multiple times and that "for" stuck
there for reasons :-)

>
>> on typical M.2 Key-E modules this is the W_DISABLE2# pin.
>
> Otherwise this looks better. Thanks.

You're welcome!

Cheers!

>
>
> ChenYu
>
>> Cheers,
>> Angelo
>>
>>> +
>>> +required:
>>> + - compatible
>>> + - reg
>>> +
>>> +additionalProperties: false
>>> +
>>> +examples:
>>> + - |
>>> + 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 b64a64ca7916..662957146852 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -13657,6 +13657,7 @@ M: Sean Wang <[email protected]>
>>> L: [email protected]
>>> L: [email protected] (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
>>>
>>