Re: [PATCH v4] iio: accel: add Freescale MMA7455L/MMA7456L 3-axis accelerometer driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 2015-11-01 um 19:01 schrieb Jonathan Cameron:
> On 31/10/15 21:37, Martin Kepplinger wrote:
>> Am 2015-10-31 um 13:49 schrieb Joachim Eastwood:
>>> Add support for Freescale MMA7455L/MMA7456L 3-axis in 10-bit mode for
>>> I2C and SPI bus. This rather simple driver that currently doesn't
>>> support all the hardware features of MMA7455L/MMA7456L.
>>>
>>> Tested on Embedded Artist's LPC4357 Dev Kit with MMA7455L on I2C bus.
>>>
>>> Data sheets for the two devices can be found here:
>>> http://cache.freescale.com/files/sensors/doc/data_sheet/MMA7455L.pdf
>>> http://cache.freescale.com/files/sensors/doc/data_sheet/MMA7456L.pdf
>>>
>>> Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
>>> ---
>>> Hi,
>>>
>>> This version address the comments from Jonathan Cameron.
>>>
>>> Changes since v3:
>>> * use IIO_CONST_ATTR on sampling_frequency_available
>>> * allow changing of rate and scaling while buffer is running
>>>
>>> Changes since v2:
>>> * fix id variable name in MODULE_DEVICE_TABLE
>>> * make MMA7455_{I2C,SPI} symbols selectable
>>> * rebase on linux-next (tag next-20151020)
>>>
>>> Changes since v1:
>>> * limit retries to 3 in mma7455_drdy
>>> * remove mma7455_show_scale_avail
>>> * use chan->address instead of chan->scan_index for reg addr
>>> * check that val2 is 0 when setting sample freq
>>> * use __le16 to hint about endianess in mma7455_trigger_handler
>>> * fix endianess in mma7455_read_raw function
>>> * add mma7456 id
>>> * split it into several source files to support both i2c and spi
>>>
>>>
>>>  drivers/iio/accel/Kconfig        |  29 ++++
>>>  drivers/iio/accel/Makefile       |   5 +
>>>  drivers/iio/accel/mma7455.h      |  20 +++
>>>  drivers/iio/accel/mma7455_core.c | 311 +++++++++++++++++++++++++++++++++++++++
>>>  drivers/iio/accel/mma7455_i2c.c  |  57 +++++++
>>>  drivers/iio/accel/mma7455_spi.c  |  53 +++++++
>>>  6 files changed, 475 insertions(+)
>>>  create mode 100644 drivers/iio/accel/mma7455.h
>>>  create mode 100644 drivers/iio/accel/mma7455_core.c
>>>  create mode 100644 drivers/iio/accel/mma7455_i2c.c
>>>  create mode 100644 drivers/iio/accel/mma7455_spi.c
>>>
>>> diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig
>>> index 969428dd6329..728a7761aaa6 100644
>>> --- a/drivers/iio/accel/Kconfig
>>> +++ b/drivers/iio/accel/Kconfig
>>> @@ -107,6 +107,35 @@ config KXCJK1013
>>>  	  To compile this driver as a module, choose M here: the module will
>>>  	  be called kxcjk-1013.
>>>  
>>> +config MMA7455
>>> +	tristate
>>> +	select IIO_BUFFER
>>> +	select IIO_TRIGGERED_BUFFER
>>> +
>>> +config MMA7455_I2C
>>> +	tristate "Freescale MMA7455L/MMA7456L Accelerometer I2C Driver"
>>> +	depends on I2C
>>> +	select MMA7455
>>> +	select REGMAP_I2C
>>> +	help
>>> +	  Say yes here to build support for the Freescale MMA7455L and
>>> +	  MMA7456L 3-axis accelerometer.
>>> +
>>> +	  To compile this driver as a module, choose M here: the module
>>> +	  will be called mma7455_i2c.
>>> +
>>> +config MMA7455_SPI
>>> +	tristate "Freescale MMA7455L/MMA7456L Accelerometer SPI Driver"
>>> +	depends on SPI_MASTER
>>> +	select MMA7455
>>> +	select REGMAP_SPI
>>> +	help
>>> +	  Say yes here to build support for the Freescale MMA7455L and
>>> +	  MMA7456L 3-axis accelerometer.
>>> +
>>> +	  To compile this driver as a module, choose M here: the module
>>> +	  will be called mma7455_spi.
>>> +
>>>  config MMA8452
>>>  	tristate "Freescale MMA8452Q and similar Accelerometers Driver"
>>>  	depends on I2C
>>> diff --git a/drivers/iio/accel/Makefile b/drivers/iio/accel/Makefile
>>> index 7925f166e6e9..7ea21f8b7d98 100644
>>> --- a/drivers/iio/accel/Makefile
>>> +++ b/drivers/iio/accel/Makefile
>>> @@ -10,6 +10,11 @@ obj-$(CONFIG_BMC150_ACCEL_SPI) += bmc150-accel-spi.o
>>>  obj-$(CONFIG_HID_SENSOR_ACCEL_3D) += hid-sensor-accel-3d.o
>>>  obj-$(CONFIG_KXCJK1013) += kxcjk-1013.o
>>>  obj-$(CONFIG_KXSD9)	+= kxsd9.o
>>> +
>>> +obj-$(CONFIG_MMA7455)		+= mma7455_core.o
>>> +obj-$(CONFIG_MMA7455_I2C)	+= mma7455_i2c.o
>>> +obj-$(CONFIG_MMA7455_SPI)	+= mma7455_spi.o
>>> +
>>>  obj-$(CONFIG_MMA8452)	+= mma8452.o
>>>  
>>>  obj-$(CONFIG_MMA9551_CORE)	+= mma9551_core.o
>>> diff --git a/drivers/iio/accel/mma7455.h b/drivers/iio/accel/mma7455.h
>>> new file mode 100644
>>> index 000000000000..8fae9345da88
>>> --- /dev/null
>>> +++ b/drivers/iio/accel/mma7455.h
>>> @@ -0,0 +1,20 @@
>>> +/*
>>> + * IIO accel header for Freescale MMA7455L 3-axis 10-bit accelerometer
>>> + * Copyright 2015 Joachim Eastwood <manabian@xxxxxxxxx>
>>> + *
>>
>> Even though they are very similar (internal technological differences),
>> you could mention both supported chips here and in the other files. Btw,
>> I would also s/header/driver here.
>>
>> That is, in case you get to do another version.
>>
> Hi Martin,
> 
> I can see where you are coming from, but typically I'd actually advocate
> mentioning the list of supported parts in as few a places as possible as
> they tend to get out of sync if we end up with a driver supporting lots
> of parts.  We have gotten round this in the past but saying something
> like **** and similar or *** and compatible but that's always a bit clunky.

I see. Kconfig should probably contain all supported products, so
refering to Kconfig would be scalable...

In this case, I don't really fear that this driver will support more
chips. These 2 are all (that are very similar / equal) there are, and
are relatively old, not "recommended" by the vendor anymore.

Nothing I don't like about the driver, just thoughts.

                     martin

> 
> I'll switch header to driver in the application of the patch.
> 
> Jonathan
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux