Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
imx_keypad.c File Reference
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/input/matrix_keypad.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/jiffies.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/timer.h>

Go to the source code of this file.

Data Structures

struct  imx_keypad
 

Macros

#define KPCR   0x00 /* Keypad Control Register */
 
#define KPSR   0x02 /* Keypad Status Register */
 
#define KBD_STAT_KPKD   (0x1 << 0) /* Key Press Interrupt Status bit (w1c) */
 
#define KBD_STAT_KPKR   (0x1 << 1) /* Key Release Interrupt Status bit (w1c) */
 
#define KBD_STAT_KDSC   (0x1 << 2) /* Key Depress Synch Chain Status bit (w1c)*/
 
#define KBD_STAT_KRSS   (0x1 << 3) /* Key Release Synch Status bit (w1c)*/
 
#define KBD_STAT_KDIE   (0x1 << 8) /* Key Depress Interrupt Enable Status bit */
 
#define KBD_STAT_KRIE   (0x1 << 9) /* Key Release Interrupt Enable */
 
#define KBD_STAT_KPPEN   (0x1 << 10) /* Keypad Clock Enable */
 
#define KDDR   0x04 /* Keypad Data Direction Register */
 
#define KPDR   0x06 /* Keypad Data Register */
 
#define MAX_MATRIX_KEY_ROWS   8
 
#define MAX_MATRIX_KEY_COLS   8
 
#define MATRIX_ROW_SHIFT   3
 
#define MAX_MATRIX_KEY_NUM   (MAX_MATRIX_KEY_ROWS * MAX_MATRIX_KEY_COLS)
 
#define IMX_KEYPAD_SCANS_FOR_STABILITY   3
 

Functions

 module_platform_driver (imx_keypad_driver)
 
 MODULE_AUTHOR ("Alberto Panizzo <[email protected]>")
 
 MODULE_DESCRIPTION ("IMX Keypad Port Driver")
 
 MODULE_LICENSE ("GPL v2")
 
 MODULE_ALIAS ("platform:imx-keypad")
 

Macro Definition Documentation

#define IMX_KEYPAD_SCANS_FOR_STABILITY   3

Definition at line 63 of file imx_keypad.c.

#define KBD_STAT_KDIE   (0x1 << 8) /* Key Depress Interrupt Enable Status bit */

Definition at line 37 of file imx_keypad.c.

#define KBD_STAT_KDSC   (0x1 << 2) /* Key Depress Synch Chain Status bit (w1c)*/

Definition at line 35 of file imx_keypad.c.

#define KBD_STAT_KPKD   (0x1 << 0) /* Key Press Interrupt Status bit (w1c) */

Definition at line 33 of file imx_keypad.c.

#define KBD_STAT_KPKR   (0x1 << 1) /* Key Release Interrupt Status bit (w1c) */

Definition at line 34 of file imx_keypad.c.

#define KBD_STAT_KPPEN   (0x1 << 10) /* Keypad Clock Enable */

Definition at line 39 of file imx_keypad.c.

#define KBD_STAT_KRIE   (0x1 << 9) /* Key Release Interrupt Enable */

Definition at line 38 of file imx_keypad.c.

#define KBD_STAT_KRSS   (0x1 << 3) /* Key Release Synch Status bit (w1c)*/

Definition at line 36 of file imx_keypad.c.

#define KDDR   0x04 /* Keypad Data Direction Register */

Definition at line 41 of file imx_keypad.c.

#define KPCR   0x00 /* Keypad Control Register */

Definition at line 30 of file imx_keypad.c.

#define KPDR   0x06 /* Keypad Data Register */

Definition at line 42 of file imx_keypad.c.

#define KPSR   0x02 /* Keypad Status Register */

Definition at line 32 of file imx_keypad.c.

#define MATRIX_ROW_SHIFT   3

Definition at line 46 of file imx_keypad.c.

#define MAX_MATRIX_KEY_COLS   8

Definition at line 45 of file imx_keypad.c.

#define MAX_MATRIX_KEY_NUM   (MAX_MATRIX_KEY_ROWS * MAX_MATRIX_KEY_COLS)

Definition at line 48 of file imx_keypad.c.

#define MAX_MATRIX_KEY_ROWS   8

Definition at line 44 of file imx_keypad.c.

Function Documentation

MODULE_ALIAS ( "platform:imx-keypad"  )
MODULE_AUTHOR ( "Alberto Panizzo <[email protected]>"  )
MODULE_DESCRIPTION ( "IMX Keypad Port Driver"  )
MODULE_LICENSE ( "GPL v2 )
module_platform_driver ( imx_keypad_driver  )