diff mbox series

[v6,14/14] docs: iio: add documentation for BNO055 driver

Message ID 20220613120534.36991-15-andrea.merello@iit.it
State Accepted
Commit 130476acfdc1663bc402faa3f2faab5a910f696a
Headers show
Series Add support for Bosch BNO055 IMU | expand

Commit Message

andrea.merello@iit.it June 13, 2022, 12:05 p.m. UTC
From: Andrea Merello <andrea.merello@iit.it>

The bno055 driver is rather complex and have some oddities and not-obvious
things that worth to document (e.g. calibration files).

Signed-off-by: Andrea Merello <andrea.merello@iit.it>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
 Documentation/iio/bno055.rst | 50 ++++++++++++++++++++++++++++++++++++
 Documentation/iio/index.rst  |  2 ++
 2 files changed, 52 insertions(+)
 create mode 100644 Documentation/iio/bno055.rst

Comments

kernel test robot July 3, 2022, 7:58 a.m. UTC | #1
Hi,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on linus/master v5.19-rc4 next-20220701]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/andrea-merello-iit-it/Add-support-for-Bosch-BNO055-IMU/20220614-203754
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
reproduce: make htmldocs

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> Documentation/iio/bno055.rst:2: WARNING: Explicit markup ends without a blank line; unexpected unindent.

vim +2 Documentation/iio/bno055.rst

   > 2	==============================
     3	BNO055 driver
     4	==============================
     5
Andy Shevchenko July 3, 2022, 2 p.m. UTC | #2
On Sun, Jul 3, 2022 at 3:11 PM Bagas Sanjaya <bagasdotme@gmail.com> wrote:
> On Sun, Jul 03, 2022 at 03:58:15PM +0800, kernel test robot wrote:

Please, submit it properly.
You may add my Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

(I deliberately put it on a wrong line so no tools will catch it up
with improper commit message)

> From bb8524aa4719e54389065548c86155cbee638357 Mon Sep 17 00:00:00 2001
> From: Bagas Sanjaya <bagasdotme@gmail.com>
> Date: Sun, 3 Jul 2022 18:37:44 +0700
> Subject: [PATCH] fixup for "docs: iio: add documentation for BNO055 driver"
>
> kernel test robot reported htmldocs warning:
>
> Documentation/iio/bno055.rst:2: WARNING: Explicit markup ends without a blank line; unexpected unindent.
>
> Add missing blank between SPDX line and the page title to fix the warning.
>
> Link: https://lore.kernel.org/lkml/202207031509.DlBrHyaw-lkp@intel.com/
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: lars@metafoo.de
> Cc: robh+dt@kernel.org
> Cc: andy.shevchenko@gmail.com
> Cc: matt.ranostay@konsulko.com
> Cc: ardeleanalex@gmail.com
> Cc: jacopo@jmondi.org
> Cc: Andrea Merello <andrea.merello@iit.it>
> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
> ---
>  Documentation/iio/bno055.rst | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/iio/bno055.rst b/Documentation/iio/bno055.rst
> index af21376d7a2533..9a489a79d8f5a8 100644
> --- a/Documentation/iio/bno055.rst
> +++ b/Documentation/iio/bno055.rst
> @@ -1,4 +1,5 @@
>  .. SPDX-License-Identifier: GPL-2.0
> +
>  ==============================
>  BNO055 driver
>  ==============================
>
Bagas Sanjaya July 4, 2022, 1:21 a.m. UTC | #3
On 7/3/22 21:00, Andy Shevchenko wrote:
> On Sun, Jul 3, 2022 at 3:11 PM Bagas Sanjaya <bagasdotme@gmail.com> wrote:
>> On Sun, Jul 03, 2022 at 03:58:15PM +0800, kernel test robot wrote:
> 
> Please, submit it properly.
> You may add my Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> 
> (I deliberately put it on a wrong line so no tools will catch it up
> with improper commit message)

OK, thanks.
diff mbox series

Patch

diff --git a/Documentation/iio/bno055.rst b/Documentation/iio/bno055.rst
new file mode 100644
index 000000000000..af21376d7a25
--- /dev/null
+++ b/Documentation/iio/bno055.rst
@@ -0,0 +1,50 @@ 
+.. SPDX-License-Identifier: GPL-2.0
+==============================
+BNO055 driver
+==============================
+
+1. Overview
+===========
+
+This driver supports Bosch BNO055 IMUs (on both serial and I2C busses).
+
+Accelerometer, magnetometer and gyroscope measures are always provided.
+When "fusion_enable" sysfs attribute is set to 1, orientation (both Euler
+angles and quaternion), linear velocity and gravity vector are also
+provided, but some sensor settings (e.g. low pass filtering and range)
+became locked (the IMU firmware controls them).
+
+This driver supports also IIO buffers.
+
+2. Calibration
+==============
+
+The IMU continuously performs an autocalibration procedure if (and only if)
+operating in fusion mode. The magnetometer autocalibration can however be
+disabled writing 0 in the sysfs in_magn_calibration_fast_enable attribute.
+
+The driver provides access to autocalibration flags (i.e. you can known if
+the IMU has successfully autocalibrated) and to the calibration data blob.
+
+The user can save this blob in a firmware file (i.e. in /lib/firmware) that
+the driver looks for at probe time. If found, then the IMU is initialized
+with this calibration data. This saves the user from performing the
+calibration procedure every time (which consist of moving the IMU in
+various way).
+
+The driver looks for calibration data file using two different names: first
+a file whose name is suffixed with the IMU unique ID (exposed in sysfs as
+serial_number) is searched for; this is useful when there is more than one
+IMU instance. If this file is not found, then a "generic" calibration file
+is searched for (which can be used when only one IMU is present, without
+struggling with fancy names, that change on each device).
+
+Valid calibration file names would be e.g.
+ bno055-caldata-0e7c26a33541515120204a35342b04ff.dat
+ bno055-caldata.dat
+
+In non-fusion mode the IIO 'offset' attributes provide access to the
+offsets from calibration data (if any), so that the user can apply them to
+the accel, angvel and magn IIO attributes. In fusion mode they are not
+needed (the IMU firmware internally applies those corrections) and they
+read as zero.
diff --git a/Documentation/iio/index.rst b/Documentation/iio/index.rst
index 58b7a4ebac51..1b7292c58cd0 100644
--- a/Documentation/iio/index.rst
+++ b/Documentation/iio/index.rst
@@ -10,3 +10,5 @@  Industrial I/O
    iio_configfs
 
    ep93xx_adc
+
+   bno055