2022-04-13 22:07:53

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v1 1/3] iio: imu: adis16480: Make use of device properties

Convert the module to be property provider agnostic and allow
it to be used on non-OF platforms.

Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/iio/imu/adis16480.c | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
index 44bbe3d19907..68eed088cca6 100644
--- a/drivers/iio/imu/adis16480.c
+++ b/drivers/iio/imu/adis16480.c
@@ -7,14 +7,16 @@

#include <linux/clk.h>
#include <linux/bitfield.h>
-#include <linux/of_irq.h>
#include <linux/interrupt.h>
+#include <linux/irq.h>
#include <linux/math.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/spi/spi.h>
+#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/lcm.h>
+#include <linux/property.h>
#include <linux/swab.h>
#include <linux/crc32.h>

@@ -1239,9 +1241,10 @@ static int adis16480_enable_irq(struct adis *adis, bool enable)
return __adis_write_reg_16(adis, ADIS16480_REG_FNCTIO_CTRL, val);
}

-static int adis16480_config_irq_pin(struct device_node *of_node,
- struct adis16480 *st)
+static int adis16480_config_irq_pin(struct adis16480 *st)
{
+ struct device *dev = &st->adis.spi->dev;
+ struct fwnode_handle *fwnode = dev_fwnode(dev);
struct irq_data *desc;
enum adis16480_int_pin pin;
unsigned int irq_type;
@@ -1267,7 +1270,7 @@ static int adis16480_config_irq_pin(struct device_node *of_node,
*/
pin = ADIS16480_PIN_DIO1;
for (i = 0; i < ARRAY_SIZE(adis16480_int_pin_names); i++) {
- irq = of_irq_get_byname(of_node, adis16480_int_pin_names[i]);
+ irq = fwnode_irq_get_byname(fwnode, adis16480_int_pin_names[i]);
if (irq > 0) {
pin = i;
break;
@@ -1295,15 +1298,15 @@ static int adis16480_config_irq_pin(struct device_node *of_node,
return adis_write_reg_16(&st->adis, ADIS16480_REG_FNCTIO_CTRL, val);
}

-static int adis16480_of_get_ext_clk_pin(struct adis16480 *st,
- struct device_node *of_node)
+static int adis16480_fw_get_ext_clk_pin(struct adis16480 *st)
{
+ struct device *dev = &st->adis.spi->dev;
const char *ext_clk_pin;
enum adis16480_int_pin pin;
int i;

pin = ADIS16480_PIN_DIO2;
- if (of_property_read_string(of_node, "adi,ext-clk-pin", &ext_clk_pin))
+ if (device_property_read_string(dev, "adi,ext-clk-pin", &ext_clk_pin))
goto clk_input_not_found;

for (i = 0; i < ARRAY_SIZE(adis16480_int_pin_names); i++) {
@@ -1317,9 +1320,7 @@ static int adis16480_of_get_ext_clk_pin(struct adis16480 *st,
return pin;
}

-static int adis16480_ext_clk_config(struct adis16480 *st,
- struct device_node *of_node,
- bool enable)
+static int adis16480_ext_clk_config(struct adis16480 *st, bool enable)
{
unsigned int mode, mask;
enum adis16480_int_pin pin;
@@ -1330,7 +1331,7 @@ static int adis16480_ext_clk_config(struct adis16480 *st,
if (ret)
return ret;

- pin = adis16480_of_get_ext_clk_pin(st, of_node);
+ pin = adis16480_fw_get_ext_clk_pin(st);
/*
* Each DIOx pin supports only one function at a time. When a single pin
* has two assignments, the enable bit for a lower priority function
@@ -1438,7 +1439,7 @@ static int adis16480_probe(struct spi_device *spi)
return ret;
}

- ret = adis16480_config_irq_pin(spi->dev.of_node, st);
+ ret = adis16480_config_irq_pin(st);
if (ret)
return ret;

@@ -1447,7 +1448,7 @@ static int adis16480_probe(struct spi_device *spi)
return ret;

if (!IS_ERR_OR_NULL(st->ext_clk)) {
- ret = adis16480_ext_clk_config(st, spi->dev.of_node, true);
+ ret = adis16480_ext_clk_config(st, true);
if (ret)
return ret;

--
2.35.1


2022-04-14 00:58:06

by Nuno Sa

[permalink] [raw]
Subject: RE: [PATCH v1 1/3] iio: imu: adis16480: Make use of device properties



> -----Original Message-----
> From: Andy Shevchenko <[email protected]>
> Sent: Wednesday, April 13, 2022 4:41 PM
> To: Sa, Nuno <[email protected]>; Andy Shevchenko
> <[email protected]>; [email protected];
> [email protected]
> Cc: Lars-Peter Clausen <[email protected]>; Hennerich, Michael
> <[email protected]>; Jonathan Cameron
> <[email protected]>
> Subject: [PATCH v1 1/3] iio: imu: adis16480: Make use of device
> properties
>
> [External]
>
> Convert the module to be property provider agnostic and allow
> it to be used on non-OF platforms.
>
> Signed-off-by: Andy Shevchenko
> <[email protected]>
> ---

You beat me to do this. I actually had planned to do this next week
once I saw we already have fwnode_irq_get_byname(). Anyways...

Reviewed-by: Nuno S? <[email protected]>

(I will still give this a test next week)

2022-04-16 00:57:42

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v1 1/3] iio: imu: adis16480: Make use of device properties

On Wed, Apr 13, 2022 at 03:25:49PM +0000, Sa, Nuno wrote:
> > -----Original Message-----
> > From: Andy Shevchenko <[email protected]>
> > Sent: Wednesday, April 13, 2022 4:41 PM

...

> You beat me to do this. I actually had planned to do this next week
> once I saw we already have fwnode_irq_get_byname(). Anyways...
>
> Reviewed-by: Nuno S? <[email protected]>
>
> (I will still give this a test next week)

Thanks!

--
With Best Regards,
Andy Shevchenko


2022-04-16 01:37:51

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v1 1/3] iio: imu: adis16480: Make use of device properties

On Wed, 13 Apr 2022 19:58:53 +0300
Andy Shevchenko <[email protected]> wrote:

> On Wed, Apr 13, 2022 at 03:25:49PM +0000, Sa, Nuno wrote:
> > > -----Original Message-----
> > > From: Andy Shevchenko <[email protected]>
> > > Sent: Wednesday, April 13, 2022 4:41 PM
>
> ...
>
> > You beat me to do this. I actually had planned to do this next week
> > once I saw we already have fwnode_irq_get_byname(). Anyways...
> >
> > Reviewed-by: Nuno Sá <[email protected]>
> >
> > (I will still give this a test next week)
>
> Thanks!
>
I'll wait to apply it until you confirm all was good (mind you I haven't
read it yet :)

Thanks,

Jonathan

2022-04-22 21:49:00

by Nuno Sa

[permalink] [raw]
Subject: RE: [PATCH v1 1/3] iio: imu: adis16480: Make use of device properties



> -----Original Message-----
> From: Jonathan Cameron <[email protected]>
> Sent: Friday, April 15, 2022 8:04 PM
> To: Andy Shevchenko <[email protected]>
> Cc: Sa, Nuno <[email protected]>; [email protected];
> [email protected]; Lars-Peter Clausen <[email protected]>;
> Hennerich, Michael <[email protected]>
> Subject: Re: [PATCH v1 1/3] iio: imu: adis16480: Make use of device
> properties
>
> [External]
>
> On Wed, 13 Apr 2022 19:58:53 +0300
> Andy Shevchenko <[email protected]> wrote:
>
> > On Wed, Apr 13, 2022 at 03:25:49PM +0000, Sa, Nuno wrote:
> > > > -----Original Message-----
> > > > From: Andy Shevchenko <[email protected]>
> > > > Sent: Wednesday, April 13, 2022 4:41 PM
> >
> > ...
> >
> > > You beat me to do this. I actually had planned to do this next week
> > > once I saw we already have fwnode_irq_get_byname().
> Anyways...
> > >
> > > Reviewed-by: Nuno Sá <[email protected]>
> > >
> > > (I will still give this a test next week)
> >
> > Thanks!
> >
> I'll wait to apply it until you confirm all was good (mind you I haven't
> read it yet :)
>

Fell free to add

Tested-by: Nuno Sá <[email protected]>