Commit 00907c7a authored by Song Hongyan's avatar Song Hongyan Committed by Jonathan Cameron

iio: hid-sensor-rotation: Add geomagnetic orientation sensor hid support.

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: default avatarSong Hongyan <hongyan.song@intel.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 9ff88edc
...@@ -241,6 +241,9 @@ static int hid_dev_rot_probe(struct platform_device *pdev) ...@@ -241,6 +241,9 @@ static int hid_dev_rot_probe(struct platform_device *pdev)
case HID_USAGE_SENSOR_RELATIVE_ORIENTATION: case HID_USAGE_SENSOR_RELATIVE_ORIENTATION:
name = "relative_orientation"; name = "relative_orientation";
break; break;
case HID_USAGE_SENSOR_GEOMAGNETIC_ORIENTATION:
name = "geomagnetic_orientation";
break;
default: default:
return -EINVAL; return -EINVAL;
} }
...@@ -339,6 +342,10 @@ static const struct platform_device_id hid_dev_rot_ids[] = { ...@@ -339,6 +342,10 @@ static const struct platform_device_id hid_dev_rot_ids[] = {
/* Relative orientation(AG) sensor */ /* Relative orientation(AG) sensor */
.name = "HID-SENSOR-20008e", .name = "HID-SENSOR-20008e",
}, },
{
/* Geomagnetic orientation(AM) sensor */
.name = "HID-SENSOR-2000c1",
},
{ /* sentinel */ } { /* sentinel */ }
}; };
MODULE_DEVICE_TABLE(platform, hid_dev_rot_ids); MODULE_DEVICE_TABLE(platform, hid_dev_rot_ids);
......
...@@ -91,6 +91,7 @@ ...@@ -91,6 +91,7 @@
#define HID_USAGE_SENSOR_DEVICE_ORIENTATION 0x20008A #define HID_USAGE_SENSOR_DEVICE_ORIENTATION 0x20008A
#define HID_USAGE_SENSOR_RELATIVE_ORIENTATION 0x20008E #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_ROTATION_MATRIX 0x200482
#define HID_USAGE_SENSOR_ORIENT_QUATERNION 0x200483 #define HID_USAGE_SENSOR_ORIENT_QUATERNION 0x200483
#define HID_USAGE_SENSOR_ORIENT_MAGN_FLUX 0x200484 #define HID_USAGE_SENSOR_ORIENT_MAGN_FLUX 0x200484
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment