summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/settings.c6
-rw-r--r--apps/settings.h2
-rw-r--r--apps/settings_menu.c6
-rw-r--r--firmware/backlight.c197
-rw-r--r--firmware/export/backlight.h2
-rw-r--r--firmware/export/config-h100.h3
-rw-r--r--firmware/export/config-h120.h3
-rw-r--r--firmware/export/config-ipodnano.h3
-rw-r--r--firmware/export/config-ipodvideo.h3
9 files changed, 132 insertions, 93 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 6fedf66669..7329b12a76 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -90,7 +90,7 @@ const char rec_base_directory[] = REC_BASE_DIR;
90#include "dsp.h" 90#include "dsp.h"
91#endif 91#endif
92 92
93#define CONFIG_BLOCK_VERSION 37 93#define CONFIG_BLOCK_VERSION 38
94#define CONFIG_BLOCK_SIZE 512 94#define CONFIG_BLOCK_SIZE 512
95#define RTC_BLOCK_SIZE 44 95#define RTC_BLOCK_SIZE 44
96 96
@@ -436,7 +436,7 @@ static const struct bit_entry hd_bits[] =
436 {4, S_O(rec_trigger_mode ), 0, "trigger mode", "off,once,repeat"}, 436 {4, S_O(rec_trigger_mode ), 0, "trigger mode", "off,once,repeat"},
437#endif 437#endif
438 438
439#if CONFIG_BACKLIGHT == BL_IRIVER_H100 439#ifdef HAVE_BACKLIGHT_PWM_FADING
440 /* backlight fading */ 440 /* backlight fading */
441 {2, S_O(backlight_fade_in), 1, "backlight fade in", "off,500ms,1s,2s"}, 441 {2, S_O(backlight_fade_in), 1, "backlight fade in", "off,500ms,1s,2s"},
442 {3, S_O(backlight_fade_out), 3, "backlight fade out", 442 {3, S_O(backlight_fade_out), 3, "backlight fade out",
@@ -997,7 +997,7 @@ void settings_apply(void)
997#ifdef HAVE_CHARGING 997#ifdef HAVE_CHARGING
998 backlight_set_timeout_plugged(global_settings.backlight_timeout_plugged); 998 backlight_set_timeout_plugged(global_settings.backlight_timeout_plugged);
999#endif 999#endif
1000#if (CONFIG_BACKLIGHT == BL_IRIVER_H100) && !defined(SIMULATOR) 1000#if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
1001 backlight_set_fade_in(global_settings.backlight_fade_in); 1001 backlight_set_fade_in(global_settings.backlight_fade_in);
1002 backlight_set_fade_out(global_settings.backlight_fade_out); 1002 backlight_set_fade_out(global_settings.backlight_fade_out);
1003#endif 1003#endif
diff --git a/apps/settings.h b/apps/settings.h
index 3d129ba6e6..52e949ea9e 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -271,7 +271,7 @@ struct user_settings
271 1=always, 271 1=always,
272 then according to timeout_values[] */ 272 then according to timeout_values[] */
273 int backlight_timeout_plugged; 273 int backlight_timeout_plugged;
274#if CONFIG_BACKLIGHT == BL_IRIVER_H100 274#ifdef HAVE_BACKLIGHT_PWM_FADING
275 int backlight_fade_in; /* backlight fade in timing: 0..3 */ 275 int backlight_fade_in; /* backlight fade in timing: 0..3 */
276 int backlight_fade_out; /* backlight fade in timing: 0..7 */ 276 int backlight_fade_out; /* backlight fade in timing: 0..7 */
277#endif 277#endif
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index 517c7f1f6b..6e8d62191f 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -191,7 +191,7 @@ static bool backlight_timer(void)
191 backlight_set_timeout ); 191 backlight_set_timeout );
192} 192}
193 193
194#if (CONFIG_BACKLIGHT == BL_IRIVER_H100) && !defined(SIMULATOR) 194#if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
195static bool backlight_fade_in(void) 195static bool backlight_fade_in(void)
196{ 196{
197 static const struct opt_items names[] = { 197 static const struct opt_items names[] = {
@@ -1087,7 +1087,7 @@ static bool custom_remote_wps_browse(void)
1087 return rockbox_browse(WPS_DIR, SHOW_RWPS); 1087 return rockbox_browse(WPS_DIR, SHOW_RWPS);
1088} 1088}
1089#endif 1089#endif
1090 1090
1091static bool custom_cfg_browse(void) 1091static bool custom_cfg_browse(void)
1092{ 1092{
1093 return rockbox_browse(ROCKBOX_DIR, SHOW_CFG); 1093 return rockbox_browse(ROCKBOX_DIR, SHOW_CFG);
@@ -1614,7 +1614,7 @@ static bool lcd_settings_menu(void)
1614 { ID2P(LANG_BACKLIGHT_ON_WHEN_CHARGING), backlight_timer_plugged }, 1614 { ID2P(LANG_BACKLIGHT_ON_WHEN_CHARGING), backlight_timer_plugged },
1615#endif 1615#endif
1616 { ID2P(LANG_CAPTION_BACKLIGHT), caption_backlight }, 1616 { ID2P(LANG_CAPTION_BACKLIGHT), caption_backlight },
1617#if (CONFIG_BACKLIGHT == BL_IRIVER_H100) && !defined(SIMULATOR) 1617#if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
1618 { ID2P(LANG_BACKLIGHT_FADE_IN), backlight_fade_in }, 1618 { ID2P(LANG_BACKLIGHT_FADE_IN), backlight_fade_in },
1619 { ID2P(LANG_BACKLIGHT_FADE_OUT), backlight_fade_out }, 1619 { ID2P(LANG_BACKLIGHT_FADE_OUT), backlight_fade_out },
1620#endif 1620#endif
diff --git a/firmware/backlight.c b/firmware/backlight.c
index 9d48f0d660..9aace01b2e 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -41,6 +41,88 @@
41#include "lcd-remote.h" 41#include "lcd-remote.h"
42#endif 42#endif
43 43
44/* Basic low-level code that simply switches backlight on or off. Probably
45 * a nice candidate for inclusion in the target/ dir. */
46static inline void __backlight_on(void)
47{
48#ifdef SIMULATOR
49 sim_backlight(100);
50#elif CONFIG_BACKLIGHT == BL_IRIVER_H100
51 and_l(~0x00020000, &GPIO1_OUT);
52#elif CONFIG_BACKLIGHT == BL_IRIVER_H300
53 lcd_enable(true);
54 or_l(0x00020000, &GPIO1_OUT);
55#elif CONFIG_BACKLIGHT == BL_RTC
56 /* Enable square wave */
57 rtc_write(0x0a, rtc_read(0x0a) | 0x40);
58#elif CONFIG_BACKLIGHT == BL_PA14_LO /* Player */
59 and_b(~0x40, &PADRH); /* drive and set low */
60 or_b(0x40, &PAIORH);
61#elif CONFIG_BACKLIGHT == BL_PA14_HI /* Ondio */
62 or_b(0x40, &PADRH); /* drive it high */
63#elif CONFIG_BACKLIGHT == BL_GMINI
64 P1 |= 0x10;
65#elif CONFIG_BACKLIGHT == BL_IPOD4G
66 /* brightness full */
67 outl(0x80000000 | (0xff << 16), 0x7000a010);
68
69 /* set port b bit 3 on */
70 outl(((0x100 | 1) << 3), 0x6000d824);
71#elif CONFIG_BACKLIGHT==BL_IPODMINI
72 /* set port B03 on */
73 outl(((0x100 | 1) << 3), 0x6000d824);
74#elif CONFIG_BACKLIGHT==BL_IPODNANO
75 /* set port B03 on */
76 outl(((0x100 | 1) << 3), 0x6000d824);
77
78 /* set port L07 on */
79 outl(((0x100 | 1) << 7), 0x6000d12c);
80#elif CONFIG_BACKLIGHT==BL_IPOD3G
81 lcd_enable(true);
82#elif CONFIG_BACKLIGHT==BL_IRIVER_IFP7XX
83 GPIO3_SET = 1;
84#endif
85}
86
87static inline void __backlight_off(void)
88{
89#ifdef SIMULATOR
90 sim_backlight(0);
91#elif CONFIG_BACKLIGHT == BL_IRIVER_H100
92 or_l(0x00020000, &GPIO1_OUT);
93#elif CONFIG_BACKLIGHT == BL_IRIVER_H300
94 and_l(~0x00020000, &GPIO1_OUT);
95 lcd_enable(false);
96#elif CONFIG_BACKLIGHT == BL_RTC
97 /* Disable square wave */
98 rtc_write(0x0a, rtc_read(0x0a) & ~0x40);
99#elif CONFIG_BACKLIGHT == BL_PA14_LO /* Player */
100 and_b(~0x40, &PAIORH); /* let it float (up) */
101#elif CONFIG_BACKLIGHT == BL_PA14_HI /* Ondio */
102 and_b(~0x40, &PADRH); /* drive it low */
103#elif CONFIG_BACKLIGHT == BL_GMINI
104 P1 &= ~0x10;
105#elif CONFIG_BACKLIGHT == BL_IPOD4G
106 /* fades backlight off on 4g */
107 outl(inl(0x70000084) & ~0x2000000, 0x70000084);
108 outl(0x80000000, 0x7000a010);
109#elif CONFIG_BACKLIGHT==BL_IPODNANO
110 /* set port B03 off */
111 outl(((0x100 | 0) << 3), 0x6000d824);
112
113 /* set port L07 off */
114 outl(((0x100 | 0) << 7), 0x6000d12c);
115#elif CONFIG_BACKLIGHT==BL_IRIVER_IFP7XX
116 GPIO3_CLR = 1;
117#elif CONFIG_BACKLIGHT==BL_IPOD3G
118 lcd_enable(false);
119#elif CONFIG_BACKLIGHT==BL_IPODMINI
120 /* set port B03 off */
121 outl(((0x100 | 0) << 3), 0x6000d824);
122#endif
123}
124
125
44#if defined(CONFIG_BACKLIGHT) && !defined(BOOTLOADER) 126#if defined(CONFIG_BACKLIGHT) && !defined(BOOTLOADER)
45 127
46const char backlight_timeout_value[19] = 128const char backlight_timeout_value[19] =
@@ -73,7 +155,7 @@ static int remote_backlight_timeout_plugged = 5*HZ;
73#endif 155#endif
74#endif 156#endif
75 157
76#if (CONFIG_BACKLIGHT == BL_IRIVER_H100) && !defined(SIMULATOR) 158#if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
77/* backlight fading */ 159/* backlight fading */
78#define BL_PWM_INTERVAL 5000 /* Cycle interval in µs */ 160#define BL_PWM_INTERVAL 5000 /* Cycle interval in µs */
79#define BL_PWM_COUNT 100 161#define BL_PWM_COUNT 100
@@ -93,7 +175,7 @@ static void backlight_isr(void)
93 int timer_period; 175 int timer_period;
94 bool idle = false; 176 bool idle = false;
95 177
96 timer_period = CPU_FREQ / 1000 * BL_PWM_INTERVAL / 1000; 178 timer_period = TIMER_FREQ / 1000 * BL_PWM_INTERVAL / 1000;
97 switch (bl_dim_state) 179 switch (bl_dim_state)
98 { 180 {
99 /* New cycle */ 181 /* New cycle */
@@ -103,7 +185,7 @@ static void backlight_isr(void)
103 185
104 if (bl_dim_current > 0 && bl_dim_current < BL_PWM_COUNT) 186 if (bl_dim_current > 0 && bl_dim_current < BL_PWM_COUNT)
105 { 187 {
106 and_l(~0x00020000, &GPIO1_OUT); 188 __backlight_on();
107 bl_pwm_counter = bl_dim_current; 189 bl_pwm_counter = bl_dim_current;
108 timer_period = timer_period * bl_pwm_counter / BL_PWM_COUNT; 190 timer_period = timer_period * bl_pwm_counter / BL_PWM_COUNT;
109 bl_dim_state = DIM_STATE_MAIN; 191 bl_dim_state = DIM_STATE_MAIN;
@@ -111,10 +193,9 @@ static void backlight_isr(void)
111 else 193 else
112 { 194 {
113 if (bl_dim_current) 195 if (bl_dim_current)
114 and_l(~0x00020000, &GPIO1_OUT); 196 __backlight_on();
115 else 197 else
116 or_l(0x00020000, &GPIO1_OUT); 198 __backlight_off();
117
118 if (bl_dim_current == bl_dim_target) 199 if (bl_dim_current == bl_dim_target)
119 idle = true; 200 idle = true;
120 } 201 }
@@ -123,7 +204,7 @@ static void backlight_isr(void)
123 204
124 /* Dim main screen */ 205 /* Dim main screen */
125 case DIM_STATE_MAIN: 206 case DIM_STATE_MAIN:
126 or_l(0x00020000, &GPIO1_OUT); 207 __backlight_off();
127 bl_dim_state = DIM_STATE_START; 208 bl_dim_state = DIM_STATE_START;
128 timer_period = timer_period * (BL_PWM_COUNT - bl_pwm_counter) / BL_PWM_COUNT; 209 timer_period = timer_period * (BL_PWM_COUNT - bl_pwm_counter) / BL_PWM_COUNT;
129 break ; 210 break ;
@@ -143,7 +224,9 @@ static void backlight_isr(void)
143 224
144 if (idle) 225 if (idle)
145 { 226 {
227#ifdef CPU_COLDFIRE
146 queue_post(&backlight_queue, BACKLIGHT_UNBOOST_CPU, NULL); 228 queue_post(&backlight_queue, BACKLIGHT_UNBOOST_CPU, NULL);
229#endif
147 timer_unregister(); 230 timer_unregister();
148 bl_timer_active = false; 231 bl_timer_active = false;
149 } 232 }
@@ -155,19 +238,21 @@ static void backlight_switch(void)
155{ 238{
156 if (bl_dim_target > (BL_PWM_COUNT/2)) 239 if (bl_dim_target > (BL_PWM_COUNT/2))
157 { 240 {
158 and_l(~0x00020000, &GPIO1_OUT); 241 __backlight_on();
159 bl_dim_current = BL_PWM_COUNT; 242 bl_dim_current = BL_PWM_COUNT;
160 } 243 }
161 else 244 else
162 { 245 {
163 or_l(0x00020000, &GPIO1_OUT); 246 __backlight_off();
164 bl_dim_current = 0; 247 bl_dim_current = 0;
165 } 248 }
166} 249}
167 250
168static void backlight_release_timer(void) 251static void backlight_release_timer(void)
169{ 252{
253#ifdef CPU_COLDFIRE
170 cpu_boost(false); 254 cpu_boost(false);
255#endif
171 timer_unregister(); 256 timer_unregister();
172 bl_timer_active = false; 257 bl_timer_active = false;
173 backlight_switch(); 258 backlight_switch();
@@ -186,8 +271,10 @@ static void backlight_dim(int value)
186 271
187 if (timer_register(0, backlight_release_timer, 1, 0, backlight_isr)) 272 if (timer_register(0, backlight_release_timer, 1, 0, backlight_isr))
188 { 273 {
274#ifdef CPU_COLDFIRE
189 /* Prevent cpu frequency changes while dimming. */ 275 /* Prevent cpu frequency changes while dimming. */
190 cpu_boost(true); 276 cpu_boost(true);
277#endif
191 bl_timer_active = true; 278 bl_timer_active = true;
192 } 279 }
193 else 280 else
@@ -203,96 +290,35 @@ void backlight_set_fade_out(int index)
203{ 290{
204 fade_out_count = backlight_fade_value[index]; 291 fade_out_count = backlight_fade_value[index];
205} 292}
206#endif /* (CONFIG_BACKLIGHT == BL_IRIVER_H100) && !defined(SIMULATOR) */ 293#endif /* defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR) */
207 294
208static void __backlight_on(void) 295static void _backlight_on(void)
209{ 296{
210#ifdef SIMULATOR 297#if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
211 sim_backlight(100);
212#elif CONFIG_BACKLIGHT == BL_IRIVER_H100
213 if (fade_in_count > 0) 298 if (fade_in_count > 0)
214 backlight_dim(BL_PWM_COUNT); 299 backlight_dim(BL_PWM_COUNT);
215 else 300 else
216 { 301 {
217 bl_dim_target = bl_dim_current = BL_PWM_COUNT; 302 bl_dim_target = bl_dim_current = BL_PWM_COUNT;
218 and_l(~0x00020000, &GPIO1_OUT); 303 __backlight_on();
219 } 304 }
220#elif CONFIG_BACKLIGHT == BL_IRIVER_H300 305#else
221 lcd_enable(true); 306 __backlight_on();
222 or_l(0x00020000, &GPIO1_OUT);
223#elif CONFIG_BACKLIGHT == BL_RTC
224 /* Enable square wave */
225 rtc_write(0x0a, rtc_read(0x0a) | 0x40);
226#elif CONFIG_BACKLIGHT == BL_PA14_LO /* Player */
227 and_b(~0x40, &PADRH); /* drive and set low */
228 or_b(0x40, &PAIORH);
229#elif CONFIG_BACKLIGHT == BL_PA14_HI /* Ondio */
230 or_b(0x40, &PADRH); /* drive it high */
231#elif CONFIG_BACKLIGHT == BL_GMINI
232 P1 |= 0x10;
233#elif CONFIG_BACKLIGHT == BL_IPOD4G
234 /* brightness full */
235 outl(0x80000000 | (0xff << 16), 0x7000a010);
236
237 /* set port b bit 3 on */
238 outl(((0x100 | 1) << 3), 0x6000d824);
239#elif CONFIG_BACKLIGHT==BL_IPODMINI
240 /* set port B03 on */
241 outl(((0x100 | 1) << 3), 0x6000d824);
242#elif CONFIG_BACKLIGHT==BL_IPODNANO
243 /* set port B03 on */
244 outl(((0x100 | 1) << 3), 0x6000d824);
245
246 /* set port L07 on */
247 outl(((0x100 | 1) << 7), 0x6000d12c);
248#elif CONFIG_BACKLIGHT==BL_IPOD3G
249 lcd_enable(true);
250#elif CONFIG_BACKLIGHT==BL_IRIVER_IFP7XX
251 GPIO3_SET = 1;
252#endif 307#endif
253} 308}
254 309
255static void __backlight_off(void) 310static void _backlight_off(void)
256{ 311{
257#ifdef SIMULATOR 312#if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
258 sim_backlight(0);
259#elif CONFIG_BACKLIGHT == BL_IRIVER_H100
260 if (fade_out_count > 0) 313 if (fade_out_count > 0)
261 backlight_dim(0); 314 backlight_dim(0);
262 else 315 else
263 { 316 {
264 bl_dim_target = bl_dim_current = 0; 317 bl_dim_target = bl_dim_current = 0;
265 or_l(0x00020000, &GPIO1_OUT); 318 __backlight_off();
266 } 319 }
267#elif CONFIG_BACKLIGHT == BL_IRIVER_H300 320#else
268 and_l(~0x00020000, &GPIO1_OUT); 321 __backlight_off();
269 lcd_enable(false);
270#elif CONFIG_BACKLIGHT == BL_RTC
271 /* Disable square wave */
272 rtc_write(0x0a, rtc_read(0x0a) & ~0x40);
273#elif CONFIG_BACKLIGHT == BL_PA14_LO /* Player */
274 and_b(~0x40, &PAIORH); /* let it float (up) */
275#elif CONFIG_BACKLIGHT == BL_PA14_HI /* Ondio */
276 and_b(~0x40, &PADRH); /* drive it low */
277#elif CONFIG_BACKLIGHT == BL_GMINI
278 P1 &= ~0x10;
279#elif CONFIG_BACKLIGHT == BL_IPOD4G
280 /* fades backlight off on 4g */
281 outl(inl(0x70000084) & ~0x2000000, 0x70000084);
282 outl(0x80000000, 0x7000a010);
283#elif CONFIG_BACKLIGHT==BL_IPODNANO
284 /* set port B03 off */
285 outl(((0x100 | 0) << 3), 0x6000d824);
286
287 /* set port L07 off */
288 outl(((0x100 | 0) << 7), 0x6000d12c);
289#elif CONFIG_BACKLIGHT==BL_IRIVER_IFP7XX
290 GPIO3_CLR = 1;
291#elif CONFIG_BACKLIGHT==BL_IPOD3G
292 lcd_enable(false);
293#elif CONFIG_BACKLIGHT==BL_IPODMINI
294 /* set port B03 off */
295 outl(((0x100 | 0) << 3), 0x6000d824);
296#endif 322#endif
297} 323}
298 324
@@ -374,19 +400,20 @@ void backlight_thread(void)
374 if (backlight_timer < 0) /* Backlight == OFF in the setting? */ 400 if (backlight_timer < 0) /* Backlight == OFF in the setting? */
375 { 401 {
376 backlight_timer = 0; /* Disable the timeout */ 402 backlight_timer = 0; /* Disable the timeout */
377 __backlight_off(); 403 _backlight_off();
378 } 404 }
379 else 405 else
380 { 406 {
381 __backlight_on(); 407 _backlight_on();
382 } 408 }
383 break; 409 break;
384 410
385 case BACKLIGHT_OFF: 411 case BACKLIGHT_OFF:
386 __backlight_off(); 412 _backlight_off();
387 break; 413 break;
388 414
389#if (CONFIG_BACKLIGHT == BL_IRIVER_H100) && !defined(SIMULATOR) 415#if defined(HAVE_BACKLIGHT_PWM_FADING) && defined(CPU_COLDFIRE) \
416 && !defined(SIMULATOR)
390 case BACKLIGHT_UNBOOST_CPU: 417 case BACKLIGHT_UNBOOST_CPU:
391 cpu_boost(false); 418 cpu_boost(false);
392 break; 419 break;
diff --git a/firmware/export/backlight.h b/firmware/export/backlight.h
index 05d395f4a6..e182803898 100644
--- a/firmware/export/backlight.h
+++ b/firmware/export/backlight.h
@@ -27,7 +27,7 @@ void backlight_set_timeout(int index);
27#ifdef CONFIG_BACKLIGHT 27#ifdef CONFIG_BACKLIGHT
28void backlight_init(void); 28void backlight_init(void);
29int backlight_get_current_timeout(void); 29int backlight_get_current_timeout(void);
30#if CONFIG_BACKLIGHT == BL_IRIVER_H100 30#ifdef HAVE_BACKLIGHT_PWM_FADING
31void backlight_set_fade_in(int index); 31void backlight_set_fade_in(int index);
32void backlight_set_fade_out(int index); 32void backlight_set_fade_out(int index);
33#endif 33#endif
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index bdbcce71a4..bc8968902d 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -40,6 +40,9 @@
40/* Define this for LCD backlight available */ 40/* Define this for LCD backlight available */
41#define CONFIG_BACKLIGHT BL_IRIVER_H100 /* port controlled */ 41#define CONFIG_BACKLIGHT BL_IRIVER_H100 /* port controlled */
42 42
43/* We can fade the backlight by using PWM */
44#define HAVE_BACKLIGHT_PWM_FADING
45
43/* Define this if you have a software controlled poweroff */ 46/* Define this if you have a software controlled poweroff */
44#define HAVE_SW_POWEROFF 47#define HAVE_SW_POWEROFF
45 48
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index aea6011e63..bbfa942ee7 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -36,6 +36,9 @@
36/* Define this for LCD backlight available */ 36/* Define this for LCD backlight available */
37#define CONFIG_BACKLIGHT BL_IRIVER_H100 /* port controlled */ 37#define CONFIG_BACKLIGHT BL_IRIVER_H100 /* port controlled */
38 38
39/* We can fade the backlight by using PWM */
40#define HAVE_BACKLIGHT_PWM_FADING
41
39/* Define this if you have a software controlled poweroff */ 42/* Define this if you have a software controlled poweroff */
40#define HAVE_SW_POWEROFF 43#define HAVE_SW_POWEROFF
41 44
diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h
index 6bcbffb3b2..142fb272f9 100644
--- a/firmware/export/config-ipodnano.h
+++ b/firmware/export/config-ipodnano.h
@@ -48,6 +48,9 @@
48/* Define this for LCD backlight available */ 48/* Define this for LCD backlight available */
49#define CONFIG_BACKLIGHT BL_IPODNANO /* port controlled */ 49#define CONFIG_BACKLIGHT BL_IPODNANO /* port controlled */
50 50
51/* We can fade the backlight by using PWM */
52#define HAVE_BACKLIGHT_PWM_FADING
53
51#ifndef SIMULATOR 54#ifndef SIMULATOR
52 55
53/* The Nano actually has a PP5021 - but it's register compatible with 56/* The Nano actually has a PP5021 - but it's register compatible with
diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h
index 6ea9fcebb8..9536cc8b8f 100644
--- a/firmware/export/config-ipodvideo.h
+++ b/firmware/export/config-ipodvideo.h
@@ -48,6 +48,9 @@
48/* Define this for LCD backlight available */ 48/* Define this for LCD backlight available */
49#define CONFIG_BACKLIGHT BL_IPODNANO /* port controlled */ 49#define CONFIG_BACKLIGHT BL_IPODNANO /* port controlled */
50 50
51/* We can fade the backlight by using PWM */
52#define HAVE_BACKLIGHT_PWM_FADING
53
51#ifndef SIMULATOR 54#ifndef SIMULATOR
52 55
53/* The Nano actually has a PP5021 - but it's register compatible with 56/* The Nano actually has a PP5021 - but it's register compatible with