On Fri, 2021-08-20 at 14:07 -0400, Charles Mirabile wrote: > This patch implements support for the joystick. > It supports left/right/up/down/enter attached via i2c > > Signed-off-by: Charles Mirabile <cmirabil@xxxxxxxxxx> > Signed-off-by: Mwesigwa Guma <mguma@xxxxxxxxxx> > Signed-off-by: Joel Savitz <jsavitz@xxxxxxxxxx> > --- > drivers/input/joystick/Kconfig | 8 ++ > drivers/input/joystick/Makefile | 1 + > drivers/input/joystick/sensehat-joystick.c | 124 +++++++++++++++++++++ > 3 files changed, 133 insertions(+) > create mode 100644 drivers/input/joystick/sensehat-joystick.c > > diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig > index 3b23078bc7b5..d2f78353b74c 100644 > --- a/drivers/input/joystick/Kconfig > +++ b/drivers/input/joystick/Kconfig > @@ -399,4 +399,12 @@ config JOYSTICK_N64 > Say Y here if you want enable support for the four > built-in controller ports on the Nintendo 64 console. > > +config JOYSTICK_SENSEHAT > + tristate "Raspberry Pi Sense HAT joystick" > + depends on GPIOLIB && INPUT > + select MFD_SENSEHAT_CORE > + > + help > + This is the joystick driver for the Raspberry Pi Sense HAT > + > endif > diff --git a/drivers/input/joystick/Makefile b/drivers/input/joystick/Makefile > index 5174b8aba2dd..39c8b5c6e5ae 100644 > --- a/drivers/input/joystick/Makefile > +++ b/drivers/input/joystick/Makefile > @@ -28,6 +28,7 @@ obj-$(CONFIG_JOYSTICK_N64) += n64joy.o > obj-$(CONFIG_JOYSTICK_PSXPAD_SPI) += psxpad-spi.o > obj-$(CONFIG_JOYSTICK_PXRC) += pxrc.o > obj-$(CONFIG_JOYSTICK_QWIIC) += qwiic-joystick.o > +obj-$(CONFIG_JOYSTICK_SENSEHAT) += sensehat-joystick.o > obj-$(CONFIG_JOYSTICK_SIDEWINDER) += sidewinder.o > obj-$(CONFIG_JOYSTICK_SPACEBALL) += spaceball.o > obj-$(CONFIG_JOYSTICK_SPACEORB) += spaceorb.o > diff --git a/drivers/input/joystick/sensehat-joystick.c b/drivers/input/joystick/sensehat-joystick.c > new file mode 100644 > index 000000000000..4aca125bc29d > --- /dev/null > +++ b/drivers/input/joystick/sensehat-joystick.c > @@ -0,0 +1,124 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +/* > + * Raspberry Pi Sense HAT joystick driver > + * http://raspberrypi.org > + * > + * Copyright (C) 2015 Raspberry Pi > + * Copyright (C) 2021 Charles Mirabile, Mwesigwa Guma, Joel Savitz > + * > + * Original Author: Serge Schneider > + * Revised for upstream Linux by: Charles Mirabile, Mwesigwa Guma, Joel Savitz > + */ > + > +#include <linux/module.h> > +#include <linux/input.h> > +#include <linux/i2c.h> > +#include <linux/interrupt.h> > +#include <linux/gpio/consumer.h> > +#include <linux/platform_device.h> > + > +#include <linux/mfd/sensehat.h> > + > +static unsigned char keymap[] = {KEY_DOWN, KEY_RIGHT, KEY_UP, KEY_ENTER, KEY_LEFT,}; I'm not sure devices outputing KEY_* events fits input/joystick. Maybe input/misc or input/keyboard? Or else use 'BTN_DPAD_UP/DOWN/LEFT/RIGHT'. Which is what game controllers seem to do. Regards, Nicolas