summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sparmann <theseven@rockbox.org>2009-10-23 23:50:32 +0000
committerMichael Sparmann <theseven@rockbox.org>2009-10-23 23:50:32 +0000
commit49d4c428dc88c053575fcf17581323d3d49e8071 (patch)
tree9204d9ea187b9bf45324b0b21d0052c25e37845d
parent16a956c4f31462a7a45704ccb7652066c88e1e82 (diff)
downloadrockbox-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.c14
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c5
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
44void nand_led(bool onoff)
45{
46 led(onoff);
47}
48
49int nand_read_sectors(IF_MD2(int drive,) unsigned long start, int incount, 43int 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)
91void nand_get_info(IF_MD2(int drive,) struct storage_info *info) 85void 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
102uint32_t nand_unlock(uint32_t rc) 103uint32_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,
438uint32_t nand_block_erase(uint32_t bank, uint32_t page) 442uint32_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);