# Copyright 2017 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

#
# Tell powerd that hammer/wand are actually "internal" keyboard/touchpad

SUBSYSTEM=="input", ENV{ID_INPUT_KEYBOARD}=="1", \
  ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5022", \
  ENV{POWERD_ROLE}="internal_keyboard"
SUBSYSTEM=="input", ENV{ID_INPUT_KEYBOARD}=="1", \
  ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="502d", \
  ENV{POWERD_ROLE}="internal_keyboard"

# For some reason udev thinks the touchpad is either a mouse or a touchscreen
SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", \
  ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5022", \
  ENV{POWERD_ROLE}="internal_touchpad"
SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", \
  ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="502d", \
  ENV{POWERD_ROLE}="internal_touchpad"

