Re: [PATCH 1/2] iio: amplifiers: hmc425a: Add Support HMC540S 4-bit Attenuator

From: Jonathan Cameron
Date: Mon Aug 28 2023 - 10:36:04 EST


On Wed, 16 Aug 2023 14:09:05 +0300
Ana-Maria Cusco <ana-maria.cusco@xxxxxxxxxx> wrote:

> From: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
>
> This adds support for the Analog Devices HMC540s 1 dB LSB
> Silicon MMIC 4-Bit Digital Positive Control Attenuator, 0.1 - 8 GHz
>
> Signed-off-by: Ana-Maria Cusco <ana-maria.cusco@xxxxxxxxxx>

Hi Ana-Maria

Generally for all but single patch series, I'd prefer a cover letter.
For new drivers, just put a short description of the device in there.
There are various reasons, but the simplest one is that it provides
a place where people can offer Reviewed-by etc for the whole series
in a form that the b4 tool I (and lots of other maintainers) use can
pick it up automatically.

Anyhow, actual patches look great to me.

Applied to the togreg branch of iio.git and pushed out as testing for now.
I will be rebasing on 5.6-rc1 once it's available after which these should
get picked up by linux-next.

Thanks,

Jonathan

> ---
> drivers/iio/amplifiers/hmc425a.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/drivers/iio/amplifiers/hmc425a.c b/drivers/iio/amplifiers/hmc425a.c
> index 108f0f1685ef..e87d35d50a95 100644
> --- a/drivers/iio/amplifiers/hmc425a.c
> +++ b/drivers/iio/amplifiers/hmc425a.c
> @@ -21,6 +21,7 @@
>
> enum hmc425a_type {
> ID_HMC425A,
> + ID_HMC540S,
> };
>
> struct hmc425a_chip_info {
> @@ -70,6 +71,9 @@ static int hmc425a_read_raw(struct iio_dev *indio_dev,
> case ID_HMC425A:
> gain = ~code * -500;
> break;
> + case ID_HMC540S:
> + gain = ~code * -1000;
> + break;
> }
>
> *val = gain / 1000;
> @@ -106,6 +110,9 @@ static int hmc425a_write_raw(struct iio_dev *indio_dev,
> case ID_HMC425A:
> code = ~((abs(gain) / 500) & 0x3F);
> break;
> + case ID_HMC540S:
> + code = ~((abs(gain) / 1000) & 0xF);
> + break;
> }
>
> mutex_lock(&st->lock);
> @@ -157,6 +164,7 @@ static const struct iio_chan_spec hmc425a_channels[] = {
> /* Match table for of_platform binding */
> static const struct of_device_id hmc425a_of_match[] = {
> { .compatible = "adi,hmc425a", .data = (void *)ID_HMC425A },
> + { .compatible = "adi,hmc540s", .data = (void *)ID_HMC540S },
> {},
> };
> MODULE_DEVICE_TABLE(of, hmc425a_of_match);
> @@ -171,6 +179,15 @@ static struct hmc425a_chip_info hmc425a_chip_info_tbl[] = {
> .gain_max = 0,
> .default_gain = -0x40, /* set default gain -31.5db*/
> },
> + [ID_HMC540S] = {
> + .name = "hmc540s",
> + .channels = hmc425a_channels,
> + .num_channels = ARRAY_SIZE(hmc425a_channels),
> + .num_gpios = 4,
> + .gain_min = -15000,
> + .gain_max = 0,
> + .default_gain = -0x10, /* set default gain -15.0db*/
> + },
> };
>
> static int hmc425a_probe(struct platform_device *pdev)