All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2]  hwmon: pmbus: adm1266: add initial support
@ 2020-03-09 14:14 Alexandru Tachici
  2020-03-09 14:14 ` [PATCH 1/2] " Alexandru Tachici
  2020-03-09 14:14 ` [PATCH 2/2] dt-bindings: hwmon: Add bindings for ADM1266 Alexandru Tachici
  0 siblings, 2 replies; 5+ messages in thread
From: Alexandru Tachici @ 2020-03-09 14:14 UTC (permalink / raw)
  To: linux-hwmon, linux-kernel; +Cc: linux, Alexandru Tachici

Add initial support for the ADM1266 sequencer.
ADM1266 has 17 voltage input channels connected
to a 12 bit SAR ADC and supports standard VOUT
pmbus commands.

Alexandru Tachici (2):
  hwmon: pmbus: adm1266: add initial support
  dt-bindings: hwmon: Add bindings for ADM1266

 .../bindings/hwmon/adi,adm1266.yaml           |  47 ++++++
 Documentation/hwmon/adm1266                   |  34 ++++
 drivers/hwmon/pmbus/Kconfig                   |  10 ++
 drivers/hwmon/pmbus/Makefile                  |   1 +
 drivers/hwmon/pmbus/adm1266.c                 | 146 ++++++++++++++++++
 5 files changed, 238 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml
 create mode 100644 Documentation/hwmon/adm1266
 create mode 100644 drivers/hwmon/pmbus/adm1266.c

-- 
2.20.1


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

* [PATCH 1/2] hwmon: pmbus: adm1266: add initial support
  2020-03-09 14:14 [PATCH 0/2] hwmon: pmbus: adm1266: add initial support Alexandru Tachici
