2022-06-24 09:59:23

by Kory Maincent

[permalink] [raw]
Subject: [PATCH 1/2] iio: dac: mcp4922: add support to mcp4921

Add support to mcp4921 which has only one output channel.

Signed-off-by: Kory Maincent <[email protected]>
---
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},
{}
};
--
2.25.1


2022-06-24 10:18:21

by Kory Maincent

[permalink] [raw]
Subject: [PATCH 2/2] dt-bindings: iio: dac: mcp4922: expand for mcp4921 support

Add device tree bindings for the MCP4921 DAC.

Signed-off-by: Kory Maincent <[email protected]>
---
Documentation/devicetree/bindings/iio/dac/microchip,mcp4922.yaml | 1 +
1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/iio/dac/microchip,mcp4922.yaml b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4922.yaml
index 12a14b3f36cb..4c430abcdbf9 100644
--- a/Documentation/devicetree/bindings/iio/dac/microchip,mcp4922.yaml
+++ b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4922.yaml
@@ -15,6 +15,7 @@ properties:
enum:
- microchip,mcp4902
- microchip,mcp4912
+ - microchip,mcp4921
- microchip,mcp4922

reg:
--
2.25.1

2022-06-24 12:00:45

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 2/2] dt-bindings: iio: dac: mcp4922: expand for mcp4921 support

On 24/06/2022 11:56, Kory Maincent wrote:
> Add device tree bindings for the MCP4921 DAC.
>
> Signed-off-by: Kory Maincent <[email protected]>
> ---
> Documentation/devicetree/bindings/iio/dac/microchip,mcp4922.yaml | 1 +
> 1 file changed, 1 insertion(+)
>


Reviewed-by: Krzysztof Kozlowski <[email protected]>


Best regards,
Krzysztof

2022-06-24 18:16:52

by Miquel Raynal

[permalink] [raw]
Subject: Re: [PATCH 1/2] iio: dac: mcp4922: add support to mcp4921

Hi Kory,

[email protected] 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 <[email protected]>

Reviewed-by: Miquel Raynal <[email protected]>

> ---
> 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

2022-06-25 11:19:37

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 1/2] iio: dac: mcp4922: add support to mcp4921

On Fri, 24 Jun 2022 11:56:17 +0200
Kory Maincent <[email protected]> wrote:

> Add support to mcp4921 which has only one output channel.
>
> Signed-off-by: Kory Maincent <[email protected]>

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},
> {}
> };