diff mbox series

[v12,1/7] dt-bindings: net: bluetooth: Add device tree bindings for QTI chip wcn3990

Message ID 20180802132518.8680-2-bgodavar@codeaurora.org
State Superseded, archived
Headers show
Series Enable Bluetooth functionality for WCN3990 | expand

Commit Message

Balakrishna Godavarthi Aug. 2, 2018, 1:25 p.m. UTC
This patch enables regulators for the Qualcomm Bluetooth wcn3990
controller.

Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 .../bindings/net/qualcomm-bluetooth.txt       | 26 +++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

Comments

Stephen Boyd Aug. 2, 2018, 3:29 p.m. UTC | #1
Quoting Balakrishna Godavarthi (2018-08-02 06:25:12)
> This patch enables regulators for the Qualcomm Bluetooth wcn3990
> controller.
> 
> Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---

Reviewed-by: Stephen Boyd <swboyd@chromium.org>

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Matthias Kaehlcke Aug. 2, 2018, 5:20 p.m. UTC | #2
On Thu, Aug 02, 2018 at 06:55:12PM +0530, Balakrishna Godavarthi wrote:
> This patch enables regulators for the Qualcomm Bluetooth wcn3990
> controller.
> 
> Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---
>  .../bindings/net/qualcomm-bluetooth.txt       | 26 +++++++++++++++++--
>  1 file changed, 24 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> index 0ea18a53cc29..2175174415ee 100644
> --- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> +++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> @@ -10,12 +10,22 @@ device the slave device is attached to.
>  Required properties:
>   - compatible: should contain one of the following:
>     * "qcom,qca6174-bt"
> +   * "qcom,wcn3990-bt"
> +
> +Optional properties for compatible string qcom,qca6174-bt:
>  
> -Optional properties:
>   - enable-gpios: gpio specifier used to enable chip
>   - clocks: clock provided to the controller (SUSCLK_32KHZ)
>  
> -Example:
> +Optional properties for compatible string qcom,wcn3990-bt:
> +
> + - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
> + - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
> + - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
> + - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.

Are these really optional? If I understand correctly the driver
expects the regulators to be there. Even if it could do with only some
regulators specified the devm_regulator_bulk_get() call would fail if
not all requested regulators are available.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Balakrishna Godavarthi Aug. 2, 2018, 5:54 p.m. UTC | #3
Hi Matthias,

On 2018-08-02 22:50, Matthias Kaehlcke wrote:
> On Thu, Aug 02, 2018 at 06:55:12PM +0530, Balakrishna Godavarthi wrote:
>> This patch enables regulators for the Qualcomm Bluetooth wcn3990
>> controller.
>> 
>> Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
>> Reviewed-by: Rob Herring <robh@kernel.org>
>> ---
>>  .../bindings/net/qualcomm-bluetooth.txt       | 26 
>> +++++++++++++++++--
>>  1 file changed, 24 insertions(+), 2 deletions(-)
>> 
>> diff --git 
>> a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt 
>> b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> index 0ea18a53cc29..2175174415ee 100644
>> --- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> +++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> @@ -10,12 +10,22 @@ device the slave device is attached to.
>>  Required properties:
>>   - compatible: should contain one of the following:
>>     * "qcom,qca6174-bt"
>> +   * "qcom,wcn3990-bt"
>> +
>> +Optional properties for compatible string qcom,qca6174-bt:
>> 
>> -Optional properties:
>>   - enable-gpios: gpio specifier used to enable chip
>>   - clocks: clock provided to the controller (SUSCLK_32KHZ)
>> 
>> -Example:
>> +Optional properties for compatible string qcom,wcn3990-bt:
>> +
>> + - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
>> + - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
>> + - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
>> + - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.
> 
> Are these really optional? If I understand correctly the driver
> expects the regulators to be there. Even if it could do with only some
> regulators specified the devm_regulator_bulk_get() call would fail if
> not all requested regulators are available.

yes they are required along with compatible string "qcom,wcn3990-bt".
i have taken reference wrt compatible string "qcom,qca6174-bt".
In which clocks and enable-gpios are required for driver to work, but it 
was written as optional in doc.