@ 2020-03-09 14:14 ` Alexandru Tachici
  2020-03-09 16:19   ` Guenter Roeck
  2020-03-09 14:14 ` [PATCH 2/2] dt-bindings: hwmon: Add bindings for ADM1266 Alexandru Tachici
  1 sibling, 1 reply; 5+ messages in thread
From: Alexandru Tachici @ 2020-03-09 14:14 UTC (permalink / raw)
  To: linux-hwmon, linux-kernel; +Cc: linux, Alexandru Tachici

Add initial pmbus probing driver for the adm1266 Cascadable
Super Sequencer with Margin Control and Fault Recording.
Driver is currently using the pmbus_core, creating sysfs
files under hwmon for inputs: vh1->vh4 and vp1->vp13.

Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>
---
 Documentation/hwmon/adm1266   |  34 ++++++++
 drivers/hwmon/pmbus/Kconfig   |  10 +++
 drivers/hwmon/pmbus/Makefile  |   1 +
 drivers/hwmon/pmbus/adm1266.c | 146 ++++++++++++++++++++++++++++++++++
 4 files changed, 191 insertions(+)
 create mode 100644 Documentation/hwmon/adm1266
 create mode 100644 drivers/hwmon/pmbus/adm1266.c

diff --git a/Documentation/hwmon/adm1266 b/Documentation/hwmon/adm1266
new file mode 100644
index 000000000000..64651b5086a7
--- /dev/null
+++ b/Documentation/hwmon/adm1266
@@ -0,0 +1,34 @@
+Kernel driver adm1266
+=====================
+
+Supported chips:
+  * Analog Devices ADM1266
+    Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1266.pdf
+
+Author: Alexandru Tachici <alexandru.tachici@analog.com>
+
+
+Description
+-----------
+
+This driver supports hardware monitoring for Analog Devices ADM1266 sequencer.
+
+ADM1266 is a sequencer that feature voltage readback from 17 channels via an
+integrated 12 bit SAR ADC, accessed using a PMBus interface.
+
+The driver is a client driver to the core PMBus driver. Please see
+Documentation/hwmon/pmbus for details on PMBus client drivers.
+
+
+Sysfs entries
+-------------
+
+The following attributes are supported. Limits are read-write, history reset
+attributes are write-only, all other attributes are read-only.
+
+inX_label		"voutx"
+inX_input		Measured voltage.
+inX_min			Minimum Voltage.
+inX_max			Maximum voltage.
+inX_min_alarm		Voltage low alarm.
+inX_max_alarm		Voltage high alarm.
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index a9ea06204767..153e64febe98 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -26,6 +26,16 @@ config SENSORS_PMBUS
 	  This driver can also be built as a module. If so, the module will
 	  be called pmbus.
 
+config SENSORS_ADM1266
+	tristate "Analog Devices ADM1266"
+	default n
+	help
+	  If you say yes here you get hardware monitoring support for Analog
+	  Devices ADM1266.
+
+	  This driver can also be built as a module. If so, the module will
+	  be called adm1266.
+
 config SENSORS_ADM1275
 	tristate "Analog Devices ADM1275 and compatibles"
 	help
diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
index 5feb45806123..ed38f6d6f845 100644
--- a/drivers/hwmon/pmbus/Makefile
+++ b/drivers/hwmon/pmbus/Makefile
@@ -5,6 +5,7 @@
 
 obj-$(CONFIG_PMBUS)		+= pmbus_core.o
 obj-$(CONFIG_SENSORS_PMBUS)	+= pmbus.o
+obj-$(CONFIG_SENSORS_ADM1266)	+= adm1266.o
 obj-$(CONFIG_SENSORS_ADM1275)	+= adm1275.o
 obj-$(CONFIG_SENSORS_BEL_PFE)	+= bel-pfe.o
 obj-$(CONFIG_SENSORS_IBM_CFFPS)	+= ibm-cffps.o
diff --git a/drivers/hwmon/pmbus/adm1266.c b/drivers/hwmon/pmbus/adm1266.c
new file mode 100644
index 000000000000..3aa8262f9bd6
--- /dev/null
+++ b/drivers/hwmon/pmbus/adm1266.c
@@ -0,0 +1,146 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * ADM1266 - Cascadable Super Sequencer with Margin
+ * Control and Fault Recording
+ *
+ * Copyright 2020 Analog Devices Inc.
+ */
+
+#include <linux/bitops.h>
+#include <linux/err.h>
+#include <linux/fwnode.h>
+#include <linux/i2c.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+
+#include "pmbus.h"
+
+enum chips { adm1266 };
+
+struct adm1266_data {
+	enum chips id;
+	struct pmbus_driver_info info;
+};
+
+static int adm1266_block_wr(struct i2c_client *client, u8 cmd, u8 wr_len,
+			    u8 *data_w, u8 *data_r)
+{
+	union i2c_smbus_data smbus_data;
+	int ret;
+
+	smbus_data.block[0] = wr_len;
+	memcpy(smbus_data.block + 1, data_w, wr_len);
+	ret = i2c_smbus_xfer(client->adapter, client->addr,
+			     client->flags, I2C_SMBUS_READ, cmd,
+			     I2C_SMBUS_BLOCK_PROC_CALL, &smbus_data);
+	if (ret < 0)
+		return ret;
+
+	memcpy(data_r, &smbus_data.block[1], smbus_data.block[0]);
+
+	return 0;
+}
+
+static int adm1266_config(struct pmbus_driver_info *info)
+{
+	u32 funcs;
+	int i;
+
+	info->pages = 17;
+	info->format[PSC_VOLTAGE_OUT] = linear;
+
+	funcs = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
+	for (i = 0; i < info->pages; i++)
+		info->func[i] = funcs;
+
+	return 0;
+}
+
+static const struct i2c_device_id adm1266_id[] = {
+	{ "adm1266", adm1266 },
+	{ },
+};
+MODULE_DEVICE_TABLE(i2c, adm1266_id);
+
+static int adm1266_probe(struct i2c_client *client,
+			 const struct i2c_device_id *id)
+{
+	u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1];
+	u8 wr_buffer[I2C_SMBUS_BLOCK_MAX + 1];
+	const struct i2c_device_id *mid;
+	struct adm1266_data *data;
+	int ret;
+
+	if (!i2c_check_functionality(client->adapter,
+				     I2C_FUNC_SMBUS_READ_BYTE_DATA
+				     | I2C_FUNC_SMBUS_BLOCK_DATA))
+		return -ENODEV;
+
+	wr_buffer[0] = 32;
+	ret = adm1266_block_wr(client, PMBUS_MFR_ID, 1, wr_buffer,
+			       block_buffer);
+	if (ret < 0) {
+		dev_err(&client->dev, "Failed to read Manufacturer ID\n");
+		return ret;
+	}
+
+	if (strncmp(block_buffer, "Analog Devices, Inc", 19)) {
+		dev_err(&client->dev, "Unsupported Manufacturer ID\n");
+		return -ENODEV;
+	}
+
+	wr_buffer[0] = 32;
+	ret = adm1266_block_wr(client, PMBUS_MFR_MODEL, 1, wr_buffer,
+			       block_buffer);
+	if (ret < 0) {
+		dev_err(&client->dev, "Failed to read Manufacturer Model\n");
+		return ret;
+	}
+
+	for (mid = adm1266_id; mid->name[0]; mid++) {
+		if (!strncasecmp(mid->name, block_buffer, strlen(mid->name)))
+			break;
+	}
+	if (!mid->name[0]) {
+		dev_err(&client->dev, "Unsupported device\n");
+		return -ENODEV;
+	}
+
+	data = devm_kzalloc(&client->dev, sizeof(struct adm1266_data),
+			    GFP_KERNEL);
+	if (!data)
+		return -ENOMEM;
+	data->id = mid->driver_data;
+
+	ret = adm1266_config(&data->info);
+	if (ret < 0) {
+		dev_err(&client->dev, "Could not configure device.");
+		return ret;
+	}
+
+	return pmbus_do_probe(client, id, &data->info);
+}
+
+static const struct of_device_id adm1266_of_match[] = {
+	{ .compatible = "adi,adm1266" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, adm1266_of_match);
+
+static struct i2c_driver adm1266_driver = {
+	.driver = {
+		   .name = "adm1266",
+		   .of_match_table = adm1266_of_match,
+		  },
+	.probe = adm1266_probe,
+	.remove = pmbus_do_remove,
+	.id_table = adm1266_id,
+};
+
+module_i2c_driver(adm1266_driver);
+
+MODULE_AUTHOR("Alexandru Tachici <alexandru.tachici@analog.com>");
+MODULE_DESCRIPTION("PMBus driver for Analog Devices ADM1266");
+MODULE_LICENSE("GPL v2");
-- 
2.20.1


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

* [PATCH 2/2] dt-bindings: hwmon: Add bindings for ADM1266
  2020-03-09 14:14 [PATCH 0/2] hwmon: pmbus: adm1266: add initial support Alexandru Tachici
  2020-03-09 14:14 ` [PATCH 1/2] " Alexandru Tachici
