[U-Boot] [PATCH 1/2] sunxi: Turn satapwr on from board_init

There are 2 reasons for doing this:
1) The main reason for doing this is to move it outside of board/sunxi/ahci.c, so that it can be used on boards which use a usb<->sata chip too; 2) While doing this I realized that doing it from board_init also meant doing it much earlier. Some printf get_timer(0) calls show that the time between board_init() and scsi_init() is more then 600 ms, so we can drop the mdelay(500)
While at it also drop the printf("SUNXI SCSI INIT\n") AHCI init is noisy enough by itself.
Signed-off-by: Hans de Goede hdegoede@redhat.com --- board/sunxi/ahci.c | 8 -------- board/sunxi/board.c | 4 ++++ 2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/board/sunxi/ahci.c b/board/sunxi/ahci.c index 6d51b9b..522e54a 100644 --- a/board/sunxi/ahci.c +++ b/board/sunxi/ahci.c @@ -72,14 +72,6 @@ static int sunxi_ahci_phy_init(u32 base)
void scsi_init(void) { - printf("SUNXI SCSI INIT\n"); -#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) return;
diff --git a/board/sunxi/board.c b/board/sunxi/board.c index e16718f..2e2a1f5 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -90,6 +90,10 @@ int board_init(void) if (ret) return ret;
+#ifdef CONFIG_SATAPWR + gpio_request(CONFIG_SATAPWR, "satapwr"); + gpio_direction_output(CONFIG_SATAPWR, 1); +#endif #ifdef CONFIG_MACPWR gpio_request(CONFIG_MACPWR, "macpwr"); gpio_direction_output(CONFIG_MACPWR, 1);

This enables the use of the sata connector in u-boot.
Signed-off-by: Hans de Goede hdegoede@redhat.com --- configs/orangepi_plus_defconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/configs/orangepi_plus_defconfig b/configs/orangepi_plus_defconfig index 08f291c..ff124bd 100644 --- a/configs/orangepi_plus_defconfig +++ b/configs/orangepi_plus_defconfig @@ -17,3 +17,4 @@ CONFIG_CMD_GPIO=y CONFIG_SY8106A_POWER=y CONFIG_USB_EHCI_HCD=y CONFIG_USB1_VBUS_PIN="PG13" +CONFIG_SYS_EXTRA_OPTIONS="SATAPWR=SUNXI_GPG(11)"

On Tue, 2016-03-22 at 21:49 +0100, Hans de Goede wrote:
There are 2 reasons for doing this:
- The main reason for doing this is to move it outside of
board/sunxi/ahci.c, so that it can be used on boards which use a usb<->sata chip too; 2) While doing this I realized that doing it from board_init also meant doing it much earlier. Some printf get_timer(0) calls show that the time between board_init() and scsi_init() is more then 600 ms, so we can drop the mdelay(500)
While at it also drop the printf("SUNXI SCSI INIT\n") AHCI init is noisy enough by itself.
Signed-off-by: Hans de Goede hdegoede@redhat.com
Both: Acked-by: Ian Campbell ijc@hellion.org.uk
participants (2)
-
Hans de Goede
-
Ian Campbell