On Wed, Aug 20, 2025 at 12:15 PM Ariel D'Alessandro <ariel.dalessandro@xxxxxxxxxxxxx> wrote: > > Convert the existing text-based DT bindings for Marvell 8897/8997 > (sd8897/sd8997) bluetooth devices controller to a YAML schema. > > While here, bindings for "usb1286,204e" (USB interface) are dropped from > the YAML definition as these are currently documented in file: > > - Documentation/devicetree/bindings/net/btusb.txt > > Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@xxxxxxxxxxxxx> > --- > .../bindings/net/marvell,sd8897-bt.yaml | 91 +++++++++++++++++++ This needs to move to net/bluetooth/ > .../bindings/net/marvell-bt-8xxx.txt | 83 ----------------- > 2 files changed, 91 insertions(+), 83 deletions(-) > create mode 100644 Documentation/devicetree/bindings/net/marvell,sd8897-bt.yaml > delete mode 100644 Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt > > diff --git a/Documentation/devicetree/bindings/net/marvell,sd8897-bt.yaml b/Documentation/devicetree/bindings/net/marvell,sd8897-bt.yaml > new file mode 100644 > index 0000000000000..6539868c08b8a > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/marvell,sd8897-bt.yaml > @@ -0,0 +1,91 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/marvell,sd8897-bt.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Marvell 8897/8997 (sd8897/sd8997) bluetooth devices (SDIO) > + > +maintainers: > + - Ariel D'Alessandro <ariel.dalessandro@xxxxxxxxxxxxx> > + Needs a $ref to bluetooth-controller.yaml > +properties: > + compatible: > + enum: > + - marvell,sd8897-bt > + - marvell,sd8997-bt > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + marvell,cal-data: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: > + Calibration data downloaded to the device during initialization. > + minItems: 28 Just: maxItems: 28 > + > + marvell,wakeup-pin: > + $ref: /schemas/types.yaml#/definitions/uint16 > + description: > + Wakeup pin number of the bluetooth chip. Used by firmware to wakeup host > + system. > + > + marvell,wakeup-gap-ms: This unfortunately needs a uint16 type. That will cause a warning which has to be fixed on the dtschema side. > + description: > + Wakeup latency of the host platform. Required by the chip sleep feature. > + > +required: > + - compatible > + - reg > + - interrupts > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/pinctrl/rockchip.h> Please drop this and just use a number below. > + > + sdio0 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + btmrvl: btmrvl@2 { > + compatible = "marvell,sd8897-bt"; > + reg = <2>; > + interrupt-parent = <&gpio4>; > + interrupts = <RK_PD7 IRQ_TYPE_LEVEL_LOW>; > + marvell,wakeup-pin = /bits/ 16 <13>; > + pinctrl-names = "default"; > + pinctrl-0 = <&bt_host_wake_l>; > + }; > + }; I would drop this example. > + > + mmc3 { mmc { > + vmmc-supply = <&wlan_en_reg>; > + bus-width = <4>; > + cap-power-off-card; > + keep-power-in-suspend; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + bluetooth: bluetooth@2 { Drop the label. > + compatible = "marvell,sd8897-bt"; > + reg = <2>; > + interrupt-parent = <&pio>; > + interrupts = <119 IRQ_TYPE_LEVEL_LOW>; > + > + marvell,cal-data = /bits/ 8 < > + 0x37 0x01 0x1c 0x00 0xff 0xff 0xff 0xff 0x01 0x7f 0x04 0x02 > + 0x00 0x00 0xba 0xce 0xc0 0xc6 0x2d 0x00 0x00 0x00 0x00 0x00 > + 0x00 0x00 0xf0 0x00>; > + marvell,wakeup-pin = /bits/ 16 <0x0d>; > + marvell,wakeup-gap-ms = /bits/ 16 <0x64>; > + }; > + }; > + > +... > diff --git a/Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt b/Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt > deleted file mode 100644 > index 957e5e5c2927c..0000000000000 > --- a/Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt > +++ /dev/null > @@ -1,83 +0,0 @@ > -Marvell 8897/8997 (sd8897/sd8997) bluetooth devices (SDIO or USB based) > ------- > -The 8997 devices supports multiple interfaces. When used on SDIO interfaces, > -the btmrvl driver is used and when used on USB interface, the btusb driver is > -used. > - > -Required properties: > - > - - compatible : should be one of the following: > - * "marvell,sd8897-bt" (for SDIO) > - * "marvell,sd8997-bt" (for SDIO) > - * "usb1286,204e" (for USB) > - > -Optional properties: > - > - - marvell,cal-data: Calibration data downloaded to the device during > - initialization. This is an array of 28 values(u8). > - This is only applicable to SDIO devices. > - > - - marvell,wakeup-pin: It represents wakeup pin number of the bluetooth chip. > - firmware will use the pin to wakeup host system (u16). > - - marvell,wakeup-gap-ms: wakeup gap represents wakeup latency of the host > - platform. The value will be configured to firmware. This > - is needed to work chip's sleep feature as expected (u16). > - - interrupt-names: Used only for USB based devices (See below) > - - interrupts : specifies the interrupt pin number to the cpu. For SDIO, the > - driver will use the first interrupt specified in the interrupt > - array. For USB based devices, the driver will use the interrupt > - named "wakeup" from the interrupt-names and interrupt arrays. > - The driver will request an irq based on this interrupt number. > - During system suspend, the irq will be enabled so that the > - bluetooth chip can wakeup host platform under certain > - conditions. During system resume, the irq will be disabled > - to make sure unnecessary interrupt is not received. > - > -Example: > - > -IRQ pin 119 is used as system wakeup source interrupt. > -wakeup pin 13 and gap 100ms are configured so that firmware can wakeup host > -using this device side pin and wakeup latency. > - > -Example for SDIO device follows (calibration data is also available in > -below example). > - > -&mmc3 { > - vmmc-supply = <&wlan_en_reg>; > - bus-width = <4>; > - cap-power-off-card; > - keep-power-in-suspend; > - > - #address-cells = <1>; > - #size-cells = <0>; > - btmrvl: bluetooth@2 { > - compatible = "marvell,sd8897-bt"; > - reg = <2>; > - interrupt-parent = <&pio>; > - interrupts = <119 IRQ_TYPE_LEVEL_LOW>; > - > - marvell,cal-data = /bits/ 8 < > - 0x37 0x01 0x1c 0x00 0xff 0xff 0xff 0xff 0x01 0x7f 0x04 0x02 > - 0x00 0x00 0xba 0xce 0xc0 0xc6 0x2d 0x00 0x00 0x00 0x00 0x00 > - 0x00 0x00 0xf0 0x00>; > - marvell,wakeup-pin = /bits/ 16 <0x0d>; > - marvell,wakeup-gap-ms = /bits/ 16 <0x64>; > - }; > -}; > - > -Example for USB device: > - > -&usb_host1_ohci { > - #address-cells = <1>; > - #size-cells = <0>; > - > - mvl_bt1: bt@1 { > - compatible = "usb1286,204e"; > - reg = <1>; > - interrupt-parent = <&gpio0>; > - interrupt-names = "wakeup"; > - interrupts = <119 IRQ_TYPE_LEVEL_LOW>; > - marvell,wakeup-pin = /bits/ 16 <0x0d>; > - marvell,wakeup-gap-ms = /bits/ 16 <0x64>; > - }; > -}; > -- > 2.50.1 >