ADV7280
Not Recommended for New Designs
The ADV7280 / ADV7280-M are versatile one-chip, multiformat video decoders. The ADV7280 / ADV7280-M automatically detect standard analog baseband video...
Datasheet
ADV7280 on Analog.com
We’re working with a custom PCB that connects a composite video camera to an ADV7280A-M and then outputs MIPI-CSI2 to a Raspberry Pi 4.
We’re using the official Raspberry Pi Linux driver:
and took inspiration from this project:
github.com/.../ADV7280-Raspi-shield
The video stream works — but with certain analog camera sources (for example, Framos CVBS modules) the image is shifted vertically:
the bottom ~20 lines of the picture wrap around and appear at the top, as shown below:

text seem to have weird colors:

With other cameras the image is perfectly aligned, so the issue might depend on the input signal timing.
Custom PCB using ADV7280A-M (8× CVBS inputs, MIPI CSI-2 output)
Connected directly to Raspberry Pi 4 Model B CSI port
Kernel: rpi-6.12.y, using stock adv7180.c driver
No modifications to driver except input selection via sub-device
Hi,
Kindly note that, By default the ADV7280 outputs according to the ITU-R BT.656-3 specification. There are extra blanking lines in the vertical blanking period for NTSC signals in ITU-R BT.656-3 mode compared to ITU-R BT.656-4 mode.
You can switch between the ITU-R BT.656-3 mode and ITU-R BT.656-4 output mode by toggling the User Map register 0x04 bit [7].
0: (default) BT656-3 mode
1: BT656-4 mode
Also make sure with crystal clock (i.e) you are providing correct 'XTAL 28.6363' and your script selects 28.63636 crystal.
Thanks,
Poornima
Hi,
Kindly note that, By default the ADV7280 outputs according to the ITU-R BT.656-3 specification. There are extra blanking lines in the vertical blanking period for NTSC signals in ITU-R BT.656-3 mode compared to ITU-R BT.656-4 mode.
You can switch between the ITU-R BT.656-3 mode and ITU-R BT.656-4 output mode by toggling the User Map register 0x04 bit [7].
0: (default) BT656-3 mode
1: BT656-4 mode
Also make sure with crystal clock (i.e) you are providing correct 'XTAL 28.6363' and your script selects 28.63636 crystal.
Thanks,
Poornima