xref: /freebsd/sys/contrib/device-tree/Bindings/input/st-keyscan.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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