#endif\r
\r
/* Debug */\r
-//#define JB_DEBUG 1\r
+#define JB_DEBUG 0\r
\r
#ifdef JB_DEBUG\r
#define DBG printk\r
\r
#define JOGBALL_PHYS_NAME "rk28_jogball/input0"\r
\r
-#define JOGBALL_KEY_UP_IO TCA6424_P06\r
-#define JOGBALL_KEY_DOWN_IO TCA6424_P07\r
+#define JOGBALL_KEY_UP_IO TCA6424_P11\r
+#define JOGBALL_KEY_DOWN_IO TCA6424_P06\r
#define JOGBALL_KEY_LEFT_IO TCA6424_P10\r
-#define JOGBALL_KEY_RIGHT_IO TCA6424_P11\r
+#define JOGBALL_KEY_RIGHT_IO TCA6424_P07\r
\r
-#define JOGBALL_MAX_CNT 2\r
+#define JOGBALL_MAX_CNT 1\r
\r
static volatile int jogball_cnt_up = 0;\r
static volatile int jogball_cnt_down = 0;\r
\r
struct rk28_jogball *prockjogball;\r
\r
-//static void rk28_jogball_up_ISR(void)\r
\r
static int rk28_jogball_disable_irq(void )\r
{\r
- //DBG("IN jogball suspend !!\n");\r
+\r
disable_irq_nosync (gpio_to_irq(JOGBALL_KEY_UP_IO));\r
disable_irq_nosync (gpio_to_irq(JOGBALL_KEY_DOWN_IO));\r
disable_irq_nosync (gpio_to_irq(JOGBALL_KEY_LEFT_IO));\r
\r
static int rk28_jogball_enable_irq(void)\r
{\r
- //DBG("IN jogball resume !!\n");\r
+\r
enable_irq (gpio_to_irq(JOGBALL_KEY_UP_IO));\r
enable_irq (gpio_to_irq(JOGBALL_KEY_DOWN_IO));\r
enable_irq (gpio_to_irq(JOGBALL_KEY_LEFT_IO));\r
{ \r
\r
rk28_jogball_disable_irq( );\r
+ DBG("jogball: up begain\n");\r
jogball_cnt_up++;\r
\r
- if (jogball_cnt_up > JOGBALL_MAX_CNT){\r
- //printk("jogball: up\n");\r
+ if (jogball_cnt_up >= JOGBALL_MAX_CNT){\r
+ DBG("jogball: up\n");\r
\r
input_report_key(prockjogball->input_dev, JB_KEY_UP, 1);\r
input_sync(prockjogball->input_dev);\r
jogball_cnt_down = 0;\r
jogball_cnt_left = 0;\r
jogball_cnt_right = 0;\r
- }\r
- \r
- //gpio_irq_enable(JOGBALL_KEY_UP_IO);\r
- //enable_irq (gpio_to_irq(JOGBALL_KEY_UP_IO));\r
+ } \r
+\r
rk28_jogball_enable_irq( );\r
+ printk("jogball: up end\n");\r
return IRQ_HANDLED;\r
}\r
\r
-//static void rk28_jogball_down_ISR(void)\r
+\r
static irqreturn_t rk28_jogball_down_ISR(int irq, void *dev_id)\r
{\r
rk28_jogball_disable_irq( );\r
- //disable_irq_nosync (gpio_to_irq(JOGBALL_KEY_DOWN_IO));\r
+\r
jogball_cnt_down++;\r
- \r
- if (jogball_cnt_down > JOGBALL_MAX_CNT){\r
- //printk("jogball: down\n");\r
+ DBG("jogball: down start \n");\r
+ if (jogball_cnt_down >= JOGBALL_MAX_CNT){\r
+ DBG("jogball: down\n");\r
\r
input_report_key(prockjogball->input_dev, JB_KEY_DOWN, 1);\r
input_sync(prockjogball->input_dev);\r
jogball_cnt_down = 0;\r
jogball_cnt_left = 0;\r
jogball_cnt_right = 0;\r
- }\r
- \r
- //gpio_irq_enable(JOGBALL_KEY_DOWN_IO);\r
- //enable_irq (gpio_to_irq(JOGBALL_KEY_DOWN_IO));\r
+ } \r
+ DBG("jogball: down end\n");\r
rk28_jogball_enable_irq( );\r
return IRQ_HANDLED;\r
}\r
\r
-//static void rk28_jogball_left_ISR(void)\r
+\r
static irqreturn_t rk28_jogball_left_ISR(int irq, void *dev_id)\r
{\r
rk28_jogball_disable_irq( );\r
- //disable_irq_nosync (gpio_to_irq(JOGBALL_KEY_LEFT_IO));\r
+ DBG("jogball: left begain\n");\r
jogball_cnt_left++;\r
-\r
- if (jogball_cnt_left > JOGBALL_MAX_CNT){\r
- //printk("jogball: left\n");\r
+ \r
+ if (jogball_cnt_left >= JOGBALL_MAX_CNT){\r
+ DBG("jogball: left\n");\r
\r
input_report_key(prockjogball->input_dev, JB_KEY_LEFT, 1);\r
input_sync(prockjogball->input_dev);\r
jogball_cnt_down = 0;\r
jogball_cnt_left = 0;\r
jogball_cnt_right = 0;\r
- }\r
- \r
- //gpio_irq_enable(JOGBALL_KEY_LEFT_IO);\r
- //enable_irq (gpio_to_irq(JOGBALL_KEY_LEFT_IO));\r
+ } \r
+ DBG("jogball: left end \n");\r
rk28_jogball_enable_irq( );\r
return IRQ_HANDLED;\r
}\r
\r
-//static void rk28_jogball_right_ISR(void)\r
static irqreturn_t rk28_jogball_right_ISR(int irq, void *dev_id)\r
{\r
rk28_jogball_disable_irq( );\r
- //disable_irq_nosync (gpio_to_irq(JOGBALL_KEY_RIGHT_IO));\r
+ DBG("jogball: right start\n");\r
jogball_cnt_right++;\r
\r
- if (jogball_cnt_right > JOGBALL_MAX_CNT){\r
- //printk("jogball: right\n");\r
+ if (jogball_cnt_right >= JOGBALL_MAX_CNT){\r
+ DBG("jogball: right\n");\r
\r
input_report_key(prockjogball->input_dev, JB_KEY_RIGHT, 1);\r
input_sync(prockjogball->input_dev);\r
jogball_cnt_down = 0;\r
jogball_cnt_left = 0;\r
jogball_cnt_right = 0;\r
- }\r
- \r
- //gpio_irq_enable(JOGBALL_KEY_RIGHT_IO);\r
- //enable_irq (gpio_to_irq(JOGBALL_KEY_RIGHT_IO));\r
+ } \r
+ DBG("jogball: right end\n");\r
rk28_jogball_enable_irq( );\r
return IRQ_HANDLED;\r
}\r