below snippet from hci_qca.c for qcom,qca6174-bt.

  if (IS_ERR(qcadev->bt_en)) {
        dev_err(&serdev->dev, "failed to acquire enable gpio\n");
        return PTR_ERR(qcadev->bt_en);
     }

   qcadev->susclk = devm_clk_get(&serdev->dev, NULL);
   if (IS_ERR(qcadev->susclk)) {
       dev_err(&serdev->dev, "failed to acquire clk\n");
        return PTR_ERR(qcadev->susclk);
      }
Balakrishna Godavarthi Aug. 2, 2018, 6:05 p.m. UTC | #4
Hi Matthias,

On 2018-08-02 23:24, Balakrishna Godavarthi wrote:
> Hi Matthias,
> 
> On 2018-08-02 22:50, Matthias Kaehlcke wrote:
>> On Thu, Aug 02, 2018 at 06:55:12PM +0530, Balakrishna Godavarthi 
>> wrote:
>>> This patch enables regulators for the Qualcomm Bluetooth wcn3990
>>> controller.
>>> 
>>> Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
>>> Reviewed-by: Rob Herring <robh@kernel.org>
>>> ---
>>>  .../bindings/net/qualcomm-bluetooth.txt       | 26 
>>> +++++++++++++++++--
>>>  1 file changed, 24 insertions(+), 2 deletions(-)
>>> 
>>> diff --git 
>>> a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt 
>>> b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>>> index 0ea18a53cc29..2175174415ee 100644
>>> --- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>>> +++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>>> @@ -10,12 +10,22 @@ device the slave device is attached to.
>>>  Required properties:
>>>   - compatible: should contain one of the following:
>>>     * "qcom,qca6174-bt"
>>> +   * "qcom,wcn3990-bt"
>>> +
>>> +Optional properties for compatible string qcom,qca6174-bt:
>>> 
>>> -Optional properties:
>>>   - enable-gpios: gpio specifier used to enable chip
>>>   - clocks: clock provided to the controller (SUSCLK_32KHZ)
>>> 
>>> -Example:
>>> +Optional properties for compatible string qcom,wcn3990-bt:
>>> +
>>> + - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
>>> + - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
>>> + - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
>>> + - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.
>> 
>> Are these really optional? If I understand correctly the driver
>> expects the regulators to be there. Even if it could do with only some
>> regulators specified the devm_regulator_bulk_get() call would fail if
>> not all requested regulators are available.
> 
> yes they are required along with compatible string "qcom,wcn3990-bt".
> i have taken reference wrt compatible string "qcom,qca6174-bt".
> In which clocks and enable-gpios are required for driver to work, but
> it was written as optional in doc.
> 
> below snippet from hci_qca.c for qcom,qca6174-bt.
> 
>  if (IS_ERR(qcadev->bt_en)) {
>        dev_err(&serdev->dev, "failed to acquire enable gpio\n");
>        return PTR_ERR(qcadev->bt_en);
>     }
> 
>   qcadev->susclk = devm_clk_get(&serdev->dev, NULL);
>   if (IS_ERR(qcadev->susclk)) {
>       dev_err(&serdev->dev, "failed to acquire clk\n");
>        return PTR_ERR(qcadev->susclk);
>      }

technically it is not correct then i will update as below

Required properties for compatible string qcom,wcn3990-bt:

  - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
  - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
  - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
  - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.

Optional properties for compatible string qcom,wcn3990-bt:

  - max-speed: see 
Documentation/devicetree/bindings/serial/slave-device.txt

