Commit 6f4b3bf5 authored by Olof Johansson's avatar Olof Johansson

Merge branch 'imx/fixes' of git://git.pengutronix.de/git/imx/linux-2.6 into fixes

* 'imx/fixes' of git://git.pengutronix.de/git/imx/linux-2.6:
  ARM i.MX imx21ads: Fix overlapping static i/o mappings
  ARM i.MX27 Visstrim M10: fix gpio handling.
  ARM: imx: only call l2x0_init if it's available
  ARM: imx: only specify i2c device type once
  ARM: mx31_3ds: Fix build due to missing IMX_HAVE_PLATFORM_IMX_SSI
parents 434978e6 350ab15b
...@@ -477,6 +477,7 @@ config MACH_MX31_3DS ...@@ -477,6 +477,7 @@ config MACH_MX31_3DS
select IMX_HAVE_PLATFORM_IMX2_WDT select IMX_HAVE_PLATFORM_IMX2_WDT
select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_IMX_I2C
select IMX_HAVE_PLATFORM_IMX_KEYPAD select IMX_HAVE_PLATFORM_IMX_KEYPAD
select IMX_HAVE_PLATFORM_IMX_SSI
select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_IMX_UART
select IMX_HAVE_PLATFORM_IPU_CORE select IMX_HAVE_PLATFORM_IPU_CORE
select IMX_HAVE_PLATFORM_MXC_EHCI select IMX_HAVE_PLATFORM_MXC_EHCI
......
...@@ -70,7 +70,6 @@ static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = { ...@@ -70,7 +70,6 @@ static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = {
I2C_BOARD_INFO("pcf8563", 0x51), I2C_BOARD_INFO("pcf8563", 0x51),
}, { }, {
I2C_BOARD_INFO("tsc2007", 0x48), I2C_BOARD_INFO("tsc2007", 0x48),
.type = "tsc2007",
.platform_data = &tsc2007_info, .platform_data = &tsc2007_info,
.irq = IMX_GPIO_TO_IRQ(TSC2007_IRQGPIO), .irq = IMX_GPIO_TO_IRQ(TSC2007_IRQGPIO),
}, },
......
...@@ -142,7 +142,6 @@ static struct i2c_board_info eukrea_cpuimx51sd_i2c_devices[] = { ...@@ -142,7 +142,6 @@ static struct i2c_board_info eukrea_cpuimx51sd_i2c_devices[] = {
I2C_BOARD_INFO("pcf8563", 0x51), I2C_BOARD_INFO("pcf8563", 0x51),
}, { }, {
I2C_BOARD_INFO("tsc2007", 0x49), I2C_BOARD_INFO("tsc2007", 0x49),
.type = "tsc2007",
.platform_data = &tsc2007_info, .platform_data = &tsc2007_info,
}, },
}; };
......
...@@ -116,6 +116,8 @@ static const int visstrim_m10_pins[] __initconst = { ...@@ -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[] = { ...@@ -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) ...@@ -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[] = { ...@@ -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) ...@@ -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);
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
* Memory-mapped I/O on MX21ADS base board * Memory-mapped I/O on MX21ADS base board
*/ */
#define MX21ADS_MMIO_BASE_ADDR 0xf5000000 #define MX21ADS_MMIO_BASE_ADDR 0xf5000000
#define MX21ADS_MMIO_SIZE SZ_16M #define MX21ADS_MMIO_SIZE 0xc00000
#define MX21ADS_REG_ADDR(offset) (void __force __iomem *) \ #define MX21ADS_REG_ADDR(offset) (void __force __iomem *) \
(MX21ADS_MMIO_BASE_ADDR + (offset)) (MX21ADS_MMIO_BASE_ADDR + (offset))
......
...@@ -86,6 +86,7 @@ static void __iomem *imx3_ioremap_caller(unsigned long phys_addr, size_t size, ...@@ -86,6 +86,7 @@ static void __iomem *imx3_ioremap_caller(unsigned long phys_addr, size_t size,
void __init imx3_init_l2x0(void) void __init imx3_init_l2x0(void)
{ {
#ifdef CONFIG_CACHE_L2X0
void __iomem *l2x0_base; void __iomem *l2x0_base;
void __iomem *clkctl_base; void __iomem *clkctl_base;
...@@ -115,6 +116,7 @@ void __init imx3_init_l2x0(void) ...@@ -115,6 +116,7 @@ void __init imx3_init_l2x0(void)
} }
l2x0_init(l2x0_base, 0x00030024, 0x00000000); l2x0_init(l2x0_base, 0x00030024, 0x00000000);
#endif
} }
#ifdef CONFIG_SOC_IMX31 #ifdef CONFIG_SOC_IMX31
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment