diff options
Diffstat (limited to 'drivers/misc/lis3lv02d')
| -rw-r--r-- | drivers/misc/lis3lv02d/lis3lv02d.c | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c index b928bc14e97..8b51cd62d06 100644 --- a/drivers/misc/lis3lv02d/lis3lv02d.c +++ b/drivers/misc/lis3lv02d/lis3lv02d.c @@ -375,12 +375,14 @@ void lis3lv02d_poweron(struct lis3lv02d *lis3)  	 *      both have been read. So the value read will always be correct.  	 * Set BOOT bit to refresh factory tuning values.  	 */ -	lis3->read(lis3, CTRL_REG2, ®); -	if (lis3->whoami ==  WAI_12B) -		reg |= CTRL2_BDU | CTRL2_BOOT; -	else -		reg |= CTRL2_BOOT_8B; -	lis3->write(lis3, CTRL_REG2, reg); +	if (lis3->pdata) { +		lis3->read(lis3, CTRL_REG2, ®); +		if (lis3->whoami ==  WAI_12B) +			reg |= CTRL2_BDU | CTRL2_BOOT; +		else +			reg |= CTRL2_BOOT_8B; +		lis3->write(lis3, CTRL_REG2, reg); +	}  	/* LIS3 power on delay is quite long */  	msleep(lis3->pwron_delay / lis3lv02d_get_odr());  |