This commit adds a dependency on SATA for SATAPWR because
if we do not have SATA enabled, we will not have this pin
configured.

By default, these two configs (SATAPWR and MACPWR) are equals
to "". Because of that, they are always defined so we need to
check if the variables are not empty to perform the gpio request.
Otherwise, if SATA is enabled but SATAPWR is not configured, we will have
a mdelay of 500ms for nothing (because no pin requested).

Signed-off-by: Mylène Josserand <mylene.josser...@bootlin.com>
---
 arch/arm/mach-sunxi/Kconfig |  1 +
 board/sunxi/board.c         | 21 +++++++++++++--------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
index b868f0e350..7d36719700 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
@@ -911,6 +911,7 @@ endchoice
 config SATAPWR
        string "SATA power pin"
        default ""
+       depends on SATA
        help
          Set the pins used to power the SATA. This takes a string in the
          format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 322dd9e23a..5b080607c1 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -230,16 +230,21 @@ int board_init(void)
                return ret;
 
 #ifdef CONFIG_SATAPWR
-       satapwr_pin = sunxi_name_to_gpio(CONFIG_SATAPWR);
-       gpio_request(satapwr_pin, "satapwr");
-       gpio_direction_output(satapwr_pin, 1);
-       /* Give attached sata device time to power-up to avoid link timeouts */
-       mdelay(500);
+       if (strlen(CONFIG_SATAPWR)) {
+               satapwr_pin = sunxi_name_to_gpio(CONFIG_SATAPWR);
+               gpio_request(satapwr_pin, "satapwr");
+               gpio_direction_output(satapwr_pin, 1);
+               /* Give attached sata device time to power-up to avoid link 
timeouts */
+               mdelay(500);
+       }
 #endif
+
 #ifdef CONFIG_MACPWR
-       macpwr_pin = sunxi_name_to_gpio(CONFIG_MACPWR);
-       gpio_request(macpwr_pin, "macpwr");
-       gpio_direction_output(macpwr_pin, 1);
+       if (strlen(CONFIG_MACPWR)) {
+               macpwr_pin = sunxi_name_to_gpio(CONFIG_MACPWR);
+               gpio_request(macpwr_pin, "macpwr");
+               gpio_direction_output(macpwr_pin, 1);
+       }
 #endif
 
 #ifdef CONFIG_DM_I2C
-- 
2.11.0

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to