diff mbox

[U-Boot,10/11] imx: ventana: add iomux for PCISKT_WDIS# gpio

Message ID 1407476151-5603-11-git-send-email-tharvey@gateworks.com
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show

Commit Message

Tim Harvey Aug. 8, 2014, 5:35 a.m. UTC
The PCISKT_WDIS# gpio allows for asserting WDIS# going to the various PCIe
sockets on the Ventana board.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
 board/gateworks/gw_ventana/gw_ventana.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Stefano Babic Aug. 20, 2014, 11:03 a.m. UTC | #1
Hi Tim,

On 08/08/2014 07:35, Tim Harvey wrote:
> The PCISKT_WDIS# gpio allows for asserting WDIS# going to the various PCIe
> sockets on the Ventana board.
> 
> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
> ---
>  board/gateworks/gw_ventana/gw_ventana.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c
> index d57ede4..1c24e4b 100644
> --- a/board/gateworks/gw_ventana/gw_ventana.c
> +++ b/board/gateworks/gw_ventana/gw_ventana.c
> @@ -581,6 +581,8 @@ static iomux_v3_cfg_t const gw51xx_gpio_pads[] = {
>  	IOMUX_PADS(PAD_CSI0_DATA_EN__GPIO5_IO20 | DIO_PAD_CFG),
>  	/* PCI_RST# */
>  	IOMUX_PADS(PAD_GPIO_0__GPIO1_IO00 | DIO_PAD_CFG),
> +	/* PCIESKT_WDIS# */
> +	IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG),
>  };
>  
>  static iomux_v3_cfg_t const gw52xx_gpio_pads[] = {
> @@ -603,6 +605,8 @@ static iomux_v3_cfg_t const gw52xx_gpio_pads[] = {
>  	IOMUX_PADS(PAD_EIM_D31__GPIO3_IO31 | DIO_PAD_CFG),
>  	/* PCI_RST# */
>  	IOMUX_PADS(PAD_ENET_TXD1__GPIO1_IO29 | DIO_PAD_CFG),
> +	/* PCIESKT_WDIS# */
> +	IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG),
>  };
>  
>  static iomux_v3_cfg_t const gw53xx_gpio_pads[] = {
> @@ -625,6 +629,8 @@ static iomux_v3_cfg_t const gw53xx_gpio_pads[] = {
>  	IOMUX_PADS(PAD_EIM_D31__GPIO3_IO31 | DIO_PAD_CFG),
>  	/* PCI_RST# */
>  	IOMUX_PADS(PAD_ENET_TXD1__GPIO1_IO29 | DIO_PAD_CFG),
> +	/* PCIESKT_WDIS# */
> +	IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG),
>  };
>  
>  static iomux_v3_cfg_t const gw54xx_gpio_pads[] = {
> @@ -650,6 +656,8 @@ static iomux_v3_cfg_t const gw54xx_gpio_pads[] = {
>  	IOMUX_PADS(PAD_ENET_TXD1__GPIO1_IO29 | DIO_PAD_CFG),
>  	/* VID_EN */
>  	IOMUX_PADS(PAD_EIM_D31__GPIO3_IO31 | DIO_PAD_CFG),
> +	/* PCIESKT_WDIS# */
> +	IOMUX_PADS(PAD_DISP0_DAT23__GPIO5_IO17 | DIO_PAD_CFG),
>  };
>  
>  /*
> @@ -680,6 +688,7 @@ struct ventana {
>  	int dioi2c_en;
>  	int pcie_sson;
>  	int usb_sel;
> +	int wdis;
>  };
>  
>  struct ventana gpio_cfg[] = {
> @@ -765,6 +774,7 @@ struct ventana gpio_cfg[] = {
>  		.mezz_irq = IMX_GPIO_NR(2, 18),
>  		.gps_shdn = IMX_GPIO_NR(1, 2),
>  		.vidin_en = IMX_GPIO_NR(5, 20),
> +		.wdis = IMX_GPIO_NR(7, 12),
>  	},
>  
>  	/* GW52xx */
> @@ -808,6 +818,7 @@ struct ventana gpio_cfg[] = {
>  		.gps_shdn = IMX_GPIO_NR(1, 27),
>  		.vidin_en = IMX_GPIO_NR(3, 31),
>  		.usb_sel = IMX_GPIO_NR(1, 2),
> +		.wdis = IMX_GPIO_NR(7, 12),
>  	},
>  
>  	/* GW53xx */
> @@ -850,6 +861,7 @@ struct ventana gpio_cfg[] = {
>  		.mezz_irq = IMX_GPIO_NR(2, 18),
>  		.gps_shdn = IMX_GPIO_NR(1, 27),
>  		.vidin_en = IMX_GPIO_NR(3, 31),
> +		.wdis = IMX_GPIO_NR(7, 12),
>  	},
>  
>  	/* GW54xx */
> @@ -894,6 +906,7 @@ struct ventana gpio_cfg[] = {
>  		.vidin_en = IMX_GPIO_NR(3, 31),
>  		.dioi2c_en = IMX_GPIO_NR(4,  5),
>  		.pcie_sson = IMX_GPIO_NR(1, 20),
> +		.wdis = IMX_GPIO_NR(5, 17),
>  	},
>  };
>  
> @@ -1019,6 +1032,10 @@ static void setup_board_gpio(int board)
>  	if (gpio_cfg[board].usb_sel)
>  		gpio_direction_output(gpio_cfg[board].usb_sel, 0);
>  
> +	/* PCISKT_WDIS# (Wireless disable GPIO to miniPCIe sockets) */
> +	if (gpio_cfg[board].wdis)
> +		gpio_direction_output(gpio_cfg[board].wdis, 1);
> +
>  	/*
>  	 * Configure DIO pinmux/padctl registers
>  	 * see IMX6DQRM/IMX6SDLRM IOMUXC_SW_PAD_CTL_PAD_* register definitions
> 

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic
diff mbox

Patch

diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c
index d57ede4..1c24e4b 100644
--- a/board/gateworks/gw_ventana/gw_ventana.c
+++ b/board/gateworks/gw_ventana/gw_ventana.c
@@ -581,6 +581,8 @@  static iomux_v3_cfg_t const gw51xx_gpio_pads[] = {
 	IOMUX_PADS(PAD_CSI0_DATA_EN__GPIO5_IO20 | DIO_PAD_CFG),
 	/* PCI_RST# */
 	IOMUX_PADS(PAD_GPIO_0__GPIO1_IO00 | DIO_PAD_CFG),
