summaryrefslogtreecommitdiffstats
path: root/firmware/target/mips/ingenic_jz47xx
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2008-12-20 13:10:04 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2008-12-20 13:10:04 +0000
commite4c09799a0330e5799a1665a12183c62f12fa33f (patch)
tree895dc0dd2d6c08275da828f2d8642591a52cdf18 /firmware/target/mips/ingenic_jz47xx
parent977bab5348fb91d33552ea92b1d7f381bde8c993 (diff)
downloadrockbox-e4c09799a0330e5799a1665a12183c62f12fa33f.tar.gz
rockbox-e4c09799a0330e5799a1665a12183c62f12fa33f.zip
Ingenic players:
* Enable clocks when needed * Fix VX747+ button_hold() git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19505 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx')
-rw-r--r--firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c1
-rw-r--r--firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c19
-rw-r--r--firmware/target/mips/ingenic_jz47xx/system-jz4740.c3
3 files changed, 14 insertions, 9 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c b/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c
index e37e991e71..8112c21147 100644
--- a/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c
+++ b/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c
@@ -39,6 +39,7 @@ static struct wakeup lcd_wkup;
/* LCD init */
void lcd_init_device(void)
{
+ __cpm_start_lcd();
lcd_init_controller();
__cpm_stop_lcd();
lcd_is_on = true;
diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c b/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
index 95c2f84a7e..cd1da694b0 100644
--- a/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
+++ b/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
@@ -126,11 +126,11 @@ unsigned int battery_adc_voltage(void)
void button_init_device(void)
{
+ __cpm_start_sadc();
REG_SADC_ENA = 0;
REG_SADC_STATE &= (~REG_SADC_STATE);
REG_SADC_CTRL = 0x1F;
- __cpm_start_sadc();
REG_SADC_CFG = SADC_CFG_INIT;
system_enable_irq(IRQ_SADC);
@@ -184,7 +184,14 @@ static int touch_to_pixels(short x, short y)
bool button_hold(void)
{
- return ((~REG_GPIO_PXPIN(3)) & BTN_HOLD ? true : false);
+ return (
+#ifdef ONDA_VX747
+ (~REG_GPIO_PXPIN(3)) & BTN_HOLD
+#elif defined(ONDA_VX747P)
+ (~REG_GPIO_PXPIN(2)) & BTN_HOLD
+#endif
+ ? true : false
+ );
}
int button_read_device(int *data)
@@ -192,13 +199,7 @@ int button_read_device(int *data)
int ret = 0, tmp;
/* Filter button events out if HOLD button is pressed at firmware/ level */
- if(
-#ifdef ONDA_VX747
- (~REG_GPIO_PXPIN(3)) & BTN_HOLD
-#elif defined(ONDA_VX747P)
- (~REG_GPIO_PXPIN(2)) & BTN_HOLD
-#endif
- )
+ if(button_hold())
return 0;
tmp = (~REG_GPIO_PXPIN(3)) & BTN_MASK;
diff --git a/firmware/target/mips/ingenic_jz47xx/system-jz4740.c b/firmware/target/mips/ingenic_jz47xx/system-jz4740.c
index 22d35d93de..48fb192810 100644
--- a/firmware/target/mips/ingenic_jz47xx/system-jz4740.c
+++ b/firmware/target/mips/ingenic_jz47xx/system-jz4740.c
@@ -694,6 +694,9 @@ void system_main(void)
detect_clock();
+ /* Disable unneeded clocks, clocks are enabled when needed */
+ __cpm_stop_all();
+
/* Enable interrupts at core level */
sti();