linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/12] iio: imu: new inv_icm42600 driver
@ 2020-05-07 14:42 Jean-Baptiste Maneyrol
  2020-05-07 14:42 ` [PATCH 01/12] iio: imu: inv_icm42600: add core of " Jean-Baptiste Maneyrol
                   ` (11 more replies)
  0 siblings, 12 replies; 30+ messages in thread
From: Jean-Baptiste Maneyrol @ 2020-05-07 14:42 UTC (permalink / raw)
  To: jic23, robh+dt, robh, mchehab+huawei, davem, gregkh
  Cc: linux-iio, devicetree, linux-kernel, Jean-Baptiste Maneyrol

This series add a new driver for managing InvenSense ICM-426xx 6-axis IMUs.
This next generation of chips includes new generations of 3-axis gyroscope
and 3-axis accelerometer, support of I3C in addition to I2C and SPI, and
intelligent MotionTracking features like pedometer, tilt detection, and
tap detection.

This series is delivering a driver supporting gyroscope, accelerometer and
temperature data, with polling and buffering using hwfifo and watermark,
on I2C and SPI busses.

Gyroscope and accelerometer sensors are completely independent and can have
different ODRs. Since there is only a single FIFO a specific value is used to
mark invalid data. For keeping the device standard we are de-multiplexing data
from the FIFO to 2 IIO devices with 2 buffers, 1 for the accelerometer and 1
for the gyroscope. This architecture also enables to easily turn each sensor
on/off without impacting the other. The IIO devices are using triggered buffer
as sub-interrupts of the device iio trigger using the interrupt pin. A complex
timestamping mechanism is added to handle correctly FIFO watermark and dynamic
changes.

Jean-Baptiste Maneyrol (12):
  iio: imu: inv_icm42600: add core of new inv_icm42600 driver
  iio: imu: inv_icm42600: add I2C driver for inv_icm42600 driver
  iio: imu: inv_icm42600: add SPI driver for inv_icm42600 driver
  iio: imu: inv_icm42600: add gyroscope IIO device
  iio: imu: inv_icm42600: add accelerometer IIO device
  iio: imu: inv_icm42600: add temperature sensor support
  iio: imu: add Kconfig and Makefile for inv_icm42600 driver
  iio: imu: inv_icm42600: add device interrupt trigger
  iio: imu: inv_icm42600: add buffer support in iio devices
  iio: imu: inv_icm42600: add accurate timestamping
  dt-bindings: iio: imu: Add inv_icm42600 documentation
  MAINTAINERS: add entry for inv_icm42600 6-axis imu sensor

 .../bindings/iio/imu/invensense,icm42600.yaml |  90 +++
 MAINTAINERS                                   |   8 +
 drivers/iio/imu/Kconfig                       |   1 +
 drivers/iio/imu/Makefile                      |   1 +
 drivers/iio/imu/inv_icm42600/Kconfig          |  30 +
 drivers/iio/imu/inv_icm42600/Makefile         |  16 +
 drivers/iio/imu/inv_icm42600/inv_icm42600.h   | 400 +++++++++
 .../iio/imu/inv_icm42600/inv_icm42600_accel.c | 752 +++++++++++++++++
 .../imu/inv_icm42600/inv_icm42600_buffer.c    | 373 +++++++++
 .../imu/inv_icm42600/inv_icm42600_buffer.h    | 162 ++++
 .../iio/imu/inv_icm42600/inv_icm42600_core.c  | 674 +++++++++++++++
 .../iio/imu/inv_icm42600/inv_icm42600_gyro.c  | 764 ++++++++++++++++++
 .../iio/imu/inv_icm42600/inv_icm42600_i2c.c   | 117 +++
 .../iio/imu/inv_icm42600/inv_icm42600_spi.c   | 117 +++
 .../iio/imu/inv_icm42600/inv_icm42600_temp.c  |  86 ++
 .../iio/imu/inv_icm42600/inv_icm42600_temp.h  |  32 +
 .../imu/inv_icm42600/inv_icm42600_timestamp.c | 246 ++++++
 .../imu/inv_icm42600/inv_icm42600_timestamp.h |  82 ++
 .../imu/inv_icm42600/inv_icm42600_trigger.c   | 188 +++++
 19 files changed, 4139 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
 create mode 100644 drivers/iio/imu/inv_icm42600/Kconfig
 create mode 100644 drivers/iio/imu/inv_icm42600/Makefile
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600.h
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.h
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_core.c
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_temp.h
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.h
 create mode 100644 drivers/iio/imu/inv_icm42600/inv_icm42600_trigger.c

