mbox series

[v5,0/2] power: supply: Add STC3117 Fuel Gauge

Message ID 20241129114200.13351-1-bhavin.sharma@siliconsignals.io
Headers show
Series power: supply: Add STC3117 Fuel Gauge | expand

Message

Bhavin Sharma Nov. 29, 2024, 11:40 a.m. UTC
Adds initial support for the STC3117 fuel gauge.                                
                                                                                
v4 -> v5

- Fix variable names
- Limit code line length to 80 columns
- Add interrupt and monitor-battery properties to bindings
- Correct error handling with return dev_err_probe()

Link for v4: https://lore.kernel.org/linux-pm/21c08a45-34f1-443c-97d4-6baf9fa01b67@kernel.org/T/#t

v3 -> v4                                                                        
                                                                                
- Added support for current, soc, temp, and status properties.                  
- Addressed comments and feedback provided by Krzysztof and Sebastian.          
                                                                                
Link for v3: https://lore.kernel.org/linux-pm/20240205051321.4079933-1-bhavin.sharma@siliconsignals.io/T/#t
                                                                                
v2 -> v3                                                                        
                                                                                
- Resolved DTC warnings and errors                                              
- Formatted the changelogs                                                      
- Added monitored battery properties                                            
- Replaced 'additionalProperties' with 'unevaluatedProperties'                  
- Replaced '&i2c6' with 'i2c'                                                   
                                                                                
Link for v2: https://lore.kernel.org/linux-pm/202401080530.0hMWnrIg-lkp@intel.com/T/#t
                                                                                
v1 -> v2                                                                        
                                                                                
- String value is redundantly quoted with any quotes (quoted-strings)           
- Found character '\t' that cannot start any token                              
                                                                                
Link for v1: https://lore.kernel.org/linux-pm/46bba29c-330d-417d-ad84-ceb5207fdb55@wanadoo.fr/T/#t

Hardevsinh Palaniya(1):                                                         
  dt-bindings: power: supply: Add STC3117 Fuel Gauge

Bhavin Sharma (2):
  power: supply: Add STC3117 fuel gauge unit driver

 .../bindings/power/supply/st,stc3117.yaml     |  81 +++
 MAINTAINERS                                   |   8 +
 drivers/power/supply/Kconfig                  |   7 +
 drivers/power/supply/Makefile                 |   1 +
 drivers/power/supply/stc3117_fuel_gauge.c     | 665 ++++++++++++++++++
 5 files changed, 762 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/supply/st,stc3117.yaml
 create mode 100644 drivers/power/supply/stc3117_fuel_gauge.c

Comments

Krzysztof Kozlowski Nov. 29, 2024, 11:48 a.m. UTC | #1
On 29/11/2024 12:40, Bhavin Sharma wrote:
> The STC3117 provides a simple fuel gauge via I2C.
> Add a DT schema to describe how to set it up in the device tree.
> 
> Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
> Signed-off-by: Bhavin Sharma <bhavin.sharma@siliconsignals.io>


Your SoBs are odd... second patch has totally reversed path comparing to
this one. What do you want to express here?

> ---
>  .../bindings/power/supply/st,stc3117.yaml     | 81 +++++++++++++++++++
>  1 file changed, 81 insertions(+)




> +
> +  monitored-battery:
> +    description: |
> +      The fuel gauge uses the following battery properties:
> +      - charge-full-design-microamp-hours
> +      - voltage-min-design-microvolt
> +      - voltage-max-design-microvolt
> +
> +  sense-resistor:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: Current sense resistor in milliohms

phandle cannot be in milliohms... Anyway, use existing widely used
property: shunt-resistor-micro-ohms

> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - monitored-battery
> +  - sense-resistor
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      bat: battery {
> +        compatible = "simple-battery";
> +        charge-full-design-microamp-hours = <2600000>;
> +        voltage-min-design-microvolt = <3300000>;
> +        voltage-max-design-microvolt = <4250000>;
> +      };

Drop battery node, not needed for example.

> +
> +      battery@70 {
> +        compatible = "st,stc3117";
> +        reg = <0x70>;
> +        interrupt-parent = <&gpio0>;
> +        interrupts = <31 IRQ_TYPE_LEVEL_LOW>;

It does not look like you tested the bindings, at least after quick
look. Please run `make dt_binding_check` (see
Documentation/devicetree/bindings/writing-schema.rst for instructions).
Maybe you need to update your dtschema and yamllint.


Best regards,
Krzysztof
Rob Herring (Arm) Nov. 29, 2024, 12:16 p.m. UTC | #2
On Fri, 29 Nov 2024 17:10:45 +0530, Bhavin Sharma wrote:
> The STC3117 provides a simple fuel gauge via I2C.
> Add a DT schema to describe how to set it up in the device tree.
> 
> Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
> Signed-off-by: Bhavin Sharma <bhavin.sharma@siliconsignals.io>
> ---
>  .../bindings/power/supply/st,stc3117.yaml     | 81 +++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/power/supply/st,stc3117.yaml
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/power/supply/st,stc3117.yaml: properties:sense-resistor:maxItems: False schema does not allow 1
	hint: Scalar properties should not have array keywords
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
Error: Documentation/devicetree/bindings/power/supply/st,stc3117.example.dts:39.30-31 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.dtbs:129: Documentation/devicetree/bindings/power/supply/st,stc3117.example.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1442: dt_binding_check] Error 2
make: *** [Makefile:224: __sub-make] Error 2

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20241129114200.13351-2-bhavin.sharma@siliconsignals.io

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.