@ 2020-03-09 14:14 ` Alexandru Tachici
  2020-03-09 16:20   ` Guenter Roeck
  1 sibling, 1 reply; 5+ messages in thread
From: Alexandru Tachici @ 2020-03-09 14:14 UTC (permalink / raw)
  To: linux-hwmon, linux-kernel; +Cc: linux, Alexandru Tachici

Add bindings for the Analog Devices ADM1266 sequencer.

Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>
---
 .../bindings/hwmon/adi,adm1266.yaml           | 47 +++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml

diff --git a/Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml b/Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml
new file mode 100644
index 000000000000..1e83883a4661
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/pmbus/adi,adm1266.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADM1266 Cascadable Super Sequencer with Margin
+Control and Fault Recording
+
+maintainers:
+  - Alexandru Tachici <alexandru.tachici@analog.com>
+
+description: |
+  Analog Devices ADM1266 Cascadable Super Sequencer with Margin
+  Control and Fault Recording
+  https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1266.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,adm1266
+
+  reg:
+    maxItems: 1
+
+  avcc-supply:
+    description:
+      Phandle to the Avcc power supply
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adm1266@40 {
+                compatible = "adi,adm1266";
+                reg = <0x40>;
+                #address-cells = <1>;
+                #size-cells = <0>;
+        };
+    };
+...
-- 
2.20.1


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

* Re: [PATCH 1/2] hwmon: pmbus: adm1266: add initial support
  2020-03-09 14:14 ` [PATCH 1/2] " Alexandru Tachici
@ 2020-03-09 16:19   ` Guenter Roeck
  0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2020-03-09 16:19 UTC (permalink / raw)
  To: Alexandru Tachici; +Cc: linux-hwmon, linux-kernel

