sensehat_joystick
sensehat_joystick);
struct sensehat_joystick *sensehat_joystick = cookie;
error = regmap_read(sensehat_joystick->regmap, JOYSTICK_SMB_REG, &keys);
dev_err(&sensehat_joystick->pdev->dev,
bitmap_xor(&changes, &curr_states, &sensehat_joystick->prev_states,
input_report_key(sensehat_joystick->keys_dev, keymap[i],
input_sync(sensehat_joystick->keys_dev);
sensehat_joystick->prev_states = keys;
struct sensehat_joystick *sensehat_joystick;
sensehat_joystick = devm_kzalloc(&pdev->dev, sizeof(*sensehat_joystick),
if (!sensehat_joystick)
sensehat_joystick->pdev = pdev;
sensehat_joystick->regmap = dev_get_regmap(pdev->dev.parent, NULL);
if (!sensehat_joystick->regmap) {
sensehat_joystick->keys_dev = devm_input_allocate_device(&pdev->dev);
if (!sensehat_joystick->keys_dev) {
sensehat_joystick->keys_dev->name = "Raspberry Pi Sense HAT Joystick";
sensehat_joystick->keys_dev->phys = "sensehat-joystick/input0";
sensehat_joystick->keys_dev->id.bustype = BUS_I2C;
__set_bit(EV_KEY, sensehat_joystick->keys_dev->evbit);
__set_bit(EV_REP, sensehat_joystick->keys_dev->evbit);
__set_bit(keymap[i], sensehat_joystick->keys_dev->keybit);
error = input_register_device(sensehat_joystick->keys_dev);