Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6acc81c3 authored by Paulius Zaleckas's avatar Paulius Zaleckas Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (11350): Add camera (CSI) driver for MX1



Add support for CMOS Sensor Interface on i.MX1 and i.MXL SoCs.

 create mode 100644 arch/arm/mach-mx1/ksym_mx1.c
 create mode 100644 arch/arm/mach-mx1/mx1_camera_fiq.S
 create mode 100644 arch/arm/plat-mxc/include/mach/mx1_camera.h
 create mode 100644 drivers/media/video/mx1_camera.c

Signed-off-by: default avatarPaulius Zaleckas <paulius.zaleckas@teltonika.lt>
Signed-off-by: default avatarDarius Augulis <augulis.darius@gmail.com>
Acked-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent b71df97a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -6,6 +6,9 @@

obj-y			+= generic.o clock.o devices.o

# Support for CMOS sensor interface
obj-$(CONFIG_MX1_VIDEO)	+= ksym_mx1.o mx1_camera_fiq.o

# Specific board support
obj-$(CONFIG_ARCH_MX1ADS) += mx1ads.o
obj-$(CONFIG_MACH_SCB9328) += scb9328.o
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ static struct resource imx_csi_resources[] = {
static u64 imx_csi_dmamask = 0xffffffffUL;

struct platform_device imx_csi_device = {
	.name           = "imx-csi",
	.name           = "mx1-camera",
	.id             = 0, /* This is used to put cameras on this interface */
	.dev		= {
		.dma_mask = &imx_csi_dmamask,
+18 −0
Original line number Diff line number Diff line
/*
 * Exported ksyms of ARCH_MX1
 *
 * Copyright (C) 2008, Darius Augulis <augulis.darius@gmail.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include <linux/platform_device.h>
#include <linux/module.h>

#include <mach/mx1_camera.h>

/* IMX camera FIQ handler */
EXPORT_SYMBOL(mx1_camera_sof_fiq_start);
EXPORT_SYMBOL(mx1_camera_sof_fiq_end);
+35 −0
Original line number Diff line number Diff line
/*
 *  Copyright (C) 2008 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
 *
 *  Based on linux/arch/arm/lib/floppydma.S
 *      Copyright (C) 1995, 1996 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#include <linux/linkage.h>
#include <asm/assembler.h>

		.text
		.global	mx1_camera_sof_fiq_end
		.global	mx1_camera_sof_fiq_start
mx1_camera_sof_fiq_start:
		@ enable dma
		ldr	r12, [r9]
		orr	r12, r12, #0x00000001
		str	r12, [r9]
		@ unmask DMA interrupt
		ldr	r12, [r8]
		bic	r12, r12, r13
		str	r12, [r8]
		@ disable SOF interrupt
		ldr	r12, [r10]
		bic	r12, r12, #0x00010000
		str	r12, [r10]
		@ clear SOF flag
		mov	r12, #0x00010000
		str	r12, [r11]
		@ return from FIQ
		subs	pc, lr, #4
mx1_camera_sof_fiq_end:
+8 −0
Original line number Diff line number Diff line
@@ -24,4 +24,12 @@
#define PHYS_OFFSET		UL(0x80000000)
#endif

#if defined(CONFIG_MX1_VIDEO)
/*
 * Increase size of DMA-consistent memory region.
 * This is required for i.MX camera driver to capture at least four VGA frames.
 */
#define CONSISTENT_DMA_SIZE SZ_4M
#endif /* CONFIG_MX1_VIDEO */

#endif /* __ASM_ARCH_MXC_MEMORY_H__ */
Loading