Linux-Doc Archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings
@ 2024-03-21 14:21 Radu Sabau
  2024-03-21 14:21 ` [PATCH v4 2/2] hwmon: pmbus: adp1050: Add driver support Radu Sabau
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Radu Sabau @ 2024-03-21 14:21 UTC (permalink / raw
  To: Jean Delvare, Guenter Roeck, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Jonathan Corbet, Delphine CC Chiu, Radu Sabau,
	linux-hwmon, devicetree, linux-kernel, linux-doc, linux-i2c

Add dt-bindings for adp1050 digital controller for isolated power supply
with pmbus interface voltage, current and temperature monitor.

Signed-off-by: Radu Sabau <radu.sabau@analog.com>
---
v4:
 *Fix typo in schema link causing warnings at build.
v3:
 *Remove extra line before '$id'.
 *Remove 'address-cells' and 'size-cells' from adp1050 node.
 *Rename adp1050 node to generic name.
 *Fix typo from 'adress-cells' to 'address-cells' causing errors in the
  dt-bindings build.
v2:
 *Fix identation for example.
 *Remove 'adi,vin-scale-monitor' and 'iin-scale-monitor' since they are not used
  anymore.
 *Fix typo for 'compatbile' to 'compatible'.
 *Add blank line under datasheet link.
---
 .../bindings/hwmon/pmbus/adi,adp1050.yaml     | 49 +++++++++++++++++++
 MAINTAINERS                                   |  7 +++
 2 files changed, 56 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/adi,adp1050.yaml

diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/adi,adp1050.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/adi,adp1050.yaml
new file mode 100644
index 000000000000..10c2204bc3df
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/pmbus/adi,adp1050.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/pmbus/adi,adp1050.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADP1050 digital controller with PMBus interface
+
+maintainers:
+  - Radu Sabau <radu.sabau@analog.com>
+
+description: |
+   The ADP1050 is used to monitor system voltages, currents and temperatures.
+   Through the PMBus interface, the ADP1050 targets isolated power supplies
+   and has four individual monitors for input/output voltage, input current
+   and temperature.
+   Datasheet:
+     https://www.analog.com/en/products/adp1050.html
+
+properties:
+  compatible:
+    const: adi,adp1050
+
+  reg:
+    maxItems: 1
+
+  vcc-supply: true
+
+required:
+  - compatible
+  - reg
+  - vcc-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        clock-frequency = <100000>;
+
+        hwmon@70 {
+            compatible = "adi,adp1050";
+            reg = <0x70>;
+            vcc-supply = <&vcc>;
+        };
+    };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 43b39956694a..b45753e94756 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -479,6 +479,13 @@ L:	linux-wireless@vger.kernel.org
 S:	Orphan
 F:	drivers/net/wireless/admtek/adm8211.*
 
+ADP1050 HARDWARE MONITOR DRIVER
+M:	Radu Sabau <radu.sabau@analog.com>
+L:	linux-hwmon@vger.kernel.org
+S:	Supported
+W:	https://ez.analog.com/linux-software-drivers
+F:	Dcumentation/devicetree/bindings/hwmon/pmbus/adi,adp1050.yaml
+
 ADP1653 FLASH CONTROLLER DRIVER
 M:	Sakari Ailus <sakari.ailus@iki.fi>
 L:	linux-media@vger.kernel.org
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v4 2/2] hwmon: pmbus: adp1050: Add driver support
  2024-03-21 14:21 [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings Radu Sabau
@ 2024-03-21 14:21 ` Radu Sabau
  2024-03-23 14:21   ` Guenter Roeck
  2024-03-22 14:58 ` [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings Rob Herring
  2024-03-23 14:20 ` Guenter Roeck
  2 siblings, 1 reply; 5+ messages in thread
From: Radu Sabau @ 2024-03-21 14:21 UTC (permalink / raw
  To: Jean Delvare, Guenter Roeck, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Jonathan Corbet, Delphine CC Chiu, Radu Sabau,
	linux-hwmon, devicetree, linux-kernel, linux-doc, linux-i2c

Add support for ADP1050 Digital Controller for Isolated Power Supplies
with PMBus interface Voltage, Current and Temperature Monitor.

The ADP1050 implements several features to enable a robust
system of parallel and redundant operation for customers who
require high availability. The device can measure voltage,
current and temperature that can be used in different
techniques to identify and safely shut down an erroneous
power supply in parallel operation mode.

Signed-off-by: Radu Sabau <radu.sabau@analog.com>
---
v4:
 *No change.
v3:
 *No change.
v2:
 *Remove mandatory chip unlocking from the probe function, as it is
  a bit extreme.
 *Remove iin_scale and vin_scale set in the probe function since it makes no
  sense to force-override it (the user may use the chip's default or even
  change it himself after the probe).
---
 Documentation/hwmon/adp1050.rst | 65 +++++++++++++++++++++++++++++++++
 Documentation/hwmon/index.rst   |  1 +
 drivers/hwmon/pmbus/Kconfig     | 10 +++++
 drivers/hwmon/pmbus/Makefile    |  1 +
 drivers/hwmon/pmbus/adp1050.c   | 58 +++++++++++++++++++++++++++++
 5 files changed, 135 insertions(+)
 create mode 100644 Documentation/hwmon/adp1050.rst
 create mode 100644 drivers/hwmon/pmbus/adp1050.c

diff --git a/Documentation/hwmon/adp1050.rst b/Documentation/hwmon/adp1050.rst
new file mode 100644
index 000000000000..3281b096a53c
--- /dev/null
+++ b/Documentation/hwmon/adp1050.rst
@@ -0,0 +1,65 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+Kernel driver adp1050
+=====================
+
+Supported chips:
+
+  * Analog Devices ADP1050
+
+    Prefix: 'adp1050'
+
+    Addresses scanned: I2C 0x70 - 0x77
+
+    Datasheet: https://www.analog.com/media/en/technical-documentation/data-
+sheets/ADP1050.pdf
+
+Authors:
+
+  - Radu Sabau <radu.sabau@analog.com>
+
+
+Description
+-----------
+
+This driver supprts hardware monitoring for Analog Devices ADP1050 Digital
+Controller for Isolated Power Supply with PMBus interface.
+
+The ADP1050 is an advanced digital controller with a PMBus™
+interface targeting high density, high efficiency dc-to-dc power
+conversion used to monitor system temperatures, voltages and currents.
+Through the PMBus interface, the device can monitor input/output voltages,
+input current and temperature.
+
+Usage Notes
+-----------
+
+This driver does not auto-detect devices. You will have to instantiate
+the devices explicitly.
+Please see Documentation/i2c/instantiating-devices.rst for details.
+
+Platform data support
+---------------------
+
+The driver supports standard PMBus driver platform data.
+
+Sysfs Attributes
+----------------
+
+================= ========================================
+in1_label         "vin"
+in1_input         Measured input voltage
+in1_alarm	  Input voltage alarm
+in2_label	  "vout1"
+in2_input	  Measured output voltage
+in2_crit	  Critical maximum output voltage
+in2_crit_alarm    Output voltage high alarm
+in2_lcrit	  Critical minimum output voltage
+in2_lcrit_alarm	  Output voltage critical low alarm
+curr1_label	  "iin"
+curr1_input	  Measured input current.
+curr1_alarm	  Input current alarm
+temp1_input       Measured temperature
+temp1_crit	  Critical high temperature
+temp1_crit_alarm  Chip temperature critical high alarm
+================= ========================================
diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
index 1ca7a4fe1f8f..9a4fd576e6f6 100644
--- a/Documentation/hwmon/index.rst
+++ b/Documentation/hwmon/index.rst
@@ -33,6 +33,7 @@ Hardware Monitoring Kernel Drivers
    adm1266
    adm1275
    adm9240
+   adp1050
    ads7828
    adt7410
    adt7411
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index 557ae0c414b0..38e794d83cc3 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -57,6 +57,16 @@ config SENSORS_ADM1275
 	  This driver can also be built as a module. If so, the module will
 	  be called adm1275.
 
+config SENSORS_ADP1050
+	tristate "Analog Devices ADP1050 digital controller for Power Supplies"
+	help
+	  If you say yes here you get hardware monitoring support for Analog
+	  Devices ADP1050 digital controller for isolated power supply with
+	  PMBus interface.
+
+	  This driver can also be built as a module. If so, the module will
+	  be called adp1050.
+
 config SENSORS_BEL_PFE
 	tristate "Bel PFE Compatible Power Supplies"
 	help
diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
index f14ecf03ad77..95a8dea5e5ed 100644
--- a/drivers/hwmon/pmbus/Makefile
+++ b/drivers/hwmon/pmbus/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_SENSORS_PMBUS)	+= pmbus.o
 obj-$(CONFIG_SENSORS_ACBEL_FSG032) += acbel-fsg032.o
 obj-$(CONFIG_SENSORS_ADM1266)	+= adm1266.o
 obj-$(CONFIG_SENSORS_ADM1275)	+= adm1275.o
+obj-$(CONFIG_SENSORS_ADP1050)	+= adp1050.o
 obj-$(CONFIG_SENSORS_BEL_PFE)	+= bel-pfe.o
 obj-$(CONFIG_SENSORS_BPA_RS600)	+= bpa-rs600.o
 obj-$(CONFIG_SENSORS_DELTA_AHE50DC_FAN) += delta-ahe50dc-fan.o
diff --git a/drivers/hwmon/pmbus/adp1050.c b/drivers/hwmon/pmbus/adp1050.c
new file mode 100644
index 000000000000..0a49bea8e13b
--- /dev/null
+++ b/drivers/hwmon/pmbus/adp1050.c
@@ -0,0 +1,58 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Hardware monitoring driver for Analog Devices ADP1050
+ *
+ * Copyright (C) 2024 Analog Devices, Inc.
+ */
+#include <linux/bits.h>
+#include <linux/err.h>
+#include <linux/i2c.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include "pmbus.h"
+
+static struct pmbus_driver_info adp1050_info = {
+	.pages = 1,
+	.format[PSC_VOLTAGE_IN] = linear,
+	.format[PSC_VOLTAGE_OUT] = linear,
+	.format[PSC_CURRENT_IN] = linear,
+	.format[PSC_TEMPERATURE] = linear,
+	.func[0] = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT
+		| PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT
+		| PMBUS_HAVE_IIN | PMBUS_HAVE_TEMP
+		| PMBUS_HAVE_STATUS_TEMP,
+};
+
+static int adp1050_probe(struct i2c_client *client)
+{
+	return pmbus_do_probe(client, &adp1050_info);
+}
+
+static const struct i2c_device_id adp1050_id[] = {
+	{"adp1050", 0},
+	{}
+};
+MODULE_DEVICE_TABLE(i2c, adp1050_id);
+
+static const struct of_device_id adp1050_of_match[] = {
+	{ .compatible = "adi,adp1050"},
+	{}
+};
+MODULE_DEVICE_TABLE(of, adp1050_of_match);
+
+static struct i2c_driver adp1050_driver = {
+	.driver = {
+		.name = "adp1050",
+		.of_match_table = adp1050_of_match,
+	},
+	.probe = adp1050_probe,
+	.id_table = adp1050_id,
+};
+module_i2c_driver(adp1050_driver);
+
+MODULE_AUTHOR("Radu Sabau <radu.sabau@analog.com>");
+MODULE_DESCRIPTION("Analog Devices ADP1050 HWMON PMBus Driver");
+MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(PMBUS);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings
  2024-03-21 14:21 [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings Radu Sabau
  2024-03-21 14:21 ` [PATCH v4 2/2] hwmon: pmbus: adp1050: Add driver support Radu Sabau
@ 2024-03-22 14:58 ` Rob Herring
  2024-03-23 14:20 ` Guenter Roeck
  2 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2024-03-22 14:58 UTC (permalink / raw
  To: Radu Sabau
  Cc: Jean Delvare, Jonathan Corbet, devicetree, linux-doc,
	Delphine CC Chiu, linux-i2c, Conor Dooley, Krzysztof Kozlowski,
	Guenter Roeck, linux-kernel, linux-hwmon


On Thu, 21 Mar 2024 16:21:42 +0200, Radu Sabau wrote:
> Add dt-bindings for adp1050 digital controller for isolated power supply
> with pmbus interface voltage, current and temperature monitor.
> 
> Signed-off-by: Radu Sabau <radu.sabau@analog.com>
> ---
> v4:
>  *Fix typo in schema link causing warnings at build.
> v3:
>  *Remove extra line before '$id'.
>  *Remove 'address-cells' and 'size-cells' from adp1050 node.
>  *Rename adp1050 node to generic name.
>  *Fix typo from 'adress-cells' to 'address-cells' causing errors in the
>   dt-bindings build.
> v2:
>  *Fix identation for example.
>  *Remove 'adi,vin-scale-monitor' and 'iin-scale-monitor' since they are not used
>   anymore.
>  *Fix typo for 'compatbile' to 'compatible'.
>  *Add blank line under datasheet link.
> ---
>  .../bindings/hwmon/pmbus/adi,adp1050.yaml     | 49 +++++++++++++++++++
>  MAINTAINERS                                   |  7 +++
>  2 files changed, 56 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/adi,adp1050.yaml
> 

Reviewed-by: Rob Herring <robh@kernel.org>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings
  2024-03-21 14:21 [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings Radu Sabau
  2024-03-21 14:21 ` [PATCH v4 2/2] hwmon: pmbus: adp1050: Add driver support Radu Sabau
  2024-03-22 14:58 ` [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings Rob Herring
@ 2024-03-23 14:20 ` Guenter Roeck
  2 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2024-03-23 14:20 UTC (permalink / raw
  To: Radu Sabau
  Cc: Jean Delvare, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jonathan Corbet, Delphine CC Chiu, linux-hwmon, devicetree,
	linux-kernel, linux-doc, linux-i2c

On Thu, Mar 21, 2024 at 04:21:42PM +0200, Radu Sabau wrote:
> Add dt-bindings for adp1050 digital controller for isolated power supply
> with pmbus interface voltage, current and temperature monitor.
> 
> Signed-off-by: Radu Sabau <radu.sabau@analog.com>
> Reviewed-by: Rob Herring <robh@kernel.org>

Applied to hwmon-next.

Please note that the branch will be pushed after the commit window closed.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v4 2/2] hwmon: pmbus: adp1050: Add driver support
  2024-03-21 14:21 ` [PATCH v4 2/2] hwmon: pmbus: adp1050: Add driver support Radu Sabau
@ 2024-03-23 14:21   ` Guenter Roeck
  0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2024-03-23 14:21 UTC (permalink / raw
  To: Radu Sabau
  Cc: Jean Delvare, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jonathan Corbet, Delphine CC Chiu, linux-hwmon, devicetree,
	linux-kernel, linux-doc, linux-i2c

On Thu, Mar 21, 2024 at 04:21:43PM +0200, Radu Sabau wrote:
> Add support for ADP1050 Digital Controller for Isolated Power Supplies
> with PMBus interface Voltage, Current and Temperature Monitor.
> 
> The ADP1050 implements several features to enable a robust
> system of parallel and redundant operation for customers who
> require high availability. The device can measure voltage,
> current and temperature that can be used in different
> techniques to identify and safely shut down an erroneous
> power supply in parallel operation mode.
> 
> Signed-off-by: Radu Sabau <radu.sabau@analog.com>

Applied to hwmon-next.

Please note that the branch will be pushed after the commit window closed.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-03-23 14:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-21 14:21 [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings Radu Sabau
2024-03-21 14:21 ` [PATCH v4 2/2] hwmon: pmbus: adp1050: Add driver support Radu Sabau
2024-03-23 14:21   ` Guenter Roeck
2024-03-22 14:58 ` [PATCH v4 1/2] dt-bindings: hwmon: pmbus: adp1050: add bindings Rob Herring
2024-03-23 14:20 ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).