* hwmon: Add ir38064 variants and expose devicetree probing
@ 2021-12-13 14:28 arthur
2021-12-13 14:28 ` [PATCH v2 1/3] hwmon/ir38064: Add support for IR38060, IR38164 IR38263 arthur
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: arthur @ 2021-12-13 14:28 UTC (permalink / raw)
To: linux-hwmon; +Cc: patrick.rudolph
Hi,
these patches add support for similar hardware to the Infineon IR38064
driver.
The following features are added:
- a .of_match_table is provided to allow device tree probing
- add an option to expose a regulator, guarded by a Kconfig parameter
Changes since v1:
- use of_match_ptr() when providing .of_match_table
- Remove unused PMBUS_HAVE_VOUT_COMMAND
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/3] hwmon/ir38064: Add support for IR38060, IR38164 IR38263
2021-12-13 14:28 hwmon: Add ir38064 variants and expose devicetree probing arthur
@ 2021-12-13 14:28 ` arthur
2021-12-17 16:10 ` Guenter Roeck
2021-12-13 14:28 ` [PATCH v2 2/3] pmbus/ir38064: Add of_match_table arthur
2021-12-13 14:28 ` [PATCH v2 3/3] ir38064: Expose a regulator arthur
2 siblings, 1 reply; 5+ messages in thread
From: arthur @ 2021-12-13 14:28 UTC (permalink / raw)
To: linux-hwmon; +Cc: patrick.rudolph, Arthur Heymans
From: Patrick Rudolph <patrick.rudolph@9elements.com>
The IR38060, IR38164 and IR38263 can be supported using this driver.
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Arthur Heymans <arthur.heymans@9elements.com>
---
.../devicetree/bindings/trivial-devices.yaml | 6 ++++
Documentation/hwmon/ir38064.rst | 28 +++++++++++++++++--
drivers/hwmon/pmbus/Kconfig | 4 +--
drivers/hwmon/pmbus/ir38064.c | 5 +++-
4 files changed, 38 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 791079021f1b..38c3264b3dcb 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -121,8 +121,14 @@ properties:
- ibm,cffps2
# Infineon IR36021 digital POL buck controller
- infineon,ir36021
+ # Infineon IR38060 Voltage Regulator
+ - infineon,ir38060
# Infineon IR38064 Voltage Regulator
- infineon,ir38064
+ # Infineon IR38164 Voltage Regulator
+ - infineon,ir38164
+ # Infineon IR38263 Voltage Regulator
+ - infineon,ir38263
# Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
- infineon,slb9635tt
# Infineon SLB9645 I2C TPM (new protocol, max 400khz)
diff --git a/Documentation/hwmon/ir38064.rst b/Documentation/hwmon/ir38064.rst
index c455d755a267..e1148f21ea2a 100644
--- a/Documentation/hwmon/ir38064.rst
+++ b/Documentation/hwmon/ir38064.rst
@@ -3,14 +3,38 @@ Kernel driver ir38064
Supported chips:
+ * Infineon IR38060
+
+ Prefix: 'IR38060'
+ Addresses scanned: -
+
+ Datasheet: Publicly available at the Infineon website
+ https://www.infineon.com/dgdl/Infineon-IR38060M-DS-v03_16-EN.pdf?fileId=5546d4625c167129015c3291ea9a4cee
+
* Infineon IR38064
Prefix: 'ir38064'
Addresses scanned: -
- Datasheet: Publicly available at the Infineon webiste
+ Datasheet: Publicly available at the Infineon website
https://www.infineon.com/dgdl/Infineon-IR38064MTRPBF-DS-v03_07-EN.pdf?fileId=5546d462584d1d4a0158db0d9efb67ca
+ * Infineon IR38164
+
+ Prefix: 'ir38164'
+ Addresses scanned: -
+
+ Datasheet: Publicly available at the Infineon website
+ https://www.infineon.com/dgdl/Infineon-IR38164M-DS-v02_02-EN.pdf?fileId=5546d462636cc8fb01640046efea1248
+
+ * Infineon ir38263
+
+ Prefix: 'ir38263'
+ Addresses scanned: -
+
+ Datasheet: Publicly available at the Infineon website
+ https://www.infineon.com/dgdl/Infineon-IR38263M-DataSheet-v03_05-EN.pdf?fileId=5546d4625b62cd8a015bcf81f90a6e52
+
Authors:
- Maxim Sloyko <maxims@google.com>
- Patrick Venture <venture@google.com>
@@ -18,7 +42,7 @@ Authors:
Description
-----------
-IR38064 is a Single-input Voltage, Synchronous Buck Regulator, DC-DC Converter.
+IR38x6x are a Single-input Voltage, Synchronous Buck Regulator, DC-DC Converter.
Usage Notes
-----------
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index ffb609cee3a4..d2b178a902f0 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -123,10 +123,10 @@ config SENSORS_IR36021
be called ir36021.
config SENSORS_IR38064
- tristate "Infineon IR38064"
+ tristate "Infineon IR38064 and compatibles"
help
If you say yes here you get hardware monitoring support for Infineon
- IR38064.
+ IR38060, IR38064, IR38164 and IR38263.
This driver can also be built as a module. If so, the module will
be called ir38064.
diff --git a/drivers/hwmon/pmbus/ir38064.c b/drivers/hwmon/pmbus/ir38064.c
index 1fb7f1248639..4e91d3e54a4a 100644
--- a/drivers/hwmon/pmbus/ir38064.c
+++ b/drivers/hwmon/pmbus/ir38064.c
@@ -41,7 +41,10 @@ static int ir38064_probe(struct i2c_client *client)
}
static const struct i2c_device_id ir38064_id[] = {
+ {"ir38060", 0},
{"ir38064", 0},
+ {"ir38164", 0},
+ {"ir38263", 0},
{}
};
@@ -59,6 +62,6 @@ static struct i2c_driver ir38064_driver = {
module_i2c_driver(ir38064_driver);
MODULE_AUTHOR("Maxim Sloyko <maxims@google.com>");
-MODULE_DESCRIPTION("PMBus driver for Infineon IR38064");
+MODULE_DESCRIPTION("PMBus driver for Infineon IR38064 and comaptible chips");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(PMBUS);
--
2.33.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/3] pmbus/ir38064: Add of_match_table
2021-12-13 14:28 hwmon: Add ir38064 variants and expose devicetree probing arthur
2021-12-13 14:28 ` [PATCH v2 1/3] hwmon/ir38064: Add support for IR38060, IR38164 IR38263 arthur
@ 2021-12-13 14:28 ` arthur
2021-12-13 14:28 ` [PATCH v2 3/3] ir38064: Expose a regulator arthur
2 siblings, 0 replies; 5+ messages in thread
From: arthur @ 2021-12-13 14:28 UTC (permalink / raw)
To: linux-hwmon; +Cc: patrick.rudolph, Arthur Heymans
From: Arthur Heymans <arthur.heymans@9elements.com>
Add the missing of_match_table to allow device tree probing.
Signed-off-by: Arthur Heymans <arthur.heymans@9elements.com>
---
drivers/hwmon/pmbus/ir38064.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/hwmon/pmbus/ir38064.c b/drivers/hwmon/pmbus/ir38064.c
index 4e91d3e54a4a..4211de048069 100644
--- a/drivers/hwmon/pmbus/ir38064.c
+++ b/drivers/hwmon/pmbus/ir38064.c
@@ -16,6 +16,7 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/of_device.h>
#include "pmbus.h"
static struct pmbus_driver_info ir38064_info = {
@@ -50,10 +51,21 @@ static const struct i2c_device_id ir38064_id[] = {
MODULE_DEVICE_TABLE(i2c, ir38064_id);
+static const struct of_device_id ir38064_of_match[] = {
+ { .compatible = "infineon,ir38060" },
+ { .compatible = "infineon,ir38064" },
+ { .compatible = "infineon,ir38164" },
+ { .compatible = "infineon,ir38263" },
+ {}
+};
+
+MODULE_DEVICE_TABLE(of, ir38064_of_match);
+
/* This is the driver that will be inserted */
static struct i2c_driver ir38064_driver = {
.driver = {
.name = "ir38064",
+ .of_match_table = of_match_ptr(ir38064_of_match),
},
.probe_new = ir38064_probe,
.id_table = ir38064_id,
--
2.33.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 3/3] ir38064: Expose a regulator
2021-12-13 14:28 hwmon: Add ir38064 variants and expose devicetree probing arthur
2021-12-13 14:28 ` [PATCH v2 1/3] hwmon/ir38064: Add support for IR38060, IR38164 IR38263 arthur
2021-12-13 14:28 ` [PATCH v2 2/3] pmbus/ir38064: Add of_match_table arthur
@ 2021-12-13 14:28 ` arthur
2 siblings, 0 replies; 5+ messages in thread
From: arthur @ 2021-12-13 14:28 UTC (permalink / raw)
To: linux-hwmon; +Cc: patrick.rudolph
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
---
drivers/hwmon/pmbus/Kconfig | 6 ++++++
drivers/hwmon/pmbus/ir38064.c | 11 +++++++++++
2 files changed, 17 insertions(+)
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index d2b178a902f0..fdfe1cd54799 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -131,6 +131,12 @@ config SENSORS_IR38064
This driver can also be built as a module. If so, the module will
be called ir38064.
+config SENSORS_IR38064_REGULATOR
+ bool "Regulator support for IR38064 and compatibles"
+ depends on SENSORS_IR38064 && REGULATOR
+ help
+ Uses the IR38064 or compatible as regulator.
+
config SENSORS_IRPS5401
tristate "Infineon IRPS5401"
help
diff --git a/drivers/hwmon/pmbus/ir38064.c b/drivers/hwmon/pmbus/ir38064.c
index 4211de048069..07bdbb16f216 100644
--- a/drivers/hwmon/pmbus/ir38064.c
+++ b/drivers/hwmon/pmbus/ir38064.c
@@ -17,8 +17,15 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of_device.h>
+#include <linux/regulator/driver.h>
#include "pmbus.h"
+#if IS_ENABLED(CONFIG_SENSORS_IR38064_REGULATOR)
+static const struct regulator_desc ir38064_reg_desc[] = {
+ PMBUS_REGULATOR("vout", 0),
+};
+#endif /* CONFIG_SENSORS_IR38064_REGULATOR */
+
static struct pmbus_driver_info ir38064_info = {
.pages = 1,
.format[PSC_VOLTAGE_IN] = linear,
@@ -34,6 +41,10 @@ static struct pmbus_driver_info ir38064_info = {
| PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT
| PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT
| PMBUS_HAVE_POUT,
+#if IS_ENABLED(CONFIG_SENSORS_IR38064_REGULATOR)
+ .num_regulators = 1,
+ .reg_desc = ir38064_reg_desc,
+#endif
};
static int ir38064_probe(struct i2c_client *client)
--
2.33.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/3] hwmon/ir38064: Add support for IR38060, IR38164 IR38263
2021-12-13 14:28 ` [PATCH v2 1/3] hwmon/ir38064: Add support for IR38060, IR38164 IR38263 arthur
@ 2021-12-17 16:10 ` Guenter Roeck
0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2021-12-17 16:10 UTC (permalink / raw)
To: arthur; +Cc: linux-hwmon, patrick.rudolph, Arthur Heymans
On Mon, Dec 13, 2021 at 03:28:12PM +0100, arthur@aheymans.xyz wrote:
> From: Patrick Rudolph <patrick.rudolph@9elements.com>
>
> The IR38060, IR38164 and IR38263 can be supported using this driver.
>
> Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
> Signed-off-by: Arthur Heymans <arthur.heymans@9elements.com>
Series applied.
Thanks,
Guenter
> ---
> .../devicetree/bindings/trivial-devices.yaml | 6 ++++
> Documentation/hwmon/ir38064.rst | 28 +++++++++++++++++--
> drivers/hwmon/pmbus/Kconfig | 4 +--
> drivers/hwmon/pmbus/ir38064.c | 5 +++-
> 4 files changed, 38 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> index 791079021f1b..38c3264b3dcb 100644
> --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> @@ -121,8 +121,14 @@ properties:
> - ibm,cffps2
> # Infineon IR36021 digital POL buck controller
> - infineon,ir36021
> + # Infineon IR38060 Voltage Regulator
> + - infineon,ir38060
> # Infineon IR38064 Voltage Regulator
> - infineon,ir38064
> + # Infineon IR38164 Voltage Regulator
> + - infineon,ir38164
> + # Infineon IR38263 Voltage Regulator
> + - infineon,ir38263
> # Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
> - infineon,slb9635tt
> # Infineon SLB9645 I2C TPM (new protocol, max 400khz)
> diff --git a/Documentation/hwmon/ir38064.rst b/Documentation/hwmon/ir38064.rst
> index c455d755a267..e1148f21ea2a 100644
> --- a/Documentation/hwmon/ir38064.rst
> +++ b/Documentation/hwmon/ir38064.rst
> @@ -3,14 +3,38 @@ Kernel driver ir38064
>
> Supported chips:
>
> + * Infineon IR38060
> +
> + Prefix: 'IR38060'
> + Addresses scanned: -
> +
> + Datasheet: Publicly available at the Infineon website
> + https://www.infineon.com/dgdl/Infineon-IR38060M-DS-v03_16-EN.pdf?fileId=5546d4625c167129015c3291ea9a4cee
> +
> * Infineon IR38064
>
> Prefix: 'ir38064'
> Addresses scanned: -
>
> - Datasheet: Publicly available at the Infineon webiste
> + Datasheet: Publicly available at the Infineon website
> https://www.infineon.com/dgdl/Infineon-IR38064MTRPBF-DS-v03_07-EN.pdf?fileId=5546d462584d1d4a0158db0d9efb67ca
>
> + * Infineon IR38164
> +
> + Prefix: 'ir38164'
> + Addresses scanned: -
> +
> + Datasheet: Publicly available at the Infineon website
> + https://www.infineon.com/dgdl/Infineon-IR38164M-DS-v02_02-EN.pdf?fileId=5546d462636cc8fb01640046efea1248
> +
> + * Infineon ir38263
> +
> + Prefix: 'ir38263'
> + Addresses scanned: -
> +
> + Datasheet: Publicly available at the Infineon website
> + https://www.infineon.com/dgdl/Infineon-IR38263M-DataSheet-v03_05-EN.pdf?fileId=5546d4625b62cd8a015bcf81f90a6e52
> +
> Authors:
> - Maxim Sloyko <maxims@google.com>
> - Patrick Venture <venture@google.com>
> @@ -18,7 +42,7 @@ Authors:
> Description
> -----------
>
> -IR38064 is a Single-input Voltage, Synchronous Buck Regulator, DC-DC Converter.
> +IR38x6x are a Single-input Voltage, Synchronous Buck Regulator, DC-DC Converter.
>
> Usage Notes
> -----------
> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
> index ffb609cee3a4..d2b178a902f0 100644
> --- a/drivers/hwmon/pmbus/Kconfig
> +++ b/drivers/hwmon/pmbus/Kconfig
> @@ -123,10 +123,10 @@ config SENSORS_IR36021
> be called ir36021.
>
> config SENSORS_IR38064
> - tristate "Infineon IR38064"
> + tristate "Infineon IR38064 and compatibles"
> help
> If you say yes here you get hardware monitoring support for Infineon
> - IR38064.
> + IR38060, IR38064, IR38164 and IR38263.
>
> This driver can also be built as a module. If so, the module will
> be called ir38064.
> diff --git a/drivers/hwmon/pmbus/ir38064.c b/drivers/hwmon/pmbus/ir38064.c
> index 1fb7f1248639..4e91d3e54a4a 100644
> --- a/drivers/hwmon/pmbus/ir38064.c
> +++ b/drivers/hwmon/pmbus/ir38064.c
> @@ -41,7 +41,10 @@ static int ir38064_probe(struct i2c_client *client)
> }
>
> static const struct i2c_device_id ir38064_id[] = {
> + {"ir38060", 0},
> {"ir38064", 0},
> + {"ir38164", 0},
> + {"ir38263", 0},
> {}
> };
>
> @@ -59,6 +62,6 @@ static struct i2c_driver ir38064_driver = {
> module_i2c_driver(ir38064_driver);
>
> MODULE_AUTHOR("Maxim Sloyko <maxims@google.com>");
> -MODULE_DESCRIPTION("PMBus driver for Infineon IR38064");
> +MODULE_DESCRIPTION("PMBus driver for Infineon IR38064 and comaptible chips");
> MODULE_LICENSE("GPL");
> MODULE_IMPORT_NS(PMBUS);
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-12-17 16:11 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-13 14:28 hwmon: Add ir38064 variants and expose devicetree probing arthur
2021-12-13 14:28 ` [PATCH v2 1/3] hwmon/ir38064: Add support for IR38060, IR38164 IR38263 arthur
2021-12-17 16:10 ` Guenter Roeck
2021-12-13 14:28 ` [PATCH v2 2/3] pmbus/ir38064: Add of_match_table arthur
2021-12-13 14:28 ` [PATCH v2 3/3] ir38064: Expose a regulator arthur
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.