diff mbox series

[1/2] iio: dac: mcp4922: add support to mcp4921

Message ID 20220624095619.1415614-1-kory.maincent@bootlin.com (mailing list archive)
State Accepted
Headers show
Series [1/2] iio: dac: mcp4922: add support to mcp4921 | expand

Commit Message

Kory Maincent June 24, 2022, 9:56 a.m. UTC
Add support to mcp4921 which has only one output channel.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
 drivers/iio/dac/mcp4922.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

Comments

Miquel Raynal June 24, 2022, 5:59 p.m. UTC | #1
Hi Kory,

kory.maincent@bootlin.com wrote on Fri, 24 Jun 2022 11:56:17 +0200:

> Add support to mcp4921 which has only one output channel.
> 
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>

Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>

> ---
>  drivers/iio/dac/mcp4922.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
> index cb9e60e71b91..0d41c0f25515 100644
> --- a/drivers/iio/dac/mcp4922.c
> +++ b/drivers/iio/dac/mcp4922.c
> @@ -17,10 +17,12 @@
>  #include <linux/bitops.h>
>  
>  #define MCP4922_NUM_CHANNELS	2
> +#define MCP4921_NUM_CHANNELS	1
>  
>  enum mcp4922_supported_device_ids {
>  	ID_MCP4902,
>  	ID_MCP4912,
> +	ID_MCP4921,
>  	ID_MCP4922,
>  };
>  
> @@ -105,9 +107,10 @@ static int mcp4922_write_raw(struct iio_dev *indio_dev,
>  	}
>  }
>  
> -static const struct iio_chan_spec mcp4922_channels[3][MCP4922_NUM_CHANNELS] = {
> +static const struct iio_chan_spec mcp4922_channels[4][MCP4922_NUM_CHANNELS] = {
>  	[ID_MCP4902] = { MCP4922_CHAN(0, 8),	MCP4922_CHAN(1, 8) },
>  	[ID_MCP4912] = { MCP4922_CHAN(0, 10),	MCP4922_CHAN(1, 10) },
> +	[ID_MCP4921] = { MCP4922_CHAN(0, 12),	{} },
>  	[ID_MCP4922] = { MCP4922_CHAN(0, 12),	MCP4922_CHAN(1, 12) },
>  };
>  
> @@ -154,7 +157,10 @@ static int mcp4922_probe(struct spi_device *spi)
>  	indio_dev->info = &mcp4922_info;
>  	indio_dev->modes = INDIO_DIRECT_MODE;
>  	indio_dev->channels = mcp4922_channels[id->driver_data];
> -	indio_dev->num_channels = MCP4922_NUM_CHANNELS;
> +	if (id->driver_data == ID_MCP4921)
> +		indio_dev->num_channels = MCP4921_NUM_CHANNELS;
> +	else
> +		indio_dev->num_channels = MCP4922_NUM_CHANNELS;
>  	indio_dev->name = id->name;
>  
>  	ret = iio_device_register(indio_dev);
> @@ -185,6 +191,7 @@ static void mcp4922_remove(struct spi_device *spi)
>  static const struct spi_device_id mcp4922_id[] = {
>  	{"mcp4902", ID_MCP4902},
>  	{"mcp4912", ID_MCP4912},
> +	{"mcp4921", ID_MCP4921},
>  	{"mcp4922", ID_MCP4922},
>  	{}
>  };


Thanks,
Miquèl
Jonathan Cameron June 25, 2022, 11:15 a.m. UTC | #2
On Fri, 24 Jun 2022 11:56:17 +0200
Kory Maincent <kory.maincent@bootlin.com> wrote:

> Add support to mcp4921 which has only one output channel.
> 
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>

Obviously not been on the list long, but as it 'seems' totally trivial
and has already gottten some review I'll queue it up now anyway.

Series applied to the togreg branch of iio.git.

Thanks,

Jonathan

> ---
>  drivers/iio/dac/mcp4922.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
> index cb9e60e71b91..0d41c0f25515 100644
> --- a/drivers/iio/dac/mcp4922.c
> +++ b/drivers/iio/dac/mcp4922.c
> @@ -17,10 +17,12 @@
>  #include <linux/bitops.h>
>  
>  #define MCP4922_NUM_CHANNELS	2
> +#define MCP4921_NUM_CHANNELS	1
>  
>  enum mcp4922_supported_device_ids {
>  	ID_MCP4902,
>  	ID_MCP4912,
> +	ID_MCP4921,
>  	ID_MCP4922,
>  };
>  
> @@ -105,9 +107,10 @@ static int mcp4922_write_raw(struct iio_dev *indio_dev,
>  	}
>  }
>  
> -static const struct iio_chan_spec mcp4922_channels[3][MCP4922_NUM_CHANNELS] = {
> +static const struct iio_chan_spec mcp4922_channels[4][MCP4922_NUM_CHANNELS] = {
>  	[ID_MCP4902] = { MCP4922_CHAN(0, 8),	MCP4922_CHAN(1, 8) },
>  	[ID_MCP4912] = { MCP4922_CHAN(0, 10),	MCP4922_CHAN(1, 10) },
> +	[ID_MCP4921] = { MCP4922_CHAN(0, 12),	{} },
>  	[ID_MCP4922] = { MCP4922_CHAN(0, 12),	MCP4922_CHAN(1, 12) },
>  };
>  
> @@ -154,7 +157,10 @@ static int mcp4922_probe(struct spi_device *spi)
>  	indio_dev->info = &mcp4922_info;
>  	indio_dev->modes = INDIO_DIRECT_MODE;
>  	indio_dev->channels = mcp4922_channels[id->driver_data];
> -	indio_dev->num_channels = MCP4922_NUM_CHANNELS;
> +	if (id->driver_data == ID_MCP4921)
> +		indio_dev->num_channels = MCP4921_NUM_CHANNELS;
> +	else
> +		indio_dev->num_channels = MCP4922_NUM_CHANNELS;
>  	indio_dev->name = id->name;
>  
>  	ret = iio_device_register(indio_dev);
> @@ -185,6 +191,7 @@ static void mcp4922_remove(struct spi_device *spi)
>  static const struct spi_device_id mcp4922_id[] = {
>  	{"mcp4902", ID_MCP4902},
>  	{"mcp4912", ID_MCP4912},
> +	{"mcp4921", ID_MCP4921},
>  	{"mcp4922", ID_MCP4922},
>  	{}
>  };
diff mbox series

Patch

diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
index cb9e60e71b91..0d41c0f25515 100644
--- a/drivers/iio/dac/mcp4922.c
+++ b/drivers/iio/dac/mcp4922.c
@@ -17,10 +17,12 @@ 
 #include <linux/bitops.h>
 
 #define MCP4922_NUM_CHANNELS	2
+#define MCP4921_NUM_CHANNELS	1
 
 enum mcp4922_supported_device_ids {
 	ID_MCP4902,
 	ID_MCP4912,
+	ID_MCP4921,
 	ID_MCP4922,
 };
 
@@ -105,9 +107,10 @@  static int mcp4922_write_raw(struct iio_dev *indio_dev,
 	}
 }
 
