public inbox for cip-dev@lists.cip-project.org
 help / color / mirror / Atom feed
* [PATCH 6.1.y-cip 00/55] Add support for CRU/CSI2 on Renesas RZ/G3E
@ 2025-08-20 16:03 Tommaso Merciai
  2025-08-20 16:03 ` [PATCH 6.1.y-cip 01/55] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/V2H(P) SoC Tommaso Merciai
                   ` (56 more replies)
  0 siblings, 57 replies; 67+ messages in thread
From: Tommaso Merciai @ 2025-08-20 16:03 UTC (permalink / raw)
  To: cip-dev, Nobuhiro Iwamatsu, Pavel Machek; +Cc: Biju Das, tomm.merciai

Dear All,

This series adds support for the CRU/CSI2 IPs found in the Renesas RZ/G3E in
Linux 6.1.y-cip. These IPs are similar to those found on the RZ/V2H(P).

In addition, it includes patches required to successfully run the v4l2-compliance
tests against the OV5645 and the entire media pipeline.

This series has been tested on the following hardware setup:

OV5645 image sensor (Coral Camera) → RZ/G3E CSI2 → RZ/G3E CRU

The series applies on top of [1].

[1] https://patchwork.kernel.org/project/cip-dev/list/?series=993368&state=%2A&archive=both

Thanks & Regards,
Tommaso

Biju Das (3):
  media: platform: rzg2l-cru: rzg2l-video: Move request_irq() to probe()
  media: platform: rzg2l-cru: rzg2l-video: Set AXI burst max length
  media: platform: rzg2l-cru: rzg2l-video: Fix the comment in
    rzg2l_cru_start_streaming_vq()

Daniel Scally (1):
  media: rzg2l-cru: Add vidioc_enum_framesizes()

Lad Prabhakar (39):
  media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/V2H(P) SoC
  media: rzg2l-cru: Use RZG2L_CRU_IP_SINK/SOURCE enum entries
  media: rzg2l-cru: Mark sink and source pad with MUST_CONNECT flag
  media: rzg2l-cru: csi2: Mark sink and source pad with MUST_CONNECT
    flag
  media: rzg2l-cru: csi2: Use ARRAY_SIZE() in media_entity_pads_init()
  media: rzg2l-cru: csi2: Implement .get_frame_desc()
  media: rzg2l-cru: Retrieve virtual channel information
  media: rzg2l-cru: Remove `channel` member from `struct rzg2l_cru_csi`
  media: rzg2l-cru: Use MIPI CSI-2 data types for ICnMC_INF definitions
  media: rzg2l-cru: Remove unused fields from rzg2l_cru_ip_format struct
  media: rzg2l-cru: Remove unnecessary WARN_ON check in format func
  media: rzg2l-cru: Simplify configuring input format for image
    processing
  media: rzg2l-cru: Inline calculating image size
  media: rzg2l-cru: Simplify handling of supported formats
  media: rzg2l-cru: Inline calculating bytesperline
  media: rzg2l-cru: Make use of v4l2_format_info() helpers
  media: rzg2l-cru: Use `rzg2l_cru_ip_formats` array in enum_frame_size
  media: rzg2l-cru: csi2: Remove unused field from rzg2l_csi2_format
  media: rzg2l-cru: video: Implement .link_validate() callback
  media: rzg2l-cru: csi2: Use rzg2l_csi2_formats array in
    enum_frame_size
  media: rzg2l-cru: Refactor ICnDMR register configuration
  media: rzg2l-cru: Add support to capture 8bit raw sRGB
  media: rzg2l-cru: Move register definitions to a separate file
  media: renesas: rzg2l-cru: Add 'yuv' flag to IP format structure
  media: rzg2l-cru: csi2: Use local variable for struct device in
    rzg2l_csi2_probe()
  media: rzg2l-cru: rzg2l-core: Use local variable for struct device in
    rzg2l_cru_probe()
  media: rzg2l-cru: csi2: Introduce SoC-specific D-PHY handling
  media: rzg2l-cru: csi2: Add support for RZ/V2H(P) SoC
  media: rzg2l-cru: Add register mapping support
  media: rzg2l-cru: Pass resolution limits via OF data
  media: rzg2l-cru: Add image_conv offset to OF data
  media: rzg2l-cru: Add IRQ handler to OF data
  media: rzg2l-cru: Add function pointer to check if FIFO is empty
  media: rzg2l-cru: Add function pointer to configure CSI
  media: rzg2l-cru: Add support for RZ/G3E SoC
  media: i2c: ov5645: Use local `dev` pointer for subdev device
    assignment
  media: i2c: ov5645: Replace dev_err with dev_err_probe in probe
    function
  media: i2c: ov5645: Use v4l2_async_register_subdev_sensor()
  media: i2c: ov5645: Drop `power_lock` mutex

