Re: [PATCH v2 2/3] dt-bindings: net: bluetooth: Convert to DT schema

From: Matthias Kaehlcke
Date: Tue Apr 20 2021 - 20:50:49 EST


On Tue, Apr 20, 2021 at 09:56:49PM +0530, Venkata Lakshmi Narayana Gubba wrote:

> Subject: dt-bindings: net: bluetooth: Convert to DT schema

This doesn't convert the generic binding or all bindings to DT schema
as the subject suggests, but the Qualcomm BT binding.

>
> Converted Qualcomm Bluetooth binidings to DT schema.
>
> Signed-off-by: Venkata Lakshmi Narayana Gubba <gubbaven@xxxxxxxxxxxxxx>
> ---
> .../devicetree/bindings/net/qualcomm-bluetooth.txt | 69 -----------------
> .../bindings/net/qualcomm-bluetooth.yaml | 87 ++++++++++++++++++++++
> 2 files changed, 87 insertions(+), 69 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> create mode 100644 Documentation/devicetree/bindings/net/qualcomm-bluetooth.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> deleted file mode 100644
> index 709ca6d..0000000
> --- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> +++ /dev/null
> @@ -1,69 +0,0 @@
> -Qualcomm Bluetooth Chips
> ----------------------
> -
> -This documents the binding structure and common properties for serial
> -attached Qualcomm devices.
> -
> -Serial attached Qualcomm devices shall be a child node of the host UART
> -device the slave device is attached to.
> -
> -Required properties:
> - - compatible: should contain one of the following:
> - * "qcom,qca6174-bt"
> - * "qcom,qca9377-bt"
> - * "qcom,wcn3990-bt"
> - * "qcom,wcn3991-bt"
> - * "qcom,wcn3998-bt"
> - * "qcom,qca6390-bt"
> -
> -Optional properties for compatible string qcom,qca6174-bt:
> -
> - - enable-gpios: gpio specifier used to enable chip
> - - clocks: clock provided to the controller (SUSCLK_32KHZ)
> - - firmware-name: specify the name of nvm firmware to load
> -
> -Optional properties for compatible string qcom,qca9377-bt:
> -
> - - max-speed: see Documentation/devicetree/bindings/serial/serial.yaml
> -
> -Required properties for compatible string qcom,wcn399x-bt:
> -
> - - vddio-supply: VDD_IO supply regulator handle.
> - - vddxo-supply: VDD_XO supply regulator handle.
> - - vddrf-supply: VDD_RF supply regulator handle.
> - - vddch0-supply: VDD_CH0 supply regulator handle.
> -
> -Optional properties for compatible string qcom,wcn399x-bt:
> -
> - - max-speed: see Documentation/devicetree/bindings/serial/serial.yaml
> - - firmware-name: specify the name of nvm firmware to load
> - - clocks: clock provided to the controller
> -
> -Examples:
> -
> -serial@7570000 {
> - label = "BT-UART";
> - status = "okay";
> -
> - bluetooth {
> - compatible = "qcom,qca6174-bt";
> -
> - enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
> - clocks = <&divclk4>;
> - firmware-name = "nvm_00440302.bin";
> - };
> -};
> -
> -serial@898000 {
> - bluetooth {
> - compatible = "qcom,wcn3990-bt";
> -
> - vddio-supply = <&vreg_s4a_1p8>;
> - vddxo-supply = <&vreg_l7a_1p8>;
> - vddrf-supply = <&vreg_l17a_1p3>;
> - vddch0-supply = <&vreg_l25a_3p3>;
> - max-speed = <3200000>;
> - firmware-name = "crnv21.bin";
> - clocks = <&rpmhcc RPMH_RF_CLK2>;
> - };
> -};
> diff --git a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.yaml
> new file mode 100644
> index 0000000..55cd995
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.yaml
> @@ -0,0 +1,87 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/qualcomm-bluetooth.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Bluetooth Chips
> +
> +maintainers:
> + - Rob Herring <robh@xxxxxxxxxx>
> + - Marcel Holtmann <marcel@xxxxxxxxxxxx>
> +
> +description:
> + This binding describes Qualcomm UART-attached bluetooth chips.
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,qca6174-bt
> + - qcom,qca9377-bt
> + - qcom,wcn3990-bt
> + - qcom,wcn3991-bt
> + - qcom,wcn3998-bt
> + - qcom,qca6390-bt

delete trailing blanks

> +
> + enable-gpios:
> + maxItems: 1
> + description: gpio specifier used to enable chip
> +

delete blanks

> + clocks:
> + maxItems: 1
> + description: clock provided to the controller (SUSCLK_32KHZ)
> +
> + vddio-supply:
> + description: VDD_IO supply regulator handle
> +
> + vddxo-supply:
> + description: VDD_XO supply regulator handle
> +
> + vddrf-supply:
> + description: VDD_RF supply regulator handle
> +
> + vddch0-supply:
> + description: VDD_CH0 supply regulator handle
> +
> + max-speed:

delete trailing blank

> + description: see Documentation/devicetree/bindings/serial/serial.yaml
> +
> + firmware-name:
> + description: specify the name of nvm firmware to load
> +
> + local-bd-address:
> + description: see Documentation/devicetree/bindings/net/bluetooth.txt
> +
> +
> +required:
> + - compatible

it seems you could make the supplies conditionally required based on the
compatible string. See Documentation/devicetree/bindings/connector/usb-connector.yaml
for an example

> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + uart {
> + label = "BT-UART";
> + status = "okay";
> +
> + bluetooth {
> + compatible = "qcom,qca6174-bt";
> + enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
> + clocks = <&divclk4>;
> + firmware-name = "nvm_00440302.bin";
> + };
> + };
> + - |
> + uart {
> +
> + bluetooth {
> + compatible = "qcom,wcn3990-bt";
> + vddio-supply = <&vreg_s4a_1p8>;
> + vddxo-supply = <&vreg_l7a_1p8>;
> + vddrf-supply = <&vreg_l17a_1p3>;
> + vddch0-supply = <&vreg_l25a_3p3>;
> + max-speed = <3200000>;
> + firmware-name = "crnv21.bin";

delete trailing blanks