-- 
2.17.1


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2020-05-21 17:57 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-07 14:42 [PATCH 00/12] iio: imu: new inv_icm42600 driver Jean-Baptiste Maneyrol
2020-05-07 14:42 ` [PATCH 01/12] iio: imu: inv_icm42600: add core of " Jean-Baptiste Maneyrol
2020-05-08 13:28   ` Jonathan Cameron
2020-05-18 14:14     ` Jean-Baptiste Maneyrol
2020-05-21 17:47       ` Jonathan Cameron
2020-05-07 14:42 ` [PATCH 02/12] iio: imu: inv_icm42600: add I2C driver for " Jean-Baptiste Maneyrol
2020-05-08 13:44   ` Jonathan Cameron
2020-05-18 14:19     ` Jean-Baptiste Maneyrol
2020-05-21 17:50       ` Jonathan Cameron
2020-05-07 14:42 ` [PATCH 03/12] iio: imu: inv_icm42600: add SPI " Jean-Baptiste Maneyrol
2020-05-07 14:42 ` [PATCH 04/12] iio: imu: inv_icm42600: add gyroscope IIO device Jean-Baptiste Maneyrol
2020-05-08 14:01   ` Jonathan Cameron
     [not found]     ` <MN2PR12MB4422B32CB3C4BFD0AF5FFF3CC4B80@MN2PR12MB4422.namprd12.prod.outlook.com>
2020-05-18 15:33       ` Jean-Baptiste Maneyrol
2020-05-21 17:55       ` Jonathan Cameron
2020-05-07 14:42 ` [PATCH 05/12] iio: imu: inv_icm42600: add accelerometer " Jean-Baptiste Maneyrol
2020-05-07 14:42 ` [PATCH 06/12] iio: imu: inv_icm42600: add temperature sensor support Jean-Baptiste Maneyrol
2020-05-07 14:42 ` [PATCH 07/12] iio: imu: add Kconfig and Makefile for inv_icm42600 driver Jean-Baptiste Maneyrol
2020-05-07 14:42 ` [PATCH 08/12] iio: imu: inv_icm42600: add device interrupt trigger Jean-Baptiste Maneyrol
2020-05-08 14:22   ` Jonathan Cameron
2020-05-18 15:41     ` Jean-Baptiste Maneyrol
2020-05-07 14:42 ` [PATCH 09/12] iio: imu: inv_icm42600: add buffer support in iio devices Jean-Baptiste Maneyrol
2020-05-08 14:19   ` Jonathan Cameron
2020-05-18 15:32     ` Jean-Baptiste Maneyrol
2020-05-21 17:56       ` Jonathan Cameron
2020-05-07 14:42 ` [PATCH 10/12] iio: imu: inv_icm42600: add accurate timestamping Jean-Baptiste Maneyrol
2020-05-08 14:42   ` Jonathan Cameron
2020-05-18 15:48     ` Jean-Baptiste Maneyrol
2020-05-07 14:42 ` [PATCH 11/12] dt-bindings: iio: imu: Add inv_icm42600 documentation Jean-Baptiste Maneyrol
2020-05-15  3:00   ` Rob Herring
2020-05-07 14:42 ` [PATCH 12/12] MAINTAINERS: add entry for inv_icm42600 6-axis imu sensor Jean-Baptiste Maneyrol

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).