linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals.
@ 2012-02-28 16:31 Javier Martin
  2012-02-28 16:31 ` [PATCH v2 1/4] i.MX27: visstrim_m10: Sort IMX_HAVE_PLATFORM_MXC_MMC properly Javier Martin
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Javier Martin @ 2012-02-28 16:31 UTC (permalink / raw)
  To: linux-arm-kernel

I've splitted video related patch into three to attend Uwe's requirements
and have added RTC support too.

[PATCH v2 1/4] i.MX27: visstrim_m10: Sort IMX_HAVE_PLATFORM_MXC_MMC properly.
[PATCH v2 2/4] i.MX27: visstrim_m10: Register I2C devices after I2C busses have been added.
[PATCH v2 3/4] i.MX27: visstrim_m10: Add m41t00 RTC support.
[PATCH v2 4/4] i.MX27: visstrim_m10: Add video support.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/4] i.MX27: visstrim_m10: Sort IMX_HAVE_PLATFORM_MXC_MMC properly.
  2012-02-28 16:31 [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Javier Martin
@ 2012-02-28 16:31 ` Javier Martin
  2012-02-28 16:31 ` [PATCH v2 2/4] i.MX27: visstrim_m10: Register I2C devices after I2C busses have been added Javier Martin
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Javier Martin @ 2012-02-28 16:31 UTC (permalink / raw)
  To: linux-arm-kernel


Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
---
 arch/arm/mach-imx/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 4defb97..3d82133 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -320,8 +320,8 @@ config MACH_IMX27_VISSTRIM_M10
 	select IMX_HAVE_PLATFORM_IMX_I2C
 	select IMX_HAVE_PLATFORM_IMX_SSI
 	select IMX_HAVE_PLATFORM_IMX_UART
-	select IMX_HAVE_PLATFORM_MXC_MMC
 	select IMX_HAVE_PLATFORM_MXC_EHCI
+	select IMX_HAVE_PLATFORM_MXC_MMC
 	help
 	  Include support for Visstrim_m10 platform and its different variants.
 	  This includes specific configurations for the board and its
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/4] i.MX27: visstrim_m10: Register I2C devices after I2C busses have been added.
  2012-02-28 16:31 [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Javier Martin
  2012-02-28 16:31 ` [PATCH v2 1/4] i.MX27: visstrim_m10: Sort IMX_HAVE_PLATFORM_MXC_MMC properly Javier Martin
@ 2012-02-28 16:31 ` Javier Martin
  2012-02-28 16:31 ` [PATCH v2 3/4] i.MX27: visstrim_m10: Add m41t00 RTC support Javier Martin
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Javier Martin @ 2012-02-28 16:31 UTC (permalink / raw)
  To: linux-arm-kernel


Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
---
 arch/arm/mach-imx/mach-imx27_visstrim_m10.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
index c2766ae..1c26c6d 100644
--- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
+++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
@@ -254,10 +254,11 @@ static void __init visstrim_m10_board_init(void)
 	imx27_add_imx_ssi(0, &visstrim_m10_ssi_pdata);
 	imx27_add_imx_uart0(&uart_pdata);
 
-	i2c_register_board_info(0, visstrim_m10_i2c_devices,
-				ARRAY_SIZE(visstrim_m10_i2c_devices));
 	imx27_add_imx_i2c(0, &visstrim_m10_i2c_data);
 	imx27_add_imx_i2c(1, &visstrim_m10_i2c_data);
