summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/creative-zen
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-11-19 20:39:10 +0000
committerAmaury Pouly <amaury.pouly@gmail.com>2013-11-19 20:39:10 +0000
commit446f352abda2dbc9de90c35a02100ed5e9aad77c (patch)
tree7ee2b4dae98376e0380b0b8bc44e1e688d10ede2 /firmware/target/arm/imx233/creative-zen
parentc2c2274e0adacc1a0c5bdb57fa1367badb7b047f (diff)
downloadrockbox-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.c38
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
28void 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
32int 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
37int 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
29static bool tuner_enable = false;
30static bool initialised = false;
31
32static 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
43bool 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
58bool tuner_powered(void)
59{
60 return tuner_enable;
61}
62 24
63void ide_power_enable(bool on) 25void ide_power_enable(bool on)
64{ 26{