This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Fail to open /dev/video1

Other Parts Discussed in Thread: TVP5158

Our processor is DRA74X, with 3.02.00.03 SDK version.

At our custom board, there is video converter(ADV7611), and it's 8-bit BT656 output directly connect to Vin-3a port of DRA74X. And DRA74X use i2c-1 to control this converter.

I already modify dts file to make a connection between vin3a & ADV7611. I can see /dev/video1 by " ls /dev/video* ", but after i use " v4l2-ctl --list-device ", there is no /dev/video1.

I also try to open it at my AP program, still fail. What is the possible reson to cause this?

Here is the boot log => 

5543.boot_log.txt
U-Boot SPL 2016.05-g9694c57-dirty (Jul 06 2018 - 16:04:55)
DRA752-GP ES2.0
no pinctrl for hs200_1_8v
no pinctrl for ddr_1_8v
@SD max clock = 10000000@
*** Warning - bad CRC, using default environment

Trying to boot from MMC1
*** Warning - bad CRC, using default environment

reading u-boot.img
reading u-boot.img
reading u-boot.img
reading u-boot.img


U-Boot 2016.05-g9694c57-dirty (Jul 06 2018 - 16:04:55 +0800)

CPU  : DRA752-GP ES2.0
Model: TI DRA742
Board: DRA74x EVM REV
DRAM:  2 GiB
NAND:  256 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment

current ID is 7
Warning: fastboot.board_rev: unknown board revision
GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
ERROR: cannot find partition: 'userdata'

