| Index: apps/installer-nano2g/Makefile | 
| — | — | @@ -153,6 +153,8 @@ | 
| 154 | 154 | flashfiles: $(FLASHFILES) | 
| 155 | 155 | @touch flashfiles.built | 
| 156 | 156 |  | 
|  | 157 | +$(UNINSTDIR)/build/uninstaller-nano2g.embiosapp.ucl: uninstaller-nano2g | 
|  | 158 | + | 
| 157 | 159 | flashfiles/uninstaller-nano2g.embiosapp.ucl: $(UNINSTDIR)/build/uninstaller-nano2g.embiosapp.ucl uninstaller-nano2g | 
| 158 | 160 | @echo [CP]     $@ | 
| 159 | 161 | @cp $< $@ | 
| — | — | @@ -165,10 +167,14 @@ | 
| 166 | 168 | @echo [UCL]    $< | 
| 167 | 169 | @$(UCLPACK) $< $@ | 
| 168 | 170 |  | 
|  | 171 | +$(ILOADERDIR)/build/iloader.embiosapp.ucl: iloader | 
|  | 172 | + | 
| 169 | 173 | flashfiles/iloader.embiosapp.ucl: $(ILOADERDIR)/build/iloader.embiosapp.ucl iloader | 
| 170 | 174 | @echo [CP]     $@ | 
| 171 | 175 | @cp $< $@ | 
| 172 | 176 |  | 
|  | 177 | +$(EMBIOSDIR)/loader/ipodnano2g/build/embiosldr-ipodnano2g.dfu: embiosldr-ipodnano2g | 
|  | 178 | + | 
| 173 | 179 | flashfiles/embiosldr-ipodnano2g.dfu: $(EMBIOSDIR)/loader/ipodnano2g/build/embiosldr-ipodnano2g.dfu embiosldr-ipodnano2g | 
| 174 | 180 | @echo [CP]     $@ | 
| 175 | 181 | @cp $< $@ | 
| — | — | @@ -177,7 +183,9 @@ | 
| 178 | 184 | @echo [UCL]    $< | 
| 179 | 185 | @$(UCLPACK) $< $@ | 
| 180 | 186 |  | 
| 181 |  | - flashfiles/embios-ipodnano2g.bin: $(EMBIOSDIR)/build/ipodnano2g/embios.bin embios
 | 
