YH92x: Implement ATA power off.

Change-Id: If1f48df42ea7a150365c4ddbd3f9f7a85ae4b7dc
This commit is contained in:
Szymon Dziok 2014-06-14 19:01:44 +00:00
parent 81db2f5eb0
commit 6363294591
3 changed files with 19 additions and 3 deletions

View file

@ -113,7 +113,7 @@
#define HAVE_LBA48 #define HAVE_LBA48
/* We're able to shut off power to the HDD */ /* We're able to shut off power to the HDD */
/* todo #define HAVE_ATA_POWER_OFF */ #define HAVE_ATA_POWER_OFF
/* Software controlled LED */ /* Software controlled LED */
#define CONFIG_LED LED_REAL #define CONFIG_LED LED_REAL

View file

@ -110,7 +110,7 @@
#define HAVE_LBA48 #define HAVE_LBA48
/* We're able to shut off power to the HDD */ /* We're able to shut off power to the HDD */
/* todo #define HAVE_ATA_POWER_OFF */ #define HAVE_ATA_POWER_OFF
/* Software controlled LED */ /* Software controlled LED */
#define CONFIG_LED LED_REAL #define CONFIG_LED LED_REAL

View file

@ -52,15 +52,31 @@ unsigned int power_input_status(void)
void ide_power_enable(bool on) void ide_power_enable(bool on)
{ {
#if defined(SAMSUNG_YH920) || defined(SAMSUNG_YH925)
if (on)
{
GPIO_CLEAR_BITWISE(GPIOF_OUTPUT_VAL, 0x10);
DEV_EN |= DEV_IDE0;
}
else
{
DEV_EN &= ~DEV_IDE0;
GPIO_SET_BITWISE(GPIOF_OUTPUT_VAL, 0x10);
}
#else
(void)on; (void)on;
/* We do nothing */ /* We do nothing */
#endif
} }
bool ide_powered(void) bool ide_powered(void)
{ {
#if defined(SAMSUNG_YH920) || defined(SAMSUNG_YH925)
return ((GPIOF_INPUT_VAL & 0x10) == 0);
#else
/* pretend we are always powered - we don't turn it off */ /* pretend we are always powered - we don't turn it off */
return true; return true;
#endif
} }
void power_off(void) void power_off(void)