1
0
Fork 0
forked from len0rd/rockbox

SA9200: Implement clicker.

It's not integrated with key click option for now.

Change-Id: Ib0769b02bfebe7c55eca7b7ea61df5d6dd83cdd3
This commit is contained in:
Szymon Dziok 2014-07-26 15:38:49 +00:00
parent 3f2c525c57
commit 6bbfb35560
2 changed files with 19 additions and 0 deletions

View file

@ -29,6 +29,19 @@
static int int_btn = BUTTON_NONE;
/*
* Generate a click sound from the player (not in headphones yet)
* TODO: integrate this with the "key click" option
*/
static void button_click(void)
{
GPIOF_ENABLE |= 0x08;
GPIOF_OUTPUT_VAL |= 0x08;
GPIOF_OUTPUT_EN |= 0x08;
udelay(1000);
GPIOF_OUTPUT_VAL &= ~0x08;
}
#ifndef BOOTLOADER
static bool hold_button_old = false;
@ -135,6 +148,7 @@ bool button_hold(void)
*/
int button_read_device(void)
{
static int btn_old = BUTTON_NONE;
int btn = int_btn;
bool hold = !(GPIOL_INPUT_VAL & 0x40);
@ -154,6 +168,9 @@ int button_read_device(void)
if (!(GPIOF_INPUT_VAL & 0x10)) btn |= BUTTON_VOL_UP;
if (!(GPIOF_INPUT_VAL & 0x04)) btn |= BUTTON_VOL_DOWN;
if ((btn != btn_old) && (btn != BUTTON_NONE)) button_click();
btn_old = btn;
return btn;
}

View file

@ -489,6 +489,8 @@ void system_init(void)
DEV_RS = 0x00000000;
DEV_RS2 = 0x00000000;
#elif defined(PHILIPS_SA9200)
DEV_INIT1 = 0x00000000;
DEV_INIT2 = 0x40004000;
/* reset all allowed devices */
DEV_RS = 0x3ffffef8;
DEV_RS2 = 0xffffffff;