summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/creative-zen/power-zen.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx233/creative-zen/power-zen.c')
-rw-r--r--firmware/target/arm/imx233/creative-zen/power-zen.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/firmware/target/arm/imx233/creative-zen/power-zen.c b/firmware/target/arm/imx233/creative-zen/power-zen.c
index 81157da511..2c68325432 100644
--- a/firmware/target/arm/imx233/creative-zen/power-zen.c
+++ b/firmware/target/arm/imx233/creative-zen/power-zen.c
@@ -27,11 +27,29 @@
27#include "power-imx233.h" 27#include "power-imx233.h"
28 28
29static bool tuner_enable = false; 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}
30 42
31bool tuner_power(bool enable) 43bool tuner_power(bool enable)
32{ 44{
33 if(enable != tuner_enable) 45 if(!initialised)
46 init();
47 if(tuner_enable != enable)
34 { 48 {
49#ifdef CREATIVE_ZENMOZAIC
50 imx233_pinctrl_set_gpio(2, 15, enable);
51 sleep(HZ / 5);
52#endif
35 tuner_enable = enable; 53 tuner_enable = enable;
36 } 54 }
37 return tuner_enable; 55 return tuner_enable;