|  | 187 | +$(EMBIOSDIR)/build/ipodnano2g/embios.bin: embios | 
|  | 188 | + | 
|  | 189 | +flashfiles/embios-ipodnano2g.bin: $(EMBIOSDIR)/build/ipodnano2g/embios.bin embios | 
| 182 | 190 | @echo [EMBCFG] $@ | 
| 183 | 191 | @$(EMBIOSBOOTCFG) $< $@ --file=/iLoader/boot.embiosapp --file-compressed --file-run-from=0x08000000 \ | 
| 184 | 192 | --flash=iloader --flash-compressed --flash-run-from=0x09e00000 | 
| Index: embios/trunk/target/ipodnano2g/lcd.S | 
| — | — | @@ -34,6 +34,69 @@ | 
| 35 | 35 | mov	pc, lr | 
| 36 | 36 | .size lcd_init, .-lcd_init | 
| 37 | 37 |  | 
|  | 38 | +.section .icode.lcd_shutdown, "ax", %progbits | 
|  | 39 | +.align 2 | 
|  | 40 | +.global lcd_shutdown | 
|  | 41 | +.type lcd_shutdown, %function | 
|  | 42 | +lcd_shutdown: | 
|  | 43 | +	stmfd	sp!, {r4, lr} | 
|  | 44 | +	bl	displaylcd_detectlcd | 
|  | 45 | +	sub	r12, r12, #0x04900000 | 
|  | 46 | +	cmp	r0, #2 | 
|  | 47 | +	beq	lcd_shutdown_type2 | 
|  | 48 | +	mov	r0, #0x28 | 
|  | 49 | +	bl	displaylcd_sendlcdc | 
|  | 50 | +	mov	r0, #0x10 | 
|  | 51 | +	bl	displaylcd_sendlcdc | 
|  | 52 | +	b	lcd_shutdown_done | 
|  | 53 | +lcd_shutdown_type2: | 
|  | 54 | +	mov	r0, #0x07 | 
|  | 55 | +	bl	displaylcd_sendlcd2c | 
|  | 56 | +	mov	r0, #0x200 | 
|  | 57 | +	orr	r0, r0, #0x32 | 
|  | 58 | +	bl	displaylcd_sendlcd2d | 
|  | 59 | +	mov	r0, #0x13 | 
|  | 60 | +	bl	displaylcd_sendlcd2c | 
|  | 61 | +	mov	r0, #0x1100 | 
|  | 62 | +	orr	r0, #0x37 | 
|  | 63 | +	bl	displaylcd_sendlcd2d | 
|  | 64 | +	mov	r0, #0x07 | 
|  | 65 | +	bl	displaylcd_sendlcd2c | 
|  | 66 | +	mov	r0, #0x200 | 
|  | 67 | +	orr	r0, r0, #0x01 | 
|  | 68 | +	bl	displaylcd_sendlcd2d | 
|  | 69 | +	mov	r0, #0x13 | 
|  | 70 | +	bl	displaylcd_sendlcd2c | 
|  | 71 | +	mov	r0, #0x100 | 
|  | 72 | +	orr	r0, #0x37 | 
|  | 73 | +	bl	displaylcd_sendlcd2d | 
|  | 74 | +	mov	r0, #0x07 | 
|  | 75 | +	bl	displaylcd_sendlcd2c | 
|  | 76 | +	mov	r0, #0x200 | 
|  | 77 | +	bl	displaylcd_sendlcd2d | 
|  | 78 | +	mov	r0, #0x10 | 
|  | 79 | +	bl	displaylcd_sendlcd2c | 
|  | 80 | +	mov	r0, #0x680 | 
|  | 81 | +	bl	displaylcd_sendlcd2d | 
|  | 82 | +	mov	r0, #0x12 | 
|  | 83 | +	bl	displaylcd_sendlcd2c | 
|  | 84 | +	mov	r0, #0x160 | 
|  | 85 | +	bl	displaylcd_sendlcd2d | 
|  | 86 | +	mov	r0, #0x13 | 
|  | 87 | +	bl	displaylcd_sendlcd2c | 
|  | 88 | +	mov	r0, #0x100 | 
|  | 89 | +	orr	r0, r0, #0x27 | 
|  | 90 | +	bl	displaylcd_sendlcd2d | 
|  | 91 | +	mov	r0, #0x10 | 
|  | 92 | +	bl	displaylcd_sendlcd2c | 
|  | 93 | +	mov	r0, #0x600 | 
|  | 94 | +	bl	displaylcd_sendlcd2d | 
|  | 95 | +lcd_shutdown_done: | 
|  | 96 | +	ldmfd	sp!, {r4, lr} | 
|  | 97 | +	mov	r0, #5120 | 
|  | 98 | +	b	sleep | 
|  | 99 | +.size lcd_shutdown, .-lcd_shutdown | 
|  | 100 | + | 
| 38 | 101 | .section .text.lcd_get_width, "ax", %progbits | 
| 39 | 102 | .align 2 | 
| 40 | 103 | .global lcd_get_width | 
| Index: embios/trunk/target/ipodnano2g/backlight.c | 
| — | — | @@ -1,42 +1,42 @@ | 
| 2 |  | -// | 
| 3 |  | -// | 
| 4 |  | -//    Copyright 2010 TheSeven | 
| 5 |  | -// | 
| 6 |  | -// | 
| 7 |  | -//    This file is part of emBIOS. | 
| 8 |  | -// | 
| 9 |  | -//    emBIOS is free software: you can redistribute it and/or | 
| 10 |  | -//    modify it under the terms of the GNU General Public License as | 
| 11 |  | -//    published by the Free Software Foundation, either version 2 of the | 
| 12 |  | -//    License, or (at your option) any later version. | 
| 13 |  | -// | 
| 14 |  | -//    emBIOS is distributed in the hope that it will be useful, | 
| 15 |  | -//    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 16 |  | -//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
| 17 |  | -//    See the GNU General Public License for more details. | 
| 18 |  | -// | 
| 19 |  | -//    You should have received a copy of the GNU General Public License along | 
| 20 |  | -//    with emBIOS.  If not, see <http://www.gnu.org/licenses/>. | 
| 21 |  | -// | 
| 22 |  | -// | 
| 23 |  | - | 
| 24 |  | - | 
| 25 |  | -#include "global.h" | 
| 26 |  | -#include "i2c.h" | 
| 27 |  | -#include "backlight.h" | 
| 28 |  | - | 
| 29 |  | - | 
| 30 |  | -void backlight_on(bool on) | 
| 31 |  | -{ | 
|  | 2 | +// | 
|  | 3 | +// | 
|  | 4 | +//    Copyright 2010 TheSeven | 
|  | 5 | +// | 
|  | 6 | +// | 
|  | 7 | +//    This file is part of emBIOS. | 
|  | 8 | +// | 
|  | 9 | +//    emBIOS is free software: you can redistribute it and/or | 
|  | 10 | +//    modify it under the terms of the GNU General Public License as | 
|  | 11 | +//    published by the Free Software Foundation, either version 2 of the | 
|  | 12 | +//    License, or (at your option) any later version. | 
|  | 13 | +// | 
|  | 14 | +//    emBIOS is distributed in the hope that it will be useful, | 
|  | 15 | +//    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | 16 | +//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
|  | 17 | +//    See the GNU General Public License for more details. | 
|  | 18 | +// | 
|  | 19 | +//    You should have received a copy of the GNU General Public License along | 
|  | 20 | +//    with emBIOS.  If not, see <http://www.gnu.org/licenses/>. | 
|  | 21 | +// | 
|  | 22 | +// | 
|  | 23 | + | 
|  | 24 | + | 
|  | 25 | +#include "global.h" | 
|  | 26 | +#include "i2c.h" | 
|  | 27 | +#include "backlight.h" | 
|  | 28 | + | 
|  | 29 | + | 
|  | 30 | +void backlight_on(bool on) | 
|  | 31 | +{ | 
| 32 | 32 | i2c_sendbyte(0, 0xe6, 0x29, on ? 1 : 0); | 
| 33 |  | -} | 
| 34 |  | - | 
| 35 |  | -void backlight_set_fade(uint8_t fade) | 
| 36 |  | -{ | 
|  | 33 | +} | 
|  | 34 | + | 
|  | 35 | +void backlight_set_fade(uint8_t fade) | 
|  | 36 | +{ | 
| 37 | 37 | i2c_sendbyte(0, 0xe6, 0x2b, fade); | 
| 38 |  | -} | 
| 39 |  | - | 
| 40 |  | -void backlight_set_brightness(uint8_t brightness) | 
| 41 |  | -{ | 
|  | 38 | +} | 
|  | 39 | + | 
|  | 40 | +void backlight_set_brightness(uint8_t brightness) | 
|  | 41 | +{ | 
| 42 | 42 | i2c_sendbyte(0, 0xe6, 0x28, (46 * (brightness & 0xff)) >> 8); | 
| 43 |  | -} | 
|  | 43 | +} | 
| Index: embios/trunk/target/ipodnano2g/target.h | 
| — | — | @@ -41,6 +41,7 @@ | 
| 42 | 42 | #define USB_NUM_ENDPOINTS 5 | 
| 43 | 43 |  | 
| 44 | 44 | #define HAVE_LCD | 
|  | 45 | +#define HAVE_LCD_SHUTDOWN | 
| 45 | 46 | #define LCD_WIDTH 176 | 
| 46 | 47 | #define LCD_HEIGHT 132 | 
| 47 | 48 | #define LCD_FORMAT rgb565 | 
| Index: embios/trunk/lcd.h | 
| — | — | @@ -32,6 +32,7 @@ | 
| 33 | 33 |  | 
| 34 | 34 |  | 
| 35 | 35 | void lcd_init() INITCODE_ATTR; | 
|  | 36 | +void lcd_shutdown(); | 
| 36 | 37 | int lcd_get_width() ICODE_ATTR; | 
| 37 | 38 | int lcd_get_height() ICODE_ATTR; | 
| 38 | 39 | int lcd_get_bytes_per_pixel() ICODE_ATTR; | 
| Index: embios/trunk/shutdown.c | 
| — | — | @@ -31,4 +31,14 @@ | 
| 32 | 32 | #ifdef HAVE_STORAGE_FLUSH | 
| 33 | 33 | storage_flush(); | 
| 34 | 34 | #endif | 
|  | 35 | +    if (shutdownhw) | 
|  | 36 | +    { | 
|  | 37 | +#ifdef HAVE_BACKLIGHT | 
|  | 38 | +        backlight_set_fade(0); | 
|  | 39 | +        backlight_on(false); | 
|  | 40 | +#endif | 
|  | 41 | +#ifdef HAVE_LCD_SHUTDOWN | 
|  | 42 | +        lcd_shutdown(); | 
|  | 43 | +#endif | 
|  | 44 | +    } | 
| 35 | 45 | } |