at arch/arm/cpu/armv7/omap-common/utils.c:199/mmc_get_part_size()
Warning: fastboot.userdata_size: unable to calc
SCSI:  SATA link 0 timeout.
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
scanning bus for devices...
Found 0 device(s).
Net:
Warning: ethernet@48484000 using MAC address from ROM
eth0: ethernet@48484000
Hit any key to stop autoboot:  0
load MAN2020_original.dtb
load MAN2020_3g
switch to partitions #0, OK
mmc0 is current device
@SD max clock = 10000000@
SD/MMC found on device 0
reading boot.scr
** Unable to read file boot.scr **
reading uEnv.txt
222 bytes read in 3 ms (72.3 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc0 ...
@SD max clock = 10000000@
switch to partitions #0, OK
mmc0 is current device
@SD max clock = 10000000@
SD/MMC found on device 0
3651816 bytes read in 785 ms (4.4 MiB/s)
112109 bytes read in 86 ms (1.2 MiB/s)
Booting from mmc0 ...
Kernel image @ 0x82000000 [ 0x000000 - 0x37b8e8 ]
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8ffe1000, end 8ffff5ec ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.45-g0422030-dirty (hsuyz@hsuyz-VirtualBox) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #55 SMP PREEMPT Fri Jul 6 16:05:16 CST 2018
[    0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=30c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] Machine model: TI DRA742
[    0.000000] cma: Reserved 64 MiB at 0x00000000fac00000
[    0.000000] Forcing write-allocate cache policy for SMP
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] DRA752 ES2.0
[    0.000000] PERCPU: Embedded 11 pages/cpu @eed9f000 s14848 r8192 d22016 u45056
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 517952
[    0.000000] Kernel command line: console=ttyO3,115200n8 elevator=noop root=/dev/mmcblk0p2 rw rootwait earlyprintk fixrtc omapdrm.num_crtc=2 consoleblank=0 cma=64M rootfstype=ext4 snd.slots_reserved=1,1
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 1983276K/2078720K available (6663K kernel code, 364K rwdata, 2500K rodata, 336K init, 302K bss, 29908K reserved, 65536K cma-reserved, 1226752K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc08fb09c   (9165 kB)
[    0.000000]       .init : 0xc08fc000 - 0xc0950000   ( 336 kB)
[    0.000000]       .data : 0xc0950000 - 0xc09ab390   ( 365 kB)
[    0.000000]        .bss : 0xc09ad000 - 0xc09f8a78   ( 303 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] ti_dt_clocks_register: failed to lookup clock node gmac_gmii_ref_clk_div
[    0.000000] OMAP clockevent source: timer1 at 31475 Hz
[    0.000000] Architected cp15 timer(s) running at 5.90MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x15c70fb29, max_idle_ns: 440795202138 ns
[    0.000004] sched_clock: 56 bits at 5MHz, resolution 169ns, wraps every 4398046511093ns
[    0.000016] Switching to timer-based delay loop, resolution 169ns
[    0.000331] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
[    0.000339] OMAP clocksource: 32k_counter at 32768 Hz
[    0.000793] Console: colour dummy device 80x30
[    0.000810] WARNING: Your 'console=ttyO3' has been replaced by 'ttyS3'
[    0.000817] This ensures that you still see kernel messages. Please
[    0.000822] update your kernel commandline.
[    0.000835] Calibrating delay loop (skipped), value calculated using timer frequency.. 11.80 BogoMIPS (lpj=59016)
[    0.000847] pid_max: default: 32768 minimum: 301
[    0.000941] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000952] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001531] Initializing cgroup subsys io
[    0.001548] Initializing cgroup subsys memory
[    0.001573] Initializing cgroup subsys devices
[    0.001585] Initializing cgroup subsys freezer
[    0.001597] Initializing cgroup subsys perf_event
[    0.001608] Initializing cgroup subsys pids
[    0.001634] CPU: Testing write buffer coherency: ok
[    0.001845] /cpus/cpu@0 missing clock-frequency property
[    0.001862] /cpus/cpu@1 missing clock-frequency property
[    0.001872] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001909] Setting up static identity map for 0x800082c0 - 0x80008320
[    0.080107] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.080169] Brought up 2 CPUs
[    0.080183] SMP: Total of 2 processors activated (23.60 BogoMIPS).
[    0.080189] CPU: All CPU(s) started in HYP mode.
[    0.080195] CPU: Virtualization extensions available.
[    0.080579] devtmpfs: initialized
[    0.110989] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[    0.111991] omap_hwmod: l3_main_2 using broken dt data from ocp
[    0.309786] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.311303] pinctrl core: initialized pinctrl subsystem
[    0.312153] NET: Registered protocol family 16
[    0.313148] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.340224] cpuidle: using governor ladder
[    0.370249] cpuidle: using governor menu
[    0.378547] OMAP GPIO hardware version 0.1
[    0.382666] GPIO line 161 (radio_rst) hogged as output/low
[    0.385006] irq: no irq domain found for /ocp/l4@4a000000/scm@2000/pinmux@1400 !
[    0.401836] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[    0.401849] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[    0.412006] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.412016] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.412815] OMAP DMA hardware revision 0.0
[    0.451884] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
[    0.453059] edma 43300000.edma: memcpy is disabled
[    0.457801] edma 43300000.edma: TI EDMA DMA engine driver
[    0.464792] palmas 0-0058: IRQ missing: skipping irq request
[    0.481476] palmas 0-0058: Muxing GPIO a, PWM 0, LED 0
[    0.481597] @@@@1
[    0.481815] @@@@3
[    0.481827] @@@@4
[    0.481836] @@@@5
[    0.482191] @@@@6
[    0.482354] @@@@7
[    0.491128] @@@@8
[    0.553168] @@@@9(0)
[    0.553185] @@@@2
[    0.553332] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
[    0.553760] omap_i2c 48072000.i2c: bus 1 rev0.12 at 400 kHz
[    0.554124] omap_i2c 48060000.i2c: bus 2 rev0.12 at 400 kHz
[    0.554483] omap_i2c 4807a000.i2c: bus 3 rev0.12 at 400 kHz
[    0.554843] omap_i2c 4807c000.i2c: bus 4 rev0.12 at 400 kHz
[    0.555038] media: Linux media interface: v0.10
[    0.555088] Linux video capture interface: v2.00
[    0.555126] pps_core: LinuxPPS API ver. 1 registered
[    0.555133] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.555155] PTP clock support registered
[    0.555201] EDAC MC: Ver: 3.0.0
[    0.556001] Advanced Linux Sound Architecture Driver Initialized.
[    0.556902] clocksource: Switched to clocksource arch_sys_counter
[    0.567620] NET: Registered protocol family 2
[    0.568120] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.568183] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.568308] TCP: Hash tables configured (established 8192 bind 8192)
[    0.568364] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.568394] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.568610] NET: Registered protocol family 1
[    0.568852] RPC: Registered named UNIX socket transport module.
[    0.568861] RPC: Registered udp transport module.
[    0.568868] RPC: Registered tcp transport module.
[    0.568874] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.569938] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    0.572609] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.580361] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.581030] NFS: Registering the id_resolver key type
[    0.581057] Key type id_resolver registered
[    0.581065] Key type id_legacy registered
[    0.581129] ntfs: driver 2.1.32 [Flags: R/O].
[    0.583108] bounce: pool size: 64 pages
[    0.583270] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    0.583287] io scheduler noop registered (default)
[    0.583299] io scheduler deadline registered
[    0.583334] io scheduler cfq registered
[    0.588674] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
[    0.652247] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    0.655691] 4806a000.serial: ttyS0 at MMIO 0x4806a000 (irq = 299, base_baud = 3000000) is a 8250
[    0.656578] 4806c000.serial: ttyS1 at MMIO 0x4806c000 (irq = 300, base_baud = 3000000) is a 8250
[    0.657475] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 301, base_baud = 3000000) is a 8250
[    0.658307] console [ttyS3] disabled
[    0.658353] 4806e000.serial: ttyS3 at MMIO 0x4806e000 (irq = 302, base_baud = 3000000) is a 8250
[    1.459438] console [ttyS3] enabled
[    1.463793] 48066000.serial: ttyS4 at MMIO 0x48066000 (irq = 303, base_baud = 3000000) is a 8250
[    1.473446] 48422000.serial: ttyS7 at MMIO 0x48422000 (irq = 304, base_baud = 3000000) is a 8250
[    1.483097] 48424000.serial: ttyS8 at MMIO 0x48424000 (irq = 305, base_baud = 3000000) is a 8250
[    1.492754] 4ae2b000.serial: ttyS9 at MMIO 0x4ae2b000 (irq = 306, base_baud = 3000000) is a 8250
[    1.502838] [drm] Initialized drm 1.1.0 20060810
[    1.508943] OMAP DSS rev 6.1
[    1.512715] omapdss_dss 58000000.dss: bound 58001000.dispc (ops dispc_component_ops)
[    1.528812] loop: module loaded
[    1.532822] nand: No NAND device found
[    1.536594] omap2-nand 8000000.nand: scan failed, may be bus-width mismatch
[    1.549059] m25p80 spi32766.0: s25fl256s1 (32768 Kbytes)
[    1.554454] 7 ofpart partitions found on MTD device spi32766.0
[    1.560334] Creating 7 MTD partitions on "spi32766.0":
[    1.565497] 0x000000000000-0x000000040000 : "QSPI.MLO"
[    1.571581] 0x000000040000-0x000000140000 : "QSPI.u-boot"
[    1.577890] 0x000000140000-0x0000001c0000 : "QSPI.DRA7-evm.dtb"
[    1.584711] 0x0000001c0000-0x0000001d0000 : "QSPI.u-boot-env"
[    1.591368] 0x0000001d0000-0x0000001e0000 : "QSPI.u-boot-env.backup1"
[    1.598723] 0x0000001e0000-0x0000009e0000 : "QSPI.uImage"
[    1.604975] 0x0000009e0000-0x000002000000 : "QSPI.IPU-exe"
[    1.612361] libphy: Fixed MDIO Bus: probed
[    1.617077] CAN device driver interface
[    1.621301] pinctrl-single 4a003400.pinmux: pin 4a003818.0 already requested by 4a003400.pinmux; cannot claim for 4ae3c000.can
[    1.632761] pinctrl-single 4a003400.pinmux: pin-262 (4ae3c000.can) status -22
[    1.639946] pinctrl-single 4a003400.pinmux: could not request pin 262 (4a003818.0) from group dcan1_pins_sleep  on device pinctrl-single
[    1.652278] c_can_platform 4ae3c000.can: Error applying setting, reverse things back
[    1.660721] c_can_platform 4ae3c000.can: c_can_platform device registered (regs=fce3c000, irq=357)
[    1.716934] davinci_mdio 48485000.mdio: davinci mdio revision 1.6
[    1.723059] libphy: 48485000.mdio: probed
[    1.727109] mdio_bus 48485000.mdio: /ocp/ethernet@48484000/mdio@48485000/micrel_phy_config has invalid PHY address
[    1.737519] mdio_bus 48485000.mdio: /ocp/ethernet@48484000/mdio@48485000/rmii-ref has invalid PHY address
[    1.747145] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 0
[    1.756655] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 1
[    1.764519] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 2
[    1.772319] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 3
[    1.780119] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 4
[    1.789268] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 5
[    1.797277] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 6
[    1.805078] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 7
[    1.812879] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 8
[    1.820679] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 9
[    1.828479] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 10
[    1.836277] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 11
[    1.844078] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 12
[    1.851878] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 13
[    1.859678] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 14
[    1.867478] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 15
[    1.875277] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 16
[    1.883075] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 17
[    1.890878] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 18
[    1.898678] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 19
[    1.906477] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 20
[    1.914277] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 21
[    1.922078] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 22
[    1.929878] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 23
[    1.937677] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 24
[    1.945477] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 25
[    1.953278] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 26
[    1.961077] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 27
[    1.968878] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 28
[    1.976677] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 29
[    1.984478] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 30
[    1.992278] mdio_bus 48485000.mdio: scan phy micrel_phy_config at address 31
[    2.000080] mdio_bus 48485000.mdio: scan phy rmii-ref at address 1
[    2.006837] mdio_bus 48485000.mdio: scan phy rmii-ref at address 2
[    2.013597] mdio_bus 48485000.mdio: scan phy rmii-ref at address 3
[    2.020358] mdio_bus 48485000.mdio: scan phy rmii-ref at address 5
[    2.027115] mdio_bus 48485000.mdio: scan phy rmii-ref at address 6
[    2.033877] mdio_bus 48485000.mdio: scan phy rmii-ref at address 7
[    2.041158] mdio_bus 48485000.mdio: scan phy rmii-ref at address 8
[    2.047918] mdio_bus 48485000.mdio: scan phy rmii-ref at address 9
[    2.054677] mdio_bus 48485000.mdio: scan phy rmii-ref at address 10
[    2.061957] mdio_bus 48485000.mdio: scan phy rmii-ref at address 11
[    2.069238] mdio_bus 48485000.mdio: scan phy rmii-ref at address 12
[    2.076516] mdio_bus 48485000.mdio: scan phy rmii-ref at address 13
[    2.083798] mdio_bus 48485000.mdio: scan phy rmii-ref at address 14
[    2.091077] mdio_bus 48485000.mdio: scan phy rmii-ref at address 15
[    2.098357] mdio_bus 48485000.mdio: scan phy rmii-ref at address 16
[    2.105637] mdio_bus 48485000.mdio: scan phy rmii-ref at address 17
[    2.112918] mdio_bus 48485000.mdio: scan phy rmii-ref at address 18
[    2.120198] mdio_bus 48485000.mdio: scan phy rmii-ref at address 19
[    2.127478] mdio_bus 48485000.mdio: scan phy rmii-ref at address 20
[    2.134757] mdio_bus 48485000.mdio: scan phy rmii-ref at address 21
[    2.142037] mdio_bus 48485000.mdio: scan phy rmii-ref at address 22
[    2.149318] mdio_bus 48485000.mdio: scan phy rmii-ref at address 23
[    2.156597] mdio_bus 48485000.mdio: scan phy rmii-ref at address 24
[    2.163878] mdio_bus 48485000.mdio: scan phy rmii-ref at address 25
[    2.171158] mdio_bus 48485000.mdio: scan phy rmii-ref at address 26
[    2.178437] mdio_bus 48485000.mdio: scan phy rmii-ref at address 27
[    2.185717] mdio_bus 48485000.mdio: scan phy rmii-ref at address 28
[    2.192997] mdio_bus 48485000.mdio: scan phy rmii-ref at address 29
[    2.200278] mdio_bus 48485000.mdio: scan phy rmii-ref at address 30
[    2.207558] mdio_bus 48485000.mdio: scan phy rmii-ref at address 31
[    2.214839] davinci_mdio 48485000.mdio: phy[0]: device 48485000.mdio:00, driver Micrel KSZ8081 or KSZ8091
[    2.224462] davinci_mdio 48485000.mdio: phy[4]: device 48485000.mdio:04, driver Micrel KSZ8081 or KSZ8091
[    2.234482] cpsw 48484000.ethernet: No slave[0] phy_id, phy-handle, or fixed-link property
[    2.242944] cpsw 48484000.ethernet: Detected MACID = f0:45:da:8a:80:e6
[    2.249606] cpsw 48484000.ethernet: cpts: overflow check period 800
[    2.257745] mousedev: PS/2 mouse device common for all mice
[    2.273954] i2c /dev entries driver
[    2.278247] @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[    2.283757] 11111111111111111111111@@@@@@@@@@@@@@@@@@@@@@@@
[    2.289370] 22222222222222222222222@@@@@@@@@@@@@@@@@@@@@@@@
[    2.294966] 3333333333333333333333333333@@@@@@@@@@@@@@@@@@@@@@@@
[    2.301013] 44444444444444444444444444444@@@@@@@@@@@@@@@@@@@@@@@@
[    2.307433] 55555555555555555555555555555@@@@@@@@@@@@@@@@@@@@@@@@
[    2.313552] 8888888888888888888888888888888@@@@@@@@@@@@@
[    2.354257] adv7611 0-004c: adv7611 found @ 0x98 (OMAP I2C adapter)
[    2.361469] vpe 489d0000.vpe: loading firmware vpdma-1b8.bin
[    2.368578] vip 48990000.vip: loading firmware vpdma-1b8.bin
[    2.378800] omap_hsmmc 4809c000.mmc: Got CD GPIO
[    2.387090] vpe 489d0000.vpe: Device registered as /dev/video0
[    2.396925] vip 48990000.vip: VPDMA firmware loaded
[    2.401944] vip2-s0: Port A: Using subdev adv7611 0-004c for capture
[    2.408731] vip2-s0: device registered as video1
[    2.427606] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr25 mode
[    2.433989] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr12 mode
[    2.440551] evm_3v3_sw: supplied by sysen1
[    2.477283] omap_hsmmc 480ad000.mmc: no pinctrl state for sdr50 mode
[    2.483669] omap_hsmmc 480ad000.mmc: no pinctrl state for sdr25 mode
[    2.490066] omap_hsmmc 480ad000.mmc: no pinctrl state for sdr12 mode
[    2.496449] omap_hsmmc 480ad000.mmc: no pinctrl state for hs mode
[    2.537681] ledtrig-cpu: registered to indicate activity on CPUs
[    2.547876] hwspinlock_user gatemp: requested 10 hwspinlocks
[    2.554260]
[    2.554260] [spidrv_init]
[    2.558393] spidrv_init called
[    2.561469]
[    2.561469] [mcaspdrv_init]
[    2.565754] mcaspdrv_init called
[    2.570100] davinci-mcasp 48460000.mcasp: DAI is shared
[    2.575371]
[    2.575371] [McASP1][mcasp->base][FA460000]
[    2.581105]
[    2.581105] [McASP]not return
[    2.581105]
[    2.587643] davinci-mcasp 48464000.mcasp: DAI is shared
[    2.592907]
[    2.592907] [McASP2][mcasp->base][FA464000]
[    2.592907]
[    2.600090]
[    2.600090] [McASP]not return
[    2.600090]
[    2.606254] davinci-mcasp 48468000.mcasp: DAI is shared
[    2.611538]
[    2.611538] [McASP3][mcasp->base][FA468000]
[    2.611538]
[    2.618716]
[    2.618716] [McASP]not return
[    2.618716]
[    2.626218] NET: Registered protocol family 10
[    2.641469] sit: IPv6 over IPv4 tunneling driver
[    2.646645] NET: Registered protocol family 17
[    2.651160] can: controller area network core (rev 20120528 abi 9)
[    2.657433] NET: Registered protocol family 29
[    2.661910] can: raw protocol (rev 20120528)
[    2.666399] Key type dns_resolver registered
[    2.670850] omap_voltage_late_init: Voltage driver support not added
[    2.677878] Power Management for TI OMAP4+ devices.
[    2.683023] Registering SWP/SWPB emulation handler
[    2.690578] dmm 4e000000.dmm: initialized all PAT entries
[    2.710492] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.717166] [drm] No driver support for vblank timestamp query.
[    2.734375] [drm] Enabling DMM ywrap scrolling
[    2.745940] mmc0: host does not support reading read-only switch, assuming write-enable
[    2.747925] @SD max clock = 10000000@
[    2.748010] mmc0: new high speed SDHC card at address 59b4
[    2.758505] mmcblk0: mmc0:59b4 SD    14.7 GiB
[    2.760268]  mmcblk0: p1 p2
[    2.787297] Console: switching to colour frame buffer device 160x50
[    2.802966] mmc1: MAN_BKOPS_EN bit is not set
[    2.812173] @eMMC max clock = 25000000@
[    2.819468] mmc1: new MMC card at address 0001
[    2.830004] mmcblk1: mmc1:0001 MMC04G 3.57 GiB
[    2.840269] mmcblk1boot0: mmc1:0001 MMC04G partition 1 8.00 MiB
[    2.848982] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
[    2.850543] mmcblk1boot1: mmc1:0001 MMC04G partition 2 8.00 MiB
[    2.860932]  mmcblk1: p1 p2
[    2.890270] [drm] Initialized omapdrm 1.0.0 20110917 on minor 0
[    2.907245] hctosys: unable to open rtc device (rtc0)
[    2.924411] aic_dvdd: disabling
[    2.927605] vmmcwl_fixed: disabling
[    2.931336] ldousb: disabling
[    2.934815] ALSA device list:
[    2.937852]   No soundcards found.
[    4.083086] EXT4-fs (mmcblk0p2): recovery complete
[    4.091778] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    4.099962] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    4.138827] devtmpfs: mounted
[    4.142020] Freeing unused kernel memory: 336K (c08fc000 - c0950000)
[    4.148425] This architecture does not have kernel memory protection.
[    4.956804] systemd[1]: System time before build time, advancing clock.
[    5.066603] random: systemd: uninitialized urandom read (16 bytes read, 23 bits of entropy available)
[    5.080446] random: systemd: uninitialized urandom read (16 bytes read, 23 bits of entropy available)
[    5.092140] systemd[1]: systemd 229 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
[    5.110663] systemd[1]: Detected architecture arm.

