[U-Boot] [PATCH v3 21/31] ARM: i.MX6: sabresd: Add imx6_pcie_toggle_power

Jagan Teki
2017-04-05T19:20:31Z

Add imx6_pcie_toggle_power on board file using dm_gpio_*
calls for OF_CONTROL configs.

Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
board/freescale/mx6sabresd/mx6sabresd.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index 1631dbc..f4e14be 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -533,6 +533,36 @@ int overwrite_console(void)
return 1;
}

+#ifdef CONFIG_OF_CONTROL
+int imx6_pcie_toggle_power(void)
+{
+#ifdef CONFIG_PCIE_IMX_POWER_GPIO
+ struct gpio_desc toggle;
+ int ret;
+
+ ret = dm_gpio_lookup_name("GPIO3_19", &toggle);
+ if (ret) {
+ printf("Cannot get GPIO3_19\n");
+ return ret;
+ }
+
+ ret = dm_gpio_request(&toggle, "toggle");
+ if (ret) {
+ printf("Cannot request GPIO3_19\n");
+ return ret;
+ }
+
+ dm_gpio_set_dir_flags(&toggle, GPIOD_IS_OUT);
+
+ dm_gpio_set_value(&toggle, 0);
+ mdelay(20);
+ dm_gpio_set_value(&toggle, 1);
+ mdelay(20);
+#endif
+ return 0;
+}
+#endif
+
#ifndef CONFIG_OF_CONTROL
int board_eth_init(bd_t *bis)
{
--
1.9.1