From patchwork Tue Jan 12 21:28:22 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Trimarchi X-Patchwork-Id: 2442 Return-path: Envelope-to: mchehab@infradead.org Delivery-date: Tue, 12 Jan 2010 21:28:30 +0000 Received: from bombadil.infradead.org [18.85.46.34] by pedra with IMAP (fetchmail-6.3.6) for (single-drop); Tue, 12 Jan 2010 19:41:55 -0200 (BRST) Received: from vger.kernel.org ([209.132.180.67]) by bombadil.infradead.org with esmtp (Exim 4.69 #1 (Red Hat Linux)) id 1NUoHu-0006Qn-O3; Tue, 12 Jan 2010 21:28:30 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751578Ab0ALV22 (ORCPT + 1 other); Tue, 12 Jan 2010 16:28:28 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751644Ab0ALV21 (ORCPT ); Tue, 12 Jan 2010 16:28:27 -0500 Received: from ms01.sssup.it ([193.205.80.99]:55040 "EHLO sssup.it" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751535Ab0ALV20 (ORCPT ); Tue, 12 Jan 2010 16:28:26 -0500 Received: from [193.205.82.7] (HELO gandalf.sssup.it) by sssup.it (CommuniGate Pro SMTP 4.1.8) with ESMTP-TLS id 56853290; Tue, 12 Jan 2010 22:26:18 +0100 Received: from [10.30.3.179] (vpn179.retis [10.30.3.179]) by gandalf.sssup.it (8.12.10/8.12.10) with ESMTP id o0CLSMeI006296 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 12 Jan 2010 22:28:23 +0100 Message-ID: <4B4CE976.5050503@panicking.kicks-ass.org> Date: Tue, 12 Jan 2010 22:28:22 +0100 From: Michael Trimarchi User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707) MIME-Version: 1.0 To: "Aguirre, Sergio" CC: Nishanth Menon , "linux-omap@vger.kernel.org" , "linux-media@vger.kernel.org" Subject: Re: ISP OMAP3 camera support ov7690 References: <4AC7DAAD.2020203@panicking.kicks-ass.org> <4AC8B764.2030101@gmail.com> <4AC93DC9.2080809@panicking.kicks-ass.org> <4B4C75F0.3060108@panicking.kicks-ass.org> <4B4CB241.6050603@panicking.kicks-ass.org> In-Reply-To: <4B4CB241.6050603@panicking.kicks-ass.org> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Hi, Michael Trimarchi wrote: > Hi all, > > Aguirre, Sergio wrote: >> >>> -----Original Message----- >>> From: Michael Trimarchi [mailto:michael@panicking.kicks-ass.org] >>> Sent: Tuesday, January 12, 2010 7:15 AM >>> To: Aguirre, Sergio >>> Cc: Nishanth Menon; linux-omap@vger.kernel.org; linux- >>> media@vger.kernel.org >>> Subject: Re: ISP OMAP3 camera support ov7690 >>> >>> Hi all, >>> >>> Now I have a good camera pcb and I can test again the driver. My >>> board is >>> an overo gumstix board. >> >> Excellent! >> >> Please let me know if you're having issues with it. >> >> Thanks for your interest! >> >> Regards, >> Sergio >> > > maybe I have done some mistake during writing the email, but I have > asked few things inside the email. > The camera part is ok because I have written a driver using the ov538 > bridge but I have some problem > in configuring the isp omap3 device. It opens correctly the camera, and > set xclk frequency. Then > seems that vsync and hsync are not routed to the engine because I don't > receive any interrupt. why they are disabled. Are they disabled in the latest git code? how can I get the vrise? .hsvs_syncdetect = ISPCTRL_SYNC_DETECT_VSFALL, Michael >>> Aguirre Rodriguez, Sergio Alberto wrote: >>>> Hi Michael, >>>> >>>>> -----Original Message----- >>>>> From: linux-omap-owner@vger.kernel.org >>>>> [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of michael >>>>> Sent: Sunday, October 04, 2009 7:29 PM >>>>> To: Nishanth Menon >>>>> Cc: linux-omap@vger.kernel.org; linux-media@vger.kernel.org >>>>> Subject: Re: ISP OMAP3 camera support ov7690 >>>>> >>>>> Hi, >>>>> >>>>> cc: linux-media >>>>> >>>>> Nishanth Menon wrote: >>>>>> michael said the following on 10/03/2009 06:13 PM: >>>>>>> I'm writing a driver to support the ov7690 camera and I have some >>>>>>> question about the meaning of: >>>>>>> >>>>>>> - datalane configuration >>>>>> CSI2 Data lanes - each CSI2 lane is a differential pair. >>>>> And, at least 1 >>>>>> clock and data lane is used in devices. >>>>> Sorry can you explain a little bit more. I have the camera >>>>> connected to the >>>>> cam_hs and cam_vs and the data is 8Bit. I use the the isp init >>>>> structure. The sccb bus works great and I can send >>>>> configuration to it, >>>>> but I don't receive any interrupt from the ics, seems that it >>>>> doen't see >>>>> the transaction: >>>>> >>>>> The ISPCCDC: ###CCDC SYN_MODE=0x31704 seems ok. >>>>> >>>>> >>>>> static struct isp_interface_config ov7690_if_config = { >>>>> .ccdc_par_ser = ISP_CSIA, >>>>> .dataline_shift = 0x0, >>>>> .hsvs_syncdetect = ISPCTRL_SYNC_DETECT_VSFALL, >>>> Can you try with ISPCTRL_SYNC_DETECT_VSRISE ? >>>> >>>>> .strobe = 0x0, >>>>> .prestrobe = 0x0, >>>>> .shutter = 0x0, >>>>> .wenlog = ISPCCDC_CFG_WENLOG_AND, >>>>> .wait_hs_vs = 0x4, >>>>> .raw_fmt_in = ISPCCDC_INPUT_FMT_GR_BG, >>>>> .u.csi.crc = 0x0, >>>>> .u.csi.mode = 0x0, >>>>> .u.csi.edge = 0x0, >>>>> .u.csi.signalling = 0x0, >>>>> .u.csi.strobe_clock_inv = 0x0, >>>>> .u.csi.vs_edge = 0x0, >>>>> .u.csi.channel = 0x0, >>>>> .u.csi.vpclk = 0x1, >>>>> .u.csi.data_start = 0x0, >>>>> .u.csi.data_size = 0x0, >>>>> .u.csi.format = V4L2_PIX_FMT_YUYV, >>>>> }; >>>>> >>>>> and I don't know the meaning of >>>>> >>>>> lanecfg.clk.pol = OV7690_CSI2_CLOCK_POLARITY; >>>>> lanecfg.clk.pos = OV7690_CSI2_CLOCK_LANE; >>>>> lanecfg.data[0].pol = OV7690_CSI2_DATA0_POLARITY; >>>>> lanecfg.data[0].pos = OV7690_CSI2_DATA0_LANE; >>>>> lanecfg.data[1].pol = OV7690_CSI2_DATA1_POLARITY; >>>>> lanecfg.data[1].pos = OV7690_CSI2_DATA1_LANE; >>>>> lanecfg.data[2].pol = 0; >>>>> lanecfg.data[2].pos = 0; >>>>> lanecfg.data[3].pol = 0; >>>>> lanecfg.data[3].pos = 0; >>>>> >>>> This is the physical connection details: >>>> >>>> - The .pol field stands for the differntial pair polarity. >>>> (i.e. the order in which the negative and positive connections >>>> are pugged in to the CSI2 ComplexIO module) >>> What exact the meaning of the pol, sorry? I have a signal that is >>> connected >>> to a pin. If the pos is avalaible can I use it? >>> It's not important how to route the signal but don't route on the same >>> lane. >>> Is it right? >>> >>> This is the timing of the camera so I can check signal, but I don't >>> receive interrupt >>> of isp engine >>> >>> The camera is direct connected to the >>> camera omap camera signal and using the oscilloscope I can see the hs/vs >>> signal >>> The hs is low and go up, like the vs signal. I have only one camera >>> with that use D0 to D7 data bit. >>> >>> http://www.gumstix.net/Hardware/view/I/O-connectors-cabling/Gumstix-Overo- >>> >>> 27-pin-connector-J5-to-manage-camera-controls/112.html >>> >>> static struct isp_interface_config ov7690_if_config = { >>> .ccdc_par_ser = ISP_CSIA, >>> .dataline_shift = 0x0, >>> .hsvs_syncdetect = ISPCTRL_SYNC_DETECT_VSRISE, >>> .strobe = 0x0, >>> .prestrobe = 0x0, >>> .shutter = 0x0, >>> .wenlog = ISPCCDC_CFG_WENLOG_AND, >>> .wait_hs_vs = 0x4, >>> .raw_fmt_in = ISPCCDC_INPUT_FMT_GR_BG, >>> .u.csi.crc = 0x0, >>> .u.csi.mode = 0x0, >>> .u.csi.edge = 0x0, >>> .u.csi.signalling = 0x0, >>> .u.csi.strobe_clock_inv = 0x0, >>> .u.csi.vs_edge = 0x0, >>> .u.csi.channel = 0x0, >>> .u.csi.vpclk = 0x1, >>> .u.csi.data_start = 0x0, >>> .u.csi.data_size = 0x0, >>> .u.csi.format = V4L2_PIX_FMT_YUYV, >>> }; >>> >>> This is my initial configuration >>> #define OV7690_CSI2_CLOCK_POLARITY 0 /* +/- pin order */ >>> #define OV7690_CSI2_DATA0_POLARITY 0 /* +/- pin order */ >>> #define OV7690_CSI2_DATA1_POLARITY 0 /* +/- pin order */ >>> #define OV7690_CSI2_CLOCK_LANE 1 /* Clock lane >>> position: 1 >>> */ >>> #define OV7690_CSI2_DATA0_LANE 2 /* Data0 lane >>> position: 2 >>> */ >>> #define OV7690_CSI2_DATA1_LANE 3 /* Data1 lane >>> position: 3 >>> */ >>> tim#define OV7690_CSI2_PHY_THS_TERM 2 >>> #define OV7690_CSI2_PHY_THS_SETTLE 23 >>> #define OV7690_CSI2_PHY_TCLK_TERM 0 >>> #define OV7690_CSI2_PHY_TCLK_MISS 1 >>> #define OV7690_CSI2_PHY_TCLK_SETTLE 14 >>> >>> With this clock polarity >>> >>> lanecfg.clk.pol = OV7690_CSI2_CLOCK_POLARITY; >>> lanecfg.clk.pos = OV7690_CSI2_CLOCK_LANE; >>> lanecfg.data[0].pol = OV7690_CSI2_DATA0_POLARITY; >>> lanecfg.data[0].pos = OV7690_CSI2_DATA0_LANE; >>> lanecfg.data[1].pol = OV7690_CSI2_DATA1_POLARITY; >>> lanecfg.data[1].pos = OV7690_CSI2_DATA1_LANE; >>> lanecfg.data[2].pol = 0; >>> lanecfg.data[2].pos = 0; >>> lanecfg.data[3].pol = 0; >>> lanecfg.data[3].pos = 0; >>> isp_csi2_complexio_lanes_config(&isp->isp_csi2, &lanecfg); >>> >>> Michael >> -- > > Regards Michael > >> To unsubscribe from this list: send the line "unsubscribe linux-media" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > --- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- a/drivers/media/video/isp/isp.c +++ b/drivers/media/video/isp/isp.c @@ -299,6 +299,7 @@ static void isp_enable_interrupts(struct device *dev) | IRQ0ENABLE_CSIA_IRQ | IRQ0ENABLE_CSIB_IRQ | IRQ0ENABLE_HIST_DONE_IRQ | IRQ0ENABLE_H3A_AWB_DONE_IRQ | IRQ0ENABLE_H3A_AF_DONE_IRQ + | IRQ0ENABLE_HS_VS_IRQ | isp->interrupts; if (CCDC_PREV_CAPTURE(isp)) @@ -328,6 +329,7 @@ static void isp_disable_interrupts(struct device *dev) | IRQ0ENABLE_CSIA_IRQ | IRQ0ENABLE_CSIB_IRQ | IRQ0ENABLE_HIST_DONE_IRQ | IRQ0ENABLE_H3A_AWB_DONE_IRQ | IRQ0ENABLE_H3A_AF_DONE_IRQ + | IRQ0ENABLE_HS_VS_IRQ | isp->interrupts); Adding this in the irq mask give me interrupt from the camera, but I don't undestarstand