1*c66ec88fSEmmanuel Vadot* ST Keyscan controller Device Tree bindings 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThe ST keyscan controller Device Tree binding is based on the 4*c66ec88fSEmmanuel Vadotmatrix-keymap. 5*c66ec88fSEmmanuel Vadot 6*c66ec88fSEmmanuel VadotRequired properties: 7*c66ec88fSEmmanuel Vadot- compatible: "st,sti-keyscan" 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadot- reg: Register base address and size of st-keyscan controller. 10*c66ec88fSEmmanuel Vadot 11*c66ec88fSEmmanuel Vadot- interrupts: Interrupt number for the st-keyscan controller. 12*c66ec88fSEmmanuel Vadot 13*c66ec88fSEmmanuel Vadot- clocks: Must contain one entry, for the module clock. 14*c66ec88fSEmmanuel Vadot See ../clocks/clock-bindings.txt for details. 15*c66ec88fSEmmanuel Vadot 16*c66ec88fSEmmanuel Vadot- pinctrl: Should specify pin control groups used for this controller. 17*c66ec88fSEmmanuel Vadot See ../pinctrl/pinctrl-bindings.txt for details. 18*c66ec88fSEmmanuel Vadot 19*c66ec88fSEmmanuel Vadot- linux,keymap: The keymap for keys as described in the binding document 20*c66ec88fSEmmanuel Vadot devicetree/bindings/input/matrix-keymap.txt. 21*c66ec88fSEmmanuel Vadot 22*c66ec88fSEmmanuel Vadot- keypad,num-rows: Number of row lines connected to the keypad controller. 23*c66ec88fSEmmanuel Vadot 24*c66ec88fSEmmanuel Vadot- keypad,num-columns: Number of column lines connected to the keypad 25*c66ec88fSEmmanuel Vadot controller. 26*c66ec88fSEmmanuel Vadot 27*c66ec88fSEmmanuel VadotOptional property: 28*c66ec88fSEmmanuel Vadot- st,debounce_us: Debouncing interval time in microseconds 29*c66ec88fSEmmanuel Vadot 30*c66ec88fSEmmanuel VadotExample: 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadotkeyscan: keyscan@fe4b0000 { 33*c66ec88fSEmmanuel Vadot compatible = "st,sti-keyscan"; 34*c66ec88fSEmmanuel Vadot reg = <0xfe4b0000 0x2000>; 35*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 212 IRQ_TYPE_NONE>; 36*c66ec88fSEmmanuel Vadot clocks = <&CLK_SYSIN>; 37*c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 38*c66ec88fSEmmanuel Vadot pinctrl-0 = <&pinctrl_keyscan>; 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel Vadot keypad,num-rows = <4>; 41*c66ec88fSEmmanuel Vadot keypad,num-columns = <4>; 42*c66ec88fSEmmanuel Vadot st,debounce_us = <5000>; 43*c66ec88fSEmmanuel Vadot 44*c66ec88fSEmmanuel Vadot linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_F13) 45*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x00, 0x01, KEY_F9) 46*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x00, 0x02, KEY_F5) 47*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x00, 0x03, KEY_F1) 48*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x01, 0x00, KEY_F14) 49*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x01, 0x01, KEY_F10) 50*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x01, 0x02, KEY_F6) 51*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x01, 0x03, KEY_F2) 52*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x02, 0x00, KEY_F15) 53*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x02, 0x01, KEY_F11) 54*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x02, 0x02, KEY_F7) 55*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x02, 0x03, KEY_F3) 56*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x03, 0x00, KEY_F16) 57*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x03, 0x01, KEY_F12) 58*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x03, 0x02, KEY_F8) 59*c66ec88fSEmmanuel Vadot MATRIX_KEY(0x03, 0x03, KEY_F4) >; 60*c66ec88fSEmmanuel Vadot }; 61