mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-12 01:20:14 +00:00
iio: accel: bma220: move bma220_power function
Move bma220_power() before bma220_init() as a precursor to a patch that removes code duplication. Signed-off-by: Petre Rodan <petre.rodan@subdimension.ro> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
5dbac275dc
commit
a9865410f4
@ -199,6 +199,31 @@ static const struct iio_info bma220_info = {
|
||||
.read_avail = bma220_read_avail,
|
||||
};
|
||||
|
||||
static int bma220_power(struct spi_device *spi, bool up)
|
||||
{
|
||||
int ret;
|
||||
unsigned int i;
|
||||
|
||||
/*
|
||||
* The chip can be suspended/woken up by a simple register read.
|
||||
* So, we need up to 2 register reads of the suspend register
|
||||
* to make sure that the device is in the desired state.
|
||||
*/
|
||||
for (i = 0; i < 2; i++) {
|
||||
ret = bma220_read_reg(spi, BMA220_REG_SUSPEND);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (up && ret == BMA220_SUSPEND_SLEEP)
|
||||
return 0;
|
||||
|
||||
if (!up && ret == BMA220_SUSPEND_WAKE)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
static int bma220_init(struct spi_device *spi)
|
||||
{
|
||||
int ret;
|
||||
@ -224,30 +249,6 @@ static int bma220_init(struct spi_device *spi)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bma220_power(struct spi_device *spi, bool up)
|
||||
{
|
||||
int i, ret;
|
||||
|
||||
/*
|
||||
* The chip can be suspended/woken up by a simple register read.
|
||||
* So, we need up to 2 register reads of the suspend register
|
||||
* to make sure that the device is in the desired state.
|
||||
*/
|
||||
for (i = 0; i < 2; i++) {
|
||||
ret = bma220_read_reg(spi, BMA220_REG_SUSPEND);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (up && ret == BMA220_SUSPEND_SLEEP)
|
||||
return 0;
|
||||
|
||||
if (!up && ret == BMA220_SUSPEND_WAKE)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
static void bma220_deinit(void *spi)
|
||||
{
|
||||
bma220_power(spi, false);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user