mbox series

[v3,0/2] Introduce the BQ256XX family of chargers

Message ID 20200910164534.16987-1-r-rivera-matos@ti.com
Headers show
Series Introduce the BQ256XX family of chargers | expand

Message

Ricardo Rivera-Matos Sept. 10, 2020, 4:45 p.m. UTC
Hello,

This patchset introduces the bq256xx family of charging ICs. The bq256xx
ICs are highly integrated, buck, switching chargers intended for use in 
smartphones, tablets, and portable electronics.

Ricardo Rivera-Matos (2):
  dt-bindings: power: Add the bq256xx dt bindings
  power: supply: bq256xx: Introduce the BQ256XX charger driver

 .../bindings/power/supply/bq256xx.yaml        |   97 +
 drivers/power/supply/Kconfig                  |   11 +
 drivers/power/supply/Makefile                 |    1 +
 drivers/power/supply/bq256xx_charger.c        | 1769 +++++++++++++++++
 4 files changed, 1878 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/supply/bq256xx.yaml
 create mode 100644 drivers/power/supply/bq256xx_charger.c

Comments

Rob Herring Sept. 22, 2020, 10:22 p.m. UTC | #1
On Thu, Sep 10, 2020 at 11:45:33AM -0500, Ricardo Rivera-Matos wrote:
> Add the bindings for the bq256xx series of battery charging ICs.
> 
> Datasheets:
> - https://www.ti.com/lit/ds/symlink/bq25600.pdf
> - https://www.ti.com/lit/ds/symlink/bq25601.pdf
> - https://www.ti.com/lit/ds/symlink/bq25600d.pdf
> - https://www.ti.com/lit/ds/symlink/bq25601d.pdf
> - https://www.ti.com/lit/ds/symlink/bq25611d.pdf
> - https://www.ti.com/lit/ds/symlink/bq25618.pdf
> - https://www.ti.com/lit/ds/symlink/bq25619.pdf
> 
> Signed-off-by: Ricardo Rivera-Matos <r-rivera-matos@ti.com>
> ---
>  .../bindings/power/supply/bq256xx.yaml        | 97 +++++++++++++++++++
>  1 file changed, 97 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/power/supply/bq256xx.yaml
> 
> diff --git a/Documentation/devicetree/bindings/power/supply/bq256xx.yaml b/Documentation/devicetree/bindings/power/supply/bq256xx.yaml
> new file mode 100644
> index 000000000000..8cc2242f7df0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/supply/bq256xx.yaml
> @@ -0,0 +1,97 @@
> +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
> +# Copyright (C) 2020 Texas Instruments Incorporated
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/power/supply/bq256xx.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: TI bq256xx Switch Mode Buck Charger
> +
> +maintainers:
> +  - Ricardo Rivera-Matos <r-rivera-matos@ti.com>
> +
> +description: |
> +  The bq256xx devices are a family of highly-integrated battery charge
> +  management and system power management ICs for single cell Li-ion and Li-
> +  polymer batteries.
> +
> +  Datasheets:
> +    - https://www.ti.com/lit/ds/symlink/bq25600.pdf
> +    - https://www.ti.com/lit/ds/symlink/bq25601.pdf
> +    - https://www.ti.com/lit/ds/symlink/bq25600d.pdf
> +    - https://www.ti.com/lit/ds/symlink/bq25601d.pdf
> +    - https://www.ti.com/lit/ds/symlink/bq25611d.pdf
> +    - https://www.ti.com/lit/ds/symlink/bq25618.pdf
> +    - https://www.ti.com/lit/ds/symlink/bq25619.pdf
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ti,bq25600
> +      - ti,bq25601
> +      - ti,bq25600d
> +      - ti,bq25601d
> +      - ti,bq25611d
> +      - ti,bq25618
> +      - ti,bq25619
> +
> +  reg:
> +    maxItems: 1
> +
> +  ti,watchdog-timer:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      Watchdog timer in ms. 0 (default) disables the watchdog
> +    minimum: 0
> +    maximum: 160000
> +    enum: [ 0, 40000, 80000, 160000]
> +
> +  input-voltage-limit-microvolt:
> +    description: |
> +       Minimum input voltage limit in µV with a 100000 µV step
> +    minimum: 3900000
> +    maximum: 5400000
> +
> +  input-current-limit-microamp:
> +    description: |
> +       Maximum input current limit in µA with a 100000 µA step
> +    minimum: 100000
> +    maximum: 3200000
> +
> +required:
> +  - compatible
> +  - reg
> +  - monitored-battery