are they above ok?
Matthias Kaehlcke Aug. 2, 2018, 6:10 p.m. UTC | #5
On Thu, Aug 02, 2018 at 11:35:54PM +0530, Balakrishna Godavarthi wrote:
> Hi Matthias,
> 
> On 2018-08-02 23:24, Balakrishna Godavarthi wrote:
> > Hi Matthias,
> > 
> > On 2018-08-02 22:50, Matthias Kaehlcke wrote:
> > > On Thu, Aug 02, 2018 at 06:55:12PM +0530, Balakrishna Godavarthi
> > > wrote:
> > > > This patch enables regulators for the Qualcomm Bluetooth wcn3990
> > > > controller.
> > > > 
> > > > Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
> > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > ---
> > > >  .../bindings/net/qualcomm-bluetooth.txt       | 26
> > > > +++++++++++++++++--
> > > >  1 file changed, 24 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git
> > > > a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> > > > b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> > > > index 0ea18a53cc29..2175174415ee 100644
> > > > --- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> > > > +++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
> > > > @@ -10,12 +10,22 @@ device the slave device is attached to.
> > > >  Required properties:
> > > >   - compatible: should contain one of the following:
> > > >     * "qcom,qca6174-bt"
> > > > +   * "qcom,wcn3990-bt"
> > > > +
> > > > +Optional properties for compatible string qcom,qca6174-bt:
> > > > 
> > > > -Optional properties:
> > > >   - enable-gpios: gpio specifier used to enable chip
> > > >   - clocks: clock provided to the controller (SUSCLK_32KHZ)
> > > > 
> > > > -Example:
> > > > +Optional properties for compatible string qcom,wcn3990-bt:
> > > > +
> > > > + - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
> > > > + - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
> > > > + - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
> > > > + - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.
> > > 
> > > Are these really optional? If I understand correctly the driver
> > > expects the regulators to be there. Even if it could do with only some
> > > regulators specified the devm_regulator_bulk_get() call would fail if
> > > not all requested regulators are available.
> > 
> > yes they are required along with compatible string "qcom,wcn3990-bt".
> > i have taken reference wrt compatible string "qcom,qca6174-bt".
> > In which clocks and enable-gpios are required for driver to work, but
> > it was written as optional in doc.
> > 
> > below snippet from hci_qca.c for qcom,qca6174-bt.
> > 
> >  if (IS_ERR(qcadev->bt_en)) {
> >        dev_err(&serdev->dev, "failed to acquire enable gpio\n");
> >        return PTR_ERR(qcadev->bt_en);
> >     }
> > 
> >   qcadev->susclk = devm_clk_get(&serdev->dev, NULL);
> >   if (IS_ERR(qcadev->susclk)) {
> >       dev_err(&serdev->dev, "failed to acquire clk\n");
> >        return PTR_ERR(qcadev->susclk);
> >      }
> 
> technically it is not correct then i will update as below
> 
> Required properties for compatible string qcom,wcn3990-bt:
> 
>  - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
>  - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
>  - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
>  - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.
> 
> Optional properties for compatible string qcom,wcn3990-bt:
> 
>  - max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt
> 
> are they above ok?


Looks good to me.

Optionally you could remove the 'Bluetooth wcn3990' part in the
regulator description, it is a bit redundant since it's already said
that these are properties for the 'Bluetooth wcn3990' compatible
string.

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Balakrishna Godavarthi Aug. 2, 2018, 6:12 p.m. UTC | #6
Hi Matthias,

