diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2020-03-09 10:22:58 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-03-09 23:51:02 +0000 |
commit | c3dcd2826896e2f2f9b585dcd42ea98d38ae17cc (patch) | |
tree | cd18ff1932c2422c18d10bc8034aa86f1907af2a /board/trogdor | |
parent | 889d9ad68947c3f6eee2e4ea491987d7477f4ac8 (diff) | |
download | chrome-ec-c3dcd2826896e2f2f9b585dcd42ea98d38ae17cc.tar.gz |
driver: bmi160: Fix ODR to REG when rate is less than 100Hz properly
When the ODr was the exact frequency, the calculation was not correct.
For instance, 50Hz would return register 6 when 7 was expected.
Fixes: 0e99e9763 ("bmi160: Fix ODR to REG when rate is less than 100Hz")
BUG=b:120942904
BRANCH=none
TEST=use:
for (int i = 1600000 ; i > 1000 ; i >>= 1) {
printf("%d mHZ : reg %d\n", i + 1, BMI160_ODR_TO_REG(i + 1));
printf("%d mHZ : reg %d\n", i, BMI160_ODR_TO_REG(i));
printf("%d mHZ : reg %d\n", i -1 , BMI160_ODR_TO_REG(i -1));
}
To verify the code is correct:
1600001 mHZ : reg 12
1600000 mHZ : reg 12
1599999 mHZ : reg 11
800001 mHZ : reg 11
800000 mHZ : reg 11
799999 mHZ : reg 10
400001 mHZ : reg 10
400000 mHZ : reg 10
399999 mHZ : reg 9
200001 mHZ : reg 9
200000 mHZ : reg 9
199999 mHZ : reg 8
100001 mHZ : reg 8
100000 mHZ : reg 8
99999 mHZ : reg 7
50001 mHZ : reg 7
50000 mHZ : reg 7
49999 mHZ : reg 6
25001 mHZ : reg 6
25000 mHZ : reg 6
24999 mHZ : reg 5
12501 mHZ : reg 5
12500 mHZ : reg 5
12499 mHZ : reg 4
6251 mHZ : reg 4
6250 mHZ : reg 4
6249 mHZ : reg 3
3126 mHZ : reg 3
3125 mHZ : reg 3
3124 mHZ : reg 2
1563 mHZ : reg 2
1562 mHZ : reg 2
1561 mHZ : reg 1
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Change-Id: Iefd0e0c732b52fef02f5b048c083ea67a2da247c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2093289
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'board/trogdor')
0 files changed, 0 insertions, 0 deletions