Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
twl4030_keypad.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/input.h>
#include <linux/platform_device.h>
#include <linux/i2c/twl.h>
#include <linux/slab.h>

Go to the source code of this file.

Data Structures

struct  twl4030_keypad
 

Macros

#define TWL4030_MAX_ROWS   8 /* TWL4030 hard limit */
 
#define TWL4030_MAX_COLS   8
 
#define TWL4030_ROW_SHIFT   4
 
#define TWL4030_KEYMAP_SIZE   (TWL4030_MAX_ROWS << TWL4030_ROW_SHIFT)
 
#define PTV_PRESCALER   4
 
#define KEYP_CTRL   0x00
 
#define KEYP_DEB   0x01
 
#define KEYP_LONG_KEY   0x02
 
#define KEYP_LK_PTV   0x03
 
#define KEYP_TIMEOUT_L   0x04
 
#define KEYP_TIMEOUT_H   0x05
 
#define KEYP_KBC   0x06
 
#define KEYP_KBR   0x07
 
#define KEYP_SMS   0x08
 
#define KEYP_FULL_CODE_7_0   0x09 /* row 0 column status */
 
#define KEYP_FULL_CODE_15_8   0x0a /* ... row 1 ... */
 
#define KEYP_FULL_CODE_23_16   0x0b
 
#define KEYP_FULL_CODE_31_24   0x0c
 
#define KEYP_FULL_CODE_39_32   0x0d
 
#define KEYP_FULL_CODE_47_40   0x0e
 
#define KEYP_FULL_CODE_55_48   0x0f
 
#define KEYP_FULL_CODE_63_56   0x10
 
#define KEYP_ISR1   0x11
 
#define KEYP_IMR1   0x12
 
#define KEYP_ISR2   0x13
 
#define KEYP_IMR2   0x14
 
#define KEYP_SIR   0x15
 
#define KEYP_EDR   0x16 /* edge triggers */
 
#define KEYP_SIH_CTRL   0x17
 
#define KEYP_CTRL_SOFT_NRST   BIT(0)
 
#define KEYP_CTRL_SOFTMODEN   BIT(1)
 
#define KEYP_CTRL_LK_EN   BIT(2)
 
#define KEYP_CTRL_TOE_EN   BIT(3)
 
#define KEYP_CTRL_TOLE_EN   BIT(4)
 
#define KEYP_CTRL_RP_EN   BIT(5)
 
#define KEYP_CTRL_KBD_ON   BIT(6)
 
#define KEYP_PERIOD_US(t, prescale)   ((t) / (31 << (prescale + 1)) - 1)
 
#define KEYP_LK_PTV_PTV_SHIFT   5
 
#define KEYP_IMR1_MIS   BIT(3)
 
#define KEYP_IMR1_TO   BIT(2)
 
#define KEYP_IMR1_LK   BIT(1)
 
#define KEYP_IMR1_KP   BIT(0)
 
#define KEYP_EDR_KP_FALLING   0x01
 
#define KEYP_EDR_KP_RISING   0x02
 
#define KEYP_EDR_KP_BOTH   0x03
 
#define KEYP_EDR_LK_FALLING   0x04
 
#define KEYP_EDR_LK_RISING   0x08
 
#define KEYP_EDR_TO_FALLING   0x10
 
#define KEYP_EDR_TO_RISING   0x20
 
#define KEYP_EDR_MIS_FALLING   0x40
 
#define KEYP_EDR_MIS_RISING   0x80
 

Functions

 module_platform_driver (twl4030_kp_driver)
 
 MODULE_AUTHOR ("Texas Instruments")
 
 MODULE_DESCRIPTION ("TWL4030 Keypad Driver")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS ("platform:twl4030_keypad")
 

Macro Definition Documentation

#define KEYP_CTRL   0x00

Definition at line 77 of file twl4030_keypad.c.

#define KEYP_CTRL_KBD_ON   BIT(6)

Definition at line 109 of file twl4030_keypad.c.

#define KEYP_CTRL_LK_EN   BIT(2)

Definition at line 105 of file twl4030_keypad.c.

#define KEYP_CTRL_RP_EN   BIT(5)

Definition at line 108 of file twl4030_keypad.c.

#define KEYP_CTRL_SOFT_NRST   BIT(0)

Definition at line 103 of file twl4030_keypad.c.

#define KEYP_CTRL_SOFTMODEN   BIT(1)

Definition at line 104 of file twl4030_keypad.c.

#define KEYP_CTRL_TOE_EN   BIT(3)

Definition at line 106 of file twl4030_keypad.c.

#define KEYP_CTRL_TOLE_EN   BIT(4)

Definition at line 107 of file twl4030_keypad.c.

#define KEYP_DEB   0x01

Definition at line 78 of file twl4030_keypad.c.

#define KEYP_EDR   0x16 /* edge triggers */

Definition at line 99 of file twl4030_keypad.c.

#define KEYP_EDR_KP_BOTH   0x03

