|
@@ -116,6 +116,8 @@ static const int visstrim_m10_pins[] __initconst = {
|
|
PB23_PF_USB_PWR,
|
|
PB23_PF_USB_PWR,
|
|
PB24_PF_USB_OC,
|
|
PB24_PF_USB_OC,
|
|
/* CSI */
|
|
/* CSI */
|
|
|
|
+ TVP5150_RSTN | GPIO_GPIO | GPIO_OUT,
|
|
|
|
+ TVP5150_PWDN | GPIO_GPIO | GPIO_OUT,
|
|
PB10_PF_CSI_D0,
|
|
PB10_PF_CSI_D0,
|
|
PB11_PF_CSI_D1,
|
|
PB11_PF_CSI_D1,
|
|
PB12_PF_CSI_D2,
|
|
PB12_PF_CSI_D2,
|
|
@@ -147,6 +149,24 @@ static struct gpio visstrim_m10_version_gpios[] = {
|
|
{ MOTHERBOARD_BIT2, GPIOF_IN, "mother-version-2" },
|
|
{ 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 */
|
|
/* Camera */
|
|
static int visstrim_camera_power(struct device *dev, int on)
|
|
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;
|
|
struct platform_device *pdev;
|
|
int dma;
|
|
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);
|
|
gpio_set_value(TVP5150_PWDN, 1);
|
|
ndelay(1);
|
|
ndelay(1);
|
|
gpio_set_value(TVP5150_RSTN, 0);
|
|
gpio_set_value(TVP5150_RSTN, 0);
|
|
@@ -377,10 +390,6 @@ static struct i2c_board_info visstrim_m10_i2c_devices[] = {
|
|
/* USB OTG */
|
|
/* USB OTG */
|
|
static int otg_phy_init(struct platform_device *pdev)
|
|
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);
|
|
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)
|
|
if (ret)
|
|
pr_err("Failed to setup pins (%d)\n", 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_ssi(0, &visstrim_m10_ssi_pdata);
|
|
imx27_add_imx_uart0(&uart_pdata);
|
|
imx27_add_imx_uart0(&uart_pdata);
|
|
|
|
|