[PATCH v4 00/11] media: imx8-isi: Add i.MX952 ISI support
From: Guoniu Zhou
Date: Tue Sep 29 2026 - 04:54:39 EST
The series adds support for the i.MX952 Image Sensing Interface (ISI),
which is a minor silicon revision of the i.MX95 ISI.
The i.MX952 ISI reuses the i.MX95 ISI core with the same 8-channel
pipeline and 4 pixel link inputs. The key hardware improvement is the
addition of RAW10/12/14 output LSB alignment, which allows the ISI to
output right-aligned RAW data directly, matching the V4L2 format
requirement without the RAW16 workaround needed on earlier platforms.
The series is organized as follows:
1. Reorder mxc_imx95_data definition to follow mxc_imx93_data,
matching the order in the of_match array.
2. Extend output format mask to 7 bits unconditionally since
bit 30 is unused on older platforms.
3. Support mbus_code filtering in mxc_isi_format_enum().
4. Reuse mxc_isi_format_enum() in capture format enumeration.
5. Apply RAW output format workaround at runtime, storing the
actual hardware format in the format table.
6. Add RAW14 output format support (available from i.MX8ULP).
7. Select MSB-aligned RAW input from pixel link on i.MX95.
8. Exclude RAW10/12/14 output formats on i.MX95.
9. Add the i.MX952 compatible string to the DT binding.
10. Add the i.MX952 platform data and of_match entry.
11. Enable RAW10/12/14 output LSB alignment on i.MX952.
Signed-off-by: Guoniu Zhou <guoniu.zhou@xxxxxxxxxxx>
---
Changes in v4:
- Rebase to latest media/next(2dcdfb625c3b)
- Split the original patch 5/5 into multiple focused patches:
patches 3-8 are new, each addressing a specific aspect
- [3/11] New: Support mbus_code filtering in mxc_isi_format_enum()
- [4/11] New: Reuse mxc_isi_format_enum() in capture format enumeration
- [5/11] New: Apply RAW output format workaround at runtime
- [6/11] New: Add RAW14 output format support
- [7/11] New: Select MSB-aligned RAW input from pixel link on i.MX95
- [8/11] New: Exclude RAW10/12/14 output formats on i.MX95
- [11/11] Split RAW_IN_MSB_ALIGN into a separate preceding patch
- [11/11] Split RAW format table and RAW14 changes into separate preceding patches
- [11/11] Move isi_out_raw_shifted() to regs.h in the preceding workaround patch
- [11/11] Rewrite commit message
- Link to v3: https://lore.kernel.org/r/20260915-isi_imx952-v3-0-3d8ff1363dda@xxxxxxxxxxx
Changes in v3:
- [1/5] Add Reviewed-by tag from Laurent
- [2/5] Use unconditional 7-bit mask instead of per-platform approach (Laurent)
- [2/5] Drop Reviewed-by from Frank Li due to significant change and request to review again
- [3/5] Add Reviewed-by/Acked-by tag from Frank, Laurent and Dooley
- [4/5] Extend mask globally instead of per-platform (Laurent)
- [4/5] Add Reviewed-by tag from Frank
- [5/5] Use CHNL_IMG_CTRL_FORMAT_MASK instead of the removed per-platform format_mask (Laurent)
- [5/5] Derive raw_out_lsb from the model field instead of dedicated platform data (Laurent)
- [5/5] Clarify the CHNL_IMG_CTRL_FORMAT_RAW14 comment: the format is documented
on i.MX{8ULP,91,93,95,952} but only used on i.MX952
- [5/5] Rewrite commit message to explain why the RAW16 workaround fails on i.MX95+ (Laurent)
- [5/5] Add Reviewed-by tag from Frank
- Drop "Remove unused model field" patch; model field is now used to derive
raw_out_lsb capability (Laurent)
- Link to v2: https://lore.kernel.org/r/20260831-isi_imx952-v2-0-fafdb4b446d4@xxxxxxxxxxx
Changes in v2:
- Use fallback compatible fsl,imx95-isi for imx952 (Frank)
- Remove unused model field from platform data (Frank)
- Add Reviewed-by tag from Frank Li for patch 1/6 and 2/6
- Link to v1: https://lore.kernel.org/r/20260826-isi_imx952-v1-0-cbfaaa3f0000@xxxxxxxxxxx
---
Guoniu Zhou (11):
media: imx8-isi: Reorder mxc_imx95_data to follow mxc_imx93_data
media: imx8-isi: Extend output format mask to 7 bits
media: imx8-isi: Support mbus_code filtering in format enumeration
media: imx8-isi: Reuse mxc_isi_format_enum() in capture format enumeration
media: imx8-isi: Apply RAW output format workaround at runtime
media: imx8-isi: Add RAW14 output format support
media: imx8-isi: Select MSB-aligned RAW input from pixel link on i.MX95
media: imx8-isi: Exclude RAW10/12/14 output formats on i.MX95
media: dt-bindings: nxp,imx8-isi: Add i.MX952 ISI compatible string
media: imx8-isi: Add i.MX952 ISI support
media: imx8-isi: Enable RAW10/12/14 output LSB alignment on i.MX952
.../devicetree/bindings/media/nxp,imx8-isi.yaml | 18 ++--
.../media/platform/nxp/imx8-isi/imx8-isi-core.c | 37 ++++---
.../media/platform/nxp/imx8-isi/imx8-isi-core.h | 7 +-
drivers/media/platform/nxp/imx8-isi/imx8-isi-hw.c | 56 ++++++++++-
drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c | 2 +-
.../media/platform/nxp/imx8-isi/imx8-isi-regs.h | 22 ++++-
.../media/platform/nxp/imx8-isi/imx8-isi-video.c | 110 ++++++++++-----------
7 files changed, 171 insertions(+), 81 deletions(-)
---
base-commit: 2dcdfb625c3b8fe87454e19dfbc54b3e3f0ad70e
change-id: 20260817-isi_imx952-66ca65f9b638
Best regards,
--
Guoniu Zhou <guoniu.zhou@xxxxxxxxxxx>