summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYegor Yefremov <yegorslists@googlemail.com>2016-12-01 12:52:17 +0100
committerTom Rini <trini@konsulko.com>2016-12-05 11:04:41 -0500
commitdcf7f6f1cc05ed52eda02c8cf39afea785f639c6 (patch)
tree8ff3928b99c6cb3ea931284b61d44322d08599e8
parenta970727067f10a0bbe5836695dc91c7cbccc6e5b (diff)
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 <yegorslists@googlemail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r--board/vscom/baltos/board.c18
1 files changed, 18 insertions, 0 deletions
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