summaryrefslogtreecommitdiff
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 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id:$
9 *
10 * Copyright (C) 2009 by Mark Arigo
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21#include "config.h"
22
23#if (CONFIG_TUNER & TEA5767)
24#include "i2c-pp.h"
25#include "fmradio_i2c.h"
26
27/* The TEA5767 uses 5 bytes, but the pp-i2c will only read/write 4 bytes
28 at a time. The tuner doesn't like it when the i2c resets to send the 5th
29 byte. So, we can only read/write the first 4 bytes. Luckily, on read,
30 the 5th byte is reserved and on write we only use that for the deemphasis
31 bit (which we'll have to ignore). This is what the OF appears to do too. */
32
33int fmradio_i2c_write(unsigned char address, const unsigned char* buf, int count)
34{
35 (void)count;
36 return i2c_sendbytes(address, 4, buf);
37}
38
39int fmradio_i2c_read(unsigned char address, unsigned char* buf, int count)
40{
41 (void)count;
42 return i2c_readbytes(address, -1, 4, buf);
43}
44#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)
39 /* charger inserted bit */ 39 /* charger inserted bit */
40 GPIOE_ENABLE |= 0x20; 40 GPIOE_ENABLE |= 0x20;
41 GPIOE_INPUT_VAL |= 0x20; 41 GPIOE_INPUT_VAL |= 0x20;
42
43#if CONFIG_TUNER
44 /* fm antenna? */
45 GPIOE_ENABLE |= 0x40;
46 GPIOE_OUTPUT_EN |= 0x40;
47 GPIOE_OUTPUT_VAL &= ~0x40; /* off */
48#endif
42} 49}
43 50
44unsigned int power_input_status(void) 51unsigned int power_input_status(void)
@@ -77,3 +84,15 @@ void power_off(void)
77 GPIOB_OUTPUT_VAL &= ~0x80; 84 GPIOB_OUTPUT_VAL &= ~0x80;
78 GPIOB_OUTPUT_EN |= 0x80; 85 GPIOB_OUTPUT_EN |= 0x80;
79} 86}
87
88#if CONFIG_TUNER
89bool tuner_power(bool status)
90{
91 if (status)
92 GPIOE_OUTPUT_VAL |= 0x40;
93 else
94 GPIOE_OUTPUT_VAL &= ~0x40;
95
96 return status;
97}
98#endif