On Mon, Mar 09, 2020 at 04:14:21PM +0200, Alexandru Tachici wrote:
> Add initial pmbus probing driver for the adm1266 Cascadable

Does "initial" suggest planned further enhancements ? If yes, please
describe, and explain why this support is omitted at this time.
If no, there is no reason for "initial".

> Super Sequencer with Margin Control and Fault Recording.
> Driver is currently using the pmbus_core, creating sysfs

Why "currently" ?

> files under hwmon for inputs: vh1->vh4 and vp1->vp13.
> 
> Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>
> ---
>  Documentation/hwmon/adm1266   |  34 ++++++++
>  drivers/hwmon/pmbus/Kconfig   |  10 +++
>  drivers/hwmon/pmbus/Makefile  |   1 +
>  drivers/hwmon/pmbus/adm1266.c | 146 ++++++++++++++++++++++++++++++++++
>  4 files changed, 191 insertions(+)
>  create mode 100644 Documentation/hwmon/adm1266
>  create mode 100644 drivers/hwmon/pmbus/adm1266.c
> 
> diff --git a/Documentation/hwmon/adm1266 b/Documentation/hwmon/adm1266
> new file mode 100644
> index 000000000000..64651b5086a7
> --- /dev/null
> +++ b/Documentation/hwmon/adm1266
> @@ -0,0 +1,34 @@
> +Kernel driver adm1266
> +=====================
> +
> +Supported chips:
> +  * Analog Devices ADM1266
> +    Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1266.pdf
> +
> +Author: Alexandru Tachici <alexandru.tachici@analog.com>
> +
> +
> +Description
> +-----------
> +
> +This driver supports hardware monitoring for Analog Devices ADM1266 sequencer.
> +
> +ADM1266 is a sequencer that feature voltage readback from 17 channels via an
> +integrated 12 bit SAR ADC, accessed using a PMBus interface.
> +
> +The driver is a client driver to the core PMBus driver. Please see
> +Documentation/hwmon/pmbus for details on PMBus client drivers.
> +
> +
> +Sysfs entries
> +-------------
> +
> +The following attributes are supported. Limits are read-write, history reset
> +attributes are write-only, all other attributes are read-only.
> +
> +inX_label		"voutx"
> +inX_input		Measured voltage.
> +inX_min			Minimum Voltage.
> +inX_max			Maximum voltage.
> +inX_min_alarm		Voltage low alarm.
> +inX_max_alarm		Voltage high alarm.
> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
> index a9ea06204767..153e64febe98 100644
> --- a/drivers/hwmon/pmbus/Kconfig
> +++ b/drivers/hwmon/pmbus/Kconfig
> @@ -26,6 +26,16 @@ config SENSORS_PMBUS
>  	  This driver can also be built as a module. If so, the module will
>  	  be called pmbus.
>  
> +config SENSORS_ADM1266
> +	tristate "Analog Devices ADM1266"
> +	default n

Unnecessary.

> +	help
> +	  If you say yes here you get hardware monitoring support for Analog
> +	  Devices ADM1266.
> +
> +	  This driver can also be built as a module. If so, the module will
> +	  be called adm1266.
> +
>  config SENSORS_ADM1275
>  	tristate "Analog Devices ADM1275 and compatibles"
>  	help
> diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
> index 5feb45806123..ed38f6d6f845 100644
> --- a/drivers/hwmon/pmbus/Makefile
> +++ b/drivers/hwmon/pmbus/Makefile
> @@ -5,6 +5,7 @@
>  
>  obj-$(CONFIG_PMBUS)		+= pmbus_core.o
>  obj-$(CONFIG_SENSORS_PMBUS)	+= pmbus.o
> +obj-$(CONFIG_SENSORS_ADM1266)	+= adm1266.o
>  obj-$(CONFIG_SENSORS_ADM1275)	+= adm1275.o
>  obj-$(CONFIG_SENSORS_BEL_PFE)	+= bel-pfe.o
>  obj-$(CONFIG_SENSORS_IBM_CFFPS)	+= ibm-cffps.o
> diff --git a/drivers/hwmon/pmbus/adm1266.c b/drivers/hwmon/pmbus/adm1266.c
> new file mode 100644
> index 000000000000..3aa8262f9bd6
> --- /dev/null
> +++ b/drivers/hwmon/pmbus/adm1266.c
> @@ -0,0 +1,146 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * ADM1266 - Cascadable Super Sequencer with Margin
> + * Control and Fault Recording
> + *
> + * Copyright 2020 Analog Devices Inc.
> + */
> +
> +#include <linux/bitops.h>
> +#include <linux/err.h>
> +#include <linux/fwnode.h>
> +#include <linux/i2c.h>
> +#include <linux/init.h>
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/slab.h>
> +
> +#include "pmbus.h"
> +
> +enum chips { adm1266 };

