summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2005-11-27 01:10:02 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2005-11-27 01:10:02 +0000
commite5ce01f056c6dd4d0c049fbed18c2e5642a16469 (patch)
tree7765577c5ccc999399ef07c150f2ecb410835ac9 /firmware
parent4205407b8aecb0509e1c8c574563f2f4f040b4d1 (diff)
Proper UDA1380 reset for H300
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8075 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/uda1380.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/firmware/drivers/uda1380.c b/firmware/drivers/uda1380.c
index 6a5bd078c0..eb2b57e7f3 100644
--- a/firmware/drivers/uda1380.c
+++ b/firmware/drivers/uda1380.c
@@ -32,6 +32,7 @@
#include "i2c-coldfire.h"
#include "uda1380.h"
+#include "pcf50606.h"
/* ------------------------------------------------- */
/* Local functions and variables */
@@ -167,12 +168,19 @@ void uda1380_enable_output(bool enable)
void uda1380_reset(void)
{
+#ifdef IRIVER_H300_SERIES
+ int mask = set_irq_level(HIGHEST_IRQ_LEVEL);
+ pcf50606_write(0x3b, 0x00);
+ pcf50606_write(0x3b, 0x07);
+ set_irq_level(mask);
+#else
/* RESET signal */
or_l(1<<29, &GPIO_OUT);
or_l(1<<29, &GPIO_ENABLE);
or_l(1<<29, &GPIO_FUNCTION);
sleep(HZ/100);
and_l(~(1<<29), &GPIO_OUT);
+#endif
}
/* Initialize UDA1380 codec with default register values (uda1380_defaults) */