Re: [PATCH 1/6] dt-bindings: power: supply: sgm41542: document sgm41542

Chris Morgan
2026-04-28T14:09:45Z

On Tue, Apr 28, 2026 at 09:47:00AM +0200, Krzysztof Kozlowski wrote:
> On Mon, Apr 27, 2026 at 12:09:09PM -0500, Chris Morgan wrote:
> > From: Chris Morgan <macromorgan@hotmail.com>
> >
> > Document the SG Micro sgm41542 battery charger/boost converter.
> >
> > Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> > ---
> > .../supply/sgmicro,sgm41542-charger.yaml | 99 +++++++++++++++++++
> > 1 file changed, 99 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/power/supply/sgmicro,sgm41542-charger.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/power/supply/sgmicro,sgm41542-charger.yaml b/Documentation/devicetree/bindings/power/supply/sgmicro,sgm41542-charger.yaml
> > new file mode 100644
> > index 000000000000..3e5041e5b551
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/power/supply/sgmicro,sgm41542-charger.yaml
>
> Filename must match compatible.

Acknowledged.

>
> > @@ -0,0 +1,99 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/power/supply/sgmicro,sgm41542-charger.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: SGM41542 Battery Charger
> > +
> > +description: |
>
> Do not need '|' unless you need to preserve formatting.
>

Will fix.

> > + The SGMicro SGM41542 is a single cell battery charger/boost controller.
> > +
> > +maintainers:
> > + - Chris Morgan <macromorgan@hotmail.com>
> > + - Xu Shengfei <xsf@rock-chips.com>
> > +
> > +properties:
> > + compatible:
> > + const: sgmicro,sgm41542
> > +
> > + input-current-limit-microamp:
>
> Missing vendor prefix.
>

This *appears* to be a standard value (perhaps not formally, but in use by
enough devices to suggest a defacto standard), which is why I did not use
the vendor prefix here. Do I need to add that for this one?

> > + description:
> > + Optional value to clamp the maximum input current limit to for
> > + the device. If omitted, the default value for the hardware will
> > + be used (2400000).
> > + minimum: 100000
> > + maximum: 3800000
> > +
> > + input-voltage-limit-microvolt:
> > + description:
> > + Optional value to clamp the maximum input voltage limit to for
> > + the device. If omitted, the default value for the hardware will
> > + be used (4500000).
> > + minimum: 3900000
> > + maximum: 12000000
> > +
> > + interrupts:
> > + maxItems: 1
> > +
> > + monitored-battery:
>
> You miss definition of this property. I guess this is power supply, so
> reference proper schema for power supplies. Look at other bindings to
> for some example code.

I'll look at this some more, I might have a few more questions. But I will
make the changes requested.

>
> > + description: |
> > + A phandle to a monitored battery node. Values for the following
> > + are used by the driver and if not present will result in default
> > + values being applied:
> > + constant-charge-current-max-microamp
> > + constant-charge-voltage-max-microvolt
> > + charge-term-current-microamp
> > + precharge-current-microamp
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + regulators:
>
> No need for regulators node, just define here otg-vbus directly. But
> honestly, your example is incomplete or you defined something implied by
> the compatible. If you have a fixed 5V regulator, what is the point of
> defining it in the DT?

The regulator can be adjusted within a range around 5V, and is referenced
by the USB subsystem. Should I still omit it from the device tree or instead
define the min and max values?

>
> > + type: object
> > + properties:
> > + otg-vbus:
> > + type: object
> > + description: OTG boost regulator
> > + $ref: /schemas/regulator/regulator.yaml
> > + unevaluatedProperties: false
> > + additionalProperties: false
> > +
> > +required:
> > + - compatible
> > + - reg
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + battery: battery {
> > + compatible = "simple-battery";
> > + constant-charge-current-max-microamp = <10000000>;
> > + constant-charge-voltage-max-microvolt = <4350000>;
> > + precharge-current-microamp = <180000>;
> > + charge-term-current-microamp = <300000>;
> > + };
> > + #include <dt-bindings/gpio/gpio.h>
>
> Drop this one

Will do.

>
> > + #include <dt-bindings/interrupt-controller/irq.h>
> > + i2c {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + charger@3b {
> > + compatible = "sgmicro,sgm41542";
> > + reg = <0x3b>;
> > + input-current-limit-microamp = <3000000>;
> > + input-voltage-limit-microvolt = <4500000>;
> > + interrupt-parent = <&gpio0>;
> > + interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
> > + monitored-battery = <&battery>;
> > +
> > + regulators {
> > + otg-vbus {
> > + regulator-max-microvolt = <5000000>;
> > + regulator-min-microvolt = <5000000>;
> > + };
> > + };
> > + };
> > + };
> > --
> > 2.43.0
> >

Thank you for your valuable feedback,
Chris