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
diff --git a/Documentation/devicetree/bindings/power/supply/st,stc3117.yaml b/Documentation/devicetree/bindings/power/supply/st,stc3117.yaml
new file mode 100644
index 000000000000..274e57be4bc6
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/st,stc3117.yaml
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/supply/st,stc3117.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STC3117 Fuel Gauge Unit Power Supply
+
+maintainers:
+ - Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
+ - Bhavin Sharma <bhavin.sharma@siliconsignals.io>
+
+description: |
+ The STC3117 includes the STMicroelectronics OptimGauge algorithm.
+ It provides accurate battery state-of-charge (SOC) monitoring, tracks
+ battery parameter changes with operation conditions, temperature,
+ and aging, and allows the application to get a battery state-of-health
+ (SOH) indication.
+
+ An alarm output signals low SOC or low voltage conditions and also
+ indicates fault conditions like a missing or swapped battery.
+
+ Datasheet is available at
+ https://www.st.com/resource/en/datasheet/stc3117.pdf
+
+allOf:
+ - $ref: power-supply.yaml#
+
+properties:
+ compatible:
+ enum:
+ - st,stc3117
+
+ reg:
+ maxItems: 1
+
+ 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
+ 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>;
+ };
+
+ battery@70 {
+ compatible = "st,stc3117";
+ reg = <0x70>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
+ monitored-battery = <&bat>;
+ sense-resistor = <10>;
+ };
+ };
--
2.43.0
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.
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
© 2016 - 2026 Red Hat, Inc.