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. thanks martin -- 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