additionalProperties: false

And then fix what breaks in the example.

> +
> +examples:
> +  - |
> +    bat: battery {
> +      compatible = "simple-battery";
> +      constant-charge-current-max-microamp = <2040000>;
> +      constant-charge-voltage-max-microvolt = <4352000>;
> +      precharge-current-microamp = <180000>;
> +      charge-term-current-microamp = <180000>;
> +    };
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    i2c {
> +
> +      clock-frequency = <400000>;
> +
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      charger@6b {
> +        compatible = "ti,bq25601";
> +        reg = <0x6b>;
> +        monitored-battery = <&bat>;
> +
> +        interrupt-parent = <&gpio1>;
> +        interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
> +        watchdog-timer = <40000>;
> +
> +        input-voltage-limit-microvolt = <4500000>;
> +        input-current-limit-microamp = <2400000>;
> +       };
> +    };
> +...
> -- 
> 2.28.0
>
Ricardo Rivera-Matos Sept. 22, 2020, 10:56 p.m. UTC | #2
Rob

On 9/22/20 5:22 PM, Rob Herring wrote:
> On Thu, Sep 10, 2020 at 11:45:33AM -0500, Ricardo Rivera-Matos wrote:

>> Add the bindings for the bq256xx series of battery charging ICs.

>>

>> Datasheets:

>> - https://www.ti.com/lit/ds/symlink/bq25600.pdf

>> - https://www.ti.com/lit/ds/symlink/bq25601.pdf

>> - https://www.ti.com/lit/ds/symlink/bq25600d.pdf

>> - https://www.ti.com/lit/ds/symlink/bq25601d.pdf

>> - https://www.ti.com/lit/ds/symlink/bq25611d.pdf

>> - https://www.ti.com/lit/ds/symlink/bq25618.pdf

>> - https://www.ti.com/lit/ds/symlink/bq25619.pdf

>>

>> Signed-off-by: Ricardo Rivera-Matos <r-rivera-matos@ti.com>

>> ---

>>   .../bindings/power/supply/bq256xx.yaml        | 97 +++++++++++++++++++

>>   1 file changed, 97 insertions(+)

>>   create mode 100644 Documentation/devicetree/bindings/power/supply/bq256xx.yaml

>>

>> diff --git a/Documentation/devicetree/bindings/power/supply/bq256xx.yaml b/Documentation/devicetree/bindings/power/supply/bq256xx.yaml

>> new file mode 100644

>> index 000000000000..8cc2242f7df0

>> --- /dev/null

>> +++ b/Documentation/devicetree/bindings/power/supply/bq256xx.yaml

>> @@ -0,0 +1,97 @@

>> +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)

>> +# Copyright (C) 2020 Texas Instruments Incorporated

>> +%YAML 1.2

>> +---

>> +$id: "http://devicetree.org/schemas/power/supply/bq256xx.yaml#"

>> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"

>> +

>> +title: TI bq256xx Switch Mode Buck Charger

>> +

>> +maintainers:

>> +  - Ricardo Rivera-Matos <r-rivera-matos@ti.com>

>> +

>> +description: |

>> +  The bq256xx devices are a family of highly-integrated battery charge

>> +  management and system power management ICs for single cell Li-ion and Li-

>> +  polymer batteries.

>> +

>> +  Datasheets:

>> +    - https://www.ti.com/lit/ds/symlink/bq25600.pdf

>> +    - https://www.ti.com/lit/ds/symlink/bq25601.pdf

>> +    - https://www.ti.com/lit/ds/symlink/bq25600d.pdf