Is this driver ever expected to support another chip ? If no, this is
unnecessary.

> +
> +struct adm1266_data {
> +	enum chips id;
> +	struct pmbus_driver_info info;
> +};
> +
> +static int adm1266_block_wr(struct i2c_client *client, u8 cmd, u8 wr_len,
> +			    u8 *data_w, u8 *data_r)
> +{
> +	union i2c_smbus_data smbus_data;
> +	int ret;
> +
> +	smbus_data.block[0] = wr_len;
> +	memcpy(smbus_data.block + 1, data_w, wr_len);
> +	ret = i2c_smbus_xfer(client->adapter, client->addr,
> +			     client->flags, I2C_SMBUS_READ, cmd,
> +			     I2C_SMBUS_BLOCK_PROC_CALL, &smbus_data);
> +	if (ret < 0)
> +		return ret;
> +
> +	memcpy(data_r, &smbus_data.block[1], smbus_data.block[0]);
> +
> +	return 0;
> +}
> +
> +static int adm1266_config(struct pmbus_driver_info *info)
> +{
> +	u32 funcs;
> +	int i;
> +
> +	info->pages = 17;
> +	info->format[PSC_VOLTAGE_OUT] = linear;
> +
> +	funcs = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
> +	for (i = 0; i < info->pages; i++)
> +		info->func[i] = funcs;
> +
> +	return 0;
> +}

I don't immediately see the benefit of allocating this dynamically.
Please consider using a static structure.

