summaryrefslogtreecommitdiff
path: root/firmware/drivers/ata.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/ata.c')
-rw-r--r--firmware/drivers/ata.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 5c1a19ea8e..3c79c1be8f 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -32,7 +32,7 @@
32 32
33#define SECTOR_SIZE (512) 33#define SECTOR_SIZE (512)
34 34
35#if CONFIG_CPU == MCF5249 35#if (CONFIG_CPU == MCF5249) || (CONFIG_CPU == MCF5250)
36 36
37/* don't use sh7034 assembler routines */ 37/* don't use sh7034 assembler routines */
38#define PREFER_C_READING 38#define PREFER_C_READING
@@ -1098,12 +1098,14 @@ int ata_hard_reset(void)
1098 /* state HRR1 */ 1098 /* state HRR1 */
1099 or_b(0x02, &PADRH); /* negate _RESET */ 1099 or_b(0x02, &PADRH); /* negate _RESET */
1100 sleep(1); /* > 2ms */ 1100 sleep(1); /* > 2ms */
1101#elif CONFIG_CPU == MCF5249 1101#elif defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
1102 and_l(~0x00080000, &GPIO_OUT); 1102 and_l(~0x00080000, &GPIO_OUT);
1103 sleep(1); /* > 25us */ 1103 sleep(1); /* > 25us */
1104 1104
1105 or_l(0x00080000, &GPIO_OUT); 1105 or_l(0x00080000, &GPIO_OUT);
1106 sleep(1); /* > 25us */ 1106 sleep(1); /* > 25us */
1107#elif defined(IAUDIO_X5)
1108 /* X5 TODO */
1107#elif CONFIG_CPU == TCC730 1109#elif CONFIG_CPU == TCC730
1108 1110
1109 P6 &= ~0x40; 1111 P6 &= ~0x40;
@@ -1239,7 +1241,7 @@ void ata_enable(bool on)
1239 or_b(0x80, &PADRL); /* disable ATA */ 1241 or_b(0x80, &PADRL); /* disable ATA */
1240 1242
1241 or_b(0x80, &PAIORL); 1243 or_b(0x80, &PAIORL);
1242#elif CONFIG_CPU == MCF5249 1244#elif defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
1243 if(on) 1245 if(on)
1244 and_l(~0x0040000, &GPIO_OUT); 1246 and_l(~0x0040000, &GPIO_OUT);
1245 else 1247 else
@@ -1247,6 +1249,9 @@ void ata_enable(bool on)
1247 1249
1248 or_l(0x00040000, &GPIO_ENABLE); 1250 or_l(0x00040000, &GPIO_ENABLE);
1249 or_l(0x00040000, &GPIO_FUNCTION); 1251 or_l(0x00040000, &GPIO_FUNCTION);
1252#elif defined(IAUDIO_X5)
1253 /* X5 TODO */
1254 (void)on;
1250#elif CONFIG_CPU == TCC730 1255#elif CONFIG_CPU == TCC730
1251 1256
1252#elif CONFIG_CPU == PP5020 1257#elif CONFIG_CPU == PP5020
@@ -1400,8 +1405,11 @@ int ata_init(void)
1400 int rc; 1405 int rc;
1401#if CONFIG_CPU == TCC730 1406#if CONFIG_CPU == TCC730
1402 bool coldstart = (P1 & 0x80) == 0; 1407 bool coldstart = (P1 & 0x80) == 0;
1403#elif CONFIG_CPU == MCF5249 1408#elif defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
1404 bool coldstart = (GPIO_FUNCTION & 0x00080000) == 0; 1409 bool coldstart = (GPIO_FUNCTION & 0x00080000) == 0;
1410#elif defined(IAUDIO_X5)
1411 /* X5 TODO */
1412 bool coldstart = true;
1405#elif CONFIG_CPU == PP5020 1413#elif CONFIG_CPU == PP5020
1406 bool coldstart = false; 1414 bool coldstart = false;
1407 /* TODO: Implement coldstart variable */ 1415 /* TODO: Implement coldstart variable */