* [PATCH v2] Visstrim SM10: Use mo_version to decide board video mode.
@ 2012-08-03 12:08 Javier Martin
2012-08-03 14:06 ` Sascha Hauer
2012-08-03 15:37 ` Baruch Siach
0 siblings, 2 replies; 3+ messages in thread
From: Javier Martin @ 2012-08-03 12:08 UTC (permalink / raw)
To: linux-arm-kernel
If the mother board version number is odd, emmaprp() for
format conversion + UVC camera will be used.
Otherwise mx2_camera and m2m-deinterlacer will be registered.
For both cases Coda video codec is registered.
Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
---
Changes since v1:
- Add error message to emmaprp init function.
---
arch/arm/mach-imx/mach-imx27_visstrim_m10.c | 54 ++++++++++++++++++++++++---
1 file changed, 49 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
index 176533e..dbb344a 100644
--- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
+++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
@@ -49,6 +49,10 @@
#define OTG_PHY_CS_GPIO (GPIO_PORTF + 17)
#define SDHC1_IRQ IRQ_GPIOB(25)
+#define VERSION_MASK 0x7
+#define MOTHERBOARD_SHIFT 4
+#define EXPBOARD_SHIFT 0
+
#define MOTHERBOARD_BIT2 (GPIO_PORTD + 31)
#define MOTHERBOARD_BIT1 (GPIO_PORTD + 30)
#define MOTHERBOARD_BIT0 (GPIO_PORTD + 29)
@@ -205,7 +209,7 @@ static struct mx2_camera_platform_data visstrim_camera = {
static phys_addr_t mx2_camera_base __initdata;
#define MX2_CAMERA_BUF_SIZE SZ_8M
-static void __init visstrim_camera_init(void)
+static void __init visstrim_analog_camera_init(void)
{
struct platform_device *pdev;
int dma;
@@ -442,6 +446,29 @@ static void __init visstrim_deinterlace_init(void)
return;
}
+/* Emma-PrP for format conversion */
+static void __init visstrim_emmaprp_init(void)
+{
+ struct platform_device *pdev;
+ int dma;
+
+ pdev = imx27_add_mx2_emmaprp();
+ if (IS_ERR(pdev))
+ return;
+
+ /*
+ * Use the same memory area as the analog camera since both
+ * devices are, by nature, exclusive.
+ */
+ 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)) {
+ pr_err("Failed to declare memory for emmaprp\n");
+ return;
+ }
+}
static void __init visstrim_m10_revision(void)
{
@@ -467,13 +494,14 @@ static void __init visstrim_m10_revision(void)
mo_version |= !gpio_get_value(MOTHERBOARD_BIT0);
system_rev = 0x27000;
- system_rev |= (mo_version << 4);
- system_rev |= exp_version;
+ system_rev |= (mo_version << MOTHERBOARD_SHIFT);
+ system_rev |= (exp_version << EXPBOARD_SHIFT);
}
static void __init visstrim_m10_board_init(void)
{
int ret;
+ int mo_version;
imx27_soc_init();
visstrim_m10_revision();
@@ -505,8 +533,24 @@ static void __init visstrim_m10_board_init(void)
platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0,
&iclink_tvp5150, sizeof(iclink_tvp5150));
gpio_led_register_device(0, &visstrim_m10_led_data);
- visstrim_deinterlace_init();
- visstrim_camera_init();
+
+ /* Use mother board version to decide what video devices we shall use */
+ mo_version = (system_rev >> MOTHERBOARD_SHIFT) & VERSION_MASK;
+ if (mo_version & 0x1) {
+ visstrim_emmaprp_init();
+
+ /*
+ * Despite not being used, tvp5150 must be
+ * powered on to avoid I2C problems. To minimize
+ * power consupmtion keep reset enabled.
+ */
+ gpio_set_value(TVP5150_PWDN, 1);
+ ndelay(1);
+ gpio_set_value(TVP5150_RSTN, 0);
+ } else {
+ visstrim_deinterlace_init();
+ visstrim_analog_camera_init();
+ }
visstrim_coda_init();
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2] Visstrim SM10: Use mo_version to decide board video mode.
2012-08-03 12:08 [PATCH v2] Visstrim SM10: Use mo_version to decide board video mode Javier Martin
@ 2012-08-03 14:06 ` Sascha Hauer
2012-08-03 15:37 ` Baruch Siach
1 sibling, 0 replies; 3+ messages in thread
From: Sascha Hauer @ 2012-08-03 14:06 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Aug 03, 2012 at 02:08:23PM +0200, Javier Martin wrote:
> If the mother board version number is odd, emmaprp() for
> format conversion + UVC camera will be used.
>
> Otherwise mx2_camera and m2m-deinterlacer will be registered.
>
> For both cases Coda video codec is registered.
>
> Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
This does not apply. Mainline does not have visstrim_deinterlace_init.
Sascha
> ---
> Changes since v1:
> - Add error message to emmaprp init function.
>
> ---
> arch/arm/mach-imx/mach-imx27_visstrim_m10.c | 54 ++++++++++++++++++++++++---
> 1 file changed, 49 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
> index 176533e..dbb344a 100644
> --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
> +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c
> @@ -49,6 +49,10 @@
> #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17)
> #define SDHC1_IRQ IRQ_GPIOB(25)
>
> +#define VERSION_MASK 0x7
> +#define MOTHERBOARD_SHIFT 4
> +#define EXPBOARD_SHIFT 0
> +
> #define MOTHERBOARD_BIT2 (GPIO_PORTD + 31)
> #define MOTHERBOARD_BIT1 (GPIO_PORTD + 30)
> #define MOTHERBOARD_BIT0 (GPIO_PORTD + 29)
> @@ -205,7 +209,7 @@ static struct mx2_camera_platform_data visstrim_camera = {
> static phys_addr_t mx2_camera_base __initdata;
> #define MX2_CAMERA_BUF_SIZE SZ_8M
>
> -static void __init visstrim_camera_init(void)
> +static void __init visstrim_analog_camera_init(void)
> {
> struct platform_device *pdev;
> int dma;
> @@ -442,6 +446,29 @@ static void __init visstrim_deinterlace_init(void)
> return;
> }
>
> +/* Emma-PrP for format conversion */
> +static void __init visstrim_emmaprp_init(void)
> +{
> + struct platform_device *pdev;
> + int dma;
> +
> + pdev = imx27_add_mx2_emmaprp();
> + if (IS_ERR(pdev))
> + return;
> +
> + /*
> + * Use the same memory area as the analog camera since both
> + * devices are, by nature, exclusive.
> + */
> + 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)) {
> + pr_err("Failed to declare memory for emmaprp\n");
> + return;
> + }
> +}
>
> static void __init visstrim_m10_revision(void)
> {
> @@ -467,13 +494,14 @@ static void __init visstrim_m10_revision(void)
> mo_version |= !gpio_get_value(MOTHERBOARD_BIT0);
>
> system_rev = 0x27000;
> - system_rev |= (mo_version << 4);
> - system_rev |= exp_version;
> + system_rev |= (mo_version << MOTHERBOARD_SHIFT);
> + system_rev |= (exp_version << EXPBOARD_SHIFT);
> }
>
> static void __init visstrim_m10_board_init(void)
> {
> int ret;
> + int mo_version;
>
> imx27_soc_init();
> visstrim_m10_revision();
> @@ -505,8 +533,24 @@ static void __init visstrim_m10_board_init(void)
> platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0,
> &iclink_tvp5150, sizeof(iclink_tvp5150));
> gpio_led_register_device(0, &visstrim_m10_led_data);
> - visstrim_deinterlace_init();
> - visstrim_camera_init();
> +
> + /* Use mother board version to decide what video devices we shall use */
> + mo_version = (system_rev >> MOTHERBOARD_SHIFT) & VERSION_MASK;
> + if (mo_version & 0x1) {
> + visstrim_emmaprp_init();
> +
> + /*
> + * Despite not being used, tvp5150 must be
> + * powered on to avoid I2C problems. To minimize
> + * power consupmtion keep reset enabled.
> + */
> + gpio_set_value(TVP5150_PWDN, 1);
> + ndelay(1);
> + gpio_set_value(TVP5150_RSTN, 0);
> + } else {
> + visstrim_deinterlace_init();
> + visstrim_analog_camera_init();
> + }
> visstrim_coda_init();
> }
>
> --
> 1.7.9.5
>
>
--
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] 3+ messages in thread
* [PATCH v2] Visstrim SM10: Use mo_version to decide board video mode.
2012-08-03 12:08 [PATCH v2] Visstrim SM10: Use mo_version to decide board video mode Javier Martin
2012-08-03 14:06 ` Sascha Hauer
@ 2012-08-03 15:37 ` Baruch Siach
1 sibling, 0 replies; 3+ messages in thread
From: Baruch Siach @ 2012-08-03 15:37 UTC (permalink / raw)
To: linux-arm-kernel
Hi Javier,
On Fri, Aug 03, 2012 at 02:08:23PM +0200, Javier Martin wrote:
> If the mother board version number is odd, emmaprp() for
> format conversion + UVC camera will be used.
>
> Otherwise mx2_camera and m2m-deinterlacer will be registered.
>
> For both cases Coda video codec is registered.
>
> Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
> ---
> Changes since v1:
> - Add error message to emmaprp init function.
> ---
...
> +/* Emma-PrP for format conversion */
> +static void __init visstrim_emmaprp_init(void)
> +{
> + struct platform_device *pdev;
> + int dma;
> +
> + pdev = imx27_add_mx2_emmaprp();
> + if (IS_ERR(pdev))
> + return;
> +
> + /*
> + * Use the same memory area as the analog camera since both
> + * devices are, by nature, exclusive.
> + */
> + 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)) {
> + pr_err("Failed to declare memory for emmaprp\n");
> + return;
Nitpick: the 'return' is redundant here.
> + }
> +}
baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-08-03 15:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-03 12:08 [PATCH v2] Visstrim SM10: Use mo_version to decide board video mode Javier Martin
2012-08-03 14:06 ` Sascha Hauer
2012-08-03 15:37 ` Baruch Siach
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).