diff options
author | Peter Wu <peter@lekensteyn.nl> | 2014-04-01 00:13:22 +0200 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2014-04-01 00:13:22 +0200 |
commit | c1ba3a7d4ac7273891b974770196608ddf2c5d43 (patch) | |
tree | 07fe7e9c0aa3a532847e0f8bdef640574ce83c03 /hw/usb/hid-logitech-hidpp20.c | |
parent | 0a8042251297cb7c213c77d9b9c6b5ded635e76c (diff) | |
download | qemu-c1ba3a7d4ac7273891b974770196608ddf2c5d43.tar.gz |
unifying: add T400 device
This also has the DFU capability :-)
Signed-off-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'hw/usb/hid-logitech-hidpp20.c')
-rw-r--r-- | hw/usb/hid-logitech-hidpp20.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/hw/usb/hid-logitech-hidpp20.c b/hw/usb/hid-logitech-hidpp20.c index 7f679d7828..ba9807079e 100644 --- a/hw/usb/hid-logitech-hidpp20.c +++ b/hw/usb/hid-logitech-hidpp20.c @@ -315,12 +315,46 @@ static const HidppFeature features_t650[] = { { 0x1830, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, }; +static const HidppFeature features_t400[] = { + { 0x0001, 0, feat_featureset }, + { 0x0002, 0, feat_featureinfo }, + { 0x0003, 0, feat_devicefwversion }, + { 0x0005, 0, feat_devicename }, + { 0x00C0, 0, feat_dfucontrol }, + { 0x1000, 0, feat_batterystatus }, + { 0x1802, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1810, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1830, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1850, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1860, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1890, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x18A0, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x18E3, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1B00, 0, feat_reprogcontrols }, + { 0x1D4B, 0, NULL }, /* WirelessDeviceStatus events */ + { 0x1DF3, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1E00, HIDPP20_FEAT_TYPE_HIDDEN, feat_unknown }, + { 0x1E80, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1F03, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, + { 0x1F04, HIDPP20_FEAT_TYPE_HIDDEN | HIDPP20_FEAT_TYPE_INTERNAL, feat_unknown }, +// { 0x2100, 0, feat_verticalscrolling }, + { 0x2101, HIDPP20_FEAT_TYPE_HIDDEN, feat_unknown }, +// { 0x2120, 0, feat_hiresscrolling }, +// { 0x2200, 0, feat_mousepointer }, +// { 0x6110, HIDPP20_FEAT_TYPE_HIDDEN, feat_touchmouserawpoints }, +// { 0x1B03, 0, feat_reprogcontrolsv3 }, +}; + void hidpp20_init_features(LHidDevice *hd) { switch (hd->info.wireless_pid) { case WPID_M525: hd->info.features = features_m525; hd->info.features_count = ARRAY_SIZE(features_m525); break; + case WPID_T400: + hd->info.features = features_t400; + hd->info.features_count = ARRAY_SIZE(features_t400); + break; case WPID_T650: hd->info.features = features_t650; hd->info.features_count = ARRAY_SIZE(features_t650); |