summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/ata-sd-pp.c8
-rw-r--r--firmware/target/arm/ata-sd-target.h3
-rw-r--r--firmware/target/arm/system-pp502x.c4
3 files changed, 11 insertions, 4 deletions
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 @@
18 ****************************************************************************/ 18 ****************************************************************************/
19#include "fat.h" 19#include "fat.h"
20#include "hotswap.h" 20#include "hotswap.h"
21#ifdef BOOTLOADER
22#include "ata-sd-target.h" 21#include "ata-sd-target.h"
23#endif
24#include "ata_idle_notify.h" 22#include "ata_idle_notify.h"
25#include "system.h" 23#include "system.h"
26#include <string.h> 24#include <string.h>
@@ -1278,16 +1276,20 @@ tCardInfo *card_get_info_target(int card_no)
1278 return &card; 1276 return &card;
1279} 1277}
1280 1278
1281#ifdef HAVE_HOTSWAP
1282bool card_detect_target(void) 1279bool card_detect_target(void)
1283{ 1280{
1281#ifdef HAVE_HOTSWAP
1284#ifdef SANSA_E200 1282#ifdef SANSA_E200
1285 return (GPIOA_INPUT_VAL & 0x80) == 0; /* low active */ 1283 return (GPIOA_INPUT_VAL & 0x80) == 0; /* low active */
1286#elif defined SANSA_C200 1284#elif defined SANSA_C200
1287 return (GPIOL_INPUT_VAL & 0x08) != 0; /* high active */ 1285 return (GPIOL_INPUT_VAL & 0x08) != 0; /* high active */
1288#endif 1286#endif
1287#else
1288 return false;
1289#endif
1289} 1290}
1290 1291
1292#ifdef HAVE_HOTSWAP
1291static bool sd1_oneshot_callback(struct timeout *tmo) 1293static bool sd1_oneshot_callback(struct timeout *tmo)
1292{ 1294{
1293 (void)tmo; 1295 (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
40 40
41tCardInfo *card_get_info_target(int card_no); 41tCardInfo *card_get_info_target(int card_no);
42bool card_detect_target(void); 42bool card_detect_target(void);
43
44#ifdef HAVE_HOTSWAP
43void card_enable_monitoring_target(bool on); 45void card_enable_monitoring_target(bool on);
46#endif
44 47
45#endif 48#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)
54 else if (CPU_HI_INT_STAT & I2C_MASK) 54 else if (CPU_HI_INT_STAT & I2C_MASK)
55 ipod_4g_button_int(); 55 ipod_4g_button_int();
56#elif defined(SANSA_E200) 56#elif defined(SANSA_E200)
57#ifdef HAVE_HOTSWAP
57 else if (CPU_HI_INT_STAT & GPIO0_MASK) { 58 else if (CPU_HI_INT_STAT & GPIO0_MASK) {
58 if (GPIOA_INT_STAT & 0x80) 59 if (GPIOA_INT_STAT & 0x80)
59 microsd_int(); 60 microsd_int();
60 } 61 }
62#endif
61 else if (CPU_HI_INT_STAT & GPIO1_MASK) { 63 else if (CPU_HI_INT_STAT & GPIO1_MASK) {
62 if (GPIOF_INT_STAT & 0xff) 64 if (GPIOF_INT_STAT & 0xff)
63 button_int(); 65 button_int();
64 if (GPIOH_INT_STAT & 0xc0) 66 if (GPIOH_INT_STAT & 0xc0)
65 clickwheel_int(); 67 clickwheel_int();
66 } 68 }
67#elif defined(SANSA_C200) 69#elif defined(SANSA_C200) && defined(HAVE_HOTSWAP)
68 else if (CPU_HI_INT_STAT & GPIO2_MASK) { 70 else if (CPU_HI_INT_STAT & GPIO2_MASK) {
69 if (GPIOL_INT_STAT & 0x08) 71 if (GPIOL_INT_STAT & 0x08)
70 microsd_int(); 72 microsd_int();