xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* Tegra keyboard controller
2*4882a593SmuzhiyunThe key controller has maximum 24 pins to make matrix keypad. Any pin
3*4882a593Smuzhiyuncan be configured as row or column. The maximum column pin can be 8
4*4882a593Smuzhiyunand maximum row pins can be 16 for Tegra20/Tegra30.
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunRequired properties:
7*4882a593Smuzhiyun- compatible: "nvidia,tegra20-kbc"
8*4882a593Smuzhiyun- reg: Register base address of KBC.
9*4882a593Smuzhiyun- interrupts: Interrupt number for the KBC.
10*4882a593Smuzhiyun- nvidia,kbc-row-pins: The KBC pins which are configured as row. This is an
11*4882a593Smuzhiyun  array of pin numbers which is used as rows.
12*4882a593Smuzhiyun- nvidia,kbc-col-pins: The KBC pins which are configured as column. This is an
13*4882a593Smuzhiyun  array of pin numbers which is used as column.
14*4882a593Smuzhiyun- linux,keymap: The keymap for keys as described in the binding document
15*4882a593Smuzhiyun  devicetree/bindings/input/matrix-keymap.txt.
16*4882a593Smuzhiyun- clocks: Must contain one entry, for the module clock.
17*4882a593Smuzhiyun  See ../clocks/clock-bindings.txt for details.
18*4882a593Smuzhiyun- resets: Must contain an entry for each entry in reset-names.
19*4882a593Smuzhiyun  See ../reset/reset.txt for details.
20*4882a593Smuzhiyun- reset-names: Must include the following entries:
21*4882a593Smuzhiyun  - kbc
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunOptional properties, in addition to those specified by the shared
24*4882a593Smuzhiyunmatrix-keyboard bindings:
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun- linux,fn-keymap: a second keymap, same specification as the
27*4882a593Smuzhiyun  matrix-keyboard-controller spec but to be used when the KEY_FN modifier
28*4882a593Smuzhiyun  key is pressed.
29*4882a593Smuzhiyun- nvidia,debounce-delay-ms: delay in milliseconds per row scan for debouncing
30*4882a593Smuzhiyun- nvidia,repeat-delay-ms: delay in milliseconds before repeat starts
31*4882a593Smuzhiyun- nvidia,ghost-filter: enable ghost filtering for this device
32*4882a593Smuzhiyun- wakeup-source: configure keyboard as a wakeup source for suspend/resume
33*4882a593Smuzhiyun		 (Legacy property supported: "nvidia,wakeup-source")
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunExample:
36*4882a593Smuzhiyun
37*4882a593Smuzhiyunkeyboard: keyboard {
38*4882a593Smuzhiyun	compatible = "nvidia,tegra20-kbc";
39*4882a593Smuzhiyun	reg = <0x7000e200 0x100>;
40*4882a593Smuzhiyun	interrupts = <0 85 0x04>;
41*4882a593Smuzhiyun	clocks = <&tegra_car 36>;
42*4882a593Smuzhiyun	resets = <&tegra_car 36>;
43*4882a593Smuzhiyun	reset-names = "kbc";
44*4882a593Smuzhiyun	nvidia,ghost-filter;
45*4882a593Smuzhiyun	nvidia,debounce-delay-ms = <640>;
46*4882a593Smuzhiyun	nvidia,kbc-row-pins = <0 1 2>;    /* pin 0, 1, 2 as rows */
47*4882a593Smuzhiyun	nvidia,kbc-col-pins = <11 12 13>; /* pin 11, 12, 13 as columns */
48*4882a593Smuzhiyun	linux,keymap = <0x00000074
49*4882a593Smuzhiyun			0x00010067
50*4882a593Smuzhiyun			0x00020066
51*4882a593Smuzhiyun			0x01010068
52*4882a593Smuzhiyun			0x02000069
53*4882a593Smuzhiyun			0x02010070
54*4882a593Smuzhiyun			0x02020071>;
55*4882a593Smuzhiyun};
56