From 3e743ec6c9685ef3b7d9729e2b21236bf66bed93 Mon Sep 17 00:00:00 2001 From: Mark Arigo Date: Tue, 13 May 2008 02:50:31 +0000 Subject: Preparing for the Philips SA9200 part 2. Since the SA9200 doesn't have a microsd card (no hotswap), use HAVE_ATA_SD for the Sansa flash driver so we don't rely on HAVE_HOTSWAP in some places. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17488 a1c6a512-1295-4272-9138-f99709370657 --- apps/debug_menu.c | 17 ++++++++++------- firmware/export/config-c200.h | 3 +++ firmware/export/config-e200.h | 3 +++ firmware/export/hotswap.h | 6 +++--- firmware/target/arm/ata-sd-pp.c | 8 +++++--- firmware/target/arm/ata-sd-target.h | 3 +++ firmware/target/arm/system-pp502x.c | 4 +++- firmware/usbstack/usb_storage.c | 2 +- 8 files changed, 31 insertions(+), 15 deletions(-) diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 2cc000de17..cbec60ee62 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -60,8 +60,8 @@ #include "fat.h" #include "mas.h" #include "eeprom_24cxx.h" -#if defined(HAVE_MMC) || defined(HAVE_HOTSWAP) -#include "ata_mmc.h" +#if defined(HAVE_MMC) || defined(HAVE_ATA_SD) +#include "hotswap.h" #endif #if CONFIG_TUNER #include "tuner.h" @@ -1716,7 +1716,7 @@ static bool view_battery(void) #endif #ifndef SIMULATOR -#if defined(HAVE_MMC) || defined(HAVE_HOTSWAP) +#if defined(HAVE_MMC) || defined(HAVE_ATA_SD) #if defined(HAVE_MMC) #define CARDTYPE "MMC" #else @@ -1737,10 +1737,12 @@ static int disk_callback(int btn, struct gui_synclist *lists) "3.1-3.31", "4.0" }; if ((btn == ACTION_STD_OK) || (btn == SYS_FS_CHANGED) || (btn == ACTION_REDRAW)) { +#ifdef HAVE_HOTSWAP if (btn == ACTION_STD_OK) { *cardnum ^= 0x1; /* change cards */ } +#endif simplelist_set_line_count(0); @@ -1814,7 +1816,7 @@ static int disk_callback(int btn, struct gui_synclist *lists) } return btn; } -#else /* !defined(HAVE_MMC) && !defined(HAVE_HOTSWAP) */ +#else /* !defined(HAVE_MMC) && !defined(HAVE_ATA_SD) */ static int disk_callback(int btn, struct gui_synclist *lists) { (void)lists; @@ -1948,12 +1950,13 @@ static bool dbg_identify_info(void) } return false; } -#endif /* !defined(HAVE_MMC) && !defined(HAVE_HOTSWAP) */ +#endif /* !defined(HAVE_MMC) && !defined(HAVE_ATA_SD) */ + static bool dbg_disk_info(void) { struct simplelist_info info; simplelist_info_init(&info, "Disk Info", 1, NULL); -#if defined(HAVE_MMC) || defined(HAVE_HOTSWAP) +#if defined(HAVE_MMC) || defined(HAVE_ATA_SD) char title[16]; int card = 0; info.callback_data = (void*)&card; @@ -2536,7 +2539,7 @@ static const struct the_menu_item menuitems[] = { #endif #ifndef SIMULATOR { "View disk info", dbg_disk_info }, -#if !defined(HAVE_MMC) && !defined(HAVE_HOTSWAP) +#if !defined(HAVE_MMC) && !defined(HAVE_ATA_SD) { "Dump ATA identify info", dbg_identify_info}, #endif #endif diff --git a/firmware/export/config-c200.h b/firmware/export/config-c200.h index a0bb1aeb2c..9f3e78f611 100644 --- a/firmware/export/config-c200.h +++ b/firmware/export/config-c200.h @@ -113,6 +113,9 @@ /* define this if you have a flash memory storage */ #define HAVE_FLASH_STORAGE +/* define this if the flash memory uses the SecureDigital Memory Card protocol */ +#define HAVE_ATA_SD + #define BATTERY_CAPACITY_DEFAULT 530 /* default battery capacity */ #define BATTERY_CAPACITY_MIN 530 /* min. capacity selectable */ #define BATTERY_CAPACITY_MAX 530 /* max. capacity selectable */ diff --git a/firmware/export/config-e200.h b/firmware/export/config-e200.h index c49ee23841..8d42dd2618 100644 --- a/firmware/export/config-e200.h +++ b/firmware/export/config-e200.h @@ -108,6 +108,9 @@ /* define this if you have a flash memory storage */ #define HAVE_FLASH_STORAGE +/* define this if the flash memory uses the SecureDigital Memory Card protocol */ +#define HAVE_ATA_SD + #define BATTERY_CAPACITY_DEFAULT 750 /* default battery capacity */ #define BATTERY_CAPACITY_MIN 750 /* min. capacity selectable */ #define BATTERY_CAPACITY_MAX 750 /* max. capacity selectable */ diff --git a/firmware/export/hotswap.h b/firmware/export/hotswap.h index 7f0aa80fda..f54423325d 100644 --- a/firmware/export/hotswap.h +++ b/firmware/export/hotswap.h @@ -39,13 +39,13 @@ typedef struct unsigned int block_exp; /* block size exponent */ } tCardInfo; -#ifdef TARGET_TREE -#ifdef HAVE_HOTSWAP +#ifdef HAVE_ATA_SD #include "ata-sd-target.h" -#endif #define card_detect card_detect_target #define card_get_info card_get_info_target +#ifdef HAVE_HOTSWAP #define card_enable_monitoring card_enable_monitoring_target +#endif #else /* HAVE_MMC */ #include "ata_mmc.h" #define card_detect mmc_detect diff --git a/firmware/target/arm/ata-sd-pp.c b/firmware/target/arm/ata-sd-pp.c index 8c7ebcddc7..e4ab922f24 100644 --- a/firmware/target/arm/ata-sd-pp.c +++ b/firmware/target/arm/ata-sd-pp.c @@ -18,9 +18,7 @@ ****************************************************************************/ #include "fat.h" #include "hotswap.h" -#ifdef BOOTLOADER #include "ata-sd-target.h" -#endif #include "ata_idle_notify.h" #include "system.h" #include @@ -1278,16 +1276,20 @@ tCardInfo *card_get_info_target(int card_no) return &card; } -#ifdef HAVE_HOTSWAP bool card_detect_target(void) { +#ifdef HAVE_HOTSWAP #ifdef SANSA_E200 return (GPIOA_INPUT_VAL & 0x80) == 0; /* low active */ #elif defined SANSA_C200 return (GPIOL_INPUT_VAL & 0x08) != 0; /* high active */ #endif +#else + return false; +#endif } +#ifdef HAVE_HOTSWAP static bool sd1_oneshot_callback(struct timeout *tmo) { (void)tmo; diff --git a/firmware/target/arm/ata-sd-target.h b/firmware/target/arm/ata-sd-target.h index dce2ca9030..33106156cc 100644 --- a/firmware/target/arm/ata-sd-target.h +++ b/firmware/target/arm/ata-sd-target.h @@ -40,6 +40,9 @@ typedef struct tCardInfo *card_get_info_target(int card_no); bool card_detect_target(void); + +#ifdef HAVE_HOTSWAP void card_enable_monitoring_target(bool on); +#endif #endif diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c index 9b335fe223..4e3f2c0cf0 100644 --- a/firmware/target/arm/system-pp502x.c +++ b/firmware/target/arm/system-pp502x.c @@ -54,17 +54,19 @@ void irq(void) else if (CPU_HI_INT_STAT & I2C_MASK) ipod_4g_button_int(); #elif defined(SANSA_E200) +#ifdef HAVE_HOTSWAP else if (CPU_HI_INT_STAT & GPIO0_MASK) { if (GPIOA_INT_STAT & 0x80) microsd_int(); } +#endif else if (CPU_HI_INT_STAT & GPIO1_MASK) { if (GPIOF_INT_STAT & 0xff) button_int(); if (GPIOH_INT_STAT & 0xc0) clickwheel_int(); } -#elif defined(SANSA_C200) +#elif defined(SANSA_C200) && defined(HAVE_HOTSWAP) else if (CPU_HI_INT_STAT & GPIO2_MASK) { if (GPIOL_INT_STAT & 0x08) microsd_int(); diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index c496e5142b..72306995aa 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c @@ -605,7 +605,7 @@ static void handle_scsi(struct command_block_wrapper* cbw) unsigned char lun = cbw->lun; #endif unsigned int block_size_mult = 1; -#ifdef HAVE_HOTSWAP +#if defined(HAVE_ATA_SD) || defined(HAVE_HOTSWAP) tCardInfo* cinfo = card_get_info(lun); if(cinfo->initialized==1 && cinfo->numblocks > 0) { block_size = cinfo->blocksize; -- cgit v1.2.3