From: Julien Panis <jpanis@baylibre.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
lee@kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, corbet@lwn.net, arnd@arndb.de,
gregkh@linuxfoundation.org, derek.kiernan@xilinx.com,
dragan.cvetic@xilinx.com
Cc: eric.auger@redhat.com, jgg@ziepe.ca, razor@blackwall.org,
stephen@networkplumber.org, davem@davemloft.net,
christian.koenig@amd.com, contact@emersion.fr,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, sterzik@ti.com, u-kumar1@ti.com,
eblanc@baylibre.com, jneanne@baylibre.com
Subject: Re: [PATCH v4 1/4] dt-bindings: mfd: Add TI TPS6594 PMIC
Date: Tue, 28 Mar 2023 12:45:37 +0200 [thread overview]
Message-ID: <75f0a18d-aed9-8610-2925-4e604b4b0241@baylibre.com> (raw)
In-Reply-To: <a0c18c3a-4f9e-f491-582f-8d3ca56ec26f@linaro.org>
On 3/28/23 08:51, Krzysztof Kozlowski wrote:
> On 27/03/2023 17:40, Julien Panis wrote:
>> TPS6594 is a Power Management IC which provides regulators and others
>> features like GPIOs, RTC, watchdog, ESMs (Error Signal Monitor), and
>> PFSM (Pre-configurable Finite State Machine) managing the state of the
>> device.
>> TPS6594 is the super-set device while TPS6593 and LP8764X are derivatives.
>>
>> Signed-off-by: Julien Panis <jpanis@baylibre.com>
>> ---
>> .../devicetree/bindings/mfd/ti,tps6594.yaml | 231 ++++++++++++++++++
>> 1 file changed, 231 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/mfd/ti,tps6594.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/mfd/ti,tps6594.yaml b/Documentation/devicetree/bindings/mfd/ti,tps6594.yaml
>> new file mode 100644
>> index 000000000000..4498e6361b34
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/mfd/ti,tps6594.yaml
>> @@ -0,0 +1,231 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/mfd/ti,tps6594.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: TI TPS6594 Power Management Integrated Circuit
>> +
>> +maintainers:
>> + - Julien Panis <jpanis@baylibre.com>
>> +
>> +description:
>> + TPS6594 is a Power Management IC which provides regulators and others
>> + features like GPIOs, RTC, watchdog, ESMs (Error Signal Monitor), and
>> + PFSM (Pre-configurable Finite State Machine) managing the state of the device.
>> + TPS6594 is the super-set device while TPS6593 and LP8764X are derivatives.
> LP8764X? Compatible says LP8764.
>
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - ti,lp8764
> It's confusing. If x was wildcard, didn't you remove part of model name?
OK, I will remove 'X' from model name in v5.
>
>
>> + - ti,tps6593
>> + - ti,tps6594
>> +
>> + reg:
>> + description: I2C slave address or SPI chip select number.
>> + maxItems: 1
>> +
>> + ti,primary-pmic:
>> + type: boolean
>> + description: |
>> + Identify the primary PMIC on SPMI bus.
>> + A multi-PMIC synchronization scheme is implemented in the PMIC device
>> + to synchronize the power state changes with other PMIC devices. This is
>> + accomplished through a SPMI bus: the primary PMIC is the controller
>> + device on the SPMI bus, and the secondary PMICs are the target devices
>> + on the SPMI bus.
>> +
>> + system-power-controller: true
>> +
>> + gpio-controller: true
>> +
>> + '#gpio-cells':
>> + const: 2
>> + description: |
>> + The first cell is the pin number, the second cell is used to specify flags.
>> + See ../gpio/gpio.txt for more information.
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + ti,multi-phase-id:
>> + description: |
>> + Describes buck multi-phase configuration, if any. For instance, XY id means
>> + that outputs of buck converters X and Y are combined in multi-phase mode.
>> + $ref: /schemas/types.yaml#/definitions/uint32-array
>> + oneOf:
>> + - items:
>> + - const: 12
>> + - items:
>> + - const: 34
>> + - items:
>> + - const: 12
>> + - const: 34
>> + - items:
>> + - const: 123
>> + - items:
>> + - const: 1234
>> +
>> + regulators:
>> + type: object
>> + description: List of regulators provided by this controller.
>> +
>> + patternProperties:
>> + "^buck([1-5]|12|34|123|1234)$":
> Why do you need ti,multi-phase-id property at all? Having buck123
> implies ti,multi-phase-id=123.
I will speak about that with Jerome Neanne (cc of this mail) who uses
this multiphase property for the regulator driver.
We will consider removing the property, which looks redundant indeed.
>> + type: object
>> + $ref: /schemas/regulator/regulator.yaml#
>> +
>> + unevaluatedProperties: false
>> +
>> + "^ldo[1-4]$":
>> + type: object
>> + $ref: /schemas/regulator/regulator.yaml#
>> +
>> + unevaluatedProperties: false
>> +
>> + allOf:
>> + - if:
>> + required:
>> + - buck12
>> + then:
>> + properties:
>> + buck123: false
>> + buck1234: false
>> + - if:
>> + required:
>> + - buck123
>> + then:
>> + properties:
>> + buck34: false
>> + - if:
>> + required:
>> + - buck1234
>> + then:
>> + properties:
>> + buck34: false
>> +
>> + additionalProperties: false
>> +
>> + rtc:
>> + type: object
>> + description: RTC provided by this controller.
>> + $ref: /schemas/rtc/rtc.yaml#
> I doubt that you can have here any RTC and any watchdog (below). This
> should be specific binding instead. Or list of compatibles if you have 3
> or more possible bindings.
>
> Additionally, judging by your DTS you do not have any resources in rtc
> and watchdog, so these should not be nodes by themself in such case.
It seems that I can't figure out what you and Rob mean by saying that
"binding must be complete" and that "RTC and watchdog may or may not
need binding changes".
What does "specific binding" mean ? Should we add some specific property
for RTC/WDG provided by the PMIC ? Should we write another yaml for both
of them ? Why shouldn't they use the generic rtc/watchdog yaml ? I don't
understand why they would need some "binding changes". Any example
I could refer to ? (I might have not looked at the relevant ones for my case
before sending this v4)
>
>> +
>> + watchdog:
>> + type: object
>> + description: Watchdog provided by this controller.
>> + $ref: /schemas/watchdog/watchdog.yaml#
>> +
>> +patternProperties:
>> + "^buck([1-5]|12|34|123|1234)-supply$":
>> + description: Input supply phandle for each buck.
>> +
>> + "^ldo[1-4]-supply$":
>> + description: Input supply phandle for each ldo.
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> + i2c {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + tps6593: pmic@48 {
>> + compatible = "ti,tps6593";
>> + reg = <0x48>;
>> + ti,primary-pmic;
>> + system-power-controller;
>> +
>> + gpio-controller;
>> + #gpio-cells = <2>;
>> +
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pmic_irq_pins_default>;
>> + interrupt-parent = <&mcu_gpio0>;
>> + interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
>> +
>> + ti,multi-phase-id = <123>;
>> +
>> + buck123-supply = <&vcc_3v3_sys>;
>> + buck4-supply = <&vcc_3v3_sys>;
>> + buck5-supply = <&vcc_3v3_sys>;
>> + ldo1-supply = <&vcc_3v3_sys>;
>> + ldo2-supply = <&vcc_3v3_sys>;
>> + ldo3-supply = <&buck5>;
>> + ldo4-supply = <&vcc_3v3_sys>;
>> +
>> + regulators {
>> + buck123: buck123 {
>> + regulator-name = "vcc_core";
>> + regulator-min-microvolt = <750000>;
>> + regulator-max-microvolt = <850000>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> +
>> + buck4: buck4 {
>> + regulator-name = "vcc_1v1";
>> + regulator-min-microvolt = <1100000>;
>> + regulator-max-microvolt = <1100000>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> +
>> + buck5: buck5 {
>> + regulator-name = "vcc_1v8_sys";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <1800000>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> +
>> + ldo1: ldo1 {
>> + regulator-name = "vddshv5_sdio";
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> +
>> + ldo2: ldo2 {
>> + regulator-name = "vpp_1v8";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <1800000>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> +
>> + ldo3: ldo3 {
>> + regulator-name = "vcc_0v85";
>> + regulator-min-microvolt = <850000>;
>> + regulator-max-microvolt = <850000>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> +
>> + ldo4: ldo4 {
>> + regulator-name = "vdda_1v8";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <1800000>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> + };
>> +
>> + rtc: rtc {
>> + wakeup-source;
> No. We do not create nodes for single property.
>
>
>> + };
>> +
>> + watchdog: watchdog {
>> + timeout-sec = <10>;
> Same problem.
>
>
>
> Best regards,
> Krzysztof
>
next prev parent reply other threads:[~2023-03-28 10:45 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-27 15:40 [PATCH v4 0/4] TI TPS6594 PMIC support (Core, ESM, PFSM) Julien Panis
2023-03-27 15:40 ` [PATCH v4 1/4] dt-bindings: mfd: Add TI TPS6594 PMIC Julien Panis
2023-03-28 6:51 ` Krzysztof Kozlowski
2023-03-28 10:45 ` Julien Panis [this message]
2023-03-28 11:21 ` Krzysztof Kozlowski
2023-03-28 14:20 ` Julien Panis
2023-03-28 14:44 ` Krzysztof Kozlowski
2023-03-27 15:40 ` [PATCH v4 2/4] mfd: tps6594: Add driver for " Julien Panis
2023-03-29 14:50 ` Lee Jones
2023-03-27 15:41 ` [PATCH v4 3/4] misc: tps6594-esm: Add driver for TI TPS6594 ESM Julien Panis
2023-03-27 15:41 ` [PATCH v4 4/4] misc: tps6594-pfsm: Add driver for TI TPS6594 PFSM Julien Panis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=75f0a18d-aed9-8610-2925-4e604b4b0241@baylibre.com \
--to=jpanis@baylibre.com \
--cc=arnd@arndb.de \
--cc=christian.koenig@amd.com \
--cc=contact@emersion.fr \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=derek.kiernan@xilinx.com \
--cc=devicetree@vger.kernel.org \
--cc=dragan.cvetic@xilinx.com \
--cc=eblanc@baylibre.com \
--cc=eric.auger@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=jgg@ziepe.ca \
--cc=jneanne@baylibre.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=lee@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=razor@blackwall.org \
--cc=robh+dt@kernel.org \
--cc=stephen@networkplumber.org \
--cc=sterzik@ti.com \
--cc=u-kumar1@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®