Welcome to Arago 2016.12!

[    5.138510] systemd[1]: Set hostname to <dra7xx-evm>.
[    5.313308] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 24 bits of entropy available)
[    5.329424] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 24 bits of entropy available)
[    5.339892] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 25 bits of entropy available)
[    5.370354] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 25 bits of entropy available)
[    5.386293] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 25 bits of entropy available)
[    5.687845] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
[    5.697383] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
[    5.707353] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
[    5.873480] systemd[1]: Configuration file /etc/systemd/system/multi-user.target.wants/MAN2020.service is marked executable. Please remove executable permission bits. Proceeding anyway.
[    5.890546] systemd[1]: Configuration file /etc/systemd/system/multi-user.target.wants/MAN2020.service is marked world-writable. Please remove world writability permission bits. Proceeding anyway.
[    5.912440] systemd[1]: gplv3-notice.service: Service lacks both ExecStart= and ExecStop= setting. Refusing.
[    6.044402] systemd[1]: gplv3-notice.service: Cannot add dependency job, ignoring: Unit gplv3-notice.service is not loaded properly: Invalid argument.
[    6.058516] systemd[1]: sysinit.target: Found ordering cycle on sysinit.target/start
[    6.066306] systemd[1]: sysinit.target: Found dependency on alignment.service/start
[    6.074089] systemd[1]: sysinit.target: Found dependency on basic.target/start
[    6.081391] systemd[1]: sysinit.target: Found dependency on sockets.target/start
[    6.088839] systemd[1]: sysinit.target: Found dependency on avahi-daemon.socket/start
[    6.096707] systemd[1]: sysinit.target: Found dependency on sysinit.target/start
[    6.104160] systemd[1]: sysinit.target: Breaking ordering cycle by deleting job alignment.service/start
[    6.113615] systemd[1]: alignment.service: Job alignment.service/start deleted to break ordering cycle starting with sysinit.target/start
[ SKIP ] Ordering cycle found, skipping alignment.service
[    6.151102] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    6.177120] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[    6.197304] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    6.290942] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    6.317229] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[    6.347193] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    6.377167] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    6.397181] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    6.417791] systemd[1]: Created slice System Slice.
[  OK  ] Created slice System Slice.
[    6.487173] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[    6.519458] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[    6.549608] systemd[1]: Starting Setup Virtual Console...
         Starting Setup Virtual Console...
[    6.577412] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    6.579671] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[    6.657422] systemd[1]: Starting Create list of required static device nodes for the current kernel...
         Starting Create list of required st... nodes for the current kernel...
[    6.687334] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[    6.717103] systemd[1]: Reached target Paths.
[  OK  ] Reached target Paths.
[    6.737108] systemd[1]: Reached target Slices.
[  OK  ] Reached target Slices.
[    6.787173] systemd[1]: Mounting Temporary Directory...
         Mounting Temporary Directory...
[    6.824991] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[    6.849661] systemd[1]: Mounting Debug File System...
         Mounting Debug File System...
[    6.877106] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    6.907217] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    6.967393] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[    6.987943] systemd[1]: Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[    7.024541] systemd[1]: Mounted Debug File System.
[  OK  ] Mounted Debug File System.
[    7.047172] systemd[1]: Mounted POSIX Message Queue File System.
[  OK  ] Mounted POSIX Message Queue File System.
[    7.077124] systemd[1]: Mounted Temporary Directory.
[  OK  ] Mounted Temporary Directory.
[    7.096054] systemd[1]: Started Remount Root and Kernel File Systems.
[  OK  ] Started Remount Root and Kernel File Systems.
[    7.128358] systemd[1]: Started Setup Virtual Console.
[  OK  ] Started Setup Virtual Console.
[    7.158252] systemd[1]: Started Create list of required static device nodes for the current kernel.
[  OK  ] Started Create list of required sta...ce nodes for the current kernel.
[    7.188044] systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
[    7.198892] systemd[1]: Failed to start Load Kernel Modules.
[FAILED] Failed to start Load Kernel Modules.
See 'systemctl status systemd-modules-load.service' for details.
[    7.237027] systemd[1]: systemd-modules-load.service: Unit entered failed state.
[    7.244470] systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
[    7.253327] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
         Starting Apply Kernel Variables...
         Starting Create Static Device Nodes in /dev...
         Starting udev Coldplug all Devices...
         Starting Flush Journal to Persistent Storage...
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Create Static Device Nodes in /dev.
[    8.086592] systemd-journald[130]: Received request to flush runtime journal from PID 1
         Starting udev Kernel Device Manager...
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /var/volatile...
         Mounting /media/ram...
[  OK  ] Mounted /var/volatile.
[  OK  ] Mounted /media/ram.
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Reached target Local File Systems.
[    8.992380] omap_rng 48090000.rng: OMAP Random Number Generator ver. 20
         Starting Create Volatile Files and Directories...
         Starting Load/Save Random Seed...
[    9.106726] omap-des 480a5000.des: OMAP DES hw accel rev: 2.2
[    9.154894] alg: skcipher: setkey failed on test 5 for ecb-des-omap: flags=100
[  OK  ] Found device /dev/ttyS3.[    9.209480] alg: skcipher-ddst: setkey failed on test 5 for ecb-des-omap: flags=100

[    9.221155] alg: skcipher-ddst: setkey failed on test 5 for ecb-des-omap: flags=100
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Create Volatile Files and Directories.
[    9.315046] omap_rtc 48838000.rtc: rtc core: registered 48838000.rtc as rtc0
         Starting Network Time Synchronization...
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[    9.718532] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    9.727538] omap-sham 4b101000.sham: hw accel on OMAP rev 4.3
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Synchronized.
[    9.805902] SCSI subsystem initialized
         Starting Synchronize System and HW clocks...
[  OK  ] Started Synchronize System and HW clocks.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on dropbear.socket.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started System Logging Service.
[  OK  ] Started Start helloworld.
[  OK  ] Started D-Bus System Message Bus.
[   10.493543] omap-aes 4b500000.aes: OMAP AES hw accel rev: 3.3
[   10.570047] omap-aes 4b700000.aes: OMAP AES hw accel rev: 3.3
[   10.579706] ahci 4a140000.sata: SSS flag set, parallel bus scan disabled
[   10.594465] ahci 4a140000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode


[INFO] VERSION: B0.0.0.0004[   10.620591] ahci 4a140000.sata: flags: 64bit ncq sntf stag pm led clo only pmp pio slum part ccc apst

[SYS ] paring option: token=3, option=(null)
[INFO] R3 init, iface=/dev/ttyS7
[INFO] R2 init
[INFO] watchdog init
[INFO] CLIENT ready
[   10.667248] scsi host0: ahci
[   10.670562] ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a1410ff] port 0x100 irq 339
[   10.718119] [drm] Initialized pvr 1.14.3699939 20110701 on minor 1
[   11.046969] ata1: SATA link down (SStatus 0 SControl 300)
[   11.204663] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
         Starting Network Service...
[  OK  ] Started strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf.
         Starting Telephony service...
         Starting Permit User Sessions...
         Starting hw-id.service...
         Starting Login Service...
         Starting Avahi mDNS/DNS-SD Stack...
         Starting uim-sysfs.service...
[  OK  ] Started Kernel Logging Service.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started hw-id.service.
[   12.065940] net eth0: initializing cpsw version 1.15 (0)
[   12.085624] net eth0: initialized cpsw ale version 1.4
[   12.091516] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[   12.109759] net eth0: ALE Table size 1024
[   12.115792] libphy: PHY  not found
[   12.137325] EXT4-fs (mmcblk1p2): recovery complete
[   12.146336] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[  OK  ] Started Network Service.
[   12.195952] net eth0: phy "" not found on slave 0, err -19
[   12.305966] net eth0: phy found : id is : 0x221560
[   12.340777] cpsw-phy-sel 4a002554.cpsw-phy-sel: RMII External clock is not supported
[   12.446567] Bluetooth: Core ver 2.21
[   12.459668] NET: Registered protocol family 31
[   12.498372] Bluetooth: HCI device and connection manager initialized
[   12.504784] Bluetooth: HCI socket layer initialized
[   12.556991] Bluetooth: L2CAP socket layer initialized
[   12.562120] Bluetooth: SCO socket layer initialized
[   12.569817] NET: Registered protocol family 15
[   12.605481] @@USB2PHY_TERMINATION_CONTROL=0x220004
[   12.833130] Initializing XFRM netlink socket
[   13.150525] @@USB2PHY_TERMINATION_CONTROL=0x220004
[   13.782874] usbcore: registered new interface driver usbfs
[   13.804934] usbcore: registered new interface driver hub
[   13.827968] usbcore: registered new device driver usb
[   13.882276] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[   13.900972] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[   13.930702] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x00210010
[   13.957021] xhci-hcd xhci-hcd.0.auto: irq 434, io mem 0x48890000
[   13.977631] hub 1-0:1.0: USB hub found
[   13.987192] hub 1-0:1.0: 1 port detected
[   13.997396] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[   14.002923] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[   14.027049] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[   14.048642] hub 2-0:1.0: USB hub found
[   14.052450] hub 2-0:1.0: 1 port detected
[   14.057091] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[   14.062627] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
[   14.087335] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x00210010
[   14.096131] xhci-hcd xhci-hcd.1.auto: irq 435, io mem 0x488d0000
[   14.128273] hub 3-0:1.0: USB hub found
[   14.132440] hub 3-0:1.0: 1 port detected
[   14.147512] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[   14.153042] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
[  OK  ] Started Avahi mDNS/DNS-SD Stack.[   14.204177] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.

