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.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 507a0c6353..3c58d1f27c 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -607,11 +607,11 @@ int ata_hard_reset(void)
607 int ret; 607 int ret;
608 608
609 /* state HRR0 */ 609 /* state HRR0 */
610 __clear_bit_constant(9-8, &PADRH); /* assert _RESET */ 610 and_b(~0x02, &PADRH); /* assert _RESET */
611 sleep(1); /* > 25us */ 611 sleep(1); /* > 25us */
612 612
613 /* state HRR1 */ 613 /* state HRR1 */
614 __set_bit_constant(9-8, &PADRH); /* negate _RESET */ 614 or_b(0x02, &PADRH); /* negate _RESET */
615 sleep(1); /* > 2ms */ 615 sleep(1); /* > 2ms */
616 616
617 /* state HRR2 */ 617 /* state HRR2 */
@@ -718,11 +718,11 @@ static int io_address_detect(void)
718void ata_enable(bool on) 718void ata_enable(bool on)
719{ 719{
720 if(on) 720 if(on)
721 __clear_bit_constant(7, &PADRL); /* enable ATA */ 721 and_b(~0x80, &PADRL); /* enable ATA */
722 else 722 else
723 __set_bit_constant(7, &PADRL); /* disable ATA */ 723 or_b(0x80, &PADRL); /* disable ATA */
724 724
725 __set_bit_constant(7, &PAIORL); 725 or_b(0x80, &PAIORL);
726} 726}
727 727
728static int identify(void) 728static int identify(void)
@@ -787,8 +787,8 @@ int ata_init(void)
787 led(false); 787 led(false);
788 788
789 /* Port A setup */ 789 /* Port A setup */
790 __set_bit_constant(9-8, &PAIORH); /* output for ATA reset */ 790 or_b(0x02, &PAIORH); /* output for ATA reset */
791 __set_bit_constant(9-8, &PADRH); /* release ATA reset */ 791 or_b(0x02, &PADRH); /* release ATA reset */
792 PACR2 &= 0xBFFF; /* GPIO function for PA7 (IDE enable) */ 792 PACR2 &= 0xBFFF; /* GPIO function for PA7 (IDE enable) */
793 793
794 sleeping = false; 794 sleeping = false;