>> +    - https://www.ti.com/lit/ds/symlink/bq25601d.pdf

>> +    - https://www.ti.com/lit/ds/symlink/bq25611d.pdf

>> +    - https://www.ti.com/lit/ds/symlink/bq25618.pdf

>> +    - https://www.ti.com/lit/ds/symlink/bq25619.pdf

>> +

>> +properties:

>> +  compatible:

>> +    enum:

>> +      - ti,bq25600

>> +      - ti,bq25601

>> +      - ti,bq25600d

>> +      - ti,bq25601d

>> +      - ti,bq25611d

>> +      - ti,bq25618

>> +      - ti,bq25619

>> +

>> +  reg:

>> +    maxItems: 1

>> +

>> +  ti,watchdog-timer:

>> +    $ref: /schemas/types.yaml#/definitions/uint32

>> +    description: |

>> +      Watchdog timer in ms. 0 (default) disables the watchdog

>> +    minimum: 0

>> +    maximum: 160000

>> +    enum: [ 0, 40000, 80000, 160000]

>> +

>> +  input-voltage-limit-microvolt:

>> +    description: |

>> +       Minimum input voltage limit in µV with a 100000 µV step

>> +    minimum: 3900000

>> +    maximum: 5400000

>> +

>> +  input-current-limit-microamp:

>> +    description: |

>> +       Maximum input current limit in µA with a 100000 µA step

>> +    minimum: 100000

>> +    maximum: 3200000

>> +

>> +required:

>> +  - compatible

>> +  - reg

>> +  - monitored-battery

> additionalProperties: false

>

> And then fix what breaks in the example.

ACK. I will document the monitored-battery and interrupts properties and 
fix the example. Is ti,watchdog-timer okay as it is currently documented?
>

>> +

>> +examples:

>> +  - |

>> +    bat: battery {

>> +      compatible = "simple-battery";

>> +      constant-charge-current-max-microamp = <2040000>;

>> +      constant-charge-voltage-max-microvolt = <4352000>;

>> +      precharge-current-microamp = <180000>;

>> +      charge-term-current-microamp = <180000>;

>> +    };

>> +    #include <dt-bindings/gpio/gpio.h>

>> +    #include <dt-bindings/interrupt-controller/irq.h>

>> +    i2c {

>> +

>> +      clock-frequency = <400000>;

>> +

>> +      #address-cells = <1>;

>> +      #size-cells = <0>;

>> +

>> +      charger@6b {

>> +        compatible = "ti,bq25601";

>> +        reg = <0x6b>;

>> +        monitored-battery = <&bat>;

>> +

>> +        interrupt-parent = <&gpio1>;

>> +        interrupts = <16 IRQ_TYPE_EDGE_FALLING>;

>> +        watchdog-timer = <40000>;

>> +

>> +        input-voltage-limit-microvolt = <4500000>;

>> +        input-current-limit-microamp = <2400000>;

>> +       };

>> +    };

>> +...

>> -- 

>> 2.28.0

>>

Ricardo
Ricardo Rivera-Matos Sept. 23, 2020, 1:14 a.m. UTC | #3
Dan