Definition at line 126 of file twl4030_keypad.c.

#define KEYP_EDR_KP_FALLING   0x01

Definition at line 124 of file twl4030_keypad.c.

#define KEYP_EDR_KP_RISING   0x02

Definition at line 125 of file twl4030_keypad.c.

#define KEYP_EDR_LK_FALLING   0x04

Definition at line 127 of file twl4030_keypad.c.

#define KEYP_EDR_LK_RISING   0x08

Definition at line 128 of file twl4030_keypad.c.

#define KEYP_EDR_MIS_FALLING   0x40

Definition at line 131 of file twl4030_keypad.c.

#define KEYP_EDR_MIS_RISING   0x80

Definition at line 132 of file twl4030_keypad.c.

#define KEYP_EDR_TO_FALLING   0x10

Definition at line 129 of file twl4030_keypad.c.

#define KEYP_EDR_TO_RISING   0x20

Definition at line 130 of file twl4030_keypad.c.

#define KEYP_FULL_CODE_15_8   0x0a /* ... row 1 ... */

Definition at line 87 of file twl4030_keypad.c.

#define KEYP_FULL_CODE_23_16   0x0b

Definition at line 88 of file twl4030_keypad.c.

#define KEYP_FULL_CODE_31_24   0x0c

Definition at line 89 of file twl4030_keypad.c.

#define KEYP_FULL_CODE_39_32   0x0d

Definition at line 90 of file twl4030_keypad.c.

#define KEYP_FULL_CODE_47_40   0x0e

Definition at line 91 of file twl4030_keypad.c.

#define KEYP_FULL_CODE_55_48   0x0f

Definition at line 92 of file twl4030_keypad.c.

#define KEYP_FULL_CODE_63_56   0x10

Definition at line 93 of file twl4030_keypad.c.

#define KEYP_FULL_CODE_7_0   0x09 /* row 0 column status */

Definition at line 86 of file twl4030_keypad.c.

#define KEYP_IMR1   0x12

Definition at line 95 of file twl4030_keypad.c.

#define KEYP_IMR1_KP   BIT(0)

Definition at line 121 of file twl4030_keypad.c.

#define KEYP_IMR1_LK   BIT(1)

Definition at line 120 of file twl4030_keypad.c.

#define KEYP_IMR1_MIS   BIT(3)

Definition at line 118 of file twl4030_keypad.c.

#define KEYP_IMR1_TO   BIT(2)

Definition at line 119 of file twl4030_keypad.c.

#define KEYP_IMR2   0x14

Definition at line 97 of file twl4030_keypad.c.

#define KEYP_ISR1   0x11

Definition at line 94 of file twl4030_keypad.c.

#define KEYP_ISR2   0x13

Definition at line 96 of file twl4030_keypad.c.

#define KEYP_KBC   0x06

Definition at line 83 of file twl4030_keypad.c.

#define KEYP_KBR   0x07

Definition at line 84 of file twl4030_keypad.c.

#define KEYP_LK_PTV   0x03

Definition at line 80 of file twl4030_keypad.c.

#define KEYP_LK_PTV_PTV_SHIFT   5

Definition at line 115 of file twl4030_keypad.c.

#define KEYP_LONG_KEY   0x02

Definition at line 79 of file twl4030_keypad.c.

#define KEYP_PERIOD_US (   t,
  prescale 
)    ((t) / (31 << (prescale + 1)) - 1)

Definition at line 112 of file twl4030_keypad.c.

#define KEYP_SIH_CTRL   0x17

Definition at line 100 of file twl4030_keypad.c.

#define KEYP_SIR   0x15

Definition at line 98 of file twl4030_keypad.c.

#define KEYP_SMS   0x08

Definition at line 85 of file twl4030_keypad.c.

#define KEYP_TIMEOUT_H   0x05

Definition at line 82 of file twl4030_keypad.c.

#define KEYP_TIMEOUT_L   0x04

Definition at line 81 of file twl4030_keypad.c.

#define PTV_PRESCALER   4

Definition at line 74 of file twl4030_keypad.c.

#define TWL4030_KEYMAP_SIZE   (TWL4030_MAX_ROWS << TWL4030_ROW_SHIFT)

Definition at line 58 of file twl4030_keypad.c.

#define TWL4030_MAX_COLS   8

Definition at line 52 of file twl4030_keypad.c.

#define TWL4030_MAX_ROWS   8 /* TWL4030 hard limit */

Definition at line 51 of file twl4030_keypad.c.

#define TWL4030_ROW_SHIFT   4

Definition at line 57 of file twl4030_keypad.c.

Function Documentation

MODULE_ALIAS ( "platform:twl4030_keypad"  )
MODULE_AUTHOR ( "Texas Instruments"  )
MODULE_DESCRIPTION ( "TWL4030 Keypad Driver"  )
MODULE_LICENSE ( "GPL"  )
module_platform_driver ( twl4030_kp_driver  )