1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (C) ST-Ericsson SA 2010
4 *
5 * Author: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com>
6 *
7 * ux500 Scroll key and Keypad Encoder (SKE) header
8 */
9
10#ifndef __SKE_H
11#define __SKE_H
12
13#include <linux/input/matrix_keypad.h>
14
15/* register definitions for SKE peripheral */
16#define SKE_CR		0x00
17#define SKE_VAL0	0x04
18#define SKE_VAL1	0x08
19#define SKE_DBCR	0x0C
20#define SKE_IMSC	0x10
21#define SKE_RIS		0x14
22#define SKE_MIS		0x18
23#define SKE_ICR		0x1C
24
25/*
26 * Keypad module
27 */
28
29/**
30 * struct keypad_platform_data - structure for platform specific data
31 * @init:	pointer to keypad init function
32 * @exit:	pointer to keypad deinitialisation function
33 * @keymap_data: matrix scan code table for keycodes
34 * @krow:	maximum number of rows
35 * @kcol:	maximum number of columns
36 * @debounce_ms: platform specific debounce time
37 * @no_autorepeat: flag for auto repetition
38 * @wakeup_enable: allow waking up the system
39 */
40struct ske_keypad_platform_data {
41	int (*init)(void);
42	int (*exit)(void);
43	const struct matrix_keymap_data *keymap_data;
44	u8 krow;
45	u8 kcol;
46	u8 debounce_ms;
47	bool no_autorepeat;
48	bool wakeup_enable;
49};
50#endif	/*__SKE_KPD_H*/
51