Add keylayout for Steam controller (USB)

In the USB mode, Steam controller needs a key layout, because most of
the buttons and axes are incorrectly mapped.

The wireless dongle has not been tested.

The controller also support BLE, but currently goes into lizard mode by
default (only mouse and 2 buttons: left/right clicks work). So a driver
is likely necessary to go into the normal mode over BT, and hid-steam
doesn't help with that currently.

On BT, the controller has product id of 0x1106.

Bug: 147434575
Test: use the "gamepad tester" app and connect joystick over the USB.
Ensure that all mappings work
Test: CTS test will not be done at this time because it requires
supporting SET_REPORT in the hid command.

Change-Id: Ic0c50695338f98dcaeaaa7b3417fde702563d205
This commit is contained in:
Siarhei Vishniakou
2020-05-13 14:16:52 -07:00
parent 1bf7804c2a
commit 2abc5d2823

View File

@@ -0,0 +1,74 @@
# Copyright (C) 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Steam Controller - Model 1001 - USB
#
# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html
key 304 BUTTON_A
key 305 BUTTON_B
key 307 BUTTON_X
key 308 BUTTON_Y
key 310 BUTTON_L1
key 311 BUTTON_R1
key 312 BUTTON_L2
key 313 BUTTON_R2
# Triggers.
axis 0x15 LTRIGGER
axis 0x14 RTRIGGER
# Left and right stick.
axis 0x00 X
axis 0x01 Y
# Right stick / mousepad
axis 0x03 Z
axis 0x04 RZ
key 317 BUTTON_THUMBL
key 318 BUTTON_THUMBR
# Hat.
axis 0x10 HAT_X
axis 0x11 HAT_Y
# Dpad (clicks)
key 544 DPAD_UP
key 545 DPAD_DOWN
key 546 DPAD_LEFT
key 547 DPAD_RIGHT
# Touching the dpad (light touch without pressing down)
key 289 BUTTON_1
# Touching the "right stick" / mousepad (light touch without pressing down)
key 290 BUTTON_2
# Pressing the large paddle on the back, left (linux BTN_WHEEL / BTN_GEAR_DOWN)
key 336 BUTTON_3
# Pressing the large paddle on the back, right (linux BTN_GEAR_UP)
key 337 BUTTON_4
# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt
# Left arrow
key 314 BUTTON_SELECT
# Right arrow
key 315 BUTTON_START
# Steam key
key 316 BUTTON_MODE