From: petr.cvek@tul.cz (Petr Cvek)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 19/26] ARM: pxa: magician: Add support for Omnivision OV9640 camera
Date: Mon, 28 Sep 2015 23:38:45 +0200 [thread overview]
Message-ID: <5609B365.4060307@tul.cz> (raw)
In-Reply-To: <cover.1443472089.git.petr.cvek@tul.cz>
This patch adds support for an OV9640 camera to the HTC Magician machine.
Signed-off-by: Petr Cvek <petr.cvek@tul.cz>
---
arch/arm/mach-pxa/magician.c | 61 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index 450f35f..d844b9c 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -49,6 +49,9 @@
#include <linux/spi/pxa2xx_spi.h>
#include <linux/spi/ads7846.h>
+#include <linux/platform_data/camera-pxa.h>
+#include <media/soc_camera.h>
+
#include "devices.h"
#include "generic.h"
@@ -960,6 +963,60 @@ static struct spi_board_info ads7846_spi_board_info[] __initdata = {
};
/*
+ * SoC Camera for OV9640 chip
+ */
+
+static struct pxacamera_platform_data magician_pxacamera_pdata = {
+ .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 |
+ PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN,
+ .mclk_10khz = 4800,
+};
+
+static int magician_camera_power(struct device *dev, int power)
+{
+ pr_debug("Camera power = %i\n", power);
+
+ gpio_set_value(GPIO116_MAGICIAN_nCAM_EN, !power);
+ mdelay(3);
+
+ return 0;
+}
+
+static int magician_camera_reset(struct device *dev)
+{
+ pr_debug("Camera reset\n");
+
+ gpio_set_value(GPIO57_MAGICIAN_CAM_RESET, 1);
+ mdelay(3);
+ gpio_set_value(GPIO57_MAGICIAN_CAM_RESET, 0);
+ mdelay(3);
+
+ return 0;
+}
+
+static struct i2c_board_info magician_camera_i2c_board_info = {
+ I2C_BOARD_INFO("ov9640", 0x30),
+ .flags = I2C_CLIENT_SCCB,
+};
+
+static struct soc_camera_link magician_camera_iclink = {
+ .bus_id = 0,
+ .flags = SOCAM_DATAWIDTH_8,
+ .i2c_adapter_id = 0,
+ .board_info = &magician_camera_i2c_board_info,
+ .power = magician_camera_power,
+ .reset = magician_camera_reset,
+};
+
+static struct platform_device magician_camera = {
+ .name = "soc-camera-pdrv",
+ .id = 0,
+ .dev = {
+ .platform_data = &magician_camera_iclink,
+ },
+};
+
+/*
* Platform devices
*/
@@ -974,6 +1031,7 @@ static struct platform_device *devices[] __initdata = {
&power_supply,
&strataflash,
&leds_gpio,
+ &magician_camera,
};
static struct gpio magician_global_gpios[] = {
@@ -984,6 +1042,8 @@ static struct gpio magician_global_gpios[] = {
{ GPIO106_MAGICIAN_LCD_DCDC_NRESET, GPIOF_OUT_INIT_LOW, "LCD DCDC nreset" },
{ GPIO104_MAGICIAN_LCD_VOFF_EN, GPIOF_OUT_INIT_LOW, "LCD VOFF enable" },
{ GPIO105_MAGICIAN_LCD_VON_EN, GPIOF_OUT_INIT_LOW, "LCD VON enable" },
+ { GPIO57_MAGICIAN_CAM_RESET, GPIOF_OUT_INIT_HIGH, "Camera reset" },
+ { GPIO116_MAGICIAN_nCAM_EN, GPIOF_OUT_INIT_HIGH, "Camera power" },
};
static void __init magician_init(void)
@@ -1030,6 +1090,7 @@ static void __init magician_init(void)
pxa2xx_set_spi_info(2, &magician_spi_info);
spi_register_board_info(ARRAY_AND_SIZE(ads7846_spi_board_info));
+ pxa_set_camera_info(&magician_pxacamera_pdata);
}
MACHINE_START(MAGICIAN, "HTC Magician")
--
1.7.12.1
WARNING: multiple messages have this Message-ID (diff)
From: Petr Cvek <petr.cvek@tul.cz>
To: robert.jarzmik@free.fr, philipp.zabel@gmail.com,
daniel@zonque.org, haojian.zhuang@gmail.com,
linux@arm.linux.org.uk
Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 19/26] ARM: pxa: magician: Add support for Omnivision OV9640 camera
Date: Mon, 28 Sep 2015 23:38:45 +0200 [thread overview]
Message-ID: <5609B365.4060307@tul.cz> (raw)
In-Reply-To: <cover.1443472089.git.petr.cvek@tul.cz>
This patch adds support for an OV9640 camera to the HTC Magician machine.
Signed-off-by: Petr Cvek <petr.cvek@tul.cz>
---
arch/arm/mach-pxa/magician.c | 61 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index 450f35f..d844b9c 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -49,6 +49,9 @@
#include <linux/spi/pxa2xx_spi.h>
#include <linux/spi/ads7846.h>
+#include <linux/platform_data/camera-pxa.h>
+#include <media/soc_camera.h>
+
#include "devices.h"
#include "generic.h"
@@ -960,6 +963,60 @@ static struct spi_board_info ads7846_spi_board_info[] __initdata = {
};
/*
+ * SoC Camera for OV9640 chip
+ */
+
+static struct pxacamera_platform_data magician_pxacamera_pdata = {
+ .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 |
+ PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN,
+ .mclk_10khz = 4800,
+};
+
+static int magician_camera_power(struct device *dev, int power)
+{
+ pr_debug("Camera power = %i\n", power);
+
+ gpio_set_value(GPIO116_MAGICIAN_nCAM_EN, !power);
+ mdelay(3);
+
+ return 0;
+}
+
+static int magician_camera_reset(struct device *dev)
+{
+ pr_debug("Camera reset\n");
+
+ gpio_set_value(GPIO57_MAGICIAN_CAM_RESET, 1);
+ mdelay(3);
+ gpio_set_value(GPIO57_MAGICIAN_CAM_RESET, 0);
+ mdelay(3);
+
+ return 0;
+}
+
+static struct i2c_board_info magician_camera_i2c_board_info = {
+ I2C_BOARD_INFO("ov9640", 0x30),
+ .flags = I2C_CLIENT_SCCB,
+};
+
+static struct soc_camera_link magician_camera_iclink = {
+ .bus_id = 0,
+ .flags = SOCAM_DATAWIDTH_8,
+ .i2c_adapter_id = 0,
+ .board_info = &magician_camera_i2c_board_info,
+ .power = magician_camera_power,
+ .reset = magician_camera_reset,
+};
+
+static struct platform_device magician_camera = {
+ .name = "soc-camera-pdrv",
+ .id = 0,
+ .dev = {
+ .platform_data = &magician_camera_iclink,
+ },
+};
+
+/*
* Platform devices
*/
@@ -974,6 +1031,7 @@ static struct platform_device *devices[] __initdata = {
&power_supply,
&strataflash,
&leds_gpio,
+ &magician_camera,
};
static struct gpio magician_global_gpios[] = {
@@ -984,6 +1042,8 @@ static struct gpio magician_global_gpios[] = {
{ GPIO106_MAGICIAN_LCD_DCDC_NRESET, GPIOF_OUT_INIT_LOW, "LCD DCDC nreset" },
{ GPIO104_MAGICIAN_LCD_VOFF_EN, GPIOF_OUT_INIT_LOW, "LCD VOFF enable" },
{ GPIO105_MAGICIAN_LCD_VON_EN, GPIOF_OUT_INIT_LOW, "LCD VON enable" },
+ { GPIO57_MAGICIAN_CAM_RESET, GPIOF_OUT_INIT_HIGH, "Camera reset" },
+ { GPIO116_MAGICIAN_nCAM_EN, GPIOF_OUT_INIT_HIGH, "Camera power" },
};
static void __init magician_init(void)
@@ -1030,6 +1090,7 @@ static void __init magician_init(void)
pxa2xx_set_spi_info(2, &magician_spi_info);
spi_register_board_info(ARRAY_AND_SIZE(ads7846_spi_board_info));
+ pxa_set_camera_info(&magician_pxacamera_pdata);
}
MACHINE_START(MAGICIAN, "HTC Magician")
--
1.7.12.1
next prev parent reply other threads:[~2015-09-28 21:38 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1443472089.git.petr.cvek@tul.cz>
2015-09-28 21:09 ` [PATCH v4 01/26] ARM: pxa: magician: Fix indentation in machine files Petr Cvek
2015-09-28 21:09 ` Petr Cvek
2015-10-03 12:14 ` Philipp Zabel
2015-10-03 12:14 ` Philipp Zabel
2015-09-28 21:10 ` [PATCH v4 02/26] ARM: pxa: magician: Change comments to be more informative Petr Cvek
2015-09-28 21:10 ` Petr Cvek
2015-10-03 12:19 ` Philipp Zabel
2015-10-03 12:19 ` Philipp Zabel
2015-10-13 20:08 ` Robert Jarzmik
2015-10-13 20:08 ` Robert Jarzmik
2015-09-28 21:10 ` [PATCH v4 03/26] ARM: pxa: magician: Print more specific error message for global GPIOs Petr Cvek
2015-09-28 21:10 ` Petr Cvek
2015-10-03 12:19 ` Philipp Zabel
2015-10-03 12:19 ` Philipp Zabel
2015-09-28 21:11 ` [PATCH v4 04/26] ARM: pxa: magician: Optimize debug messages for LCD power Petr Cvek
2015-09-28 21:11 ` Petr Cvek
2015-10-03 12:20 ` Philipp Zabel
2015-10-03 12:20 ` Philipp Zabel
2015-09-28 21:11 ` [PATCH v4 05/26] ARM: pxa: magician: Change description of LCD power GPIO Petr Cvek
2015-09-28 21:11 ` Petr Cvek
2015-10-03 12:21 ` Philipp Zabel
2015-10-03 12:21 ` Philipp Zabel
2015-09-28 21:15 ` [PATCH v4 06/26] ARM: pxa: magician: Add new discovered EGPIO pins Petr Cvek
2015-09-28 21:15 ` Petr Cvek
2015-10-03 12:23 ` Philipp Zabel
2015-10-03 12:23 ` Philipp Zabel
2015-09-28 21:15 ` [PATCH v4 07/26] ARM: pxa: magician: Fix HTC Magician pin mux definitions Petr Cvek
2015-09-28 21:15 ` Petr Cvek
2015-10-03 12:30 ` Philipp Zabel
2015-10-03 12:30 ` Philipp Zabel
2015-10-05 2:15 ` Petr Cvek
2015-10-05 2:15 ` Petr Cvek
2015-10-13 20:09 ` Robert Jarzmik
2015-10-13 20:09 ` Robert Jarzmik
2015-09-28 21:15 ` [PATCH v4 08/26] ARM: pxa: magician: Rename abstract LCD GPIOs Petr Cvek
2015-09-28 21:15 ` Petr Cvek
2015-10-03 12:31 ` Philipp Zabel
2015-10-03 12:31 ` Philipp Zabel
2015-09-28 21:16 ` [PATCH v4 09/26] ARM: pxa: magician: Optimize powerup delays for Samsung LCD Petr Cvek
2015-09-28 21:16 ` Petr Cvek
2015-10-03 12:32 ` Philipp Zabel
2015-10-03 12:32 ` Philipp Zabel
2015-09-28 21:32 ` [PATCH v4 10/26] ARM: pxa: magician: Optimize Samsung LCD refresh to 50Hz Petr Cvek
2015-09-28 21:32 ` Petr Cvek
2015-10-03 12:33 ` Philipp Zabel
2015-10-03 12:33 ` Philipp Zabel
2015-09-28 21:32 ` [PATCH v4 11/26] ARM: pxa: magician: Optimize EGPIO initial values Petr Cvek
2015-09-28 21:32 ` Petr Cvek
2015-10-03 12:35 ` Philipp Zabel
2015-10-03 12:35 ` Philipp Zabel
2015-10-07 19:45 ` Robert Jarzmik
2015-10-07 19:45 ` Robert Jarzmik
2015-09-28 21:32 ` [PATCH v4 12/26] ARM: pxa: magician: Rename charger cable detection EGPIOs Petr Cvek
2015-09-28 21:32 ` Petr Cvek
2015-10-03 12:38 ` Philipp Zabel
2015-10-03 12:38 ` Philipp Zabel
2015-10-09 2:33 ` Petr Cvek
2015-10-09 2:33 ` Petr Cvek
2015-09-28 21:33 ` [PATCH v4 13/26] ARM: pxa: magician: Fix and add charging detection functions Petr Cvek
2015-09-28 21:33 ` Petr Cvek
2015-09-28 21:33 ` [PATCH v4 14/26] ARM: pxa: magician: Fix platform data for both PXA27x I2C controllers Petr Cvek
2015-09-28 21:33 ` Petr Cvek
2015-10-03 12:41 ` Philipp Zabel
2015-10-03 12:41 ` Philipp Zabel
2015-09-28 21:34 ` [PATCH v4 15/26] ARM: pxa: magician: Fix redundant GPIO request for pxaficp_ir Petr Cvek
2015-09-28 21:34 ` Petr Cvek
2015-09-28 21:34 ` [PATCH v4 16/26] ARM: pxa: magician: Fix support for Intel Strata NOR Flash Petr Cvek
2015-09-28 21:34 ` Petr Cvek
2015-09-28 21:38 ` [PATCH v4 17/26] ARM: pxa: magician: Fix wrongly enabled USB host ports Petr Cvek
2015-09-28 21:38 ` Petr Cvek
2015-10-03 12:45 ` Philipp Zabel
2015-10-03 12:45 ` Philipp Zabel
2015-10-05 2:03 ` Petr Cvek
2015-10-05 2:03 ` Petr Cvek
2015-09-28 21:38 ` [PATCH v4 18/26] ARM: pxa: magician: Add support for ADS7846 Petr Cvek
2015-09-28 21:38 ` Petr Cvek
2015-10-03 12:49 ` Philipp Zabel
2015-10-03 12:49 ` Philipp Zabel
2015-10-12 4:39 ` Petr Cvek
2015-10-12 4:39 ` Petr Cvek
2015-09-28 21:38 ` Petr Cvek [this message]
2015-09-28 21:38 ` [PATCH v4 19/26] ARM: pxa: magician: Add support for Omnivision OV9640 camera Petr Cvek
2015-10-03 12:50 ` Philipp Zabel
2015-10-03 12:50 ` Philipp Zabel
2015-10-07 19:49 ` Robert Jarzmik
2015-10-07 19:49 ` Robert Jarzmik
2015-10-08 6:05 ` Petr Cvek
2015-10-08 6:05 ` Petr Cvek
2015-09-28 21:39 ` [PATCH v4 20/26] ARM: pxa: magician: Add support for MAX1587A Vcore regulator Petr Cvek
2015-09-28 21:39 ` Petr Cvek
2015-10-03 12:57 ` Philipp Zabel
2015-10-03 12:57 ` Philipp Zabel
2015-10-13 20:16 ` Robert Jarzmik
2015-10-13 20:16 ` Robert Jarzmik
2015-09-28 21:39 ` [PATCH v4 21/26] ARM: pxa: magician: Add support for PXA27x UDC Petr Cvek
2015-09-28 21:39 ` Petr Cvek
2015-10-03 12:58 ` Philipp Zabel
2015-10-03 12:58 ` Philipp Zabel
2015-10-13 20:29 ` Robert Jarzmik
2015-10-13 20:29 ` Robert Jarzmik
2015-09-28 21:39 ` [PATCH v4 22/26] ARM: pxa: magician: Remove pdata for pasic3-leds Petr Cvek
2015-09-28 21:39 ` Petr Cvek
2015-10-03 12:59 ` Philipp Zabel
2015-10-03 12:59 ` Philipp Zabel
2015-10-13 20:32 ` Robert Jarzmik
2015-10-13 20:32 ` Robert Jarzmik
2015-09-28 21:40 ` [PATCH v4 23/26] ARM: pxa: magician: Remove definition of the STUART port Petr Cvek
2015-09-28 21:40 ` Petr Cvek
2015-09-28 21:40 ` [PATCH v4 24/26] ARM: pxa: magician: Add debug message for backlight brightness function Petr Cvek
2015-09-28 21:40 ` Petr Cvek
2015-09-28 21:40 ` [PATCH v4 25/26] ARM: pxa: magician: Add missing regulator for PWM backlight Petr Cvek
2015-09-28 21:40 ` Petr Cvek
2015-10-03 13:02 ` Philipp Zabel
2015-10-03 13:02 ` Philipp Zabel
2015-09-28 21:42 ` [PATCH v4 26/26] ARM: pxa: magician: Move platform_add_devices() to the end of magician_init() Petr Cvek
2015-09-28 21:42 ` Petr Cvek
2015-10-03 13:04 ` Philipp Zabel
2015-10-03 13:04 ` Philipp Zabel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5609B365.4060307@tul.cz \
--to=petr.cvek@tul.cz \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.