[PATCH v2 4/4] i2c/busses/i2c-icy: Add platform_data for LTC2990

Max Staudt
2019-08-12T23:53:22Z

This enables the three additional inputs available on the 2019 a1k.org
reprint of the ICY board:

in1 will be the voltage of the 5V rail, divided by 2.
in2 will be the voltage of the 12V rail, divided by 4.
temp3 will be measured using a PCB loop next the chip.

Signed-off-by: Max Staudt <max@enpas.org>
---
drivers/i2c/busses/i2c-icy.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-icy.c b/drivers/i2c/busses/i2c-icy.c
index 8125683c5..6ad9910a0 100644
--- a/drivers/i2c/busses/i2c-icy.c
+++ b/drivers/i2c/busses/i2c-icy.c
@@ -42,6 +42,7 @@

#include <linux/i2c.h>
#include <linux/i2c-algo-pcf.h>
+#include <linux/platform_data/ltc2990.h>

#include <asm/amigaints.h>
#include <linux/zorro.h>
@@ -106,8 +107,21 @@ static void icy_pcf_waitforpin(void *data)
/*
* Main i2c-icy part
*/
+static struct ltc2990_platform_data icy_ltc2990_platform_data = {
+ /*
+ * Additional sensors exposed by this platform data:
+ *
+ * in1 will be the voltage of the 5V rail, divided by 2.
+ * in2 will be the voltage of the 12V rail, divided by 4.
+ * temp3 will be measured using a PCB loop next the chip.
+ */
+ .meas_mode = {0, 3},
+};
+
static struct i2c_board_info icy_ltc2990_info = {
- I2C_BOARD_INFO("ltc2990", 0x4c),
+ .type = "ltc2990",
+ .addr = 0x4c,
+ .platform_data = &icy_ltc2990_platform_data,
};

static unsigned short const icy_ltc2990_addresses[] = {0x4c, I2C_CLIENT_END};
@@ -167,6 +181,8 @@ static int icy_probe(struct zorro_dev *z,
*
* in0 is the voltage of the internal 5V power supply.
* temp1 is the temperature inside the chip.
+ *
+ * See platform data above for in1, in2, temp3.
*/
i2c->client_ltc2990 = i2c_new_probed_device(&i2c->adapter,
&icy_ltc2990_info,
--
2.11.0