Andy, 0x0180 and 0x00c0 enables the LED on board, however I could not hear audio for any of the bits. Thanks and regards, Rajesh
On Sat, Nov 21, 2009 at 11:56 PM, Andy Walls <[email protected]> wrote: > On Sat, 2009-11-21 at 18:53 +0300, Rajesh Padalia wrote: >> Andy, >> I am back and have started testing. >> Some of clarifications: >> 1. I am trying different combination when video capture is on (mplayer >> /dev/video0). > > Yes. There will be a short delay of a few seconds before you will be > able to tell if a change of GPIO lines changes the audio. > > >> 1. Should I try different combinations for 'dir' .i.e. from 0xc000, >> 0xb000....0x0000 and even 0xffff? >> 2. You recommended to try 'val' from 0xc000 to 0x0000. Do I have to >> try values like 0xf000, 0xcd00, 0x0010? > > Try not to top post. Look below ..... > >> BTW, no response from Interact-TV inspite of reminder. >> Thanks for your help. >> Regards, >> Rajesh >> > >> >> >> >>> 2. The one close to crystal is : 74HC4053D, AG124 29, URO 0348D >> >>> The other one is: 5333KZ, GZ0337 >> >> >> >> OK those chips are what I needed to know: >> >> >> >> Philips/NXP 74HC4053 Triple 2:1 analog multiplexer: >> >> http://www.nxp.com/acrobat_download/datasheets/74HC_HCT4053_4.pdf >> >> >> >> Cirrus Logic CS5333 24 bit, 96 kHz stereo A/D converter: >> >> http://www.digchip.com/datasheets/download_datasheet.php?id=228624&part-number=CDB5333 >> >> >> >> This is where the information from Ineteract-TV could save everyone a >> >> lot of time and effort. *sigh* >> >> >> >> Oh, well. I have created a preliminary card entry for the PV-947D in my >> >> repository here: >> >> >> >> http://linuxtv.org/hg/~awalls/ivtv-provideo/ >> >> >> >> >> >> The easiest thing to do is to download the tar.gz archive from this >> >> link: >> >> >> >> http://linuxtv.org/hg/~awalls/ivtv-provideo/archive/tip.tar.gz >> >> >> >> And build and install the v4l-dvb subsystem modules: >> >> >> >> $ tar -xvf tip.tar.gz >> >> $ cd (into the newly extarcted archive) >> >> $ make >> >> $ cd v4l2-apps >> >> $ make (it will fail, but ivtv-ctl will get built) >> >> $ cd .. >> >> $ su root >> >> # make install >> >> # make unload; make unload >> >> # /sbin/modprobe ivtv >> >> >> >> (*WARNING* The 'make install' step will overwrite all of you existing >> >> v4l-dvb (media subsystem) modules under /lib/modules/`uname -r` . Back >> >> them up if you wan to save them.) >> >> >> >> Now ivtv should at least automatically recognize your card. >> >> >> >> And now the fun part: *you* have to experiment and fix the card >> >> definition. >> >> >> >> 1. You will have to figure out which of the 8 CX25843 analog inputs >> >> correspond to which of the following: >> >> >> >> a. RF tuner assembly CVBS (composite) video >> >> b. RF Sound IF (SIF) audio >> >> c. Rear bracket CVBS (composite) video >> >> d. Rear bracket SVideo Luma (Y) video component >> >> e. Rear bracket SVideo Chroma (C) video component >> >> >> >> I assume you'll just ignore the internal black video connector with pins >> >> labeled Y (Luma or CVBS?), C (Chroma), AV (?), and G (ground) as these >> >> would be for Compsite 2 and SVideo 2. >> >> >> >> >> >> 2. You will have to figure out how to set the GPIO pin direction, and >> >> masks for audio routing: >> >> >> >> a. RF tuner baseband audio (if you can't use SIF audio for some reason) >> >> b. Rear bracket Line-in 1 L and R audio >> >> >> >> I assume you'll ignore the the internal black video connector with pins >> >> labeled L (Left), R (Right) and G (ground) as these would be Line in 2 >> >> audio. >> >> >> >> >> >> OK. So that's the task. Now how do you do it? You'll need to edit >> >> >> >> linux/drivers/media/video/ivtv/ivtv-cards.c >> >> >> >> to fix up the card entry for the Provideo PV-947D. It currently looks >> >> Like this: >> >> >> >> static const struct ivtv_card ivtv_card_provideo = { >> >> .type = IVTV_CARD_PROVIDEO_PV947, >> >> .name = "Provideo Multimedia PV-947D", >> >> .v4l2_capabilities = IVTV_CAP_ENCODER, >> >> .hw_video = IVTV_HW_CX25840, >> >> .hw_audio = IVTV_HW_CX25840, >> >> .hw_audio_ctrl = IVTV_HW_CX25840, >> >> .hw_muxer = IVTV_HW_GPIO, >> >> .hw_all = IVTV_HW_CX25840 | IVTV_HW_TUNER | IVTV_HW_GPIO, >> >> .video_inputs = { >> >> { IVTV_CARD_INPUT_VID_TUNER, 0, CX25840_COMPOSITE2 }, >> >> /* Rear Bracket connectors */ >> >> { IVTV_CARD_INPUT_SVIDEO1, 1, >> >> CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4 }, >> >> { IVTV_CARD_INPUT_COMPOSITE1, 1, CX25840_COMPOSITE1 }, >> >> /* Internal Video-In connectors */ >> >> { IVTV_CARD_INPUT_SVIDEO2, 2, >> >> CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4 }, >> >> { IVTV_CARD_INPUT_COMPOSITE2, 2, CX25840_COMPOSITE1 }, >> >> }, >> >> .audio_inputs = { >> >> { IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO5, 0 >> >> }, >> >> { IVTV_CARD_INPUT_LINE_IN1, CX25840_AUDIO_SERIAL, 1 >> >> }, >> >> { IVTV_CARD_INPUT_LINE_IN2, CX25840_AUDIO_SERIAL, 2 >> >> }, >> >> }, >> >> .tuners = { >> >> { .std = V4L2_STD_NTSC, .tuner = TUNER_PHILIPS_FQ1236A_MK4 >> >> }, >> >> }, >> >> /* >> >> * The 74HC4053 Triple 2:1 multiplexer must be controlled by 3 >> >> GPIOs. >> >> * It is likely the mux switches Audio L and R between the rear >> >> bracket >> >> * connector and the internal connectors. >> >> * It is unclear if the third unit in the triple mux switches Y or >> >> C or >> >> * something else. >> >> * >> >> * The board also has an LED (D2) which is likely controlled by a >> >> GPIO >> >> */ >> >> .gpio_init = { .direction = 0x0000, .initial_value = 0 }, >> >> .gpio_audio_input = { .mask = 0x0000, >> >> .tuner = 0x0000, >> >> .linein = 0x0000, /* Line In 1: rear >> >> bracket */ >> >> .radio = 0x0000 }, /* Line in 2: internal >> >> con */ >> >> .pci_list = ivtv_pci_provideo, >> >> .i2c = &ivtv_i2c_std, >> >> }; >> >> >> >> >> >> >> >> >> >> 1. I assume you don't have an NTSC-M RF source available to you, so >> >> we'll forget about the RF tuner for now. That means we won't be editing >> >> the lines that look like these: >> >> >> >> { IVTV_CARD_INPUT_VID_TUNER, 0, CX25840_COMPOSITE2 }, >> >> >> >> { IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO5, 0 }, >> >> >> >> .tuner = 0x0000, >> >> >> >> 2. Set the card using v4l2-ctl to "Composite 1" and the proper video >> >> standard for the incoming signal (PAL, SECAM, NTSC) on the rear bracket >> >> connector. If you have color video that looks correct go to the next >> >> step. If not change this line: >> >> >> >> { IVTV_CARD_INPUT_COMPOSITE1, 1, CX25840_COMPOSITE1 }, >> >> >> >> so the last argument is CX25840_COMPOSITE2, rebuild the driver, >> >> reinstall the drivers, unload the ivtv module, load the new ivtv module >> >> and test again. If that doesn't work continue to test >> >> CX24840_COMPOSITE3 through 8. One of them should work. >> >> >> >> >> >> 3. Set the card using v4l2-ctl to "SVideo 1" and the proper video >> >> standard for the incoming SVideo signal (PAL, SECAM, NTSC) on the rear >> >> bracket connector. If you have color video that looks correct go to the >> >> next step. Otherwise change this line: >> >> >> >> { IVTV_CARD_INPUT_SVIDEO1, 1, >> >> CX25840_SVIDEO_LUMA3 | CX25840_SVIDEO_CHROMA4 }, >> >> >> >> so the last argument's LUMA value is CX25840_SVIDEO_LUMA1. rebuild the >> >> driver, reinstall the drivers, unload the ivtv module, load the new ivtv >> >> module and test again. If that doesn't work continue to test >> >> CX25840_SVIDEO_LUMA2 through 8, skipping the value you found to be >> >> correct for video in the previous step(s). One of them should work such >> >> that you get at least a good black and white picture. >> >> >> >> Once you have Black and White SVideo, repeat the process with the >> >> CX25840_SVIDEO_CHROMAn values, skipping the values you already know are >> >> correct for previous step(s), until you get good color. >> >> >> >> >> >> >> >> 4. You will need to determine the GPIO output settings for to make line >> >> in 1 audio work. Using v4l2-ctl set the iput to "Composite 1" or >> >> "SVideo 1" and start a capture. As root, from where you built the >> >> drivers, run >> >> >> >> # v4l2-apps/util/ivtv-ctl -d /dev/video0 --list-gpio >> >> >> >> to show that state of the 16 GPIO pins. They should all have their >> >> direction set as input, and some random garbage should be read in for >> >> the in and out values. You will now use >> >> >> >> # v4l2-apps/util/ivtv-ctl -d /dev/video0 --set-gpio >> >> dir=0xuuuu,val=0xvvvv >> >> # v4l2-apps/util/ivtv-ctl -d /dev/video0 --list-gpio >> >> >> >> To set 2 GPIO output pins (one for Line in 1 L audio, one for Line in 1 >> >> R audio) to a high level (or maybe a low level) to hear audio from Line >> >> in 1. I would start with the highest bits first: >> >> >> >> # v4l2-apps/util/ivtv-ctl -d /dev/video0 --set-gpio >> >> dir=0xc000,val=0xc000 >> >> # v4l2-apps/util/ivtv-ctl -d /dev/video0 --set-gpio >> >> dir=0xc000,val=0x0000 >> >> >> >> and work my way down to the lowest bits. (One of the 16 bit will likely >> >> end up controlling the LED on the board.) > > You will want to try 2 bits at at time: setting their direction as > output and setting their output as either both high(1) or both as low > (0). > > So use these values: > > 0xc000 (1100 0000 0000 0000) > 0x6000 (0110 0000 0000 0000) > 0x3000 (0011 0000 0000 0000) > 0x1800 (0001 1000 0000 0000) > 0x0c00 (0000 1100 0000 0000) > 0x0600 (0000 0110 0000 0000) > 0x0300 (0000 0011 0000 0000) > 0x0180 (0000 0001 1000 0000) > 0x00c0 (0000 0000 1100 0000) > 0x0060 (0000 0000 0110 0000) > 0x0030 (0000 0000 0011 0000) > 0x0018 (0000 0000 0001 1000) > 0x000c (0000 0000 0000 1100) > 0x0006 (0000 0000 0000 0110) > 0x0003 (0000 0000 0000 0011) > > Report back which of those 15 values: > > 1. enables left audio from the rear panel connector > 2. enables right audio from the rear panel connector > 3. enables the LED (if you can see it) > > > If a value doesn't seem to have an effect, do not leave those bits set > with their direction as "output" (1) for a long time to avoid any > possible damage to the card. > > Regards, > Andy > >> >> One you find the bits that give you good Line in 1 audio: you will edit >> >> these lines in the card entry: >> >> >> >> .gpio_init = { .direction = 0x0000, .initial_value = 0 }, >> >> .gpio_audio_input = { .mask = 0x0000, >> >> .tuner = 0x0000, >> >> .linein = 0x0000, /* Line In 1: rear >> >> bracket */ >> >> .radio = 0x0000 }, /* Line in 2: internal >> >> con */ >> >> >> >> To fix the direction, mask, and linein value. >> >> >> >> >> >> Good luck. >> >> >> >> Regards, >> >> Andy >> >> >> >> >> >>> On Thu, Nov 12, 2009 at 2:18 AM, Andy Walls <[email protected]> wrote: >> >>> > On Wed, 2009-11-11 at 19:55 +0300, Rajesh Padalia wrote: >> >>> >> Hi Andy, >> >>> >> It works! I was able to capture video. I am yet to get Audio. Any >> >>> >> idea? >> >>> >> ------------------------------- >> >>> > >> >>> > 1. Please provide the output of >> >>> > >> >>> > $ v4l2-ctl --log-status >> >>> > >> >>> > while capturing TV. >> >>> > >> >>> > 2. Also could you provide the chip numbers from the two black chips >> >>> > next to the end of the metal tuner can just above the 27.00 MHz >> >>> > crystal? >> >>> > I can't read them from the photograph. One looks like it has a >> >>> > "Philips" logo, but I can't tell much else. >> >>> > >> >>> > 3. Make sure you have the firmware for the cx25843 chip in the proper >> >>> > firmware directory for your distirbution. You will never get broadcast >> >>> > audio without that firmware loaded into the CX25843. >> >>> > >> >>> > Regards, >> >>> > Andy >> >>> > >> >>> >> --------------------------------------------------------------------------------------------- >> >>> >> Thanks for your help. >> >>> >> Rajesh >> >> >> >> >> >> >> >> >> > >> > > > _______________________________________________ ivtv-devel mailing list [email protected] http://ivtvdriver.org/mailman/listinfo/ivtv-devel