+	i2c_register_board_info(0, visstrim_m10_i2c_devices,
+				ARRAY_SIZE(visstrim_m10_i2c_devices));
+
 	imx27_add_mxc_mmc(0, &visstrim_m10_sdhc_pdata);
 	imx27_add_mxc_ehci_otg(&visstrim_m10_usbotg_pdata);
 	imx27_add_fec(NULL);
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 3/4] i.MX27: visstrim_m10: Add m41t00 RTC support.
  2012-02-28 16:31 [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Javier Martin
  2012-02-28 16:31 ` [PATCH v2 1/4] i.MX27: visstrim_m10: Sort IMX_HAVE_PLATFORM_MXC_MMC properly Javier Martin
  2012-02-28 16:31 ` [PATCH v2 2/4] i.MX27: visstrim_m10: Register I2C devices after I2C busses have been added Javier Martin
@ 2012-02-28 16:31 ` Javier Martin
  2012-02-28 16:31 ` [PATCH v2 4/4] i.MX27: visstrim_m10: Add video support Javier Martin
  2012-03-02  7:26 ` [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Javier Martin @ 2012-02-28 16:31 UTC (permalink / raw)
  To: linux-arm-kernel


Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
---
 arch/arm/mach-imx/mach-imx27_visstrim_m10.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
index 1c26c6d..479d9e8 100644
--- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
+++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
@@ -216,6 +216,9 @@ static struct i2c_board_info visstrim_m10_i2c_devices[] = {
 	{
 		I2C_BOARD_INFO("tlv320aic32x4", 0x18),
 		.platform_data = &visstrim_m10_aic32x4_pdata,
+	},
+	{
+		 I2C_BOARD_INFO("m41t00", 0x68),
 	}
 };
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 4/4] i.MX27: visstrim_m10: Add video support.
  2012-02-28 16:31 [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Javier Martin
                   ` (2 preceding siblings ...)
  2012-02-28 16:31 ` [PATCH v2 3/4] i.MX27: visstrim_m10: Add m41t00 RTC support Javier Martin
@ 2012-02-28 16:31 ` Javier Martin
  2012-03-02  7:26 ` [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Javier Martin @ 2012-02-28 16:31 UTC (permalink / raw)
  To: linux-arm-kernel

Vista Silicon Visstrim_m10 board has a tvp5150
video decoder attached to the CSI interface

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
---
 arch/arm/mach-imx/Kconfig                   |    1 +
 arch/arm/mach-imx/mach-imx27_visstrim_m10.c |  100 +++++++++++++++++++++++++++
 2 files changed, 101 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 3d82133..8102e7f 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -320,6 +320,7 @@ config MACH_IMX27_VISSTRIM_M10
 	select IMX_HAVE_PLATFORM_IMX_I2C
 	select IMX_HAVE_PLATFORM_IMX_SSI
 	select IMX_HAVE_PLATFORM_IMX_UART
+	select IMX_HAVE_PLATFORM_MX2_CAMERA
 	select IMX_HAVE_PLATFORM_MXC_EHCI
 	select IMX_HAVE_PLATFORM_MXC_MMC
 	help
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
index 479d9e8..7208a9e 100644
--- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
+++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
@@ -30,6 +30,9 @@
 #include <linux/input.h>
 #include <linux/gpio.h>
 #include <linux/delay.h>
+#include <linux/dma-mapping.h>
+#include <linux/memblock.h>
+#include <media/soc_camera.h>
 #include <sound/tlv320aic32x4.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -39,6 +42,8 @@
 
 #include "devices-imx27.h"
 
+#define TVP5150_RSTN (GPIO_PORTC + 18)
+#define TVP5150_PWDN (GPIO_PORTC + 19)
 #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17)
 #define SDHC1_IRQ IRQ_GPIOB(25)
 
@@ -100,8 +105,99 @@ static const int visstrim_m10_pins[] __initconst = {
 	PE1_PF_USBOTG_STP,
 	PB23_PF_USB_PWR,
 	PB24_PF_USB_OC,
+	/* CSI */
+	PB10_PF_CSI_D0,
+	PB11_PF_CSI_D1,
+	PB12_PF_CSI_D2,
+	PB13_PF_CSI_D3,
+	PB14_PF_CSI_D4,
+	PB15_PF_CSI_MCLK,
+	PB16_PF_CSI_PIXCLK,
+	PB17_PF_CSI_D5,
+	PB18_PF_CSI_D6,
+	PB19_PF_CSI_D7,
+	PB20_PF_CSI_VSYNC,
+	PB21_PF_CSI_HSYNC,
 };
 
+/* Camera */
+static int visstrim_camera_power(struct device *dev, int on)
+{
+	gpio_set_value(TVP5150_PWDN, on);
+
+	return 0;
+};
+
+static int visstrim_camera_reset(struct device *dev)
+{
+	gpio_set_value(TVP5150_RSTN, 0);
+	ndelay(500);
+	gpio_set_value(TVP5150_RSTN, 1);
+
+	return 0;
+};
+
+static struct i2c_board_info visstrim_i2c_camera =  {
+	I2C_BOARD_INFO("tvp5150", 0x5d),
+};
+
+static struct soc_camera_link iclink_tvp5150 = {
+	.bus_id         = 0,
+	.board_info     = &visstrim_i2c_camera,
+	.i2c_adapter_id = 0,
+	.power = visstrim_camera_power,
+	.reset = visstrim_camera_reset,
+};
+
+static struct mx2_camera_platform_data visstrim_camera = {
+	.flags = MX2_CAMERA_CCIR | MX2_CAMERA_CCIR_INTERLACE |
+			MX2_CAMERA_SWAP16 | MX2_CAMERA_PCLK_SAMPLE_RISING,
+	.clk = 100000,
+};
+
+static phys_addr_t mx2_camera_base __initdata;
+#define MX2_CAMERA_BUF_SIZE SZ_8M
+
+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);
+	ndelay(500);
+	gpio_set_value(TVP5150_RSTN, 1);
+	ndelay(200000);
+
+	pdev = imx27_add_mx2_camera(&visstrim_camera);
+	if (IS_ERR(pdev))
+		return;
+
+	dma = dma_declare_coherent_memory(&pdev->dev,
+				mx2_camera_base, mx2_camera_base,
+				MX2_CAMERA_BUF_SIZE,
+				DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
+	if (!(dma & DMA_MEMORY_MAP))
+		return;
+}
+
+static void __init visstrim_reserve(void)
+{
+	/* reserve 4 MiB for mx2-camera */
+	mx2_camera_base = memblock_alloc(MX2_CAMERA_BUF_SIZE,
+			MX2_CAMERA_BUF_SIZE);
+	memblock_free(mx2_camera_base, MX2_CAMERA_BUF_SIZE);
+	memblock_remove(mx2_camera_base, MX2_CAMERA_BUF_SIZE);
+}
+
 /* GPIOs used as events for applications */
 static struct gpio_keys_button visstrim_gpio_keys[] = {
 	{
@@ -267,6 +363,9 @@ static void __init visstrim_m10_board_init(void)
 	imx27_add_fec(NULL);
 	imx_add_gpio_keys(&visstrim_gpio_keys_platform_data);
 	platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
+	platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0,
+				      &iclink_tvp5150, sizeof(iclink_tvp5150));
+	visstrim_camera_init();
 }
 
 static void __init visstrim_m10_timer_init(void)
@@ -280,6 +379,7 @@ static struct sys_timer visstrim_m10_timer = {
 
 MACHINE_START(IMX27_VISSTRIM_M10, "Vista Silicon Visstrim_M10")
 	.atag_offset = 0x100,
+	.reserve = visstrim_reserve,
 	.map_io = mx27_map_io,
 	.init_early = imx27_init_early,
 	.init_irq = mx27_init_irq,
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals.
  2012-02-28 16:31 [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Javier Martin
                   ` (3 preceding siblings ...)
  2012-02-28 16:31 ` [PATCH v2 4/4] i.MX27: visstrim_m10: Add video support Javier Martin
@ 2012-03-02  7:26 ` Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Sascha Hauer @ 2012-03-02  7:26 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Feb 28, 2012 at 05:31:47PM +0100, Javier Martin wrote:
> I've splitted video related patch into three to attend Uwe's requirements
> and have added RTC support too.
> 
> [PATCH v2 1/4] i.MX27: visstrim_m10: Sort IMX_HAVE_PLATFORM_MXC_MMC properly.
> [PATCH v2 2/4] i.MX27: visstrim_m10: Register I2C devices after I2C busses have been added.
> [PATCH v2 3/4] i.MX27: visstrim_m10: Add m41t00 RTC support.
> [PATCH v2 4/4] i.MX27: visstrim_m10: Add video support.

Applied, thanks.

Sascha

> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-03-02  7:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-28 16:31 [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Javier Martin
2012-02-28 16:31 ` [PATCH v2 1/4] i.MX27: visstrim_m10: Sort IMX_HAVE_PLATFORM_MXC_MMC properly Javier Martin
2012-02-28 16:31 ` [PATCH v2 2/4] i.MX27: visstrim_m10: Register I2C devices after I2C busses have been added Javier Martin
2012-02-28 16:31 ` [PATCH v2 3/4] i.MX27: visstrim_m10: Add m41t00 RTC support Javier Martin
2012-02-28 16:31 ` [PATCH v2 4/4] i.MX27: visstrim_m10: Add video support Javier Martin
2012-03-02  7:26 ` [PATCH 0/4] i.MX27: visstrim_m10: Add several peripherals Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).