diff options
| author | Marcoen Hirschberg <marcoen@gmail.com> | 2006-02-24 15:42:52 +0000 |
|---|---|---|
| committer | Marcoen Hirschberg <marcoen@gmail.com> | 2006-02-24 15:42:52 +0000 |
| commit | 338e2bbb0c6673452c64378ef9e609d5c19c7558 (patch) | |
| tree | 7314096e43a7eedfd7091c39fed97c0c33400827 /firmware/drivers | |
| parent | b902428180c11def61f2d3caa2612b9f80d7d41a (diff) | |
| download | rockbox-338e2bbb0c6673452c64378ef9e609d5c19c7558.zip rockbox-338e2bbb0c6673452c64378ef9e609d5c19c7558.tar.gz rockbox-338e2bbb0c6673452c64378ef9e609d5c19c7558.tar.bz2 rockbox-338e2bbb0c6673452c64378ef9e609d5c19c7558.tar.xz | |
first gigabeat commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8831 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
| -rw-r--r-- | firmware/drivers/ata.c | 40 | ||||
| -rw-r--r-- | firmware/drivers/power.c | 8 |
2 files changed, 48 insertions, 0 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c index e4600e1..8b3e54d 100644 --- a/firmware/drivers/ata.c +++ b/firmware/drivers/ata.c @@ -246,6 +246,43 @@ int ide_read_register(int reg) { return ide_reg_temp; } +#elif defined(TOSHIBA_GIGABEAT_F) + +/* don't use sh7034 assembler routines */ +#define PREFER_C_READING +#define PREFER_C_WRITING + +#define ATA_IOBASE 0x20000000 +#define ATA_DATA (*((volatile unsigned short*)(ATA_IOBASE))) +#define ATA_ERROR (*((volatile unsigned char*)(ATA_IOBASE + 0x02))) +#define ATA_NSECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x04))) +#define ATA_SECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x06))) +#define ATA_LCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x08))) +#define ATA_HCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x10))) +#define ATA_SELECT (*((volatile unsigned char*)(ATA_IOBASE + 0x12))) +#define ATA_COMMAND (*((volatile unsigned char*)(ATA_IOBASE + 0x14))) +#define ATA_CONTROL (*((volatile unsigned char*)(0x21000000 + 0x1c))) + +#define STATUS_BSY 0x80 +#define STATUS_RDY 0x40 +#define STATUS_DF 0x20 +#define STATUS_DRQ 0x08 +#define STATUS_ERR 0x01 +#define ERROR_ABRT 0x04 + +#define WRITE_PATTERN1 0xa5 +#define WRITE_PATTERN2 0x5a +#define WRITE_PATTERN3 0xaa +#define WRITE_PATTERN4 0x55 + +#define READ_PATTERN1 0xa5 +#define READ_PATTERN2 0x5a +#define READ_PATTERN3 0xaa +#define READ_PATTERN4 0x55 + +#define SET_REG(reg,val) reg = (val) +#define SET_16BITREG(reg,val) reg = (val) + #endif #define ATA_FEATURE ATA_ERROR @@ -1429,6 +1466,9 @@ int ata_init(void) #elif (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020) bool coldstart = false; /* TODO: Implement coldstart variable */ +#elif defined(TOSHIBA_GIGABEAT_F) + /* TODO */ + bool coldstart = true; #else bool coldstart = (PACR2 & 0x4000) != 0; #endif diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c index d7750a3..b621212 100644 --- a/firmware/drivers/power.c +++ b/firmware/drivers/power.c @@ -122,6 +122,8 @@ bool charger_inserted(void) /* FM or V2, can also charge from the USB port */ return (adc_read(ADC_CHARGE_REGULATOR) < 0x1FF) || (adc_read(ADC_USB_POWER) < 0x1FF); +#elif defined(TOSHIBA_GIGABEAT_F) + return false; #else /* Player */ return (PADR & 1) == 0; @@ -189,6 +191,8 @@ void ide_power_enable(bool on) P1 &= ~0x08; #elif CONFIG_CPU == PNX0101 /* no ide controller */ +#elif defined(TOSHIBA_GIGABEAT_F) + /* Gigabeat TODO */ #else /* SH1 based archos */ bool touched = false; #ifdef NEEDS_ATA_POWER_ON @@ -241,6 +245,8 @@ bool ide_powered(void) return true; #elif defined(GMINI_ARCH) return (P1 & 0x08?true:false); +#elif defined(TOSHIBA_GIGABEAT_F) + return false; #else /* SH1 based archos */ #if defined(NEEDS_ATA_POWER_ON) || defined(HAVE_ATA_POWER_OFF) #ifdef ATA_POWER_PLAYERSTYLE @@ -283,6 +289,8 @@ void power_off(void) #elif defined(GMINI_ARCH) P1 &= ~1; P1CON &= ~1; +#elif defined(TOSHIBA_GIGABEAT_F) + /* FIXME: Can we turn the device off, or only enter sleep mode? */ #else #ifdef HAVE_POWEROFF_ON_PBDR and_b(~0x10, &PBDRL); |