[PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

Subsystems: hardware monitoring, open firmware and flattened device tree bindings, the rest

STALE975d

9 messages, 3 authors, 2024-02-17 · open the first message on its own page

[PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Naresh Solanki <hidden>
Date: 2024-02-14 09:25:15

Add properties for interrupt & regulator.
Also update example.

Signed-off-by: Naresh Solanki <redacted>

---
Changes in v2:
1. Remove TEST=..
2. Update regulator subnode property as vout0
3. Restore commented line in example
4. blank line after interrupts property in example.
---
 .../hwmon/pmbus/infineon,tda38640.yaml        | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
index ded1c115764b..a93b3f86ee87 100644
--- a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
+++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
@@ -30,6 +30,23 @@ properties:
       unconnected(has internal pull-down).
     type: boolean
 
+  interrupts:
+    maxItems: 1
+
+  regulators:
+    type: object
+    description:
+      list of regulators provided by this controller.
+
+    properties:
+      vout0:
+        $ref: /schemas/regulator/regulator.yaml#
+        type: object
+
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
 required:
   - compatible
   - reg
@@ -38,6 +55,7 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/interrupt-controller/irq.h>
     i2c {
         #address-cells = <1>;
         #size-cells = <0>;
@@ -45,5 +63,15 @@ examples:
         tda38640@40 {
             compatible = "infineon,tda38640";
             reg = <0x40>;
+
+            interrupt-parent = <&smb_pex_cpu0_event>;
+            interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+
+            regulators {
+                pvnn_main_cpu0: vout0 {
+                    regulator-name = "pvnn_main_cpu0";
+                    regulator-enable-ramp-delay = <200>;
+                };
+            };
         };
     };
base-commit: 7e90b5c295ec1e47c8ad865429f046970c549a66
-- 
2.42.0

Re: [PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Conor Dooley <conor@kernel.org>
Date: 2024-02-14 17:51:47

On Wed, Feb 14, 2024 at 02:55:03PM +0530, Naresh Solanki wrote:
Add properties for interrupt & regulator.
Also update example.
I feel like a broken record. Your patches need to explain _why_ you're
doing what you're doing. I can read the diff and see this, but I do not
know what the justification for it is.

/30 seconds later
I really am a broken record, to quote from v1:
| Feeling like a broken record, given I am leaving the same comments on
| multiple patches. The commit message needs to explain why you're doing
| something. I can read the diff and see what you did!

https://lore.kernel.org/all/20240126-fleshed-subdued-36bae813e2ba@spud/

The patch itself does look better than the v1, with one minor comment
below.

Thanks,
Conor.
quoted hunk
Signed-off-by: Naresh Solanki <redacted>

---
Changes in v2:
1. Remove TEST=..
2. Update regulator subnode property as vout0
3. Restore commented line in example
4. blank line after interrupts property in example.
---
 .../hwmon/pmbus/infineon,tda38640.yaml        | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
index ded1c115764b..a93b3f86ee87 100644
--- a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
+++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
@@ -30,6 +30,23 @@ properties:
       unconnected(has internal pull-down).
     type: boolean
 
+  interrupts:
+    maxItems: 1
+
+  regulators:
+    type: object
+    description:
+      list of regulators provided by this controller.
+
+    properties:
+      vout0:
Why "vout0" if there's only one output? Is it called that in the
documentation? I had a quick check but only saw it called "vout".
Are there other related devices that would have multiple regulators
that might end up sharing the binding?

Thanks,
Conor.
quoted hunk
+        $ref: /schemas/regulator/regulator.yaml#
+        type: object
+
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
 required:
   - compatible
   - reg
@@ -38,6 +55,7 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/interrupt-controller/irq.h>
     i2c {
         #address-cells = <1>;
         #size-cells = <0>;
@@ -45,5 +63,15 @@ examples:
         tda38640@40 {
             compatible = "infineon,tda38640";
             reg = <0x40>;
+
+            interrupt-parent = <&smb_pex_cpu0_event>;
+            interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+
+            regulators {
+                pvnn_main_cpu0: vout0 {
+                    regulator-name = "pvnn_main_cpu0";
+                    regulator-enable-ramp-delay = <200>;
+                };
+            };
         };
     };
base-commit: 7e90b5c295ec1e47c8ad865429f046970c549a66
-- 
2.42.0

Re: [PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Guenter Roeck <linux@roeck-us.net>
Date: 2024-02-14 18:48:55

On 2/14/24 09:51, Conor Dooley wrote:
On Wed, Feb 14, 2024 at 02:55:03PM +0530, Naresh Solanki wrote:
quoted
Add properties for interrupt & regulator.
Also update example.
I feel like a broken record. Your patches need to explain _why_ you're
doing what you're doing. I can read the diff and see this, but I do not
know what the justification for it is.

/30 seconds later
I really am a broken record, to quote from v1:
| Feeling like a broken record, given I am leaving the same comments on
| multiple patches. The commit message needs to explain why you're doing
| something. I can read the diff and see what you did!

https://lore.kernel.org/all/20240126-fleshed-subdued-36bae813e2ba@spud/

The patch itself does look better than the v1, with one minor comment
below.

Thanks,
Conor.
quoted
Signed-off-by: Naresh Solanki <redacted>

---
Changes in v2:
1. Remove TEST=..
2. Update regulator subnode property as vout0
3. Restore commented line in example
4. blank line after interrupts property in example.
---
  .../hwmon/pmbus/infineon,tda38640.yaml        | 28 +++++++++++++++++++
  1 file changed, 28 insertions(+)
diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
index ded1c115764b..a93b3f86ee87 100644
--- a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
+++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
@@ -30,6 +30,23 @@ properties:
        unconnected(has internal pull-down).
      type: boolean
  
+  interrupts:
+    maxItems: 1
+
+  regulators:
+    type: object
+    description:
+      list of regulators provided by this controller.
+
+    properties:
+      vout0:
Why "vout0" if there's only one output? Is it called that in the
documentation? I had a quick check but only saw it called "vout".
Are there other related devices that would have multiple regulators
that might end up sharing the binding?
Primarily because that is what the PMBus core generates for the driver
because no one including me was aware that this is unacceptable
for single-output drivers. We now have commit 88b5970e92d0 ("hwmon:
(pmbus/core) Add helper macro to define single pmbus regulator").
I guess we can update the tda38640 driver to use the new macro
to register vout instead of vout0.

Guenter

Re: [PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Conor Dooley <conor@kernel.org>
Date: 2024-02-14 19:55:31

On Wed, Feb 14, 2024 at 10:48:52AM -0800, Guenter Roeck wrote:
On 2/14/24 09:51, Conor Dooley wrote:
quoted
On Wed, Feb 14, 2024 at 02:55:03PM +0530, Naresh Solanki wrote:
quoted
Add properties for interrupt & regulator.
Also update example.
I feel like a broken record. Your patches need to explain _why_ you're
doing what you're doing. I can read the diff and see this, but I do not
know what the justification for it is.

/30 seconds later
I really am a broken record, to quote from v1:
| Feeling like a broken record, given I am leaving the same comments on
| multiple patches. The commit message needs to explain why you're doing
| something. I can read the diff and see what you did!

https://lore.kernel.org/all/20240126-fleshed-subdued-36bae813e2ba@spud/

The patch itself does look better than the v1, with one minor comment
below.

Thanks,
Conor.
quoted
Signed-off-by: Naresh Solanki <redacted>

---
Changes in v2:
1. Remove TEST=..
2. Update regulator subnode property as vout0
3. Restore commented line in example
4. blank line after interrupts property in example.
---
  .../hwmon/pmbus/infineon,tda38640.yaml        | 28 +++++++++++++++++++
  1 file changed, 28 insertions(+)
diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
index ded1c115764b..a93b3f86ee87 100644
--- a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
+++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml
@@ -30,6 +30,23 @@ properties:
        unconnected(has internal pull-down).
      type: boolean
+  interrupts:
+    maxItems: 1
+
+  regulators:
+    type: object
+    description:
+      list of regulators provided by this controller.
+
+    properties:
+      vout0:
Why "vout0" if there's only one output? Is it called that in the
documentation? I had a quick check but only saw it called "vout".
Are there other related devices that would have multiple regulators
that might end up sharing the binding?
Primarily because that is what the PMBus core generates for the driver
because no one including me was aware that this is unacceptable
for single-output drivers.
Is it unacceptable? If you're implying that I am saying it is, that's
not what I was doing here - I'm just wondering why it was chosen.
Numbering when there's only one seems odd, so I was just looking for the
rationale.
We now have commit 88b5970e92d0 ("hwmon:
(pmbus/core) Add helper macro to define single pmbus regulator").
I guess we can update the tda38640 driver to use the new macro
to register vout instead of vout0.

Re: [PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Guenter Roeck <linux@roeck-us.net>
Date: 2024-02-15 01:17:07

On 2/14/24 11:55, Conor Dooley wrote:
[ ... ]
quoted
quoted
Why "vout0" if there's only one output? Is it called that in the
documentation? I had a quick check but only saw it called "vout".
Are there other related devices that would have multiple regulators
that might end up sharing the binding?
Primarily because that is what the PMBus core generates for the driver
because no one including me was aware that this is unacceptable
for single-output drivers.
Is it unacceptable? If you're implying that I am saying it is, that's
not what I was doing here - I'm just wondering why it was chosen.
Numbering when there's only one seems odd, so I was just looking for the
rationale.
Given the tendency of corporate speak (aka "this was a good attempt" for
a complete screwup), and since this did come up before, I did interpret
it along that line. My apologies if that was not the idea.

Still, I really don't know how to resolve this for existing PMBus drivers
which do register "vout0" even if there is only a single output regulator.

Guenter

Re: [PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Conor Dooley <conor@kernel.org>
Date: 2024-02-15 11:48:42

On Wed, Feb 14, 2024 at 05:17:04PM -0800, Guenter Roeck wrote:
On 2/14/24 11:55, Conor Dooley wrote:
[ ... ]
quoted
quoted
quoted
Why "vout0" if there's only one output? Is it called that in the
documentation? I had a quick check but only saw it called "vout".
Are there other related devices that would have multiple regulators
that might end up sharing the binding?
Primarily because that is what the PMBus core generates for the driver
because no one including me was aware that this is unacceptable
for single-output drivers.
Is it unacceptable? If you're implying that I am saying it is, that's
not what I was doing here - I'm just wondering why it was chosen.
Numbering when there's only one seems odd, so I was just looking for the
rationale.
Given the tendency of corporate speak (aka "this was a good attempt" for
a complete screwup), and since this did come up before, I did interpret
it along that line. My apologies if that was not the idea.
I'm not gonna go and decree that "vout0" is unacceptable, if it was
called that in documentation that I had missed or was convention, I was
just gonna say "okay, that sounds reasonable to me".
Still, I really don't know how to resolve this for existing PMBus drivers
which do register "vout0" even if there is only a single output regulator.
I had a quick look at that series, none of the devices that I checked
out there seem to have documented regulators at all. Some of the devices
were only documented in trivial-devices.yaml. Relying on the naming of
undocumented child nodes is a bug in those drivers & I guess nobody cares
about dtbs_check complaints for those platforms. The example that was
linked in the other thread doesn't even use a valid compatible :(
	https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/aspeed/aspeed-bmc-delta-ahe50dc.dts?id=8d3dea210042f54b952b481838c1e7dfc4ec751d#n21
I guess it uses the i2c device ids to probe on that platform, or have
I missed something there?

Cheers,
Conor.

Re: [PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Guenter Roeck <linux@roeck-us.net>
Date: 2024-02-17 15:57:46

On 2/15/24 03:48, Conor Dooley wrote:
On Wed, Feb 14, 2024 at 05:17:04PM -0800, Guenter Roeck wrote:
quoted
On 2/14/24 11:55, Conor Dooley wrote:
[ ... ]
quoted
quoted
quoted
Why "vout0" if there's only one output? Is it called that in the
documentation? I had a quick check but only saw it called "vout".
Are there other related devices that would have multiple regulators
that might end up sharing the binding?
Primarily because that is what the PMBus core generates for the driver
because no one including me was aware that this is unacceptable
for single-output drivers.
Is it unacceptable? If you're implying that I am saying it is, that's
not what I was doing here - I'm just wondering why it was chosen.
Numbering when there's only one seems odd, so I was just looking for the
rationale.
Given the tendency of corporate speak (aka "this was a good attempt" for
a complete screwup), and since this did come up before, I did interpret
it along that line. My apologies if that was not the idea.
I'm not gonna go and decree that "vout0" is unacceptable, if it was
called that in documentation that I had missed or was convention, I was
just gonna say "okay, that sounds reasonable to me".
"convention" only if lack of awareness how regulators are supposed to be named
is a convention.
quoted
Still, I really don't know how to resolve this for existing PMBus drivers
which do register "vout0" even if there is only a single output regulator.
I had a quick look at that series, none of the devices that I checked
out there seem to have documented regulators at all. Some of the devices
were only documented in trivial-devices.yaml. Relying on the naming of
undocumented child nodes is a bug in those drivers & I guess nobody cares
about dtbs_check complaints for those platforms. The example that was
linked in the other thread doesn't even use a valid compatible :(
	https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/aspeed/aspeed-bmc-delta-ahe50dc.dts?id=8d3dea210042f54b952b481838c1e7dfc4ec751d#n21
I guess it uses the i2c device ids to probe on that platform, or have
I missed something there?
I think that is correct. If I recall correctly, the I2C subsystem no longer
searches for compatible drivers by only looking at the device id in the
compatible node, so I guess one has to list "lm25066" instead of "ti,lm25066"
as compatible to get a match in the i2c subsystem. That is of course
completely wrong.

Guenter

Re: [PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Conor Dooley <conor@kernel.org>
Date: 2024-02-17 20:30:07

On Sat, Feb 17, 2024 at 07:57:43AM -0800, Guenter Roeck wrote:
On 2/15/24 03:48, Conor Dooley wrote:
quoted
On Wed, Feb 14, 2024 at 05:17:04PM -0800, Guenter Roeck wrote:
quoted
On 2/14/24 11:55, Conor Dooley wrote:
[ ... ]
quoted
quoted
quoted
Why "vout0" if there's only one output? Is it called that in the
documentation? I had a quick check but only saw it called "vout".
Are there other related devices that would have multiple regulators
that might end up sharing the binding?
Primarily because that is what the PMBus core generates for the driver
because no one including me was aware that this is unacceptable
for single-output drivers.
Is it unacceptable? If you're implying that I am saying it is, that's
not what I was doing here - I'm just wondering why it was chosen.
Numbering when there's only one seems odd, so I was just looking for the
rationale.
Given the tendency of corporate speak (aka "this was a good attempt" for
a complete screwup), and since this did come up before, I did interpret
it along that line. My apologies if that was not the idea.
I'm not gonna go and decree that "vout0" is unacceptable, if it was
called that in documentation that I had missed or was convention, I was
just gonna say "okay, that sounds reasonable to me".
"convention" only if lack of awareness how regulators are supposed to be named
is a convention.
They're "supposed" to be named whatever the binding says they are named,
but as we've discovered none of these devices actually have bindings
that allow regulators in the first place. I think they should be called
whatever they're called in the documentation for the device, which in
this case was "vout".
quoted
quoted
Still, I really don't know how to resolve this for existing PMBus drivers
which do register "vout0" even if there is only a single output regulator.
I had a quick look at that series, none of the devices that I checked
out there seem to have documented regulators at all. Some of the devices
were only documented in trivial-devices.yaml. Relying on the naming of
undocumented child nodes is a bug in those drivers & I guess nobody cares
about dtbs_check complaints for those platforms. The example that was
linked in the other thread doesn't even use a valid compatible :(
	https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/aspeed/aspeed-bmc-delta-ahe50dc.dts?id=8d3dea210042f54b952b481838c1e7dfc4ec751d#n21
I guess it uses the i2c device ids to probe on that platform, or have
I missed something there?
I think that is correct. If I recall correctly, the I2C subsystem no longer
searches for compatible drivers by only looking at the device id in the
compatible node, so I guess one has to list "lm25066" instead of "ti,lm25066"
as compatible to get a match in the i2c subsystem. That is of course
completely wrong.
If the driver is probing based on i2c_device_id matching, is it correct to
use DT to probe the regulators? (I don't know, that's not some sort of
rhetorical question).

Re: [PATCH v2] dt-bindings: hwmon: tda38640: Add interrupt & regulator properties

From: Guenter Roeck <linux@roeck-us.net>
Date: 2024-02-17 21:52:16

On 2/17/24 12:30, Conor Dooley wrote:
On Sat, Feb 17, 2024 at 07:57:43AM -0800, Guenter Roeck wrote:
quoted
On 2/15/24 03:48, Conor Dooley wrote:
quoted
On Wed, Feb 14, 2024 at 05:17:04PM -0800, Guenter Roeck wrote:
quoted
On 2/14/24 11:55, Conor Dooley wrote:
[ ... ]
quoted
quoted
quoted
Why "vout0" if there's only one output? Is it called that in the
documentation? I had a quick check but only saw it called "vout".
Are there other related devices that would have multiple regulators
that might end up sharing the binding?
Primarily because that is what the PMBus core generates for the driver
because no one including me was aware that this is unacceptable
for single-output drivers.
Is it unacceptable? If you're implying that I am saying it is, that's
not what I was doing here - I'm just wondering why it was chosen.
Numbering when there's only one seems odd, so I was just looking for the
rationale.
Given the tendency of corporate speak (aka "this was a good attempt" for
a complete screwup), and since this did come up before, I did interpret
it along that line. My apologies if that was not the idea.
I'm not gonna go and decree that "vout0" is unacceptable, if it was
called that in documentation that I had missed or was convention, I was
just gonna say "okay, that sounds reasonable to me".
"convention" only if lack of awareness how regulators are supposed to be named
is a convention.
They're "supposed" to be named whatever the binding says they are named,
but as we've discovered none of these devices actually have bindings
that allow regulators in the first place. I think they should be called
whatever they're called in the documentation for the device, which in
this case was "vout".
I would agree. I'd even submit a yaml file extension for the affected drivers
to address that, but I realize that I am notoriously bad with doing that,
so I won't even try.
quoted
quoted
quoted
Still, I really don't know how to resolve this for existing PMBus drivers
which do register "vout0" even if there is only a single output regulator.
I had a quick look at that series, none of the devices that I checked
out there seem to have documented regulators at all. Some of the devices
were only documented in trivial-devices.yaml. Relying on the naming of
undocumented child nodes is a bug in those drivers & I guess nobody cares
about dtbs_check complaints for those platforms. The example that was
linked in the other thread doesn't even use a valid compatible :(
	https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/aspeed/aspeed-bmc-delta-ahe50dc.dts?id=8d3dea210042f54b952b481838c1e7dfc4ec751d#n21
I guess it uses the i2c device ids to probe on that platform, or have
I missed something there?
I think that is correct. If I recall correctly, the I2C subsystem no longer
searches for compatible drivers by only looking at the device id in the
compatible node, so I guess one has to list "lm25066" instead of "ti,lm25066"
as compatible to get a match in the i2c subsystem. That is of course
completely wrong.
If the driver is probing based on i2c_device_id matching, is it correct to
use DT to probe the regulators? (I don't know, that's not some sort of
rhetorical question).
Looking into the lm25066 driver, it actually does support the "ti,lm25066"
compatible. Given that, I don't know why the dts file doesn't use it, especially
since the dts file was created after the compatible entry was added to the
lm25066 driver.

Guenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help