> +
> +static const struct i2c_device_id adm1266_id[] = {
> +	{ "adm1266", adm1266 },
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(i2c, adm1266_id);
> +
> +static int adm1266_probe(struct i2c_client *client,
> +			 const struct i2c_device_id *id)
> +{
> +	u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1];
> +	u8 wr_buffer[I2C_SMBUS_BLOCK_MAX + 1];
> +	const struct i2c_device_id *mid;
> +	struct adm1266_data *data;
> +	int ret;
> +
> +	if (!i2c_check_functionality(client->adapter,
> +				     I2C_FUNC_SMBUS_READ_BYTE_DATA
> +				     | I2C_FUNC_SMBUS_BLOCK_DATA))
> +		return -ENODEV;
> +
> +	wr_buffer[0] = 32;
> +	ret = adm1266_block_wr(client, PMBUS_MFR_ID, 1, wr_buffer,
> +			       block_buffer);

Please replace with standard SMBus block read commands. If that doesn't
work, please explain.

Note that according to the datasheet, the MFR commands are writeable.
You might want to consider checking 0xAD—IC_DEVICE_ID instead.

> +	if (ret < 0) {
> +		dev_err(&client->dev, "Failed to read Manufacturer ID\n");
> +		return ret;
> +	}
> +
> +	if (strncmp(block_buffer, "Analog Devices, Inc", 19)) {
> +		dev_err(&client->dev, "Unsupported Manufacturer ID\n");
> +		return -ENODEV;
> +	}
> +
> +	wr_buffer[0] = 32;
> +	ret = adm1266_block_wr(client, PMBUS_MFR_MODEL, 1, wr_buffer,
> +			       block_buffer);
> +	if (ret < 0) {
> +		dev_err(&client->dev, "Failed to read Manufacturer Model\n");
> +		return ret;
> +	}
> +
> +	for (mid = adm1266_id; mid->name[0]; mid++) {
> +		if (!strncasecmp(mid->name, block_buffer, strlen(mid->name)))
> +			break;
> +	}
> +	if (!mid->name[0]) {
> +		dev_err(&client->dev, "Unsupported device\n");
> +		return -ENODEV;
> +	}
> +
Unless there is reason to believe that the driver will in the future support
other chips, this is unnecessarily complex.

> +	data = devm_kzalloc(&client->dev, sizeof(struct adm1266_data),
> +			    GFP_KERNEL);
> +	if (!data)
> +		return -ENOMEM;
> +	data->id = mid->driver_data;
> +
> +	ret = adm1266_config(&data->info);
> +	if (ret < 0) {
> +		dev_err(&client->dev, "Could not configure device.");
> +		return ret;
> +	}
> +
> +	return pmbus_do_probe(client, id, &data->info);
> +}
> +
> +static const struct of_device_id adm1266_of_match[] = {
> +	{ .compatible = "adi,adm1266" },
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(of, adm1266_of_match);
> +
> +static struct i2c_driver adm1266_driver = {
> +	.driver = {
> +		   .name = "adm1266",
> +		   .of_match_table = adm1266_of_match,
> +		  },
> +	.probe = adm1266_probe,
> +	.remove = pmbus_do_remove,
> +	.id_table = adm1266_id,
> +};
> +
> +module_i2c_driver(adm1266_driver);
> +
> +MODULE_AUTHOR("Alexandru Tachici <alexandru.tachici@analog.com>");
> +MODULE_DESCRIPTION("PMBus driver for Analog Devices ADM1266");
> +MODULE_LICENSE("GPL v2");
> -- 
> 2.20.1
> 

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

* Re: [PATCH 2/2] dt-bindings: hwmon: Add bindings for ADM1266
  2020-03-09 14:14 ` [PATCH 2/2] dt-bindings: hwmon: Add bindings for ADM1266 Alexandru Tachici
@ 2020-03-09 16:20   ` Guenter Roeck
  0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2020-03-09 16:20 UTC (permalink / raw)
  To: Alexandru Tachici; +Cc: linux-hwmon, linux-kernel

On Mon, Mar 09, 2020 at 04:14:22PM +0200, Alexandru Tachici wrote:
> Add bindings for the Analog Devices ADM1266 sequencer.
> 

Unless there are more bindings expected in the future, this could be
added as trivial device. If there _are_ more bindings expected in the
future, they should be part of this patch.

Thanks,
Guenter

> Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>
> ---
>  .../bindings/hwmon/adi,adm1266.yaml           | 47 +++++++++++++++++++
>  1 file changed, 47 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml
> 
> diff --git a/Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml b/Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml
> new file mode 100644
> index 000000000000..1e83883a4661
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/adi,adm1266.yaml
> @@ -0,0 +1,47 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/hwmon/pmbus/adi,adm1266.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices ADM1266 Cascadable Super Sequencer with Margin
> +Control and Fault Recording
> +
> +maintainers:
> +  - Alexandru Tachici <alexandru.tachici@analog.com>
> +
> +description: |
> +  Analog Devices ADM1266 Cascadable Super Sequencer with Margin
> +  Control and Fault Recording
> +  https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1266.pdf
> +
> +properties:
> +  compatible:
> +    enum:
> +      - adi,adm1266
> +
> +  reg:
> +    maxItems: 1
> +
> +  avcc-supply:
> +    description:
> +      Phandle to the Avcc power supply
> +
> +required:
> +  - compatible
> +  - reg
> +
> +examples:
> +  - |
> +    i2c0 {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        adm1266@40 {
> +                compatible = "adi,adm1266";
> +                reg = <0x40>;
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +        };
> +    };
> +...
> -- 
> 2.20.1
> 

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

end of thread, other threads:[~2020-03-09 16:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-09 14:14 [PATCH 0/2] hwmon: pmbus: adm1266: add initial support Alexandru Tachici
2020-03-09 14:14 ` [PATCH 1/2] " Alexandru Tachici
2020-03-09 16:19   ` Guenter Roeck
2020-03-09 14:14 ` [PATCH 2/2] dt-bindings: hwmon: Add bindings for ADM1266 Alexandru Tachici
2020-03-09 16:20   ` Guenter Roeck

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.