iio: chemical: Add support for external Reset and Wakeup in CCS811
authorManivannan Sadhasivam <mani@kernel.org>
Tue, 14 Apr 2020 18:49:29 +0000 (00:19 +0530)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 3 May 2020 08:47:18 +0000 (09:47 +0100)
commitc6644f7201f3398220f8c84ecc5a9432d51ee89b
tree14365d1f2c4c8f02eab9d4b057ba0911e765fb51
parent1060741fc51a8fb24d5dc7c61e2ecaffa0e5785e
iio: chemical: Add support for external Reset and Wakeup in CCS811

CCS811 VOC sensor exposes nRESET and nWAKE pins which can be connected
to GPIO pins of the host controller. These pins can be used to externally
release the device from reset and also to wake it up before any I2C
transaction. The initial driver support assumed that the nRESET pin is not
connected and the nWAKE pin is tied to ground.

This commit improves it by adding support for controlling those two pins
externally using a host controller. For the case of reset, if the hardware
reset is not available, the mechanism to do software reset is also added.

As a side effect of doing this, the IIO device allocation needs to be
slightly moved to top of probe to make use of priv data early.

Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/chemical/ccs811.c