From: Yegor Yefremov Date: Thu, 1 Dec 2016 11:52:17 +0000 (+0100) Subject: arm: baltos: active mPCIe slot X-Git-Tag: v2017.01-rc1~5 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=dcf7f6f1cc05ed52eda02c8cf39afea785f639c6;p=u-boot arm: baltos: active mPCIe slot Baltos devices provide a mPCIe slot, whose power is turned off by default. This patch activates mPCIe slot in U-Boot, so that for example GSM modem can be already available in user space. Signed-off-by: Yegor Yefremov Reviewed-by: Tom Rini --- diff --git a/board/vscom/baltos/board.c b/board/vscom/baltos/board.c index dbf79a5b1d..d3b1f1564f 100644 --- a/board/vscom/baltos/board.c +++ b/board/vscom/baltos/board.c @@ -39,6 +39,7 @@ DECLARE_GLOBAL_DATA_PTR; /* GPIO that controls power to DDR on EVM-SK */ #define GPIO_DDR_VTT_EN 7 #define DIP_S1 44 +#define MPCIE_SW 100 static struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE; @@ -330,6 +331,11 @@ int ft_board_setup(void *blob, bd_t *bd) return 0; } +static struct module_pin_mux pcie_sw_pin_mux[] = { + {OFFSET(mii1_rxdv), (MODE(7) | PULLUDEN )}, /* GPIO3_4 */ + {-1}, +}; + static struct module_pin_mux dip_pin_mux[] = { {OFFSET(gpmc_ad12), (MODE(7) | RXACTIVE )}, /* GPIO1_12 */ {OFFSET(gpmc_ad13), (MODE(7) | RXACTIVE )}, /* GPIO1_13 */ @@ -355,6 +361,18 @@ int board_late_init(void) baltos_set_console(); } } + + /* turn power for the mPCIe slot */ + configure_module_pin_mux(pcie_sw_pin_mux); + if (gpio_request(MPCIE_SW, "mpcie_sw")) { + printf("failed to export GPIO %d\n", MPCIE_SW); + return -ENODEV; + } + if (gpio_direction_output(MPCIE_SW, 1)) { + printf("failed to set GPIO %d direction\n", MPCIE_SW); + return -ENODEV; + } + setenv("board_name", model); #endif