# Copyright (C) 2019 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. # # Nintendo Switch Pro Controller - HAC-013 - Bluetooth # # Mapping according to https://developer.android.com/training/game-controllers/controller-input.html # Button labeled as "B" but should really produce keycode "A" key 0x130 BUTTON_A # Button labeled as "A" but should really produce keycode "B" key 0x131 BUTTON_B # Button labeled as "X" but should really product keycode "Y" key 0x133 BUTTON_Y # Button labeled as "Y" but should really produce keycode "X" key 0x134 BUTTON_X # Button labeled as "L" key 0x136 BUTTON_L1 # Button labeled as "R" key 0x137 BUTTON_R1 # No LT / RT axes on this controller. Instead, there are keys. # Trigger labeled as "ZL" key 0x138 BUTTON_L2 # Trigger labeled as "ZR" key 0x139 BUTTON_R2 # Left Analog Stick axis 0x00 X axis 0x01 Y # Right Analog Stick axis 0x03 Z axis 0x04 RZ # Left stick click (generates linux BTN_SELECT) key 0x13d BUTTON_THUMBL # Right stick click (generates linux BTN_START) key 0x13e BUTTON_THUMBR # Currently, the dpad produces key events key 0x220 DPAD_UP key 0x221 DPAD_DOWN key 0x222 DPAD_LEFT key 0x223 DPAD_RIGHT # Hat - currently not being produced by hid-nintendo, but an upcoming patch set will change the behaviour. # Keep these mappings in anticipation of that change axis 0x10 HAT_X axis 0x11 HAT_Y # Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt # Minus key 0x13a BUTTON_SELECT # Plus key 0x13b BUTTON_START # Circle key 0x135 BUTTON_MODE # Home key key 0x13c HOME # SENSORs sensor 0x00 ACCELEROMETER X sensor 0x01 ACCELEROMETER Y sensor 0x02 ACCELEROMETER Z sensor 0x03 GYROSCOPE X sensor 0x04 GYROSCOPE Y sensor 0x05 GYROSCOPE Z