diff options
Diffstat (limited to 'firmware/target/arm/tcc780x/cowond2')
-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) | |||
99 | } | 99 | } |
100 | #endif | 100 | #endif |
101 | 101 | ||
102 | #if CONFIG_TUNER | ||
103 | |||
104 | /** Tuner **/ | ||
105 | static bool powered = false; | ||
106 | |||
107 | bool tuner_power(bool status) | ||
108 | { | ||
109 | bool old_status; | ||
110 | lv24020lp_lock(); | ||
111 | |||
112 | old_status = powered; | ||
113 | |||
114 | if (status != old_status) | ||
115 | { | ||
116 | if (status) | ||
117 | { | ||
118 | /* When power up, host should initialize the 3-wire bus | ||
119 | in host read mode: */ | ||
120 | |||
121 | /* 1. Set direction of the DATA-line to input-mode. */ | ||
122 | GPIOC_DIR &= ~(1 << 30); | ||
123 | |||
124 | /* 2. Drive NR_W low */ | ||
125 | GPIOC_CLEAR = (1 << 31); | ||
126 | GPIOC_DIR |= (1 << 31); | ||
127 | |||
128 | /* 3. Drive CLOCK high */ | ||
129 | GPIOC_SET = (1 << 29); | ||
130 | GPIOC_DIR |= (1 << 29); | ||
131 | |||
132 | lv24020lp_power(true); | ||
133 | } | ||
134 | else | ||
135 | { | ||
136 | lv24020lp_power(false); | ||
137 | |||
138 | /* set all as inputs */ | ||
139 | GPIOC_DIR &= ~((1 << 29) | (1 << 30) | (1 << 31)); | ||
140 | } | ||
141 | |||
142 | powered = status; | ||
143 | } | ||
144 | |||
145 | lv24020lp_unlock(); | ||
146 | return old_status; | ||
147 | } | ||
148 | |||
149 | #endif /* CONFIG_TUNER */ | ||
150 | |||
102 | #else /* SIMULATOR */ | 151 | #else /* SIMULATOR */ |
103 | 152 | ||
104 | bool charger_inserted(void) | 153 | bool charger_inserted(void) |