Identity
| Part | Sony IMX258 (1/3.06” 13 MP CMOS, on-chip PDAF) |
| Role | Rear-facing camera |
| Bus / address | DTS &i2c1 addr 0x1a; pixel data on MIPI CSI-2 via RK ISP |
| GPIO / IRQ | Reset / power-down on dedicated camera GPIOs (sheet 13); MCLK from rk_cru |
| Datasheet | Sony IMX258 (NDA; reference is the Linux mainline driver) |
| Pine64 wiki | PinePhone Pro — Cameras |
| Schematic | sheet 13 (rear camera, MIPI CSI lanes, regulators) |
Status — · not started
Not started. The IMX258 itself is a relatively self-contained I2C sensor — the blocker is the entire stack underneath it: FreeBSD has no V4L2 / media framework, no MIPI CSI-2 PHY driver for the RK3399, and no RK ISP1 driver. Even with the IMX258 driver hand-translated, there is nothing to feed pixel data into. This is a person-years effort and is firmly Phase 4+ work.
Driver
- Our tree: none.
- Linux mainline (sensor):
drivers/media/i2c/imx258.c— the I2C side; needs a V4L2 subdev consumer. - Linux mainline (CSI receiver):
drivers/media/platform/rockchip/rkisp1/— RK3399 ISP1 driver, the missing pixel-pipeline plumbing. - Linux V4L2 core:
drivers/media/— the entire subsystem would have to be approximated in FreeBSD before any sensor driver becomes useful.
The IMX258’s I2C interface is a register table plus a vendor mode
ROM; that part is small. What surrounds it — power-up sequence, MCLK
gating, MIPI CSI-2 PHY init, ISP buffer DMA, and a userland API for
v4l2-ctl / gst-launch consumers — is the work.
Open work
- Decide whether to attempt a V4L2 shim layer over
evdev-style FreeBSD plumbing or to declare cameras out of scope. - If pursued: bring up the RK ISP1 driver headlessly first (no sensor) to validate the MIPI CSI path; add IMX258 as the first sensor.
- Power sequencing and MCLK from
rk_cru.
Related
- What’s next: finish WiFi, then modem — camera is explicitly Phase 4+.
- Hardware reference — chip manifest.