From 7d759f6b9ca96a4a64c71ac301eb59cb9702e74c Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sat, 14 Jul 2007 11:20:31 +0000 Subject: Do some planned radio interface cleanup since adding in the LV24020LP. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13880 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/archos/av300/power-av300.c | 4 +- firmware/target/arm/iriver/h10/power-h10.c | 4 +- .../arm/pnx0101/iriver-ifp7xx/power-ifp7xx.c | 4 +- .../target/arm/sandisk/sansa-e200/power-e200.c | 58 ++++++++++++++++++++++ firmware/target/coldfire/iaudio/x5/power-x5.c | 4 +- firmware/target/coldfire/iriver/h100/power-h100.c | 4 +- firmware/target/coldfire/iriver/h300/power-h300.c | 4 +- 7 files changed, 70 insertions(+), 12 deletions(-) (limited to 'firmware/target') diff --git a/firmware/target/arm/archos/av300/power-av300.c b/firmware/target/arm/archos/av300/power-av300.c index cfdce69b13..6cc8b4f7c7 100644 --- a/firmware/target/arm/archos/av300/power-av300.c +++ b/firmware/target/arm/archos/av300/power-av300.c @@ -84,12 +84,12 @@ void ide_power_enable(bool on) static bool powered = false; -bool radio_powered() +bool tuner_powered() { return powered; } -bool radio_power(bool status) +bool tuner_power(bool status) { bool old_status = powered; powered = status; diff --git a/firmware/target/arm/iriver/h10/power-h10.c b/firmware/target/arm/iriver/h10/power-h10.c index 63eb2dc189..d0d3ce59d1 100644 --- a/firmware/target/arm/iriver/h10/power-h10.c +++ b/firmware/target/arm/iriver/h10/power-h10.c @@ -40,12 +40,12 @@ bool charger_enabled; static bool powered = false; -bool radio_powered() +bool tuner_powered() { return powered; } -bool radio_power(bool status) +bool tuner_power(bool status) { bool old_status = powered; powered = status; diff --git a/firmware/target/arm/pnx0101/iriver-ifp7xx/power-ifp7xx.c b/firmware/target/arm/pnx0101/iriver-ifp7xx/power-ifp7xx.c index 4e4f585298..dfdcb1d27a 100644 --- a/firmware/target/arm/pnx0101/iriver-ifp7xx/power-ifp7xx.c +++ b/firmware/target/arm/pnx0101/iriver-ifp7xx/power-ifp7xx.c @@ -30,12 +30,12 @@ static bool powered = false; -bool radio_powered(void) +bool tuner_powered(void) { return powered; } -bool radio_power(bool status) +bool tuner_power(bool status) { bool old_status = powered; powered = status; diff --git a/firmware/target/arm/sandisk/sansa-e200/power-e200.c b/firmware/target/arm/sandisk/sansa-e200/power-e200.c index dfa4211a91..002dcb8407 100644 --- a/firmware/target/arm/sandisk/sansa-e200/power-e200.c +++ b/firmware/target/arm/sandisk/sansa-e200/power-e200.c @@ -21,6 +21,7 @@ #include "system.h" #include "cpu.h" #include "i2c-pp.h" +#include "tuner.h" void power_init(void) { @@ -61,3 +62,60 @@ void ide_power_enable(bool on) { (void)on; } + +/** Tuner **/ +static bool powered = false; + +bool tuner_power(bool status) +{ + bool old_status = powered; + + if (status != old_status) + { + if (status) + { + /* init mystery amplification device */ + outl(inl(0x70000084) | 0x1, 0x70000084); + udelay(5); + + /* When power up, host should initialize the 3-wire bus + in host read mode: */ + + /* 1. Set direction of the DATA-line to input-mode. */ + GPIOH_OUTPUT_EN &= ~(1 << 5); + GPIOH_ENABLE |= (1 << 5); + + /* 2. Drive NR_W low */ + GPIOH_OUTPUT_VAL &= ~(1 << 3); + GPIOH_OUTPUT_EN |= (1 << 3); + GPIOH_ENABLE |= (1 << 3); + + /* 3. Drive CLOCK high */ + GPIOH_OUTPUT_VAL |= (1 << 4); + GPIOH_OUTPUT_EN |= (1 << 4); + GPIOH_ENABLE |= (1 << 4); + + lv24020lp_power(true); + } + else + { + lv24020lp_power(false); + + /* set all as inputs */ + GPIOH_OUTPUT_EN &= ~((1 << 5) | (1 << 3) | (1 << 4)); + GPIOH_ENABLE &= ~((1 << 5) | (1 << 3) | (1 << 4)); + + /* turn off mystery amplification device */ + outl(inl(0x70000084) & ~0x1, 0x70000084); + } + + powered = status; + } + + return old_status; +} + +bool tuner_powered(void) +{ + return powered; +} diff --git a/firmware/target/coldfire/iaudio/x5/power-x5.c b/firmware/target/coldfire/iaudio/x5/power-x5.c index c646570821..5c6c388a71 100644 --- a/firmware/target/coldfire/iaudio/x5/power-x5.c +++ b/firmware/target/coldfire/iaudio/x5/power-x5.c @@ -90,12 +90,12 @@ void ide_power_enable(bool on) static bool powered = false; -bool radio_powered() +bool tuner_powered() { return powered; } -bool radio_power(bool status) +bool tuner_power(bool status) { bool old_status = powered; powered = status; diff --git a/firmware/target/coldfire/iriver/h100/power-h100.c b/firmware/target/coldfire/iriver/h100/power-h100.c index 943168967f..c1841264a2 100644 --- a/firmware/target/coldfire/iriver/h100/power-h100.c +++ b/firmware/target/coldfire/iriver/h100/power-h100.c @@ -29,12 +29,12 @@ static bool powered = false; -bool radio_powered(void) +bool tuner_powered(void) { return powered; } -bool radio_power(bool status) +bool tuner_power(bool status) { bool old_status = powered; powered = status; diff --git a/firmware/target/coldfire/iriver/h300/power-h300.c b/firmware/target/coldfire/iriver/h300/power-h300.c index 5e57326c36..b687b29cba 100644 --- a/firmware/target/coldfire/iriver/h300/power-h300.c +++ b/firmware/target/coldfire/iriver/h300/power-h300.c @@ -29,12 +29,12 @@ static bool powered = false; -bool radio_powered(void) +bool tuner_powered(void) { return powered; } -bool radio_power(bool status) +bool tuner_power(bool status) { bool old_status = powered; powered = status; -- cgit v1.2.3