Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
pmic8xxx-keypad.c File Reference
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
#include <linux/input.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/mutex.h>
#include <linux/mfd/pm8xxx/core.h>
#include <linux/mfd/pm8xxx/gpio.h>
#include <linux/input/pmic8xxx-keypad.h>

Go to the source code of this file.

Data Structures

struct  pmic8xxx_kp
 

Macros

#define PM8XXX_MAX_ROWS   18
 
#define PM8XXX_MAX_COLS   8
 
#define PM8XXX_ROW_SHIFT   3
 
#define PM8XXX_MATRIX_MAX_SIZE   (PM8XXX_MAX_ROWS * PM8XXX_MAX_COLS)
 
#define PM8XXX_MIN_ROWS   5
 
#define PM8XXX_MIN_COLS   5
 
#define MAX_SCAN_DELAY   128
 
#define MIN_SCAN_DELAY   1
 
#define MAX_ROW_HOLD_DELAY   122000
 
#define MIN_ROW_HOLD_DELAY   30500
 
#define MAX_DEBOUNCE_TIME   20
 
#define MIN_DEBOUNCE_TIME   5
 
#define KEYP_CTRL   0x148
 
#define KEYP_CTRL_EVNTS   BIT(0)
 
#define KEYP_CTRL_EVNTS_MASK   0x3
 
#define KEYP_CTRL_SCAN_COLS_SHIFT   5
 
#define KEYP_CTRL_SCAN_COLS_MIN   5
 
#define KEYP_CTRL_SCAN_COLS_BITS   0x3
 
#define KEYP_CTRL_SCAN_ROWS_SHIFT   2
 
#define KEYP_CTRL_SCAN_ROWS_MIN   5
 
#define KEYP_CTRL_SCAN_ROWS_BITS   0x7
 
#define KEYP_CTRL_KEYP_EN   BIT(7)
 
#define KEYP_SCAN   0x149
 
#define KEYP_SCAN_READ_STATE   BIT(0)
 
#define KEYP_SCAN_DBOUNCE_SHIFT   1
 
#define KEYP_SCAN_PAUSE_SHIFT   3
 
#define KEYP_SCAN_ROW_HOLD_SHIFT   6
 
#define KEYP_TEST   0x14A
 
#define KEYP_TEST_CLEAR_RECENT_SCAN   BIT(6)
 
#define KEYP_TEST_CLEAR_OLD_SCAN   BIT(5)
 
#define KEYP_TEST_READ_RESET   BIT(4)
 
#define KEYP_TEST_DTEST_EN   BIT(3)
 
#define KEYP_TEST_ABORT_READ   BIT(0)
 
#define KEYP_TEST_DBG_SELECT_SHIFT   1
 
#define KEYP_RECENT_DATA   0x14B
 
#define KEYP_OLD_DATA   0x14C
 
#define KEYP_CLOCK_FREQ   32768
 

Functions

 module_platform_driver (pmic8xxx_kp_driver)
 
 MODULE_LICENSE ("GPL v2")
 
 MODULE_DESCRIPTION ("PMIC8XXX keypad driver")
 
 MODULE_VERSION ("1.0")
 
 MODULE_ALIAS ("platform:pmic8xxx_keypad")
 
 MODULE_AUTHOR ("Trilok Soni <[email protected]>")
 

Macro Definition Documentation

#define KEYP_CLOCK_FREQ   32768

Definition at line 84 of file pmic8xxx-keypad.c.

#define KEYP_CTRL   0x148

Definition at line 45 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_EVNTS   BIT(0)

Definition at line 47 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_EVNTS_MASK   0x3

Definition at line 48 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_KEYP_EN   BIT(7)

Definition at line 58 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_SCAN_COLS_BITS   0x3

Definition at line 52 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_SCAN_COLS_MIN   5

Definition at line 51 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_SCAN_COLS_SHIFT   5

Definition at line 50 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_SCAN_ROWS_BITS   0x7

