Re: [PATCH 1/2] dt-bindings: regulator: Add bindings for Richtek RT5739

From: ChiYuan Huang
Date: Thu Feb 16 2023 - 05:37:02 EST


On Thu, Feb 16, 2023 at 11:03:39AM +0100, Krzysztof Kozlowski wrote:
> On 16/02/2023 10:57, ChiYuan Huang wrote:
> > On Thu, Feb 16, 2023 at 10:12:15AM +0100, Krzysztof Kozlowski wrote:
> >> On 15/02/2023 03:00, cy_huang@xxxxxxxxxxx wrote:
> >>> From: ChiYuan Huang <cy_huang@xxxxxxxxxxx>
> >>>
> >>> Add the binding document for Richtek RT5739.
> >>
> >> Subject: drop second/last, redundant "bindings for". The "dt-bindings"
> >> prefix is already stating that these are bindings.
> >>
> > Then, refine it to "dt-bindings: regulator: Add Richtek RT5739 document"
>
> I propose also to drop "document" - it is also redundant. Can bindings
> be something else than document?
>
Yes, you'r right.
>
> >>>
> >>> Signed-off-by: ChiYuan Huang <cy_huang@xxxxxxxxxxx>
> >>> ---
> >>> .../bindings/regulator/richtek,rt5739.yaml | 80 ++++++++++++++++++++++
> >>> 1 file changed, 80 insertions(+)
> >>> create mode 100644 Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml b/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml
> >>> new file mode 100644
> >>> index 00000000..7dc4f78
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml
> >>> @@ -0,0 +1,80 @@
> >>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> >>> +%YAML 1.2
> >>> +---
> >>> +$id: http://devicetree.org/schemas/regulator/richtek,rt5739.yaml#
> >>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>> +
> >>> +title: Richtek RT5739 2.4MHz 3.5A Step-Down Converter
> >>> +
> >>> +maintainers:
> >>> + - ChiYuan Huang <cy_huang@xxxxxxxxxxx>
> >>> +
> >>> +description: |
> >>> + The RT5739 is a step-down switching voltage regulator that delivers a
> >>> + digitally programmable output from an input voltage supply of 2.5V to 5.5V.
> >>> + The output voltage is programmed through an I2C interface capable of
> >>> + operating up to 3.4MHz.
> >>> +
> >>> + Using a proprietary architecture with synchronous rectification, the RT5739
> >>> + is capable of delivering 3.5A continuously at over 80% efficiency,
> >>> + maintaining that efficiency at load current as low as 10mA. The regulator
> >>> + operates at a normal fixed frequency of 2.4MHz, which reduces the value of
> >>> + the external components.
> >>
> >> Can we drop the marketing from kernel? Last part of sentence is not
> >> related to this submission at all. The internal frequency also looks
> >> unrelated to the topic...
> >>
> > Okay, too much marketing text. I'll shorten it and simply describe the function or
> > voltage range only.
> >>> Additional output capacitance can be added to
> >>> + improve regulation during load transients without affecting stability.
> >>> +
> >>> +allOf:
> >>> + - $ref: regulator.yaml#
> >>> +
> >>> +properties:
> >>> + compatible:
> >>> + enum:
> >>> + - richtek,rt5739
> >>> +
> >>> + reg:
> >>> + maxItems: 1
> >>> +
> >>> + enable-gpios:
> >>> + maxItems: 1
> >>> +
> >>> + richtek,vsel-active-high:
> >>> + description: |
> >>> + If property is present, use the 'VSEL1' register group for buck control.
> >>> + Else, use the 'VSEL0' register group. This depends on external hardware
> >>> + 'VSEL' pin connecton.
> >>> + type: boolean
> >>> +
> >>> + regulator-allowed-modes:
> >>> + description: |
> >>> + buck allowed operating mode
> >>> + 0: Auto PFM/PWM mode
> >>> + 1: Forced PWM mode
> >>> + maxItems: 2
> >>> + items:
> >>> + enum: [0, 1]
> >>
> >> So you always require two items? Thus I wonder what's the point of
> >> having it in DT? To skip the property entirely if none of the modes are
> >> allowed?
> >>
> > Not always need two. So does it mean no need to describe the 'maxItems' and 'Items'.
>
> Your minItems is 2, so you always need two. If you accept one, the add
> minItems: 1.
>
https://elixir.bootlin.com/linux/v6.2-rc8/source/drivers/regulator/of_regulator.c#L198
It seems no need to limit the maxItems. Regulator core will call 'of_map_mode' to check the value.
Even the value is repeat.

And for minItems, 'regulator.yaml' already said it's uint32-array. Must be lager than zero, right?

So how about just keep 'items' and remove the 'maxItems'?
>
>
> Best regards,
> Krzysztof
>