On 9/22/20 8:05 PM, Dan Murphy wrote:
> RIcardo
>
> On 9/22/20 5:56 PM, Ricardo Rivera-Matos wrote:
>> Rob
>>
>> On 9/22/20 5:22 PM, Rob Herring wrote:
>>> On Thu, Sep 10, 2020 at 11:45:33AM -0500, Ricardo Rivera-Matos wrote:
>>>> Add the bindings for the bq256xx series of battery charging ICs.
>>>>
>>>> Datasheets:
>>>> - https://www.ti.com/lit/ds/symlink/bq25600.pdf
>>>> - https://www.ti.com/lit/ds/symlink/bq25601.pdf
>>>> - https://www.ti.com/lit/ds/symlink/bq25600d.pdf
>>>> - https://www.ti.com/lit/ds/symlink/bq25601d.pdf
>>>> - https://www.ti.com/lit/ds/symlink/bq25611d.pdf
>>>> - https://www.ti.com/lit/ds/symlink/bq25618.pdf
>>>> - https://www.ti.com/lit/ds/symlink/bq25619.pdf
>>>>
>>>> Signed-off-by: Ricardo Rivera-Matos <r-rivera-matos@ti.com>
>>>> ---
>>>>   .../bindings/power/supply/bq256xx.yaml        | 97 
>>>> +++++++++++++++++++
>>>>   1 file changed, 97 insertions(+)
>>>>   create mode 100644 
>>>> Documentation/devicetree/bindings/power/supply/bq256xx.yaml
>>>>
>>>> diff --git 
>>>> a/Documentation/devicetree/bindings/power/supply/bq256xx.yaml 
>>>> b/Documentation/devicetree/bindings/power/supply/bq256xx.yaml
>>>> new file mode 100644
>>>> index 000000000000..8cc2242f7df0
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/power/supply/bq256xx.yaml
>>>> @@ -0,0 +1,97 @@
>>>> +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
>>>> +# Copyright (C) 2020 Texas Instruments Incorporated
>>>> +%YAML 1.2
>>>> +---
>>>> +$id: "http://devicetree.org/schemas/power/supply/bq256xx.yaml#"
>>>> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
>>>> +
>>>> +title: TI bq256xx Switch Mode Buck Charger
>>>> +
>>>> +maintainers:
>>>> +  - Ricardo Rivera-Matos <r-rivera-matos@ti.com>
>>>> +
>>>> +description: |
>>>> +  The bq256xx devices are a family of highly-integrated battery 
>>>> charge
>>>> +  management and system power management ICs for single cell 
>>>> Li-ion and Li-
>>>> +  polymer batteries.
>>>> +
>>>> +  Datasheets:
>>>> +    - https://www.ti.com/lit/ds/symlink/bq25600.pdf
>>>> +    - https://www.ti.com/lit/ds/symlink/bq25601.pdf
>>>> +    - https://www.ti.com/lit/ds/symlink/bq25600d.pdf
>>>> +    - https://www.ti.com/lit/ds/symlink/bq25601d.pdf
>>>> +    - https://www.ti.com/lit/ds/symlink/bq25611d.pdf
>>>> +    - https://www.ti.com/lit/ds/symlink/bq25618.pdf
>>>> +    - https://www.ti.com/lit/ds/symlink/bq25619.pdf
>>>> +
>>>> +properties:
>>>> +  compatible:
>>>> +    enum:
>>>> +      - ti,bq25600
>>>> +      - ti,bq25601
>>>> +      - ti,bq25600d
>>>> +      - ti,bq25601d
>>>> +      - ti,bq25611d
>>>> +      - ti,bq25618
>>>> +      - ti,bq25619
>>>> +
>>>> +  reg:
>>>> +    maxItems: 1
>>>> +
>>>> +  ti,watchdog-timer:
>>>> +    $ref: /schemas/types.yaml#/definitions/uint32
>>>> +    description: |
>>>> +      Watchdog timer in ms. 0 (default) disables the watchdog
>>>> +    minimum: 0
>>>> +    maximum: 160000
>>>> +    enum: [ 0, 40000, 80000, 160000]
>>>> +
>>>> +  input-voltage-limit-microvolt:
>>>> +    description: |
>>>> +       Minimum input voltage limit in µV with a 100000 µV step
>>>> +    minimum: 3900000
>>>> +    maximum: 5400000
>>>> +
>>>> +  input-current-limit-microamp:
>>>> +    description: |
>>>> +       Maximum input current limit in µA with a 100000 µA step
>>>> +    minimum: 100000
>>>> +    maximum: 3200000
>>>> +
>>>> +required:
>>>> +  - compatible
>>>> +  - reg
>>>> +  - monitored-battery
>>> additionalProperties: false
>>>
>>> And then fix what breaks in the example.
>> ACK. I will document the monitored-battery and interrupts properties 
>> and fix the example. Is ti,watchdog-timer okay as it is currently 
>> documented?
>
> For TI consistency please use ti,watchdog-timeout-ms
ACK, thanks.
>
> Dan
>
> Ricardo