summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/philips/hdd1630
diff options
context:
space:
mode:
authorMark Arigo <markarigo@gmail.com>2009-02-13 03:49:17 +0000
committerMark Arigo <markarigo@gmail.com>2009-02-13 03:49:17 +0000
commit802b57ccd7676a9f619e93a4d326cf6f524f2079 (patch)
tree111cb07148c0956e353f012041ea0e9be1b0ba0d /firmware/target/arm/philips/hdd1630
parent311595c60cb8a720e93205218042101b65830b29 (diff)
downloadrockbox-802b57ccd7676a9f619e93a4d326cf6f524f2079.tar.gz
rockbox-802b57ccd7676a9f619e93a4d326cf6f524f2079.zip
FM radio for Philips HDD1630. Volume was very faint unless recording was enabled, so do that too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19996 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/philips/hdd1630')
-rw-r--r--firmware/target/arm/philips/hdd1630/fmradio_i2c-hdd1630.c44
-rwxr-xr-xfirmware/target/arm/philips/hdd1630/power-hdd1630.c19
2 files changed, 63 insertions, 0 deletions
diff --git a/firmware/target/arm/philips/hdd1630/fmradio_i2c-hdd1630.c b/firmware/target/arm/philips/hdd1630/fmradio_i2c-hdd1630.c
new file mode 100644
index 0000000000..c27ba5d462
--- /dev/null
+++ b/firmware/target/arm/philips/hdd1630/fmradio_i2c-hdd1630.c
@@ -0,0 +1,44 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id:$
+ *
+ * Copyright (C) 2009 by Mark Arigo
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#include "config.h"
+
+#if (CONFIG_TUNER & TEA5767)
+#include "i2c-pp.h"
+#include "fmradio_i2c.h"
+
+/* The TEA5767 uses 5 bytes, but the pp-i2c will only read/write 4 bytes
+ at a time. The tuner doesn't like it when the i2c resets to send the 5th
+ byte. So, we can only read/write the first 4 bytes. Luckily, on read,
+ the 5th byte is reserved and on write we only use that for the deemphasis
+ bit (which we'll have to ignore). This is what the OF appears to do too. */
+
+int fmradio_i2c_write(unsigned char address, const unsigned char* buf, int count)
+{
+ (void)count;
+ return i2c_sendbytes(address, 4, buf);
+}
+
+int fmradio_i2c_read(unsigned char address, unsigned char* buf, int count)
+{
+ (void)count;
+ return i2c_readbytes(address, -1, 4, buf);
+}
+#endif
diff --git a/firmware/target/arm/philips/hdd1630/power-hdd1630.c b/firmware/target/arm/philips/hdd1630/power-hdd1630.c
index 4e7172ef6f..22e11c803a 100755
--- a/firmware/target/arm/philips/hdd1630/power-hdd1630.c
+++ b/firmware/target/arm/philips/hdd1630/power-hdd1630.c
@@ -39,6 +39,13 @@ void power_init(void)
/* charger inserted bit */
GPIOE_ENABLE |= 0x20;
GPIOE_INPUT_VAL |= 0x20;
+
+#if CONFIG_TUNER
+ /* fm antenna? */
+ GPIOE_ENABLE |= 0x40;
+ GPIOE_OUTPUT_EN |= 0x40;
+ GPIOE_OUTPUT_VAL &= ~0x40; /* off */
+#endif
}
unsigned int power_input_status(void)
@@ -77,3 +84,15 @@ void power_off(void)
GPIOB_OUTPUT_VAL &= ~0x80;
GPIOB_OUTPUT_EN |= 0x80;
}
+
+#if CONFIG_TUNER
+bool tuner_power(bool status)
+{
+ if (status)
+ GPIOE_OUTPUT_VAL |= 0x40;
+ else
+ GPIOE_OUTPUT_VAL &= ~0x40;
+
+ return status;
+}
+#endif