Kernel-4.18.0-80.el8_st-keyscan

  • ST Keyscan controller Device Tree bindings

The ST keyscan controller Device Tree binding is based on the
matrix-keymap.

Required properties:

  • compatible: “st,sti-keyscan”

  • reg: Register base address and size of st-keyscan controller.

  • interrupts: Interrupt number for the st-keyscan controller.

  • clocks: Must contain one entry, for the module clock.
    See ../clocks/clock-bindings.txt for details.

  • pinctrl: Should specify pin control groups used for this controller.
    See ../pinctrl/pinctrl-bindings.txt for details.

  • linux,keymap: The keymap for keys as described in the binding document
    devicetree/bindings/input/matrix-keymap.txt.

  • keypad,num-rows: Number of row lines connected to the keypad controller.

  • keypad,num-columns: Number of column lines connected to the keypad
    controller.

Optional property:

  • st,debounce_us: Debouncing interval time in microseconds

Example:

keyscan: keyscan@fe4b0000 {
compatible = “st,sti-keyscan”;
reg = <0xfe4b0000 0x2000>;
interrupts = <GIC_SPI 212 IRQ_TYPE_NONE>;
clocks = <&CLK_SYSIN>;
pinctrl-names = “default”;
pinctrl-0 = <&pinctrl_keyscan>;

keypad,num-rows = <4>;
keypad,num-columns = <4>;
st,debounce_us = <5000>;

linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_F13)
         MATRIX_KEY(0x00, 0x01, KEY_F9)
         MATRIX_KEY(0x00, 0x02, KEY_F5)
         MATRIX_KEY(0x00, 0x03, KEY_F1)
         MATRIX_KEY(0x01, 0x00, KEY_F14)
         MATRIX_KEY(0x01, 0x01, KEY_F10)
         MATRIX_KEY(0x01, 0x02, KEY_F6)
         MATRIX_KEY(0x01, 0x03, KEY_F2)
         MATRIX_KEY(0x02, 0x00, KEY_F15)
         MATRIX_KEY(0x02, 0x01, KEY_F11)
         MATRIX_KEY(0x02, 0x02, KEY_F7)
         MATRIX_KEY(0x02, 0x03, KEY_F3)
         MATRIX_KEY(0x03, 0x00, KEY_F16)
         MATRIX_KEY(0x03, 0x01, KEY_F12)
         MATRIX_KEY(0x03, 0x02, KEY_F8)
         MATRIX_KEY(0x03, 0x03, KEY_F4) >;
};