[  OK  ] Started Telephony service.
[  OK  ] Started Login Service.
[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[  OK  ] Reached target Network.
         Starting Network Name Resolution...
         Starting Lightning Fast Webserver With Light System Requirements...[   14.269159] hub 4-0:1.0: USB hub found

[  OK  ] Started Serial Getty on ttyS3.
[  OK  ] Reached target Login Prompts.[   14.276887] hub 4-0:1.0: 1 port detected

[[032m  OK   ]Started uim-sysfs.service.
[[032m  OK   ]Started Lightning Fast Webserver With Light Sstem Requirements.
[  OK  ] Started Network Name Resolution.
         Starting rc.pvr.service...
[   14.918173] PVR_K: UM DDK-(3699939) and KM DDK-(3699939) match. [ OK ]
[  OK  ] Started rc.pvr.service.
         Starting telnetd.service...
         Starting tiipclad-daemon.service...
[  OK  ] Started telnetd.service.
[  OK  ] Started tiipclad-daemon.service.
         Starting thttpd.service...
[  OK  ] Started thttpd.service.
         Starting rng-tools.service...
[  OK  ] Started rng-tools.service.
[   15.386683] random: nonblocking pool is initialized
         Starting gdbserverproxy.service...
[  OK  ] Started gdbserverproxy.service.
         Starting matrix-gui-2.0.service...
[  OK  ] Started matrix-gui-2.0.service.
         Starting thermal-zone-init.service...
[  OK  ] Started thermal-zone-init.service.
[  OK  ] Reached target Multi-User System.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.
 _____                    _____           _         _
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
              |___|                    |___|

Arago Project http://arago-project.org dra7xx-evm ttyS3

Arago 2016.12 dra7xx-evm ttyS3

dra7xx-evm login: root (automatic login)

root@dra7xx-evm:~#
root@dra7xx-evm:~#
root@dra7xx-evm:~# ls /dev/video*
/dev/video0   /dev/video1   /dev/video10  /dev/video11
root@dra7xx-evm:~#
root@dra7xx-evm:~#
root@dra7xx-evm:~#
root@dra7xx-evm:~#
root@dra7xx-evm:~# v4l2-ctl  --list-device
wbcap (platform:omapwb-cap):
        /dev/video11

omapwb-m2m (platform:omapwb-m2m):
        /dev/video10

vpe (platform:vpe):
        /dev/video0

root@dra7xx-evm:~#
   

Here is our dts file => 

0336.dts.txt
/*
 * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.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 "dra7-evm.dts"
#include "dra7-evm-lcd-lg.dts"

/ {
	memory {
		device_type = "memory";
		reg = <0x0 0x80000000 0x0 0x80000000>; /* 2 GB */
		//reg = <0x0 0x80000000 0x0 0xC0000000>; /* 3 GB */
		
	};

	leds {
		status = "disabled";
	};

	gpio_keys {
		status = "disabled";
	};
	jamr3_sound{
		status = "disabled";
	};
	
	primary_sound{
		status = "disabled";
	};

};

&evm_3v3_sd {
		gpio = <>;
};

&snd0 {
	status = "disabled";
};

&hdmi0 {
	status = "disabled";
};

&tpd12s015 {
	status = "disabled";
};

&pcf_lcd {
	status = "disabled";
};

&pcf_gpio_21 {
	status = "disabled";
};

&lcd_fpd {
	status = "disabled";
};

&extcon_usb1 {
	//fake gpio
	id-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
};

&extcon_usb2 {
	//fake gpio
	id-gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>;
};

&usb1 {
   dr_mode = "host";
};

&tlv320aic3106 {
	status = "disabled";
};

&pcf_hdmi {
	status = "disabled";
};

&i2c_p3_exp {
	ov10633@37 {
		status = "disabled";
	};
};

&tvp_5158 {
	status = "disabled";
};

&disp_ser {
	status = "disabled";
};

&pcie1_rc {
	status = "disabled";
};

&elm {
	status = "okay";
};

#if 1
&gpmc {
	status = "okay";
	ranges = <0 0 0x08000000 0x01000000>;	/* minimum GPMC partition = 16MB */
	nand@0,0 {
		compatible = "ti,omap2-nand";
		reg = <0 0 4>;		/* device IO registers */
		interrupt-parent = <&gpmc>;
		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
			     <1 IRQ_TYPE_NONE>; /* termcount */
		rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 pin */
		ti,nand-ecc-opt = "bch8";
		ti,elm-id = <&elm>;
		nand-bus-width = <16>;
		gpmc,device-width = <2>;
		gpmc,sync-clk-ps = <0>;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <80>;
		gpmc,cs-wr-off-ns = <80>;
		gpmc,adv-on-ns = <0>;
		gpmc,adv-rd-off-ns = <60>;
		gpmc,adv-wr-off-ns = <60>;
		gpmc,we-on-ns = <10>;
		gpmc,we-off-ns = <50>;
		gpmc,oe-on-ns = <4>;
		gpmc,oe-off-ns = <40>;
		gpmc,access-ns = <40>;
		gpmc,wr-access-ns = <80>;
		gpmc,rd-cycle-ns = <80>;
		gpmc,wr-cycle-ns = <80>;
		gpmc,bus-turnaround-ns = <0>;
		gpmc,cycle2cycle-delay-ns = <0>;
		gpmc,clk-activation-ns = <0>;
		gpmc,wr-data-mux-bus-ns = <0>;
		/* MTD partition table */
		/* All SPL-* partitions are sized to minimal length
		 * which can be independently programmable. For
		 * NAND flash this is equal to size of erase-block */
		#address-cells = <1>;
		#size-cells = <1>;

		partition@0 {
			label = "NAND.device.0";
			reg = <0x00000000 0x10000000>;  /*256 MB*/
		};

	/*
		partition@0 {
			label = "NAND.SPL";
			reg = <0x00000000 0x000020000>;
		};
		partition@1 {
			label = "NAND.SPL.backup1";
			reg = <0x00020000 0x00020000>;
		};
		partition@2 {
			label = "NAND.SPL.backup2";
			reg = <0x00040000 0x00020000>;
		};
		partition@3 {
			label = "NAND.SPL.backup3";
			reg = <0x00060000 0x00020000>;
		};
		partition@4 {
			label = "NAND.u-boot-spl-os";
			reg = <0x00080000 0x00040000>;
		};
		partition@5 {
			label = "NAND.u-boot";
			reg = <0x000c0000 0x00100000>;
		};
		partition@6 {
			label = "NAND.u-boot-env";
			reg = <0x001c0000 0x00020000>;
		};
		partition@7 {
			label = "NAND.u-boot-env.backup1";
			reg = <0x001e0000 0x00020000>;
		};
		partition@8 {
			label = "NAND.kernel";
			reg = <0x00200000 0x00800000>;
		};
		partition@9 {
			label = "NAND.file-system";
			reg = <0x00a00000 0x0f600000>;
		};
	*/

	};
};
#endif


&qspi {
	status = "okay";

	spi-max-frequency = <76800000>;
	m25p80@0 {
		compatible = "s25fl256s1";
		spi-max-frequency = <76800000>;
		reg = <0>;
		spi-tx-bus-width = <1>;
		spi-rx-bus-width = <4>;
		#address-cells = <1>;
		#size-cells = <1>;

		/* MTD partition table.
		 * The ROM checks the first four physical blocks
		 * for a valid file to boot and the flash here is
		 * 64KiB block size.
		 */
		partition@0 {
			label = "QSPI.MLO";
			reg = <0x00000000 0x000040000>;
		};
		partition@1 {
			label = "QSPI.u-boot";
			reg = <0x00040000 0x00100000>;
		};
		partition@2 {
			label = "QSPI.DRA7-evm.dtb";
			reg = <0x00140000 0x00080000>;
		};
		partition@3 {
			label = "QSPI.u-boot-env";
			reg = <0x001c0000 0x00010000>;
		};
		partition@4 {
			label = "QSPI.u-boot-env.backup1";
			reg = <0x001d0000 0x0010000>;
		};
		partition@5 {
			label = "QSPI.uImage";
			reg = <0x001e0000 0x0800000>;
		};
		partition@6 {
			label = "QSPI.IPU-exe";
			reg = <0x009e0000 0x01620000>;
		};
	};
};

&mailbox5 {
	status = "disabled";
};

&mailbox6 {
	status = "disabled";
};

&mmu0_dsp1 {
	status = "disabled";
};

&mmu1_dsp1 {
	status = "disabled";
};

&mmu0_dsp2 {
	status = "disabled";
};

&mmu1_dsp2 {
	status = "disabled";
};

&mmu_ipu1 {
	status = "disabled";
};

&mmu_ipu2 {
	status = "disabled";
};

&ipu2 {
	status = "disabled";
};

&ipu1 {
	status = "disabled";
};

&dsp1 {
	status = "disabled";
};

&dsp2 {
	status = "disabled";
};

&dss {
	status = "okay";
	ports {
		port {
			reg = <1>;
			};
		};
};


&hdmi {
	status = "disabled";
};

&vip1 {
	status = "disabled";
};

&video_in {
	status = "disabled";
};


&reserved_mem {
	status = "disabled";
};


&pcf_jamr3_21 {
	status = "disabled";
};

&tlv320aic3106a {
	status = "disabled";
};

&tlv320aic3106b {
	status = "disabled";
};

&tlv320aic3106c {
	status = "disabled";
};

&mcasp7 {
	status = "disabled";
};

&mcasp8 {
	status = "disabled";
};

&mcasp2 {
	status = "okay";
};

&mcasp3 {
	status = "okay";
};
&mcasp6 {
	status = "disabled";
};

&ipu2_cma_pool {
	status = "disabled";
};

&dsp1_cma_pool {
	status = "disabled";
};

&ipu1_cma_pool {
	status = "disabled";
};

&dsp2_cma_pool {
	status = "disabled";
};

&cmem_radio {
	status = "disabled";
};

&dsp1_sr0 {
	status = "disabled";
};

&uart4 {
	status = "okay";
};

&uart8 {
	status = "okay";
};

&uart5 {
	status = "okay";
};

&uart9 {
	status = "okay";
};

&uart10 {
	status = "okay";
};

&mmc4 {
	status = "disabled";
};

/*********************************below for video port enable test***************************************/
/* VIN2A pins mapped to VIP1 */


&vip2 {
	status = "okay";
        //pinctrl-names = "default";
        /*
                Pinmux conflict between vin1a:16-23 & vin2a:0-8
                Either use full 24bit of vin1a or use 16bit vin1a and 8bitvin2a
                TO enable cam2, uncomment this
                pinctrl-0 = <&vin1a_pins &vin2a>;
        */
        //pinctrl-0 = <&vin3a_pins >;
};


&vin3a {
	status = "okay";
        endpoint@0 {
                slave-mode;
                remote-endpoint = <&hdmi_receiver>;
        };
};

&i2c1 {
	status = "okay";
	clock-frequency = <400000>;


	adv7611: adv7611@4c {
                compatible = "adi,adv7611";
                reg = <0x4c>;

                port {
                        hdmi_receiver: endpoint {
				remote-endpoint = <&vin3a>;
                                hsync-active = <1>;
                                vsync-active = <1>;
                                pclk-sample = <1>;
                        };
                };

        };
};

/**********************************up for video port enable test*****************************************/

&i2c1 {
	status = "okay";
	clock-frequency = <400000>;
};

&i2c2 {
	status = "okay";
	clock-frequency = <400000>;
};

&i2c3 {
	status = "okay";
	clock-frequency = <400000>;
};

&i2c4 {
	status = "okay";
	clock-frequency = <400000>;
};

&i2c5 {
	status = "okay";
	clock-frequency = <400000>;
};

&mcspi1 {
	status = "okay";
			
	spidev@0 {
                spi-max-frequency = <24000000>;
                reg = <0>;
               compatible = "rohm,dh2228fv";
               /*compatible = "linux,spidev";*/
           	};
};

&mcspi2 {
	status = "okay";
	
	spidev@1 {
	spi-max-frequency = <24000000>;
	reg = <0>;
	compatible = "rohm,dh2228fv";
               };
};

&mcspi3 {
	status = "okay";
	spidev@2 {
		spi-max-frequency = <24000000>;
		reg = <0>;
		compatible = "rohm,dh2228fv";
               };
};

&mcspi4 {
	status = "okay";
	spidev@3 {
		spi-max-frequency = <24000000>;
		reg = <0>;
		compatible = "rohm,dh2228fv";
               };
};


&mcasp1 {
	#sound-dai-cells = <0>;

	assigned-clocks = <&mcasp1_ahclkx_mux>;
	assigned-clock-parents = <&atl_clkin1_ck>;

	status = "okay";

	op-mode = <0>;          // MCASP_IIS_MODE //
	tdm-slots = <2>;
	// 4 serializer //
	serial-dir = <  // 0: INACTIVE, 1: TX, 2: RX //
		0 0 1 2
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};

&mcasp2 {
	#sound-dai-cells = <0>;

	assigned-clocks = <&mcasp2_ahclkx_mux>;
	assigned-clock-parents = <&atl_clkin1_ck>;

	status = "okay";

	op-mode = <0>;          // MCASP_IIS_MODE //
	tdm-slots = <2>;
	// 4 serializer //
	serial-dir = <  // 0: INACTIVE, 1: TX, 2: RX //
		0 0 1 2
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};

&mcasp3 {
	#sound-dai-cells = <0>;

	assigned-clocks = <&mcasp3_ahclkx_mux>;
	assigned-clock-parents = <&atl_clkin1_ck>;

	status = "okay";

	op-mode = <0>;          // MCASP_IIS_MODE //
	tdm-slots = <2>;
	// 4 serializer //
	serial-dir = <  // 0: INACTIVE, 1: TX, 2: RX //
		0 0 1 2
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};

&atl {
	assigned-clock-parents = <&sys_clkin1>, <&dpll_abe_m2_ck>;
};

&mac {
	status = "okay";
	active_slave = <1>;
};

&davinci_mdio {
	status = "okay";
	
	micrel_phy_config {
		#address-cells = <1>;
		#size-cells = <0>;
		micrel,led-mode = <1>;
		clock-names = "rmii-ref";	
		clocks = <&rmii_50M_clock>;
	};
	
	rmii_50M_clock: rmii-ref{
		#clock-cells = <0>;
		compatible ="fixed-clock";
		clock-frequency = <50000000>;		
	};
};

&cpsw_emac1 {
	phy_id = <&davinci_mdio>, <4>;
	phy-mode = "rmii";
	status = "okay";
};

&phy_sel {
rmii-clock-ext;
};

&oppdm_mpu {
	status = "disabled";
};

&epwmss0 {
	status = "okay";
};
#if 0
&ehrpwm0 {
	status = "okay";
};
#endif
&ecap0 {
	status = "okay";
};

&epwmss1 {
	status = "okay";
};
#if 0
&ehrpwm1 {
	status = "okay";
};
#endif
&ecap1 {
	status = "okay";
};

&epwmss2 {
	status = "okay";
};
#if 0
&ehrpwm2 {
	status = "okay";
};
#endif
&ecap2 {
	status = "okay";
};

&dra7_pmx_core {
	pinctrl-names = "default";
	pinctrl-0 = <&man2020_pins>;
	man2020_pins: man2020_pins {
		pinctrl-single,pins = <

			0x3B0 (MUX_MODE0 | PIN_INPUT_PULLUP)	/* spi1_cs0.spi1_cs0 */
			0x3B4 (MUX_MODE0 | PIN_INPUT_PULLUP)	/* spi1_cs1.spi1_cs1 */
			0x3A4 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* spi1_sclk.spi1_sclk */
			0x3AC (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* spi1_d0.spi1_d0 */
			0x3A8 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* spi1_d1.spi1_d1 */
			0x3C8 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* spi2_d0.spi2_d0 */
			0x3C4 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* spi2_d1.spi2_d1 */
			0x3CC (MUX_MODE0 | PIN_INPUT_PULLUP)	/* spi2_cs0.spi2_cs0 */
			0x3C0 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* spi2_sclk.spi2_sclk */
			0x264 (MUX_MODE7 | PIN_INPUT_PULLDOWN)	/* rgmii0_txd0.spi4_cs0 */
			0x260 (MUX_MODE7 | PIN_INPUT_PULLDOWN)	/* rgmii0_txd1.spi4_d0 */
			0x25C (MUX_MODE7 | PIN_INPUT_PULLDOWN)	/* rgmii0_txd2.spi4_d1 */
			0x258 (MUX_MODE7 | PIN_INPUT_PULLDOWN)	/* RGMII0_TXD3.spi4_sclk */

			
			0x40C (MUX_MODE0 | PIN_INPUT_PULLUP)	/* i2c2_scl.i2c2_scl */
			0x408 (MUX_MODE0 | PIN_INPUT_PULLUP)	/* i2c2_sda.i2c2_sda */
			0x378 (MUX_MODE2 | PIN_INPUT_PULLUP)	/* gpio6_11.i2c3_scl */
			0x374 (MUX_MODE2 | PIN_INPUT_PULLUP) 	/* gpio6_10.i2c3_sda */
			0x2AC (MUX_MODE10 | PIN_INPUT_PULLUP) 	/* mcasp1_aclkr.i2c4_sda */
			0x2B0 (MUX_MODE10 | PIN_INPUT_PULLUP)	/* mcasp1_fsr.i2c4_scl */
			0x2B4 (MUX_MODE10 | PIN_INPUT | SLEWCONTROL) 	/* mcasp1_axr0.i2c5_sda */
			0x2B8 (MUX_MODE10 | PIN_INPUT | SLEWCONTROL) 	/* mcasp1_axr1.i2c5_scl */

			
			0x314 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp2_axr4.gpio1_4 */
			0x3D4 (MUX_MODE14 | PIN_INPUT_PULLUP | SLEWCONTROL)	/* dcan1_rx.gpio1_15 */
			0x06C (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* gpmc_a11.gpio2_1 */
			0x070 (MUX_MODE14 | PIN_INPUT_PULLDOWN) /* GPMC_A12.gpio2_2 */
			0x0C0 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* gpmc_clk.gpio2_22 */
			0x0D4 (MUX_MODE14 | PIN_INPUT_PULLDOWN) /* gpmc_ben1.gpio2_27 */
			0x31C (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp2_axr6.gpio2_29 */
			0x154 (MUX_MODE14 | PIN_INPUT_PULLDOWN) /* vin2a_clk0.gpio3_28 */
			0x2E8 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr13.gpio6_4 */
			0x288 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* gpio6_14.gpio6_14 */
			0x418 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* Wakeup0.gpio1_0 */
			0x41C (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* WAKEUP1.gpio1_1 */
			0x320 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp2_axr7.gpio1_5 */
			0x2E0 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr11.gpio4_17 */
			0x2E4 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr12.gpio4_18 */
			0x2CC (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr6.gpio5_8 */
			0x2D0 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr7.gpio5_9 */
			0x2D4 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr8.gpio5_10 */
			0x2D8 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr9.gpio5_11 */
			0x2DC (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr10.gpio5_12 */
			0x23C (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mdio_mclk.gpio5_15 */
			0x240 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mdio_d.gpio5_16 */
			0x24C (MUX_MODE14 | PIN_INPUT_PULLDOWN) /* uart3_txd.gpio5_19 */
			0x274 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* rgmii0_rxd2.gpio5_29 */
			0x278 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* rgmii0_rxd1.gpio5_30 */
			0x27C (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* rgmii0_rxd0.gpio5_31 */
			0x2EC (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr14.gpio6_5 */
			0x2F0 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp1_axr15.gpio6_6 */
			0x318 (MUX_MODE14 | PIN_INPUT_PULLDOWN | MUX_VIRTUAL_MODE12)	/* mcasp2_axr5.gpio6_7 */
			0x30C (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* mcasp2_axr2.gpio6_8 */
			0x284 (MUX_MODE14 | PIN_INPUT_PULLDOWN) /* usb2_drvvbus.gpio6_13 */
			0x28C (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* gpio6_15.gpio6_15 */
			0x290 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* gpio6_16.gpio6_16 */
			0x298 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* xref_clk1.gpio6_18 */
			0x29C (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* xref_clk2.gpio6_19 */
			0x2A0 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* xref_clk3.gpio6_20 */
			0x3E8 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* uart1_ctsn.gpio7_24 */
			0x3EC (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* uart1_rtsn.gpio7_25 */
			0x3F0 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* uart2_rxd.gpio7_26 */
			0x3F4 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* uart2_txd.gpio7_27 */
			0x204 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* VOUT1_D10.gpio8_10 */
			0x1E4 (MUX_MODE14 | PIN_INPUT_PULLDOWN)	/* VOUT1_D2.gpio8_2 */

			0x3E4 (MUX_MODE0 | PIN_INPUT_PULLUP | SLEWCONTROL)	/* uart1_txd.uart1_txd */
			0x3E0 (MUX_MODE0 | PIN_INPUT_PULLUP | SLEWCONTROL)	/* uart1_rxd.uart1_rxd */
			0x3F8 (MUX_MODE2 | PIN_INPUT_PULLUP) 	/* uart2_ctsn.uart3_rxd */
			0x3FC (MUX_MODE1 | PIN_INPUT_PULLUP) 	/* uart2_rtsn.uart3_txd */
			0x33C (MUX_MODE4 | PIN_INPUT_SLEW) 	/* mcasp4_axr0.uart4_rxd */
			0x340 (MUX_MODE4 | PIN_INPUT_SLEW) 	/* mcasp4_axr1.uart4_txd */
			0x32C (MUX_MODE4 | PIN_INPUT_PULLUP)	/* mcasp3_axr0.uart5_rxd */
			0x330 (MUX_MODE4 | PIN_INPUT_PULLUP)	/* mcasp3_axr1.uart5_txd */
			0x334 (MUX_MODE3 | PIN_INPUT_PULLUP)	/* mcasp4_aclkx.uart8_rxd */
			0x338 (MUX_MODE3 | PIN_INPUT_PULLUP)	/* mcasp4_fsx.uart8_txd */
			0x344 (MUX_MODE3 | PIN_INPUT_PULLUP)	/* mcasp5_aclkx.uart9_rxd */
			0x348 (MUX_MODE3 | PIN_INPUT_PULLUP)	/* mcasp5_fsx.uart9_txd */
			0x394 (MUX_MODE2 | PIN_INPUT_PULLUP) 	/* mmc3_dat4.uart10_rxd */
			0x398 (MUX_MODE2 | PIN_INPUT_PULLUP) 	/* MMC3_DAT5.uart10_txd */
			0x39C (MUX_MODE2 | PIN_INPUT_PULLUP) 	/* MMC3_DAT6.uart10_ctsn */
			0x3A0 (MUX_MODE2 | PIN_INPUT_PULLUP) 	/* MMC3_DAT7.uart10_rtsn */
		

			0x2BC (MUX_MODE0 | PIN_INPUT_SLEW)	/* mcasp1_axr2.mcasp1_axr2 */
			0x2C0 (MUX_MODE0 | PIN_INPUT_SLEW)	/* mcasp1_axr3.mcasp1_axr3 */
			0x2C4 (MUX_MODE0 | PIN_INPUT_SLEW)	/* mcasp1_axr4.mcasp1_axr4 */
			0x2C8 (MUX_MODE0 | PIN_INPUT_SLEW)	/* mcasp1_axr5.mcasp1_axr5 */
			0x2A4 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* mcasp1_aclkx.mcasp1_aclkx */
			0x2A8 (MUX_MODE0 | PIN_INPUT_SLEW)	/* mcasp1_fsx.mcasp1_fsx */
			0x2F8 (MUX_MODE0 | PIN_INPUT_SLEW | MUX_VIRTUAL_MODE9)	/* mcasp2_fsx.mcasp2_fsx */
			0x2F4 (MUX_MODE0 | PIN_INPUT_PULLDOWN | MUX_VIRTUAL_MODE9)	/* mcasp2_aclkx.mcasp2_aclkx */
			0x304 (MUX_MODE0 | PIN_INPUT_PULLDOWN | MUX_VIRTUAL_MODE12)	/* mcasp2_axr0.mcasp2_axr0 */
			0x308 (MUX_MODE0 | PIN_INPUT_PULLDOWN | MUX_VIRTUAL_MODE12)	/* mcasp2_axr1.mcasp2_axr1 */
			0x310 (MUX_MODE1 | PIN_INPUT_SLEW | MUX_VIRTUAL_MODE9)	/* mcasp2_axr3.mcasp3_axr3 */
			0x324 (MUX_MODE0 | PIN_INPUT_PULLDOWN)	/* mcasp3_aclkx.mcasp3_aclkx */
			0x328 (MUX_MODE0 | PIN_INPUT_SLEW)	/* mcasp3_fsx.mcasp3_fsx */
	
			0x158 MUX_MODE4 /* vin2a_de0.VOUT2_DE */
			0x1C4 MUX_MODE4 /* vin2a_d23.VOUT2_D0 */
			0x1C0 MUX_MODE4	/* VIN2A_D22.VOUT2_D1 */
			0x1BC MUX_MODE4	/* VIN2A_D21.vout2_d2 */
			0x1B8 MUX_MODE4	/* VIN2A_D20.vout2_d3 */
			0x1B4 MUX_MODE4 /* vin2a_d19.VOUT2_D4 */
			0x1B0 MUX_MODE4	/* VIN2A_D18.VOUT2_D5 */
			0x1AC MUX_MODE4 /* vin2a_d17.VOUT2_D6 */
			0x1A8 MUX_MODE4	/* VIN2A_D16.vout2_d7 */
			0x1A4 MUX_MODE4	/* VIN2A_D15.vout2_d8 */
			0x1A0 MUX_MODE4	/* VIN2A_D14.VOUT2_D9 */
			0x19C MUX_MODE4 /* vin2a_d13.VOUT2_D10 */
			0x198 MUX_MODE4 /* vin2a_d12.VOUT2_D11 */
			0x194 MUX_MODE4	/* VIN2A_D11.VOUT2_D12 */
			0x190 MUX_MODE4	/* VIN2A_D10.VOUT2_D13 */
			0x18C MUX_MODE4 /* vin2a_d9.VOUT2_D14 */
			0x188 MUX_MODE4 /* vin2a_d8.VOUT2_D15 */
			0x184 MUX_MODE4	/* VIN2A_D7.VOUT2_D16 */
			0x180 MUX_MODE4 /* VIN2A_D6.vout2_d17 */
			0x17C MUX_MODE4 /* vin2a_d5.VOUT2_D18 */
			0x178 MUX_MODE4 /* vin2a_d4.VOUT2_D19 */
			0x174 MUX_MODE4 /* VIN2A_D3.vout2_d20 */
			0x170 MUX_MODE4 /* VIN2A_D2.vout2_d21 */
			0x16C MUX_MODE4 /* vin2a_d1.VOUT2_D22 */
			0x168 MUX_MODE4 /* vin2a_d0.VOUT2_D23 */
			0x160 MUX_MODE4 /* VIN2A_HSYNC0.vout2_hsync */
			0x164 MUX_MODE4 /* vin2a_vsync0.VOUT2_VSYNC */
			0x15C MUX_MODE4	/* VIN2A_FLD0.VOUT2_CLK */

			0x000 MUX_MODE3	/* gpmc_ad0.VOUT3_D0 */
			0x004 MUX_MODE3	/* gpmc_ad1.VOUT3_D1 */
			0x008 MUX_MODE3	/* gpmc_ad2.VOUT3_D2 */
			0x00C MUX_MODE3	/* GPMC_AD3.vout3_d3 */
			0x010 MUX_MODE3	/* gpmc_ad4.VOUT3_D4 */
			0x014 MUX_MODE3	/* gpmc_ad5.VOUT3_D5 */
			0x018 MUX_MODE3 /* GPMC_AD6.vout3_d6 */	
			0x01C MUX_MODE3	/* GPMC_AD7.vout3_d7 */
			0x020 MUX_MODE3	/* GPMC_AD8.vout3_d8 */
			0x024 MUX_MODE3	/* GPMC_AD9.vout3_d9 */
			0x028 MUX_MODE3 /* GPMC_AD10.vout3_d10 */
			0x02C MUX_MODE3	/* GPMC_AD11.vout3_d11 */
			0x030 MUX_MODE3	/* gpmc_ad12.VOUT3_D12 */
			0x034 MUX_MODE3	/* gpmc_ad13.VOUT3_D13 */
			0x038 MUX_MODE3	/* gpmc_ad14.VOUT3_D14 */
			0x03C MUX_MODE3	/* gpmc_ad15.vout3_d15 */
			0x050 MUX_MODE3	/* GPMC_A4.VOUT3_D20 */
			0x054 MUX_MODE3	/* GPMC_A5.VOUT3_D21 */
			0x044 MUX_MODE3	/* GPMC_A1.VOUT3_D17 */
			0x048 MUX_MODE3	/* gpmc_a2.VOUT3_D18 */
			0x04C MUX_MODE3	/* GPMC_A3.vout3_d19 */
			0x040 MUX_MODE3	/* GPMC_A0.VOUT3_D16 */
			0x058 MUX_MODE3	/* GPMC_A6.VOUT3_D22 */
			0x05C MUX_MODE3	/* GPMC_A7.VOUT3_D23 */
			0x060 MUX_MODE3	/* GPMC_A7.VOUT3_HSYNC */
			0x064 MUX_MODE3 /* GPMC_A9.vout3_vsync */
			0x0BC MUX_MODE3 /* GPMC_CS3.vout3_clk */

			0x21C MUX_MODE4	/* VOUT1_D16.VIN3A_D0 */
			0x228 MUX_MODE4	/* VOU1_D19.VIN3A_D3 */
			0x238 MUX_MODE4	/* VOU1_D23.VIN3A_D7 */
			0x220 MUX_MODE4	/* VOU1_D17.VIN3A_D1 */
			0x22C MUX_MODE4	/* VOU1_D20.VIN3A_D4 */
			0x224 MUX_MODE4	/* VOU1_D18.VIN3A_D2 */
			0x230 MUX_MODE4	/* VOU1_D21.VIN3A_D5 */
			0x234 MUX_MODE4	/* VOU1_D22.VIN3A_D6 */
			0x1D0 MUX_MODE4	/* vout1_fld.VIN3A_CLK0 */
			
			0x36C MUX_MODE0	/* MMC1_SDCD.MMC1_SDCD */
			0x370 MUX_MODE0	/* MMC1_SDWP.MMC1_SDWP */

			0x254 (MUX_MODE2 | PIN_INPUT )		/* rgmii0_txctl.rmii1_rxd0 */
			0x250 (MUX_MODE2 | PIN_INPUT )		/* rgmii0_txc.rmii1_rxd1 */
			0x270 (MUX_MODE2 | PIN_OUTPUT )	/* rgmii0_rxd3.rmii1_txd0 */
			0x26C (MUX_MODE2 | PIN_OUTPUT )	/* rgmii0_rxctl.rmii1_txd1 */
			0x248 (MUX_MODE2 | PIN_INPUT ) 	/* uart3_rxd.rmii1_crs */
			0x268 (MUX_MODE2 | PIN_OUTPUT )	/* rgmii0_rxc.rmii1_txen */
			0x244 (MUX_MODE0 | PIN_INPUT ) 					/* RMII_MHZ_50_CLK.RMII_MHZ_50_CLK */

			0x3B8 (MUX_MODE5 | PIN_INPUT_PULLDOWN)	/* spi1_cs2.MDIO_MCLK */
			0x3BC (MUX_MODE5 | PIN_INPUT_PULLDOWN)	/* spi1_cs3.MDIO_D */
			
			0x434 MUX_MODE0	/* TDI.TDI */
			0x444 MUX_MODE0	/* RTCK.RTCK */
			0x448 MUX_MODE0	/* EMU0.EMU0 */
			0x44C MUX_MODE0	/* EMU1.EMU1 */

			0x294 (MUX_MODE9 | PIN_INPUT)	/* xref_clk0.clkout2 */

			0x280 MUX_MODE0	/* usb1_drvvbus.usb1_drvvbus */



			0x000 MUX_MODE0	/* gpmc_ad0 */
			0x004 MUX_MODE0	/* gpmc_ad1 */
			0x008 MUX_MODE0	/* gpmc_ad2 */
			0x00C MUX_MODE0	/* GPMC_AD3.gpmc_ad3 */
			0x010 MUX_MODE0	/* gpmc_ad4 */
			0x014 MUX_MODE0	/* gpmc_ad5 */
			0x018 MUX_MODE0 /* GPMC_AD6.gpmc_ad6 */	
			0x01C MUX_MODE0	/* GPMC_AD7.gpmc_ad7 */
			0x020 MUX_MODE0	/* GPMC_AD8.gpmc_ad8 */
			0x024 MUX_MODE0	/* GPMC_AD9.gpmc_ad9 */
			0x028 MUX_MODE0 /* GPMC_AD10.gpmc_ad10 */
			0x02C MUX_MODE0	/* GPMC_AD11.gpmc_ad11 */
			0x030 MUX_MODE0	/* gpmc_ad12 */
			0x034 MUX_MODE0	/* gpmc_ad13 */
			0x038 MUX_MODE0	/* gpmc_ad14 */
			0x03C MUX_MODE0	/* gpmc_ad15 */
			0x0B4 (MUX_MODE0 | PIN_OUTPUT) 	/* gpmc_cs0.gpmc_cs0 */
			0x0C4 (MUX_MODE0 | PIN_OUTPUT) 	/* gpmc_advn_ale.gpmc_advn_ale */
			0x0C8 (MUX_MODE0 | PIN_OUTPUT) 	/* gpmc_oen_ren.gpmc_oen_ren */
			0x0CC (MUX_MODE0 | PIN_OUTPUT) 	/* gpmc_wen.gpmc_wen */
			0x0D0 (MUX_MODE0 | PIN_OUTPUT) 	/* gpmc_ben0.gpmc_ben0 */
			0x0D8 (MUX_MODE0 | PIN_INPUT | SLEWCONTROL) 	/* gpmc_wait0.gpmc_wait0 */
		>;
	};

	mmc3_pins_default: pinmux_mmc3_default_pins {
		pinctrl-single,pins = <
			0x380 (MUX_MODE0 | PIN_INPUT_PULLUP) 	/* MMC3_CMD.MMC3_CMD */
			0x37C (MUX_MODE0 | PIN_INPUT_PULLUP) 	/* mmc3_clk.mmc3_clk */
			0x384 (MUX_MODE0 | PIN_INPUT_PULLUP) 	/* mmc3_dat0.mmc3_dat0 */
			0x388 (MUX_MODE0 | PIN_INPUT_PULLUP) 	/* mmc3_dat1.mmc3_dat1 */
			0x38C (MUX_MODE0 | PIN_INPUT_PULLUP) 	/* mmc3_dat2.mmc3_dat2 */
			0x390 (MUX_MODE0 | PIN_INPUT_PULLUP) 	/* mmc3_dat3.mmc3_dat3 */
		>;
	};

	vin3a_pins: pinmux_vin3a_pins {
                pinctrl-single,pins = <
                     	0x21C MUX_MODE4	/* VOUT1_D16.VIN3A_D0 */
			0x228 MUX_MODE4	/* VOU1_D19.VIN3A_D3 */
			0x238 MUX_MODE4	/* VOU1_D23.VIN3A_D7 */
			0x220 MUX_MODE4	/* VOU1_D17.VIN3A_D1 */
			0x22C MUX_MODE4	/* VOU1_D20.VIN3A_D4 */
			0x224 MUX_MODE4	/* VOU1_D18.VIN3A_D2 */
			0x230 MUX_MODE4	/* VOU1_D21.VIN3A_D5 */
			0x234 MUX_MODE4	/* VOU1_D22.VIN3A_D6 */
			0x1D0 MUX_MODE4	/* vout1_fld.VIN3A_CLK0 */   
                >;
        };
};

&pbias_mmc_reg {
	regulator-max-microvolt = <3300000>;
};

&mmc3 {
  	/* from mmc-1 */
	status = "okay";
	vmmc-supply = <&evm_3v3_sw>;
	bus-width = <4>;
	ti,non-removable;
	/*
	 * SDCD signal is not being used here - using the fact that GPIO mode
	 * is always hardwired.
	 */
	//cd-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;

	max-frequency = <64000000>;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc3_pins_default>;
};

&lcd {
		enable-gpios = <>; /* P15, CON_LCD_PWR_DN */
};
   

Regards,

Shawn

  • Hi Shawn

    If your device is registered, most likely your device tree is correct.

    From the log also, i see that the /dev/video1 device is registered.

    I am not sure why the v4l2-ctrl is failing but can you find out the failure when you run your application?

    Run the application prefixed with strace to find out what;s the exact issue.

    Also, enable kernel logs

    "echo 15 > /sys/class/video4linux/videoX/dev_debug"

    to get more info about the system calls.

    Sometimes, if the subdevice returns -ENODEV, its possible that the open function returns -ENODEV

    Regards,

    Nikhil D

  • Hi Nikhil,

    After i use strace for application, the log is => 

    4774.log.txt
    root@dra7xx-evm:/sys/class/video4linux/video1#
    eoot@dra7xx-evm:/sys/class/video4linux/video1# strace v4l2grab_Anysize
    execve("/bin/v4l2grab_Anysize", ["v4l2grab_Anysize"], [/* 21 vars */]) = 0
    brk(NULL)                               = 0x11f000
    uname({sysname="Linux", nodename="dra7xx-evm", ...}) = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f94000
    access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
    open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
    fstat64(3, {st_mode=S_IFREG|0644, st_size=56753, ...}) = 0
    mmap2(NULL, 56753, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6f86000
    close(3)                                = 0
    open("/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0 \27\0\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=189668, ...}) = 0
    mmap2(NULL, 86544, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6f58000
    mprotect(0xb6f5d000, 61440, PROT_NONE)  = 0
    mmap2(0xb6f6c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0xb6f6c000
    close(3)                                = 0
    open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\235h\1\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=9161320, ...}) = 0
    mmap2(NULL, 968040, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e6b000
    mprotect(0xb6f43000, 61440, PROT_NONE)  = 0
    mmap2(0xb6f52000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd7000) = 0xb6f52000
    mmap2(0xb6f55000, 9576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6f55000
    close(3)                                = 0
    open("/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0EF\0\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=984452, ...}) = 0
    mmap2(NULL, 78424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e57000
    mmap2(0xb6e67000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0xb6e67000
    mmap2(0xb6e69000, 4696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6e69000
    close(3)                                = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f85000
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6e56000
    set_tls(0xb6f85900, 0xb6e56008, 0xb6f96050, 0xb6f85900, 0xb6f96050) = 0
    mprotect(0xb6f52000, 8192, PROT_READ)   = 0
    mprotect(0xb6e67000, 4096, PROT_READ)   = 0
    mprotect(0xb6f6c000, 4096, PROT_READ)   = 0
    mprotect(0xb6f95000, 4096, PROT_READ)   = 0
    munmap(0xb6f86000, 56753)               = 0
    set_tid_address(0xb6f854a8)             = 881
    set_robust_list(0xb6f854b0, 12)         = 0
    rt_sigaction(SIGRTMIN, {0xb6e5b1c5, [], SA_RESTORER|SA_SIGINFO, 0xb6e900b1}, NULL, 8) = 0
    rt_sigaction(SIGRT_1, {0xb6e5b265, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0xb6e900b1}, NULL, 8) = 0
    rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
    ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
    brk(NULL)                               = 0x11f000
    brk(0x140000)                           = 0x140000
    open("/home/root/0c_image_bmp.bmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
    open("/home/root/0c_image_yuv.yuv", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
    open("/dev/video1", O_RDWR)             = -1 ENODEV (No such device)
    fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 67), ...}) = 0
    ioctl(1, TCGETS, {B115200 opost isig icanon echo ...}) = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f93000
    write(1, "Error opening V4L interface\n", 28Error opening V4L interface
    ) = 28
    exit_group(0)                           = ?
    +++ exited with 0 +++
    root@dra7xx-evm:/sys/class/video4linux/video1#
    root@dra7xx-evm:/sys/class/video4linux/video1#
          

    It seems the open function fail to open /dev/video1. But i can see it through "ls /dev/video1",

    If i use tvp5158 or ov1063x driver, althought we don't have real ic, but we avoid any i2c read/write inside xxx_probe() function, so system can still boot up successfully, and create /dev/videoX for these subdevices. These subdevices can open successfully.  

    What's the reason could cause this situation? And what can i do for further debug?

    Regards,

    Shawn

  • Hi Shawn,

    As I mentioned in my last post, the ENODEV is getting returned by the subdevice.
    e.g. When TVP5158 cannot detect the video signal at the analog video connector, it returns -ENODEV
    Therefore the vip driver will also return ENODEV.

    This just means that the subdevice is not able to detect the video. Is the cable connected correctly in the correct connector?
    If you are using DRA7xx EVM with JAMR adapter card, the video needs to be connected to VIN1 connector on JAMR board.

    The tvp driver uses this to check if video is detected or not


    Regards,
    Nikhil D
  • Hi Nikhil,

    Nikhil Devshatwar said:
    e.g. When TVP5158 cannot detect the video signal at the analog video connector, it returns -ENODEV
    Therefore the vip driver will also return ENODEV.

    So if adv7611 cannot detect input signal, then i'll fail to open /dev/video1, right?

    I also make a experiment. I set vin2a binding with tvp5158 at our custom board(but actually, there is no tvp5158 at our board), i can still see /dev/video1, and can open it without any video inut. How to explain this scenario?

    Regards,

    Shawn

  • Hi Nikhil,

    Currently, i trace to adv76xx_get_format() at adv7604.c, it seems format->pad value is not equal to state->source_pad, so return -EINVAL. I print out these parameter,

    format->pad = 0

    state->source_pad = 1

    If i force format->pad equal to state->source_pad, then open successfully, but i think this should not be the correct solution.

    Why this equation fail? And what's the different about these two parameters?

    Regards,

    Shawn   

  • Hi Shawn,

    Is the issue with the open solved?

    What exactly in the driver is causing to return -ENODEV if so?

    TI does not support adv driver, only officially supported drivers are tvp5158 and OV1063x

    As long as the subdevice implements all the required ops, the VIP driver should bind with it, register a device, find all the formats, and start video capture.

    I see some issue when the VIP driver is trying to open, negotiate formats and failing because the formats returned aren't supported by it.

    What's the format ADV driver returns?

    Regards,

    Nikhil D

  • Hi Nikhil,

    Nikhil Devshatwar said:
    Is the issue with the open solved?

    Not yet, i just mark the if-condition, then system can open /dev/video1.

    Nikhil Devshatwar said:
    What exactly in the driver is causing to return -ENODEV if so?

    I trace the code, path is vip_open()-->vip_init_stream()-->vip_init_port()-->v4l2_subdev_call()--> then enter adv7604 driver  -->  adv76xx_get_format().

    At adv76xx_get_format() function, has a if-condition code like below:

    static int adv76xx_get_format(struct v4l2_subdev *sd,
             struct v4l2_subdev_pad_config *cfg,
             struct v4l2_subdev_format *format)
    {
     struct adv76xx_state *state = to_state(sd);

     if (format->pad != state->source_pad)
      return -EINVAL;

    ......

    }

    The if-condition check fail, then return -EINVAL. I still don't know what are these 2 parameters(format->pad, state->source_pad) usage?

    Nikhil Devshatwar said:
    What's the format ADV driver returns?

    When i run an AP(v4l2grab_Anysize), it shows it only support format [24-bit RGB 8-8-8]. This also confuse me, according to spec, the adv7611 should support BT656 8-bit mode output.

    I check support format of both vip.c and adv7611 at adv7604.c, they only have common at [MEDIA_BUS_FMT_RGB888_1X24], why? Is this mean other format at adv7611 is not supported by vip.c?

    Here is the support format at vip => 

    support_format(vip).txt
    static struct vip_fmt vip_formats[VIP_MAX_ACTIVE_FMT] = {
    	{
    		.fourcc		= V4L2_PIX_FMT_NV12,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 1,
    		.vpdma_fmt	= { &vpdma_yuv_fmts[VPDMA_DATA_FMT_Y420],
    				    &vpdma_yuv_fmts[VPDMA_DATA_FMT_C420],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_UYVY,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_yuv_fmts[VPDMA_DATA_FMT_CBY422],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_YUYV,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_yuv_fmts[VPDMA_DATA_FMT_YCB422],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_VYUY,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_yuv_fmts[VPDMA_DATA_FMT_CRY422],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_YVYU,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_yuv_fmts[VPDMA_DATA_FMT_YCR422],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_RGB24,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SRGB,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_rgb_fmts[VPDMA_DATA_FMT_RGB24],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_RGB32,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SRGB,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_rgb_fmts[VPDMA_DATA_FMT_ARGB32],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_BGR24,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SRGB,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_rgb_fmts[VPDMA_DATA_FMT_BGR24],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_BGR32,
    		.code		= MEDIA_BUS_FMT_UYVY8_2X8,
    		.colorspace	= V4L2_COLORSPACE_SRGB,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_rgb_fmts[VPDMA_DATA_FMT_ABGR32],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_RGB24,
    		.code		= MEDIA_BUS_FMT_RGB888_1X24,
    		.colorspace	= V4L2_COLORSPACE_SRGB,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_rgb_fmts[VPDMA_DATA_FMT_RGB24],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_RGB32,
    		.code		= MEDIA_BUS_FMT_ARGB8888_1X32,
    		.colorspace	= V4L2_COLORSPACE_SRGB,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_rgb_fmts[VPDMA_DATA_FMT_ARGB32],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_SBGGR8,
    		.code		= MEDIA_BUS_FMT_SBGGR8_1X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_raw_fmts[VPDMA_DATA_FMT_RAW8],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_SGBRG8,
    		.code		= MEDIA_BUS_FMT_SGBRG8_1X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_raw_fmts[VPDMA_DATA_FMT_RAW8],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_SGRBG8,
    		.code		= MEDIA_BUS_FMT_SGRBG8_1X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_raw_fmts[VPDMA_DATA_FMT_RAW8],
    				  },
    	},
    	{
    		.fourcc		= V4L2_PIX_FMT_SRGGB8,
    		.code		= MEDIA_BUS_FMT_SRGGB8_1X8,
    		.colorspace	= V4L2_COLORSPACE_SMPTE170M,
    		.coplanar	= 0,
    		.vpdma_fmt	= { &vpdma_raw_fmts[VPDMA_DATA_FMT_RAW8],
    				  },
    	},
    };
         

    Here is the support format adv7611 => 

    support_format(adv7611).txt
    static const struct adv76xx_format_info adv7611_formats[] = {
    	{ MEDIA_BUS_FMT_RGB888_1X24, ADV76XX_OP_CH_SEL_RGB, true, false,
    	  ADV76XX_OP_MODE_SEL_SDR_444 | ADV76XX_OP_FORMAT_SEL_8BIT },
    	{ MEDIA_BUS_FMT_YUYV8_2X8, ADV76XX_OP_CH_SEL_RGB, false, false,
    	  ADV76XX_OP_MODE_SEL_SDR_422 | ADV76XX_OP_FORMAT_SEL_8BIT },
    	{ MEDIA_BUS_FMT_YVYU8_2X8, ADV76XX_OP_CH_SEL_RGB, false, true,
    	  ADV76XX_OP_MODE_SEL_SDR_422 | ADV76XX_OP_FORMAT_SEL_8BIT },
    	{ MEDIA_BUS_FMT_YUYV12_2X12, ADV76XX_OP_CH_SEL_RGB, false, false,
    	  ADV76XX_OP_MODE_SEL_SDR_422 | ADV76XX_OP_FORMAT_SEL_12BIT },
    	{ MEDIA_BUS_FMT_YVYU12_2X12, ADV76XX_OP_CH_SEL_RGB, false, true,
    	  ADV76XX_OP_MODE_SEL_SDR_422 | ADV76XX_OP_FORMAT_SEL_12BIT },
    	{ MEDIA_BUS_FMT_UYVY8_1X16, ADV76XX_OP_CH_SEL_RBG, false, false,
    	  ADV76XX_OP_MODE_SEL_SDR_422_2X | ADV76XX_OP_FORMAT_SEL_8BIT },
    	{ MEDIA_BUS_FMT_VYUY8_1X16, ADV76XX_OP_CH_SEL_RBG, false, true,
    	  ADV76XX_OP_MODE_SEL_SDR_422_2X | ADV76XX_OP_FORMAT_SEL_8BIT },
    	{ MEDIA_BUS_FMT_YUYV8_1X16, ADV76XX_OP_CH_SEL_RGB, false, false,
    	  ADV76XX_OP_MODE_SEL_SDR_422_2X | ADV76XX_OP_FORMAT_SEL_8BIT },
    	{ MEDIA_BUS_FMT_YVYU8_1X16, ADV76XX_OP_CH_SEL_RGB, false, true,
    	  ADV76XX_OP_MODE_SEL_SDR_422_2X | ADV76XX_OP_FORMAT_SEL_8BIT },
    	{ MEDIA_BUS_FMT_UYVY12_1X24, ADV76XX_OP_CH_SEL_RBG, false, false,
    	  ADV76XX_OP_MODE_SEL_SDR_422_2X | ADV76XX_OP_FORMAT_SEL_12BIT },
    	{ MEDIA_BUS_FMT_VYUY12_1X24, ADV76XX_OP_CH_SEL_RBG, false, true,
    	  ADV76XX_OP_MODE_SEL_SDR_422_2X | ADV76XX_OP_FORMAT_SEL_12BIT },
    	{ MEDIA_BUS_FMT_YUYV12_1X24, ADV76XX_OP_CH_SEL_RGB, false, false,
    	  ADV76XX_OP_MODE_SEL_SDR_422_2X | ADV76XX_OP_FORMAT_SEL_12BIT },
    	{ MEDIA_BUS_FMT_YVYU12_1X24, ADV76XX_OP_CH_SEL_RGB, false, true,
    	  ADV76XX_OP_MODE_SEL_SDR_422_2X | ADV76XX_OP_FORMAT_SEL_12BIT },
    };
         

    As you say, TI officially supported drivers include OV1063x. At ov1063x.c, i see the support format include "MEDIA_BUS_FMT_YUYV8_2X8", which also support by adv7611, but i can't see it at support list of vip.c. So if i try to use this format, can vip support it?

    Regards,

    Shawn 

  • Hi Shawn,

    Note that VIP expects mediabus format MEDIA_BUS_FMT_UYVY8_2X8

    Note that it is UVYV - the first byte should be U

    This is the format returned by TVP5158 driver and VIP can accept it.

    I am not sure about the state data structures used by the ADV driver but if the driver returns this format, VIP will configure the port accordingly.

    Also, along with returning the correct format values, the hardware should actually send data in that format.

    Regards,

    Nikhil D

  • Hi Nikhil,

    Nikhil Devshatwar said:
    Note that VIP expects mediabus format MEDIA_BUS_FMT_UYVY8_2X8

    So if adv7604 want to use format "MEDIA_BUS_FMT_YUYV8_2X8" with first byte to be Y, then VIP can't accept this format, right?

    Can i add "MEDIA_BUS_FMT_YUYV8_2X8" this support format at vip? And where should i modify?

    Nikhil Devshatwar said:
    I am not sure about the state data structures used by the ADV driver but if the driver returns this format, VIP will configure the port accordingly

    Based on the source code of vip_init_port(), before calling v4l2_subdev_call(), vip already give a value "0" to sd_fmt.pad. What's the usage of this variable? Can i set this value to "1"?

    Regards,

    Shawn

  • Hi Shawn,

    As I said, just setting the expected format won't work.

    The hardware has to generate the data in U, Y, V, Y format only.

    v4l2_subdev_format::pad is the pad number used by the V4L2 media framework.

    Why is the subdev expecting it to be connected to pad number 1.

    By default, pad numbers start with 0

    I would suggest to modify the adv driver to work with pad no 0 as well.

    Regards,

    Nikhil D