Ricardo Ribalda (1):
  media: i2c: ov5645: Refactor ov5645_set_power_off()

Tommaso Merciai (11):
  media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/G3E CSI-2
    block
  media: dt-bindings: renesas,rzg2l-cru: Document Renesas RZ/G3E SoC
  media: rzg2l-cru: csi2: Use devm_pm_runtime_enable()
  media: rzg2l-cru: rzg2l-core: Use devm_pm_runtime_enable()
  media: rzg2l-cru: csi2: Skip system clock for RZ/V2H(P) SoC
  arm64: dts: renesas: r9a09g047: Add CRU, CSI2 nodes
  arm64: dts: renesas: r9a09g047e57-smarc: Add I2C0 pincontrol
  arm64: dts: renesas: renesas-smarc2: Enable I2C0 node
  arm64: dts: renesas: r9a09g047e57-smarc: Enable CRU, CSI support
  media: v4l2-subdev: Refactor events
  media: i2c: ov5645: Set V4L2_SUBDEV_FL_HAS_EVENTS flag

 .../bindings/media/renesas,rzg2l-cru.yaml     |  65 +-
 .../bindings/media/renesas,rzg2l-csi2.yaml    |  62 +-
 arch/arm64/boot/dts/renesas/r9a09g047.dtsi    |  69 ++
 .../boot/dts/renesas/r9a09g047e57-smarc.dts   |  18 +
 .../boot/dts/renesas/renesas-smarc2.dtsi      |   6 +
 drivers/media/i2c/ov5645.c                    | 116 ++--
 .../platform/renesas/rzg2l-cru/rzg2l-core.c   | 151 ++++-
 .../renesas/rzg2l-cru/rzg2l-cru-regs.h        | 111 ++++
 .../platform/renesas/rzg2l-cru/rzg2l-cru.h    |  73 ++-
 .../platform/renesas/rzg2l-cru/rzg2l-csi2.c   | 202 +++++-
 .../platform/renesas/rzg2l-cru/rzg2l-ip.c     |  98 ++-
 .../platform/renesas/rzg2l-cru/rzg2l-video.c  | 612 ++++++++++++------
 drivers/media/v4l2-core/v4l2-subdev.c         |  22 +-
 13 files changed, 1223 insertions(+), 382 deletions(-)
 create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h

-- 
2.43.0



^ permalink raw reply	[flat|nested] 67+ messages in thread

end of thread, other threads:[~2025-09-04 19:36 UTC | newest]

