| Date: | 2011-07-08 13:52:41 (1 year 10 months ago) |
|---|---|
| Author: | Maarten ter Huurne |
| Commit: | ce0911ac6890026c777723e9a86f90533bd7dbb8 |
| Message: | MIPS: JZ4740: A320: Debounce microswitch buttons. On the microswitch buttons of the Dingoo A320 (L/R/select/start), it often happens that multiple presses are detected for one actual button press. Specifying a 5 ms debounce interval fixes that issue. I am not sure what the optimum interval length would be, but 5 ms is short enough to not cause problems for gamers and long enough to filter out the glitches. |
| Files: |
arch/mips/jz4740/board-a320.c (1 diff) |
Change Details
| arch/mips/jz4740/board-a320.c | ||
|---|---|---|
| 257 | 257 | }, |
| 258 | 258 | }; |
| 259 | 259 | |
| 260 | /* TODO(CongoZombie): Figure out a way to reimplement power slider functionality | |
| 261 | so that existing apps won't break. (Possible that an SDL | |
| 262 | remapping would fix this, but it is unclear how many apps | |
| 263 | use other interfaces) | |
| 264 | Original Dingux used SysRq keys to perform different tasks | |
| 265 | (restart, backlight, volume etc.) | |
| 266 | */ | |
| 267 | /* TODO(CongoZombie): Confirm power slider pin (Booboo's docs seem unsure) */ | |
| 268 | ||
| 260 | /* Note that the microswitch buttons need debounce while the rubber buttons | |
| 261 | * do not need it. | |
| 262 | */ | |
| 269 | 263 | static struct gpio_keys_button a320_buttons[] = { |
| 270 | 264 | /* D-pad up */ { |
| 271 | .gpio = JZ_GPIO_PORTD(6), | |
| 272 | .active_low = 1, | |
| 273 | .code = KEY_UP | |
| 265 | .gpio = JZ_GPIO_PORTD(6), | |
| 266 | .active_low = 1, | |
| 267 | .code = KEY_UP, | |
| 274 | 268 | }, |
| 275 | 269 | /* D-pad down */ { |
| 276 | .gpio = JZ_GPIO_PORTD(27), | |
| 277 | .active_low = 1, | |
| 278 | .code = KEY_DOWN | |
| 270 | .gpio = JZ_GPIO_PORTD(27), | |
| 271 | .active_low = 1, | |
| 272 | .code = KEY_DOWN, | |
| 279 | 273 | }, |
| 280 | 274 | /* D-pad left */ { |
| 281 | .gpio = JZ_GPIO_PORTD(5), | |
| 282 | .active_low = 1, | |
| 283 | .code = KEY_LEFT | |
| 275 | .gpio = JZ_GPIO_PORTD(5), | |
| 276 | .active_low = 1, | |
| 277 | .code = KEY_LEFT, | |
| 284 | 278 | }, |
| 285 | 279 | /* D-pad right */ { |
| 286 | .gpio = JZ_GPIO_PORTD(18), | |
| 287 | .active_low = 1, | |
| 288 | .code = KEY_RIGHT | |
| 280 | .gpio = JZ_GPIO_PORTD(18), | |
| 281 | .active_low = 1, | |
| 282 | .code = KEY_RIGHT, | |
| 289 | 283 | }, |
| 290 | 284 | /* A button */ { |
| 291 | .gpio = JZ_GPIO_PORTD(0), | |
| 292 | .active_low = 1, | |
| 293 | .code = KEY_LEFTCTRL | |
| 285 | .gpio = JZ_GPIO_PORTD(0), | |
| 286 | .active_low = 1, | |
| 287 | .code = KEY_LEFTCTRL, | |
| 294 | 288 | }, |
| 295 | 289 | /* B button */ { |
| 296 | .gpio = JZ_GPIO_PORTD(1), | |
| 297 | .active_low = 1, | |
| 298 | .code = KEY_LEFTALT | |
| 290 | .gpio = JZ_GPIO_PORTD(1), | |
| 291 | .active_low = 1, | |
| 292 | .code = KEY_LEFTALT, | |
| 299 | 293 | }, |
| 300 | 294 | /* X button */ { |
| 301 | .gpio = JZ_GPIO_PORTD(19), | |
| 302 | .active_low = 1, | |
| 303 | .code = KEY_SPACE | |
| 295 | .gpio = JZ_GPIO_PORTD(19), | |
| 296 | .active_low = 1, | |
| 297 | .code = KEY_SPACE, | |
| 304 | 298 | }, |
| 305 | 299 | /* Y button */ { |
| 306 | .gpio = JZ_GPIO_PORTD(2), | |
| 307 | .active_low = 1, | |
| 308 | .code = KEY_LEFTSHIFT | |
| 300 | .gpio = JZ_GPIO_PORTD(2), | |
| 301 | .active_low = 1, | |
| 302 | .code = KEY_LEFTSHIFT, | |
| 309 | 303 | }, |
| 310 | 304 | /* Left shoulder button */ { |
| 311 | .gpio = JZ_GPIO_PORTD(14), | |
| 312 | .active_low = 1, | |
| 313 | .code = KEY_TAB | |
| 305 | .gpio = JZ_GPIO_PORTD(14), | |
| 306 | .active_low = 1, | |
| 307 | .code = KEY_TAB, | |
| 308 | .debounce_interval = 5, | |
| 314 | 309 | }, |
| 315 | 310 | /* Right shoulder button */ { |
| 316 | .gpio = JZ_GPIO_PORTD(15), | |
| 317 | .active_low = 1, | |
| 318 | .code = KEY_BACKSPACE | |
| 311 | .gpio = JZ_GPIO_PORTD(15), | |
| 312 | .active_low = 1, | |
| 313 | .code = KEY_BACKSPACE, | |
| 314 | .debounce_interval = 5, | |
| 319 | 315 | }, |
| 320 | 316 | /* START button */ { |
| 321 | .gpio = JZ_GPIO_PORTC(17), | |
| 322 | .active_low = 1, | |
| 323 | .code = KEY_ENTER | |
| 317 | .gpio = JZ_GPIO_PORTC(17), | |
| 318 | .active_low = 1, | |
| 319 | .code = KEY_ENTER, | |
| 320 | .debounce_interval = 5, | |
| 324 | 321 | }, |
| 325 | 322 | /* SELECT button */ { |
| 326 | .gpio = JZ_GPIO_PORTD(17), | |
| 327 | .active_low = 1, | |
| 328 | .code = KEY_ESC | |
| 323 | .gpio = JZ_GPIO_PORTD(17), | |
| 324 | .active_low = 1, | |
| 325 | .code = KEY_ESC, | |
| 326 | .debounce_interval = 5, | |
| 329 | 327 | }, |
| 330 | 328 | /* POWER slider */ { |
| 331 | .gpio = JZ_GPIO_PORTD(29), | |
| 332 | .active_low = 1, | |
| 333 | .code = KEY_POWER, | |
| 334 | .wakeup = 1, | |
| 329 | .gpio = JZ_GPIO_PORTD(29), | |
| 330 | .active_low = 1, | |
| 331 | .code = KEY_POWER, | |
| 332 | .wakeup = 1, | |
| 335 | 333 | }, |
| 336 | 334 | /* POWER hold */ { |
| 337 | .gpio = JZ_GPIO_PORTD(22), | |
| 338 | .active_low = 1, | |
| 339 | .code = KEY_PAUSE | |
| 335 | .gpio = JZ_GPIO_PORTD(22), | |
| 336 | .active_low = 1, | |
| 337 | .code = KEY_PAUSE, | |
| 340 | 338 | }, |
| 341 | 339 | }; |
| 342 | 340 | |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9
