162306a36Sopenharmony_ci* Tegra keyboard controller
262306a36Sopenharmony_ciThe key controller has maximum 24 pins to make matrix keypad. Any pin
362306a36Sopenharmony_cican be configured as row or column. The maximum column pin can be 8
462306a36Sopenharmony_ciand maximum row pins can be 16 for Tegra20/Tegra30.
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciRequired properties:
762306a36Sopenharmony_ci- compatible: "nvidia,tegra20-kbc"
862306a36Sopenharmony_ci- reg: Register base address of KBC.
962306a36Sopenharmony_ci- interrupts: Interrupt number for the KBC.
1062306a36Sopenharmony_ci- nvidia,kbc-row-pins: The KBC pins which are configured as row. This is an
1162306a36Sopenharmony_ci  array of pin numbers which is used as rows.
1262306a36Sopenharmony_ci- nvidia,kbc-col-pins: The KBC pins which are configured as column. This is an
1362306a36Sopenharmony_ci  array of pin numbers which is used as column.
1462306a36Sopenharmony_ci- linux,keymap: The keymap for keys as described in the binding document
1562306a36Sopenharmony_ci  devicetree/bindings/input/matrix-keymap.txt.
1662306a36Sopenharmony_ci- clocks: Must contain one entry, for the module clock.
1762306a36Sopenharmony_ci  See ../clocks/clock-bindings.txt for details.
1862306a36Sopenharmony_ci- resets: Must contain an entry for each entry in reset-names.
1962306a36Sopenharmony_ci  See ../reset/reset.txt for details.
2062306a36Sopenharmony_ci- reset-names: Must include the following entries:
2162306a36Sopenharmony_ci  - kbc
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciOptional properties, in addition to those specified by the shared
2462306a36Sopenharmony_cimatrix-keyboard bindings:
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci- linux,fn-keymap: a second keymap, same specification as the
2762306a36Sopenharmony_ci  matrix-keyboard-controller spec but to be used when the KEY_FN modifier
2862306a36Sopenharmony_ci  key is pressed.
2962306a36Sopenharmony_ci- nvidia,debounce-delay-ms: delay in milliseconds per row scan for debouncing
3062306a36Sopenharmony_ci- nvidia,repeat-delay-ms: delay in milliseconds before repeat starts
3162306a36Sopenharmony_ci- nvidia,ghost-filter: enable ghost filtering for this device
3262306a36Sopenharmony_ci- wakeup-source: configure keyboard as a wakeup source for suspend/resume
3362306a36Sopenharmony_ci		 (Legacy property supported: "nvidia,wakeup-source")
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciExample:
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_cikeyboard: keyboard {
3862306a36Sopenharmony_ci	compatible = "nvidia,tegra20-kbc";
3962306a36Sopenharmony_ci	reg = <0x7000e200 0x100>;
4062306a36Sopenharmony_ci	interrupts = <0 85 0x04>;
4162306a36Sopenharmony_ci	clocks = <&tegra_car 36>;
4262306a36Sopenharmony_ci	resets = <&tegra_car 36>;
4362306a36Sopenharmony_ci	reset-names = "kbc";
4462306a36Sopenharmony_ci	nvidia,ghost-filter;
4562306a36Sopenharmony_ci	nvidia,debounce-delay-ms = <640>;
4662306a36Sopenharmony_ci	nvidia,kbc-row-pins = <0 1 2>;    /* pin 0, 1, 2 as rows */
4762306a36Sopenharmony_ci	nvidia,kbc-col-pins = <11 12 13>; /* pin 11, 12, 13 as columns */
4862306a36Sopenharmony_ci	linux,keymap = <0x00000074
4962306a36Sopenharmony_ci			0x00010067
5062306a36Sopenharmony_ci			0x00020066
5162306a36Sopenharmony_ci			0x01010068
5262306a36Sopenharmony_ci			0x02000069
5362306a36Sopenharmony_ci			0x02010070
5462306a36Sopenharmony_ci			0x02020071>;
5562306a36Sopenharmony_ci};
56