Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2abc5d28 authored by Siarhei Vishniakou's avatar Siarhei Vishniakou
Browse files

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
parent 1bf7804c
Loading
Loading
Loading
Loading
+74 −0
Original line number Diff line number Diff line
# 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