sunxi: ahci: Add a delay after enabling target power
authorHans de Goede <hdegoede@redhat.com>
Fri, 14 Nov 2014 15:27:07 +0000 (16:27 +0100)
committerHans de Goede <hdegoede@redhat.com>
Tue, 25 Nov 2014 12:38:46 +0000 (13:38 +0100)
If the target power is connected through a gpio, then give the target some
time to power up before continuing with ahci / sata probing, this avoids
link timeouts, without penalizing other boards where there is no target
power gpio.

Why 500 ms ? I started with 200, that was not enough, then I went to 500 which
worked, lowering it to 350 broke things again, so 500 seems the minimum my
vertex2 needs to be ready to get probed.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
board/sunxi/ahci.c

index 5e123285b03d2d8a8fb29b6c2712d11bf4fa1df5..b7f0dda2058eecf97547270a2feac54565b5d7b1 100644 (file)
@@ -76,6 +76,8 @@ void scsi_init(void)
 #ifdef CONFIG_SATAPWR
        gpio_request(CONFIG_SATAPWR, "satapwr");
        gpio_direction_output(CONFIG_SATAPWR, 1);
+       /* Give attached sata device time to power-up to avoid link timeouts */
+       mdelay(500);
 #endif
 
        if (sunxi_ahci_phy_init(SUNXI_SATA_BASE) < 0)