+	/* PCIESKT_WDIS# */
+	IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG),
 };
 
 static iomux_v3_cfg_t const gw52xx_gpio_pads[] = {
@@ -603,6 +605,8 @@  static iomux_v3_cfg_t const gw52xx_gpio_pads[] = {
 	IOMUX_PADS(PAD_EIM_D31__GPIO3_IO31 | DIO_PAD_CFG),
 	/* PCI_RST# */
 	IOMUX_PADS(PAD_ENET_TXD1__GPIO1_IO29 | DIO_PAD_CFG),
+	/* PCIESKT_WDIS# */
+	IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG),
 };
 
 static iomux_v3_cfg_t const gw53xx_gpio_pads[] = {
@@ -625,6 +629,8 @@  static iomux_v3_cfg_t const gw53xx_gpio_pads[] = {
 	IOMUX_PADS(PAD_EIM_D31__GPIO3_IO31 | DIO_PAD_CFG),
 	/* PCI_RST# */
 	IOMUX_PADS(PAD_ENET_TXD1__GPIO1_IO29 | DIO_PAD_CFG),
+	/* PCIESKT_WDIS# */
+	IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG),
 };
 
 static iomux_v3_cfg_t const gw54xx_gpio_pads[] = {
@@ -650,6 +656,8 @@  static iomux_v3_cfg_t const gw54xx_gpio_pads[] = {
 	IOMUX_PADS(PAD_ENET_TXD1__GPIO1_IO29 | DIO_PAD_CFG),
 	/* VID_EN */
 	IOMUX_PADS(PAD_EIM_D31__GPIO3_IO31 | DIO_PAD_CFG),
+	/* PCIESKT_WDIS# */
+	IOMUX_PADS(PAD_DISP0_DAT23__GPIO5_IO17 | DIO_PAD_CFG),
 };
 
 /*
@@ -680,6 +688,7 @@  struct ventana {
 	int dioi2c_en;
 	int pcie_sson;
 	int usb_sel;
+	int wdis;
 };
 
 struct ventana gpio_cfg[] = {
@@ -765,6 +774,7 @@  struct ventana gpio_cfg[] = {
 		.mezz_irq = IMX_GPIO_NR(2, 18),
 		.gps_shdn = IMX_GPIO_NR(1, 2),
 		.vidin_en = IMX_GPIO_NR(5, 20),
+		.wdis = IMX_GPIO_NR(7, 12),
 	},
 
 	/* GW52xx */
@@ -808,6 +818,7 @@  struct ventana gpio_cfg[] = {
 		.gps_shdn = IMX_GPIO_NR(1, 27),
 		.vidin_en = IMX_GPIO_NR(3, 31),
 		.usb_sel = IMX_GPIO_NR(1, 2),
+		.wdis = IMX_GPIO_NR(7, 12),
 	},
 
 	/* GW53xx */
@@ -850,6 +861,7 @@  struct ventana gpio_cfg[] = {
 		.mezz_irq = IMX_GPIO_NR(2, 18),
 		.gps_shdn = IMX_GPIO_NR(1, 27),
 		.vidin_en = IMX_GPIO_NR(3, 31),
+		.wdis = IMX_GPIO_NR(7, 12),
 	},
 
 	/* GW54xx */
@@ -894,6 +906,7 @@  struct ventana gpio_cfg[] = {
 		.vidin_en = IMX_GPIO_NR(3, 31),
 		.dioi2c_en = IMX_GPIO_NR(4,  5),
 		.pcie_sson = IMX_GPIO_NR(1, 20),
+		.wdis = IMX_GPIO_NR(5, 17),
 	},
 };
 
@@ -1019,6 +1032,10 @@  static void setup_board_gpio(int board)
 	if (gpio_cfg[board].usb_sel)
 		gpio_direction_output(gpio_cfg[board].usb_sel, 0);
 
+	/* PCISKT_WDIS# (Wireless disable GPIO to miniPCIe sockets) */
+	if (gpio_cfg[board].wdis)
+		gpio_direction_output(gpio_cfg[board].wdis, 1);
+
 	/*
 	 * Configure DIO pinmux/padctl registers
 	 * see IMX6DQRM/IMX6SDLRM IOMUXC_SW_PAD_CTL_PAD_* register definitions