1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2007 Dave Chapman
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
20 #include "ata-target.h"
21 #include "ata_idle_notify.h"
30 /* for compatibility */
31 int ata_spinup_time
= 0;
33 long last_disk_activity
= -1;
35 /** static, private data **/
36 static bool initialized
= false;
38 static long next_yield
= 0;
39 #define MIN_YIELD_PERIOD 2000
43 void ata_led(bool onoff
)
48 int ata_read_sectors(IF_MV2(int drive
,) unsigned long start
, int incount
,
54 int ata_write_sectors(IF_MV2(int drive
,) unsigned long start
, int count
,
59 void ata_spindown(int seconds
)
64 bool ata_disk_is_active(void)
77 /* Hardware reset protocol as specified in chapter 9.1, ATA spec draft v5 */
78 int ata_hard_reset(void)
83 int ata_soft_reset(void)
88 void ata_enable(bool on
)