diff options
Diffstat (limited to 'arch/arm/mach-imx/mach-imx27_visstrim_m10.c')
| -rw-r--r-- | arch/arm/mach-imx/mach-imx27_visstrim_m10.c | 36 | 
1 files changed, 25 insertions, 11 deletions
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index dff82eb57cd..f76edb96a48 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c @@ -116,6 +116,8 @@ static const int visstrim_m10_pins[] __initconst = {  	PB23_PF_USB_PWR,  	PB24_PF_USB_OC,  	/* CSI */ +	TVP5150_RSTN | GPIO_GPIO | GPIO_OUT, +	TVP5150_PWDN | GPIO_GPIO | GPIO_OUT,  	PB10_PF_CSI_D0,  	PB11_PF_CSI_D1,  	PB12_PF_CSI_D2, @@ -147,6 +149,24 @@ static struct gpio visstrim_m10_version_gpios[] = {  	{ MOTHERBOARD_BIT2, GPIOF_IN, "mother-version-2" },  }; +static const struct gpio visstrim_m10_gpios[] __initconst = { +	{ +		.gpio = TVP5150_RSTN, +		.flags = GPIOF_DIR_OUT | GPIOF_INIT_HIGH, +		.label = "tvp5150_rstn", +	}, +	{ +		.gpio = TVP5150_PWDN, +		.flags = GPIOF_DIR_OUT | GPIOF_INIT_LOW, +		.label = "tvp5150_pwdn", +	}, +	{ +		.gpio = OTG_PHY_CS_GPIO, +		.flags = GPIOF_DIR_OUT | GPIOF_INIT_LOW, +		.label = "usbotg_cs", +	}, +}; +  /* Camera */  static int visstrim_camera_power(struct device *dev, int on)  { @@ -190,13 +210,6 @@ static void __init visstrim_camera_init(void)  	struct platform_device *pdev;  	int dma; -	/* Initialize tvp5150 gpios */ -	mxc_gpio_mode(TVP5150_RSTN | GPIO_GPIO | GPIO_OUT); -	mxc_gpio_mode(TVP5150_PWDN | GPIO_GPIO | GPIO_OUT); -	gpio_set_value(TVP5150_RSTN, 1); -	gpio_set_value(TVP5150_PWDN, 0); -	ndelay(1); -  	gpio_set_value(TVP5150_PWDN, 1);  	ndelay(1);  	gpio_set_value(TVP5150_RSTN, 0); @@ -377,10 +390,6 @@ static struct i2c_board_info visstrim_m10_i2c_devices[] = {  /* USB OTG */  static int otg_phy_init(struct platform_device *pdev)  { -	gpio_set_value(OTG_PHY_CS_GPIO, 0); - -	mdelay(10); -  	return mx27_initialize_usb_hw(pdev->id, MXC_EHCI_POWER_PINS_ENABLED);  } @@ -435,6 +444,11 @@ static void __init visstrim_m10_board_init(void)  	if (ret)  		pr_err("Failed to setup pins (%d)\n", ret); +	ret = gpio_request_array(visstrim_m10_gpios, +				ARRAY_SIZE(visstrim_m10_gpios)); +	if (ret) +		pr_err("Failed to request gpios (%d)\n", ret); +  	imx27_add_imx_ssi(0, &visstrim_m10_ssi_pdata);  	imx27_add_imx_uart0(&uart_pdata);  |