# Copyright 2022, Basalte bv
# SPDX-License-Identifier: Apache-2.0

description: |
  SDL keyboard GPIO input Emulator

  Simulate GPIO state/interrupts using SDL keyboard events. This node has
  to be a child of a `zephyr,gpio-emul` compatible.
  Add a list of scancodes for the desired keys to be mapped.

  Refer to https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf
  section Keyboard/Keypad (p53) for a list of scancode values.

  The following example maps the first 3 numeric keys to GPIO pins:

  /* gpio0 has to be a zephyr,gpio-emul device */
  &gpio0 {
    ngpios = <3>;

    sdl_gpio {
      compatible = "zephyr,gpio-emul-sdl";
      scancodes = <30 31 32>;
    };
  };

  keypad: keypad {
    compatible = "gpio-keys";
    key1: key1 {
      gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
    };
    key1: key2 {
      gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
    };
    key3: key3 {
      gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
    };
  };

  The limitations of usage are:
  - Only active high as we don't get events for keys that aren't pressed
  - Pressing multiple keys is best effort, state will be kept but no events
    are generated once the last key is released

compatible: "zephyr,gpio-emul-sdl"

include: base.yaml

properties:
    scancodes:
      type: array
      required: true
      description: |
        An array of SDL scancodes mapped to its GPIO index