-static const struct iio_chan_spec mcp4922_channels[3][MCP4922_NUM_CHANNELS] = {
+static const struct iio_chan_spec mcp4922_channels[4][MCP4922_NUM_CHANNELS] = {
 	[ID_MCP4902] = { MCP4922_CHAN(0, 8),	MCP4922_CHAN(1, 8) },
 	[ID_MCP4912] = { MCP4922_CHAN(0, 10),	MCP4922_CHAN(1, 10) },
+	[ID_MCP4921] = { MCP4922_CHAN(0, 12),	{} },
 	[ID_MCP4922] = { MCP4922_CHAN(0, 12),	MCP4922_CHAN(1, 12) },
 };
 
@@ -154,7 +157,10 @@  static int mcp4922_probe(struct spi_device *spi)
 	indio_dev->info = &mcp4922_info;
 	indio_dev->modes = INDIO_DIRECT_MODE;
 	indio_dev->channels = mcp4922_channels[id->driver_data];
-	indio_dev->num_channels = MCP4922_NUM_CHANNELS;
+	if (id->driver_data == ID_MCP4921)
+		indio_dev->num_channels = MCP4921_NUM_CHANNELS;
+	else
+		indio_dev->num_channels = MCP4922_NUM_CHANNELS;
 	indio_dev->name = id->name;
 
 	ret = iio_device_register(indio_dev);
@@ -185,6 +191,7 @@  static void mcp4922_remove(struct spi_device *spi)
 static const struct spi_device_id mcp4922_id[] = {
 	{"mcp4902", ID_MCP4902},
 	{"mcp4912", ID_MCP4912},
+	{"mcp4921", ID_MCP4921},
 	{"mcp4922", ID_MCP4922},
 	{}
 };