diff options
author | Szymon Dziok <b0hoon@o2.pl> | 2014-07-26 15:38:49 +0000 |
---|---|---|
committer | Szymon Dziok <b0hoon@o2.pl> | 2014-07-26 15:38:49 +0000 |
commit | 6bbfb35560d440e21bdd73728d43a75b6b4de6fd (patch) | |
tree | 928f3c53bd04ceaeb0e8c1e7ea31c8652dd5c3f4 /firmware/target/arm | |
parent | 3f2c525c57cf97ca2954bd1be9630e7ed529a991 (diff) | |
download | rockbox-6bbfb35560d440e21bdd73728d43a75b6b4de6fd.tar.gz rockbox-6bbfb35560d440e21bdd73728d43a75b6b4de6fd.zip |
SA9200: Implement clicker.
It's not integrated with key click option for now.
Change-Id: Ib0769b02bfebe7c55eca7b7ea61df5d6dd83cdd3
Diffstat (limited to 'firmware/target/arm')
-rw-r--r-- | firmware/target/arm/philips/sa9200/button-sa9200.c | 17 | ||||
-rw-r--r-- | firmware/target/arm/pp/system-pp502x.c | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/firmware/target/arm/philips/sa9200/button-sa9200.c b/firmware/target/arm/philips/sa9200/button-sa9200.c index bef5be7522..c02d1088dc 100644 --- a/firmware/target/arm/philips/sa9200/button-sa9200.c +++ b/firmware/target/arm/philips/sa9200/button-sa9200.c @@ -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; } diff --git a/firmware/target/arm/pp/system-pp502x.c b/firmware/target/arm/pp/system-pp502x.c index af2e6d7761..697b52cf51 100644 --- a/firmware/target/arm/pp/system-pp502x.c +++ b/firmware/target/arm/pp/system-pp502x.c @@ -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; |