162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) ST-Ericsson SA 2010 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Author: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com> 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * ux500 Scroll key and Keypad Encoder (SKE) header 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef __SKE_H 1162306a36Sopenharmony_ci#define __SKE_H 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <linux/input/matrix_keypad.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/* register definitions for SKE peripheral */ 1662306a36Sopenharmony_ci#define SKE_CR 0x00 1762306a36Sopenharmony_ci#define SKE_VAL0 0x04 1862306a36Sopenharmony_ci#define SKE_VAL1 0x08 1962306a36Sopenharmony_ci#define SKE_DBCR 0x0C 2062306a36Sopenharmony_ci#define SKE_IMSC 0x10 2162306a36Sopenharmony_ci#define SKE_RIS 0x14 2262306a36Sopenharmony_ci#define SKE_MIS 0x18 2362306a36Sopenharmony_ci#define SKE_ICR 0x1C 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci/* 2662306a36Sopenharmony_ci * Keypad module 2762306a36Sopenharmony_ci */ 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci/** 3062306a36Sopenharmony_ci * struct keypad_platform_data - structure for platform specific data 3162306a36Sopenharmony_ci * @init: pointer to keypad init function 3262306a36Sopenharmony_ci * @exit: pointer to keypad deinitialisation function 3362306a36Sopenharmony_ci * @keymap_data: matrix scan code table for keycodes 3462306a36Sopenharmony_ci * @krow: maximum number of rows 3562306a36Sopenharmony_ci * @kcol: maximum number of columns 3662306a36Sopenharmony_ci * @debounce_ms: platform specific debounce time 3762306a36Sopenharmony_ci * @no_autorepeat: flag for auto repetition 3862306a36Sopenharmony_ci * @wakeup_enable: allow waking up the system 3962306a36Sopenharmony_ci */ 4062306a36Sopenharmony_cistruct ske_keypad_platform_data { 4162306a36Sopenharmony_ci int (*init)(void); 4262306a36Sopenharmony_ci int (*exit)(void); 4362306a36Sopenharmony_ci const struct matrix_keymap_data *keymap_data; 4462306a36Sopenharmony_ci u8 krow; 4562306a36Sopenharmony_ci u8 kcol; 4662306a36Sopenharmony_ci u8 debounce_ms; 4762306a36Sopenharmony_ci bool no_autorepeat; 4862306a36Sopenharmony_ci bool wakeup_enable; 4962306a36Sopenharmony_ci}; 5062306a36Sopenharmony_ci#endif /*__SKE_KPD_H*/ 51