What you should check (practical debug checklist)
Step 1: Verify I2C basic communication
i2cdetect -y <bus>
dmesg | grep imx219 / ov5647
Key question:
- detected but probe fails → clock/reset issue
- not detected → HW / pin / power issue
Step 2: Check clock output
Confirm:
- CLK pin actually outputs waveform
- frequency correct (24/25 MHz)
Step 3: Validate reset / power-down GPIO
Ensure DTS includes:
reset-gpios = <...>;
pwdn-gpios = <...>;
Test:
- toggle manually (debug prints or GPIO sysfs)
Step 4: Compare with working NXP camera DTS
Use:
OV5640 or AP1302 DTS from BSP
Compare:
endpoint
port
lane config
Step 5: Check media graph
media-ctl -p
Verify pipeline is complete.
Step 6: Confirm lane configuration
Mismatch examples:
data-lanes = <1 2>;
clock-lane = <0>;
Wrong config → no stream
Recommendation:
Option A (recommended for project):
Use NXP-validated camera module → saves weeks of bring-up
Option B (if must use RPi camera):
You need to:
- Fully port sensor driver tuning:
- clock frequency
- link frequency
- MIPI timing
- Carefully align:
- power sequence
- reset timing
- Adjust DTS + pipeline
Expect non-trivial effort