# This file is part of systemd.
#
# Database for joystick device information that cannot be queried directly.
#
# The lookup keys are composed in:
#   70-joystick.rules
#
# Match string format:
# joystick:<bustype>:v<vid>p<pid>:name:<name>:
#
# vid/pid as 4-digit hex lowercase vendor/product
#
# To add local entries, create a new file
#   /etc/udev/hwdb.d/71-joystick-local.hwdb
# and add your rules there. To load the new rules execute (as root):
#   systemd-hwdb update
#   udevadm trigger /dev/input/eventXX
# where /dev/input/eventXX is the joystick in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
# If your changes are generally applicable, preferably send them as a pull
# request to
#   https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
#   udevadm info /dev/input/eventXX.
#
# Permitted keys:
#   Specify if a joystick is a built-in one or external:
#   ID_INPUT_JOYSTICK_INTEGRATION=internal|external
#
#   If the property is missing, user-space can assume:
#   ID_INPUT_JOYSTICK_INTEGRATION=external

joystick:bluetooth:*
 ID_INPUT_JOYSTICK_INTEGRATION=external

###########################################################
# GPD
###########################################################

# GPD Win, Classic and XBox 360 compat modes
joystick:usb:v11c5p5507*
joystick:usb:v045ep028e*
 ID_INPUT_JOYSTICK_INTEGRATION=internal