On 2018-08-02 23:40, Matthias Kaehlcke wrote:
> On Thu, Aug 02, 2018 at 11:35:54PM +0530, Balakrishna Godavarthi wrote:
>> Hi Matthias,
>> 
>> On 2018-08-02 23:24, Balakrishna Godavarthi wrote:
>> > Hi Matthias,
>> >
>> > On 2018-08-02 22:50, Matthias Kaehlcke wrote:
>> > > On Thu, Aug 02, 2018 at 06:55:12PM +0530, Balakrishna Godavarthi
>> > > wrote:
>> > > > This patch enables regulators for the Qualcomm Bluetooth wcn3990
>> > > > controller.
>> > > >
>> > > > Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
>> > > > Reviewed-by: Rob Herring <robh@kernel.org>
>> > > > ---
>> > > >  .../bindings/net/qualcomm-bluetooth.txt       | 26
>> > > > +++++++++++++++++--
>> > > >  1 file changed, 24 insertions(+), 2 deletions(-)
>> > > >
>> > > > diff --git
>> > > > a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> > > > b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> > > > index 0ea18a53cc29..2175174415ee 100644
>> > > > --- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> > > > +++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
>> > > > @@ -10,12 +10,22 @@ device the slave device is attached to.
>> > > >  Required properties:
>> > > >   - compatible: should contain one of the following:
>> > > >     * "qcom,qca6174-bt"
>> > > > +   * "qcom,wcn3990-bt"
>> > > > +
>> > > > +Optional properties for compatible string qcom,qca6174-bt:
>> > > >
>> > > > -Optional properties:
>> > > >   - enable-gpios: gpio specifier used to enable chip
>> > > >   - clocks: clock provided to the controller (SUSCLK_32KHZ)
>> > > >
>> > > > -Example:
>> > > > +Optional properties for compatible string qcom,wcn3990-bt:
>> > > > +
>> > > > + - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
>> > > > + - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
>> > > > + - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
>> > > > + - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.
>> > >
>> > > Are these really optional? If I understand correctly the driver
>> > > expects the regulators to be there. Even if it could do with only some
>> > > regulators specified the devm_regulator_bulk_get() call would fail if
>> > > not all requested regulators are available.
>> >
>> > yes they are required along with compatible string "qcom,wcn3990-bt".
>> > i have taken reference wrt compatible string "qcom,qca6174-bt".
>> > In which clocks and enable-gpios are required for driver to work, but
>> > it was written as optional in doc.
>> >
>> > below snippet from hci_qca.c for qcom,qca6174-bt.
>> >
>> >  if (IS_ERR(qcadev->bt_en)) {
>> >        dev_err(&serdev->dev, "failed to acquire enable gpio\n");
>> >        return PTR_ERR(qcadev->bt_en);
>> >     }
>> >
>> >   qcadev->susclk = devm_clk_get(&serdev->dev, NULL);
>> >   if (IS_ERR(qcadev->susclk)) {
>> >       dev_err(&serdev->dev, "failed to acquire clk\n");
>> >        return PTR_ERR(qcadev->susclk);
>> >      }
>> 
>> technically it is not correct then i will update as below
>> 
>> Required properties for compatible string qcom,wcn3990-bt:
>> 
>>  - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
>>  - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
>>  - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
>>  - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.
>> 
>> Optional properties for compatible string qcom,wcn3990-bt:
>> 
>>  - max-speed: see 
>> Documentation/devicetree/bindings/serial/slave-device.txt
>> 
>> are they above ok?
> 
> 
> Looks good to me.
> 
> Optionally you could remove the 'Bluetooth wcn3990' part in the
> regulator description, it is a bit redundant since it's already said
> that these are properties for the 'Bluetooth wcn3990' compatible
> string.


Ok. will update the same.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
index 0ea18a53cc29..2175174415ee 100644
--- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
+++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
@@ -10,12 +10,22 @@  device the slave device is attached to.
 Required properties:
  - compatible: should contain one of the following:
    * "qcom,qca6174-bt"
+   * "qcom,wcn3990-bt"
+
+Optional properties for compatible string qcom,qca6174-bt:
 
-Optional properties:
  - enable-gpios: gpio specifier used to enable chip
  - clocks: clock provided to the controller (SUSCLK_32KHZ)
 
-Example:
+Optional properties for compatible string qcom,wcn3990-bt:
+
+ - vddio-supply: Bluetooth wcn3990 VDD_IO supply regulator handle.
+ - vddxo-supply: Bluetooth wcn3990 VDD_XO supply regulator handle.
+ - vddrf-supply: Bluetooth wcn3990 VDD_RF supply regulator handle.
+ - vddch0-supply: Bluetooth wcn3990 VDD_CH0 supply regulator handle.
+ - max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt
+
+Examples:
 
 serial@7570000 {
 	label = "BT-UART";
@@ -28,3 +38,15 @@  serial@7570000 {
 		clocks = <&divclk4>;
 	};
 };
+
+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>;
+	};
+};