Thread overview: 67+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-20 16:03 [PATCH 6.1.y-cip 00/55] Add support for CRU/CSI2 on Renesas RZ/G3E Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 01/55] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/V2H(P) SoC Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 02/55] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/G3E CSI-2 block Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 03/55] media: dt-bindings: renesas,rzg2l-cru: Document Renesas RZ/G3E SoC Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 04/55] media: platform: rzg2l-cru: rzg2l-video: Move request_irq() to probe() Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 05/55] media: platform: rzg2l-cru: rzg2l-video: Set AXI burst max length Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 06/55] media: rzg2l-cru: Use RZG2L_CRU_IP_SINK/SOURCE enum entries Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 07/55] media: rzg2l-cru: Mark sink and source pad with MUST_CONNECT flag Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 08/55] media: rzg2l-cru: csi2: " Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 09/55] media: rzg2l-cru: csi2: Use ARRAY_SIZE() in media_entity_pads_init() Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 10/55] media: rzg2l-cru: csi2: Implement .get_frame_desc() Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 11/55] media: rzg2l-cru: Retrieve virtual channel information Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 12/55] media: rzg2l-cru: Remove `channel` member from `struct rzg2l_cru_csi` Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 13/55] media: rzg2l-cru: Use MIPI CSI-2 data types for ICnMC_INF definitions Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 14/55] media: rzg2l-cru: Remove unused fields from rzg2l_cru_ip_format struct Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 15/55] media: rzg2l-cru: Remove unnecessary WARN_ON check in format func Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 16/55] media: rzg2l-cru: Simplify configuring input format for image processing Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 17/55] media: rzg2l-cru: Inline calculating image size Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 18/55] media: rzg2l-cru: Simplify handling of supported formats Tommaso Merciai
2025-08-22 11:29   ` Pavel Machek
2025-08-20 16:03 ` [PATCH 6.1.y-cip 19/55] media: rzg2l-cru: Inline calculating bytesperline Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 20/55] media: rzg2l-cru: Make use of v4l2_format_info() helpers Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 21/55] media: rzg2l-cru: Use `rzg2l_cru_ip_formats` array in enum_frame_size Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 22/55] media: rzg2l-cru: csi2: Remove unused field from rzg2l_csi2_format Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 23/55] media: rzg2l-cru: video: Implement .link_validate() callback Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 24/55] media: rzg2l-cru: csi2: Use rzg2l_csi2_formats array in enum_frame_size Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 25/55] media: rzg2l-cru: Refactor ICnDMR register configuration Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 26/55] media: rzg2l-cru: Add support to capture 8bit raw sRGB Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 27/55] media: rzg2l-cru: Move register definitions to a separate file Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 28/55] media: renesas: rzg2l-cru: Add 'yuv' flag to IP format structure Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 29/55] media: platform: rzg2l-cru: rzg2l-video: Fix the comment in rzg2l_cru_start_streaming_vq() Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 30/55] media: rzg2l-cru: csi2: Use local variable for struct device in rzg2l_csi2_probe() Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 31/55] media: rzg2l-cru: csi2: Use devm_pm_runtime_enable() Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 32/55] media: rzg2l-cru: rzg2l-core: Use local variable for struct device in rzg2l_cru_probe() Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 33/55] media: rzg2l-cru: rzg2l-core: Use devm_pm_runtime_enable() Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 34/55] media: rzg2l-cru: csi2: Introduce SoC-specific D-PHY handling Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 35/55] media: rzg2l-cru: csi2: Skip system clock for RZ/V2H(P) SoC Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 36/55] media: rzg2l-cru: csi2: Add support " Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 37/55] media: rzg2l-cru: Add register mapping support Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 38/55] media: rzg2l-cru: Pass resolution limits via OF data Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 39/55] media: rzg2l-cru: Add image_conv offset to " Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 40/55] media: rzg2l-cru: Add IRQ handler " Tommaso Merciai
2025-08-22 11:32   ` Pavel Machek
2025-08-20 16:03 ` [PATCH 6.1.y-cip 41/55] media: rzg2l-cru: Add function pointer to check if FIFO is empty Tommaso Merciai
2025-08-22 11:33   ` Pavel Machek
2025-08-20 16:03 ` [PATCH 6.1.y-cip 42/55] media: rzg2l-cru: Add function pointer to configure CSI Tommaso Merciai
2025-08-20 16:03 ` [PATCH 6.1.y-cip 43/55] media: rzg2l-cru: Add support for RZ/G3E SoC Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 44/55] media: rzg2l-cru: Add vidioc_enum_framesizes() Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 45/55] arm64: dts: renesas: r9a09g047: Add CRU, CSI2 nodes Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 46/55] arm64: dts: renesas: r9a09g047e57-smarc: Add I2C0 pincontrol Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 47/55] arm64: dts: renesas: renesas-smarc2: Enable I2C0 node Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 48/55] arm64: dts: renesas: r9a09g047e57-smarc: Enable CRU, CSI support Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 49/55] media: v4l2-subdev: Refactor events Tommaso Merciai
2025-08-22 15:36   ` Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 50/55] media: i2c: ov5645: Refactor ov5645_set_power_off() Tommaso Merciai
2025-08-22 11:35   ` Pavel Machek
2025-08-20 16:04 ` [PATCH 6.1.y-cip 51/55] media: i2c: ov5645: Use local `dev` pointer for subdev device assignment Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 52/55] media: i2c: ov5645: Replace dev_err with dev_err_probe in probe function Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 53/55] media: i2c: ov5645: Use v4l2_async_register_subdev_sensor() Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 54/55] media: i2c: ov5645: Drop `power_lock` mutex Tommaso Merciai
2025-08-20 16:04 ` [PATCH 6.1.y-cip 55/55] media: i2c: ov5645: Set V4L2_SUBDEV_FL_HAS_EVENTS flag Tommaso Merciai
2025-08-22 11:36   ` Pavel Machek
2025-08-25  6:50     ` Tommaso Merciai
2025-08-26  7:38       ` Pavel Machek
2025-08-22 11:37 ` [PATCH 6.1.y-cip 00/55] Add support for CRU/CSI2 on Renesas RZ/G3E Pavel Machek
2025-08-22 15:08   ` Tommaso Merciai
2025-09-04 19:35 ` Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox