summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8700
diff options
context:
space:
mode:
authorMichael Sparmann <theseven@rockbox.org>2009-10-09 20:36:09 +0000
committerMichael Sparmann <theseven@rockbox.org>2009-10-09 20:36:09 +0000
commitf0a96580ae84cdfbb09db568f296491c699b6a4b (patch)
tree73d71563c1ab314f322e0fe10fc80c3b7f698ab7 /firmware/target/arm/s5l8700
parent8e3e5e7a59f741c16eafc5ff0672af2eb1404835 (diff)
downloadrockbox-f0a96580ae84cdfbb09db568f296491c699b6a4b.tar.gz
rockbox-f0a96580ae84cdfbb09db568f296491c699b6a4b.zip
Core changes to allow storage drivers to do cleanup on shutdown, and iPod Nano 2G shutdown code rework (FS#10668)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23057 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/s5l8700')
-rw-r--r--firmware/target/arm/s5l8700/ata-nand-s5l8700.c14
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c13
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c2
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c7
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c1
5 files changed, 22 insertions, 15 deletions
diff --git a/firmware/target/arm/s5l8700/ata-nand-s5l8700.c b/firmware/target/arm/s5l8700/ata-nand-s5l8700.c
index b3b1314a50..883c167c78 100644
--- a/firmware/target/arm/s5l8700/ata-nand-s5l8700.c
+++ b/firmware/target/arm/s5l8700/ata-nand-s5l8700.c
@@ -36,9 +36,6 @@ long last_disk_activity = -1;
36/** static, private data **/ 36/** static, private data **/
37static bool initialized = false; 37static bool initialized = false;
38 38
39static long next_yield = 0;
40#define MIN_YIELD_PERIOD 2000
41
42/* API Functions */ 39/* API Functions */
43 40
44void nand_led(bool onoff) 41void nand_led(bool onoff)
@@ -67,6 +64,10 @@ void nand_sleep(void)
67{ 64{
68} 65}
69 66
67void nand_sleepnow(void)
68{
69}
70
70void nand_spin(void) 71void nand_spin(void)
71{ 72{
72} 73}
@@ -86,6 +87,13 @@ long nand_last_disk_activity(void)
86 return 0; 87 return 0;
87} 88}
88 89
90#ifdef HAVE_STORAGE_FLUSH
91int nand_flush(void)
92{
93 return ftl_sync();
94}
95#endif
96
89int nand_init(void) 97int nand_init(void)
90{ 98{
91 if (ftl_init()) return 1; 99 if (ftl_init()) return 1;
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c
index 76e35ead30..c430a327a2 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c
@@ -25,6 +25,7 @@
25#include "lcd.h" 25#include "lcd.h"
26#include "system.h" 26#include "system.h"
27#include "cpu.h" 27#include "cpu.h"
28#include "pmu-target.h"
28 29
29 30
30/* The Nano 2G has two different LCD types. What we call "type 0" 31/* The Nano 2G has two different LCD types. What we call "type 0"
@@ -124,10 +125,11 @@ void lcd_set_flip(bool yesno)
124 } 125 }
125} 126}
126 127
127 128void lcd_shutdown(void)
128
129void lcd_off(void)
130{ 129{
130 pmu_write(0x2b, 0); /* Kill the backlight, instantly. */
131 pmu_write(0x29, 0);
132
131 if (lcd_type == 0) 133 if (lcd_type == 0)
132 { 134 {
133 s5l_lcd_write_cmd_data(R_DISPLAY_CONTROL_1, 0x232); 135 s5l_lcd_write_cmd_data(R_DISPLAY_CONTROL_1, 0x232);
@@ -151,6 +153,11 @@ void lcd_off(void)
151 } 153 }
152} 154}
153 155
156
157void lcd_off(void)
158{
159}
160
154void lcd_on(void) 161void lcd_on(void)
155{ 162{
156} 163}
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c
index 4dd295c21a..ca2b5f2775 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c
@@ -103,4 +103,4 @@ void pmu_switch_power(int gate, int onoff)
103 if (onoff) newval |= 1 << (2 * (gate - 4)); 103 if (onoff) newval |= 1 << (2 * (gate - 4));
104 pmu_write(0x3C, newval); 104 pmu_write(0x3C, newval);
105 } 105 }
106} \ No newline at end of file 106}
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c
index 31f23ff9ff..cba1514aad 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c
@@ -32,13 +32,6 @@
32 32
33void power_off(void) 33void power_off(void)
34{ 34{
35 if (ftl_sync() != 0) panicf("Failed to unmount flash!");
36
37 pmu_write(0x2b, 0); /* Kill the backlight, instantly. */
38 pmu_write(0x29, 0);
39
40 lcd_off();
41
42 pmu_switch_power(0, 0); 35 pmu_switch_power(0, 0);
43 pmu_switch_power(2, 0); 36 pmu_switch_power(2, 0);
44 pmu_switch_power(3, 0); 37 pmu_switch_power(3, 0);
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c
index 01d64f1c54..bad9581d8f 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c
@@ -52,7 +52,6 @@ int rtc_read_datetime(struct tm *tm)
52int rtc_write_datetime(const struct tm *tm) 52int rtc_write_datetime(const struct tm *tm)
53{ 53{
54 unsigned int i; 54 unsigned int i;
55 int rc, oldlevel;
56 unsigned char buf[7]; 55 unsigned char buf[7];
57 56
58 buf[0] = tm->tm_sec; 57 buf[0] = tm->tm_sec;