diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2013-11-19 20:39:10 +0000 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2013-11-19 20:39:10 +0000 |
commit | 446f352abda2dbc9de90c35a02100ed5e9aad77c (patch) | |
tree | 7ee2b4dae98376e0380b0b8bc44e1e688d10ede2 /firmware/target/arm/imx233/creative-zen | |
parent | c2c2274e0adacc1a0c5bdb57fa1367badb7b047f (diff) | |
download | rockbox-446f352abda2dbc9de90c35a02100ed5e9aad77c.tar.gz rockbox-446f352abda2dbc9de90c35a02100ed5e9aad77c.zip |
imx233: factor fmradio i2c and tuner power code
Choices are limited for those: i2c is either generic software or imx233
hardware and power is either none or with a gpio. So factor ever possible
combination in a single common file and use fmradio-target.h to supply the
required parameters. This will remove a bunch of duplicate code.
Change-Id: If12faeb2e371631cd39cc18a4c1d859812007934
Diffstat (limited to 'firmware/target/arm/imx233/creative-zen')
-rw-r--r-- | firmware/target/arm/imx233/creative-zen/fmradio-target.h (renamed from firmware/target/arm/imx233/creative-zen/fmradio-i2c-zen.c) | 30 | ||||
-rw-r--r-- | firmware/target/arm/imx233/creative-zen/power-zen.c | 38 |
2 files changed, 13 insertions, 55 deletions
diff --git a/firmware/target/arm/imx233/creative-zen/fmradio-i2c-zen.c b/firmware/target/arm/imx233/creative-zen/fmradio-target.h index a1377ce1f2..c2b75b3ed4 100644 --- a/firmware/target/arm/imx233/creative-zen/fmradio-i2c-zen.c +++ b/firmware/target/arm/imx233/creative-zen/fmradio-target.h | |||
@@ -18,23 +18,19 @@ | |||
18 | * KIND, either express or implied. | 18 | * KIND, either express or implied. |
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | #ifndef _FMRADIO_TARGET_H_ | ||
22 | #define _FMRADIO_TARGET_H_ | ||
21 | 23 | ||
22 | #include "config.h" | 24 | #define IMX233_FMRADIO_I2C FMI_HW |
23 | #include "system.h" | ||
24 | #include "fmradio_i2c.h" | ||
25 | #include "pinctrl-imx233.h" | ||
26 | #include "i2c.h" | ||
27 | 25 | ||
28 | void fmradio_i2c_init(void) | 26 | #ifdef CREATIVE_ZENMOZAIC |
29 | { | 27 | #define IMX233_FMRADIO_POWER FMP_GPIO |
30 | } | 28 | #define FMP_GPIO_BANK 2 |
29 | #define FMP_GPIO_PIN 15 | ||
30 | #define FMP_GPIO_DELAY (HZ / 5) | ||
31 | #else | ||
32 | #define IMX233_FMRADIO_POWER FMP_NONE | ||
33 | #endif | ||
31 | 34 | ||
32 | int fmradio_i2c_write(unsigned char address, const unsigned char* buf, int count) | 35 | #endif /* _FMRADIO_TARGET_H_ */ |
33 | { | 36 | \ No newline at end of file |
34 | return i2c_write(address, buf, count); | ||
35 | } | ||
36 | |||
37 | int fmradio_i2c_read(unsigned char address, unsigned char* buf, int count) | ||
38 | { | ||
39 | return i2c_read(address, buf, count); | ||
40 | } | ||
diff --git a/firmware/target/arm/imx233/creative-zen/power-zen.c b/firmware/target/arm/imx233/creative-zen/power-zen.c index c1ad5989c0..15da6ab201 100644 --- a/firmware/target/arm/imx233/creative-zen/power-zen.c +++ b/firmware/target/arm/imx233/creative-zen/power-zen.c | |||
@@ -21,44 +21,6 @@ | |||
21 | 21 | ||
22 | #include "system.h" | 22 | #include "system.h" |
23 | #include "power.h" | 23 | #include "power.h" |
24 | #include "tuner.h" | ||
25 | #include "fmradio_i2c.h" | ||
26 | #include "pinctrl-imx233.h" | ||
27 | #include "power-imx233.h" | ||
28 | |||
29 | static bool tuner_enable = false; | ||
30 | static bool initialised = false; | ||
31 | |||
32 | static void init(void) | ||
33 | { | ||
34 | #ifdef CREATIVE_ZENMOZAIC | ||
35 | /* CE is B2P15 (active high) */ | ||
36 | imx233_pinctrl_acquire(2, 15, "tuner power"); | ||
37 | imx233_pinctrl_set_function(2, 15, PINCTRL_FUNCTION_GPIO); | ||
38 | imx233_pinctrl_enable_gpio(2, 15, true); | ||
39 | #endif | ||
40 | initialised = true; | ||
41 | } | ||
42 | |||
43 | bool tuner_power(bool enable) | ||
44 | { | ||
45 | if(!initialised) | ||
46 | init(); | ||
47 | if(tuner_enable != enable) | ||
48 | { | ||
49 | #ifdef CREATIVE_ZENMOZAIC | ||
50 | imx233_pinctrl_set_gpio(2, 15, enable); | ||
51 | sleep(HZ / 5); | ||
52 | #endif | ||
53 | tuner_enable = enable; | ||
54 | } | ||
55 | return tuner_enable; | ||
56 | } | ||
57 | |||
58 | bool tuner_powered(void) | ||
59 | { | ||
60 | return tuner_enable; | ||
61 | } | ||
62 | 24 | ||
63 | void ide_power_enable(bool on) | 25 | void ide_power_enable(bool on) |
64 | { | 26 | { |