Re: [PATCH] iio: imu: inv_icm42600: add support of accel low-power mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Jonathan,

sorry for the patch malformation, I will send a V2 fixed.

Our chips have usually 2 working modes called "low-noise" and "low-power".

"Low-noise" is the standard mode where the chip (ADC/MEMS) runs continuously with high precision oscillator. Measures are the best with the less jitter (low noise), you can use the highest possible frequencies (> 500Hz), but power consumption is high, and you cannot use the lowest frequencies (< 12.5Hz).

"Low-power" is duty cycling the chip, turning ADC and MEMS on only when measuring and then turns it off. Power consumption is then much lower (low power), you can use the lowest frequencies (< 12.5Hz), but measures have more jitter, and you cannot use the highest frequencies.

Depending on the use case, you may prefer to have the "low-noise" mode with better measures and high frequencies, or the "low-power" mode with less power consumption and low frequencies. The main point is the frequencies availability depending on the power mode.

We could have the driver switching automatically from low-noise to low-power to support all possible frequencies, but we need to arbitrary choose the mode for the common frequencies, and the configured hardware bias in bias registers are not the same depending on the power mode. We prefer handling all this from userspace, switching the mode when needed depending on the use case and dealing with the 2 sets of hardware bias depending on the modes.

I hope I am clear enough with my description.

Thanks,
JB



________________________________________
From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
Sent: Thursday, May 9, 2024 15:13
To: INV Git Commit <INV.git-commit@xxxxxxx>
Cc: jic23@xxxxxxxxxx <jic23@xxxxxxxxxx>; lars@xxxxxxxxxx <lars@xxxxxxxxxx>; linux-iio@xxxxxxxxxxxxxxx <linux-iio@xxxxxxxxxxxxxxx>; Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@xxxxxxx>
Subject: Re: [PATCH] iio: imu: inv_icm42600: add support of accel low-power mode
 
This Message Is From an External Sender
This message came from outside your organization.
 
On Tue,  7 May 2024 10:30:56 +0000
inv.git-commit@xxxxxxx wrote:

> From: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@xxxxxxx>
> 
> Add channel attributes "power_mode" and "power_mode_available" for
> setting accel power mode (low-noise or low-power).
> 
> Differents ODRs and filter are possible depending on the power mode.
> Thus make ODRs and filter dynamic and check values when applying.
Hi Jean-Baptiste

No Sign-off?

We have never provided this sort of control because it's near
impossible for user space to know what to do with it.

Various attempts happened in the past to provide enough info
to userspace, but didn't succeed because what low power means
is incredibly chip dependent.  As a general rule everyone wants
low power, but at 0 perf cost :)

What are the results of low power mode? Normally it maps as
something we can enable when some other set of states is set or
automatically control based on how often the device is being accessed etc.

For example, what do we loose by choosing this mode for everything
below 200Hz?

I see there is some reference to 'low noise' - what does that actually
mean for this device? Is it oversampling or running lower resolution on
the ADCs?  If so those are the things to look at as ways to control
this.  Choose lowest power to meet a given set of requirements.

Jonathan





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux