diff options
author | Rob Purchase <shotofadds@rockbox.org> | 2008-07-09 20:42:47 +0000 |
---|---|---|
committer | Rob Purchase <shotofadds@rockbox.org> | 2008-07-09 20:42:47 +0000 |
commit | 0eb51e8a73be0713579dfade63447fd5e7858160 (patch) | |
tree | 72ec4401b6f24400a3d4c5bde3b64b41f12a1851 | |
parent | 34216463beefb9f970a2953409892d73042ae4a1 (diff) |
D2: Add the tuner_power() function which was missing from the previous FM commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17999 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/target/arm/tcc780x/cowond2/power-cowond2.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/firmware/target/arm/tcc780x/cowond2/power-cowond2.c b/firmware/target/arm/tcc780x/cowond2/power-cowond2.c index 5b09cc1c17..9eb0871c6e 100644 --- a/firmware/target/arm/tcc780x/cowond2/power-cowond2.c +++ b/firmware/target/arm/tcc780x/cowond2/power-cowond2.c @@ -99,6 +99,55 @@ bool charger_inserted(void) } #endif +#if CONFIG_TUNER + +/** Tuner **/ +static bool powered = false; + +bool tuner_power(bool status) +{ + bool old_status; + lv24020lp_lock(); + + old_status = powered; + + if (status != old_status) + { + if (status) + { + /* When power up, host should initialize the 3-wire bus + in host read mode: */ + + /* 1. Set direction of the DATA-line to input-mode. */ + GPIOC_DIR &= ~(1 << 30); + + /* 2. Drive NR_W low */ + GPIOC_CLEAR = (1 << 31); + GPIOC_DIR |= (1 << 31); + + /* 3. Drive CLOCK high */ + GPIOC_SET = (1 << 29); + GPIOC_DIR |= (1 << 29); + + lv24020lp_power(true); + } + else + { + lv24020lp_power(false); + + /* set all as inputs */ + GPIOC_DIR &= ~((1 << 29) | (1 << 30) | (1 << 31)); + } + + powered = status; + } + + lv24020lp_unlock(); + return old_status; +} + +#endif /* CONFIG_TUNER */ + #else /* SIMULATOR */ bool charger_inserted(void) |