Definition at line 56 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_SCAN_ROWS_MIN   5

Definition at line 55 of file pmic8xxx-keypad.c.

#define KEYP_CTRL_SCAN_ROWS_SHIFT   2

Definition at line 54 of file pmic8xxx-keypad.c.

#define KEYP_OLD_DATA   0x14C

Definition at line 82 of file pmic8xxx-keypad.c.

#define KEYP_RECENT_DATA   0x14B

Definition at line 81 of file pmic8xxx-keypad.c.

#define KEYP_SCAN   0x149

Definition at line 60 of file pmic8xxx-keypad.c.

#define KEYP_SCAN_DBOUNCE_SHIFT   1

Definition at line 63 of file pmic8xxx-keypad.c.

#define KEYP_SCAN_PAUSE_SHIFT   3

Definition at line 64 of file pmic8xxx-keypad.c.

#define KEYP_SCAN_READ_STATE   BIT(0)

Definition at line 62 of file pmic8xxx-keypad.c.

#define KEYP_SCAN_ROW_HOLD_SHIFT   6

Definition at line 65 of file pmic8xxx-keypad.c.

#define KEYP_TEST   0x14A

Definition at line 67 of file pmic8xxx-keypad.c.

#define KEYP_TEST_ABORT_READ   BIT(0)

Definition at line 73 of file pmic8xxx-keypad.c.

#define KEYP_TEST_CLEAR_OLD_SCAN   BIT(5)

Definition at line 70 of file pmic8xxx-keypad.c.

#define KEYP_TEST_CLEAR_RECENT_SCAN   BIT(6)

Definition at line 69 of file pmic8xxx-keypad.c.

#define KEYP_TEST_DBG_SELECT_SHIFT   1

Definition at line 75 of file pmic8xxx-keypad.c.

#define KEYP_TEST_DTEST_EN   BIT(3)

Definition at line 72 of file pmic8xxx-keypad.c.

#define KEYP_TEST_READ_RESET   BIT(4)

Definition at line 71 of file pmic8xxx-keypad.c.

#define MAX_DEBOUNCE_TIME   20

Definition at line 42 of file pmic8xxx-keypad.c.

#define MAX_ROW_HOLD_DELAY   122000

Definition at line 39 of file pmic8xxx-keypad.c.

#define MAX_SCAN_DELAY   128

Definition at line 35 of file pmic8xxx-keypad.c.

#define MIN_DEBOUNCE_TIME   5

Definition at line 43 of file pmic8xxx-keypad.c.

#define MIN_ROW_HOLD_DELAY   30500

Definition at line 40 of file pmic8xxx-keypad.c.

#define MIN_SCAN_DELAY   1

Definition at line 36 of file pmic8xxx-keypad.c.

#define PM8XXX_MATRIX_MAX_SIZE   (PM8XXX_MAX_ROWS * PM8XXX_MAX_COLS)

Definition at line 30 of file pmic8xxx-keypad.c.

#define PM8XXX_MAX_COLS   8

Definition at line 28 of file pmic8xxx-keypad.c.

#define PM8XXX_MAX_ROWS   18

Definition at line 27 of file pmic8xxx-keypad.c.

#define PM8XXX_MIN_COLS   5

Definition at line 33 of file pmic8xxx-keypad.c.

#define PM8XXX_MIN_ROWS   5

Definition at line 32 of file pmic8xxx-keypad.c.

#define PM8XXX_ROW_SHIFT   3

Definition at line 29 of file pmic8xxx-keypad.c.

Function Documentation

MODULE_ALIAS ( "platform:pmic8xxx_keypad"  )
MODULE_AUTHOR ( "Trilok Soni <[email protected]>"  )
MODULE_DESCRIPTION ( "PMIC8XXX keypad driver )
MODULE_LICENSE ( "GPL v2 )
module_platform_driver ( pmic8xxx_kp_driver  )
MODULE_VERSION ( "1.0"  )