2021-04-21 00:55:23

by Matthias Kaehlcke

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

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 <[email protected]>
> ---
> .../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 <[email protected]>
> + - Marcel Holtmann <[email protected]>
> +
> +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


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

Hi Matthias,
On 2021-04-21 06:20, Matthias Kaehlcke wrote:
> 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.
>
[Venkata]:
I will update in next patchset.
>>
>> Converted Qualcomm Bluetooth binidings to DT schema.
>>
>> Signed-off-by: Venkata Lakshmi Narayana Gubba
>> <[email protected]>
>> ---
>> .../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 <[email protected]>
>> + - Marcel Holtmann <[email protected]>
>> +
>> +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
>
[Venkata]:
I will update in next patchset.
>> +
>> + enable-gpios:
>> + maxItems: 1
>> + description: gpio specifier used to enable chip
>> +
>
> delete blanks
>
[Venkata]:
I will update in next patchset.
>> + 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
>
[Venkata]:
I will update in next patchset.
>> + 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
>
[Venkata]:
I will update in next patchset
>> +
>> +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
[Venkata]:
I will update in next patchset.

Regards,
Venkata.