]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
iio: hid-sensor-rotation: Add geomagnetic orientation sensor hid support.
authorSong Hongyan <hongyan.song@intel.com>
Sun, 7 May 2017 10:24:25 +0000 (18:24 +0800)
committerJonathan Cameron <jic23@kernel.org>
Sun, 7 May 2017 11:22:33 +0000 (12:22 +0100)
Geomagnetic orientation(AM) sensor is one kind of orientation 6dof sensor.
It gives the device rotation in respect to the earth center and the
magnetic north. The sensor is implemented through use of an accelerometer
and magnetometer do not use gyroscope. It is a standard HID sensor.

More information can be found in:
http://www.usb.org/developers/hidpage/HUTRR59_-_Usages_for_Wearables.pdf

Geomagnetic orientation(AM) sensor and dev rotation sensor have same
channel and share channel usage id. So the most of the code for relative
orientation sensor can be reused.

Signed-off-by: Song Hongyan <hongyan.song@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/orientation/hid-sensor-rotation.c
include/linux/hid-sensor-ids.h

index 4d953c26325f5f2a20503c6dc51f9916afef6163..60d3517a78af9e1c76e8a40a2a87c71dd2303db8 100644 (file)
@@ -241,6 +241,9 @@ static int hid_dev_rot_probe(struct platform_device *pdev)
        case HID_USAGE_SENSOR_RELATIVE_ORIENTATION:
                name = "relative_orientation";
                break;
+       case HID_USAGE_SENSOR_GEOMAGNETIC_ORIENTATION:
+               name = "geomagnetic_orientation";
+               break;
        default:
                return -EINVAL;
        }
@@ -339,6 +342,10 @@ static const struct platform_device_id hid_dev_rot_ids[] = {
                /* Relative orientation(AG) sensor */
                .name = "HID-SENSOR-20008e",
        },
+       {
+               /* Geomagnetic orientation(AM) sensor */
+               .name = "HID-SENSOR-2000c1",
+       },
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(platform, hid_dev_rot_ids);
index b5469e878e99afacd74c64761531aa7f6cd42782..5af62c7e49f366ec6bf26f85b2c524f18d31c4b9 100644 (file)
@@ -91,6 +91,7 @@
 
 #define HID_USAGE_SENSOR_DEVICE_ORIENTATION                    0x20008A
 #define HID_USAGE_SENSOR_RELATIVE_ORIENTATION                  0x20008E
+#define HID_USAGE_SENSOR_GEOMAGNETIC_ORIENTATION               0x2000C1
 #define HID_USAGE_SENSOR_ORIENT_ROTATION_MATRIX                        0x200482
 #define HID_USAGE_SENSOR_ORIENT_QUATERNION                     0x200483
 #define HID_USAGE_SENSOR_ORIENT_MAGN_FLUX                      0x200484