diff options
author | Michael Sparmann <theseven@rockbox.org> | 2009-10-23 23:50:32 +0000 |
---|---|---|
committer | Michael Sparmann <theseven@rockbox.org> | 2009-10-23 23:50:32 +0000 |
commit | 49d4c428dc88c053575fcf17581323d3d49e8071 (patch) | |
tree | 9204d9ea187b9bf45324b0b21d0052c25e37845d | |
parent | 16a956c4f31462a7a45704ccb7652066c88e1e82 (diff) | |
download | rockbox-49d4c428dc88c053575fcf17581323d3d49e8071.tar.gz rockbox-49d4c428dc88c053575fcf17581323d3d49e8071.zip |
Implement iPod Nano 2G storage active indicator
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23325 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/target/arm/s5l8700/ata-nand-s5l8700.c | 14 | ||||
-rw-r--r-- | firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c | 5 |
2 files changed, 9 insertions, 10 deletions
diff --git a/firmware/target/arm/s5l8700/ata-nand-s5l8700.c b/firmware/target/arm/s5l8700/ata-nand-s5l8700.c index 88611fed34..36a2341c08 100644 --- a/firmware/target/arm/s5l8700/ata-nand-s5l8700.c +++ b/firmware/target/arm/s5l8700/ata-nand-s5l8700.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include "system.h" | 23 | #include "system.h" |
24 | #include <string.h> | 24 | #include <string.h> |
25 | #include "thread.h" | 25 | #include "thread.h" |
26 | #include "led.h" | ||
27 | #include "disk.h" | 26 | #include "disk.h" |
28 | #include "storage.h" | 27 | #include "storage.h" |
29 | #include "panic.h" | 28 | #include "panic.h" |
@@ -41,11 +40,6 @@ static long nand_stack[20]; | |||
41 | 40 | ||
42 | /* API Functions */ | 41 | /* API Functions */ |
43 | 42 | ||
44 | void nand_led(bool onoff) | ||
45 | { | ||
46 | led(onoff); | ||
47 | } | ||
48 | |||
49 | int nand_read_sectors(IF_MD2(int drive,) unsigned long start, int incount, | 43 | int nand_read_sectors(IF_MD2(int drive,) unsigned long start, int incount, |
50 | void* inbuf) | 44 | void* inbuf) |
51 | { | 45 | { |
@@ -91,10 +85,10 @@ void nand_enable(bool on) | |||
91 | void nand_get_info(IF_MD2(int drive,) struct storage_info *info) | 85 | void nand_get_info(IF_MD2(int drive,) struct storage_info *info) |
92 | { | 86 | { |
93 | uint32_t ppb = ftl_banks * (*ftl_nand_type).pagesperblock; | 87 | uint32_t ppb = ftl_banks * (*ftl_nand_type).pagesperblock; |
94 | (*info).sector_size = SECTOR_SIZE; | 88 | (*info).sector_size = SECTOR_SIZE; |
95 | (*info).num_sectors = (*ftl_nand_type).userblocks * ppb; | 89 | (*info).num_sectors = (*ftl_nand_type).userblocks * ppb; |
96 | (*info).vendor = "Apple"; | 90 | (*info).vendor = "Apple"; |
97 | (*info).product = "iPod Nano 2G"; | 91 | (*info).product = "iPod Nano 2G"; |
98 | (*info).revision = "1.0"; | 92 | (*info).revision = "1.0"; |
99 | } | 93 | } |
100 | 94 | ||
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c index 97ee037c9c..74d147cb78 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <pmu-target.h> | 29 | #include <pmu-target.h> |
30 | #include <mmu-target.h> | 30 | #include <mmu-target.h> |
31 | #include <string.h> | 31 | #include <string.h> |
32 | #include "led.h" | ||
32 | 33 | ||
33 | 34 | ||
34 | #define NAND_CMD_READ 0x00 | 35 | #define NAND_CMD_READ 0x00 |
@@ -101,6 +102,7 @@ static uint8_t nand_ecc[0x30] __attribute__((aligned(16))); | |||
101 | 102 | ||
102 | uint32_t nand_unlock(uint32_t rc) | 103 | uint32_t nand_unlock(uint32_t rc) |
103 | { | 104 | { |
105 | led(false); | ||
104 | mutex_unlock(&nand_mtx); | 106 | mutex_unlock(&nand_mtx); |
105 | return rc; | 107 | return rc; |
106 | } | 108 | } |
@@ -349,6 +351,7 @@ uint32_t nand_read_page(uint32_t bank, uint32_t page, void* databuffer, | |||
349 | if (sparebuffer && !((uint32_t)sparebuffer & 0xf)) | 351 | if (sparebuffer && !((uint32_t)sparebuffer & 0xf)) |
350 | spare = (uint8_t*)sparebuffer; | 352 | spare = (uint8_t*)sparebuffer; |
351 | mutex_lock(&nand_mtx); | 353 | mutex_lock(&nand_mtx); |
354 | led(true); | ||
352 | if (!nand_powered) nand_power_up(); | 355 | if (!nand_powered) nand_power_up(); |
353 | uint32_t rc, eccresult; | 356 | uint32_t rc, eccresult; |
354 | nand_set_fmctrl0(bank, FMCTRL0_ENABLEDMA); | 357 | nand_set_fmctrl0(bank, FMCTRL0_ENABLEDMA); |
@@ -405,6 +408,7 @@ uint32_t nand_write_page(uint32_t bank, uint32_t page, void* databuffer, | |||
405 | if (sparebuffer && !((uint32_t)sparebuffer & 0xf)) | 408 | if (sparebuffer && !((uint32_t)sparebuffer & 0xf)) |
406 | spare = (uint8_t*)sparebuffer; | 409 | spare = (uint8_t*)sparebuffer; |
407 | mutex_lock(&nand_mtx); | 410 | mutex_lock(&nand_mtx); |
411 | led(true); | ||
408 | if (!nand_powered) nand_power_up(); | 412 | if (!nand_powered) nand_power_up(); |
409 | if (sparebuffer) | 413 | if (sparebuffer) |
410 | { | 414 | { |
@@ -438,6 +442,7 @@ uint32_t nand_write_page(uint32_t bank, uint32_t page, void* databuffer, | |||
438 | uint32_t nand_block_erase(uint32_t bank, uint32_t page) | 442 | uint32_t nand_block_erase(uint32_t bank, uint32_t page) |
439 | { | 443 | { |
440 | mutex_lock(&nand_mtx); | 444 | mutex_lock(&nand_mtx); |
445 | led(true); | ||
441 | if (!nand_powered) nand_power_up(); | 446 | if (!nand_powered) nand_power_up(); |
442 | nand_set_fmctrl0(bank, 0); | 447 | nand_set_fmctrl0(bank, 0); |
443 | if (nand_send_cmd(NAND_CMD_BLOCKERASE)) return nand_unlock(1); | 448 | if (nand_send_cmd(NAND_CMD_BLOCKERASE)) return nand_unlock(1); |