* [PATCH v3 0/5] arm64: dts: renesas: sparrow-hawk: Add overlays for camera sensors
@ 2025-07-04 10:07 Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 1/5] arm64: dts: renesas: r8a779g3-sparrow-hawk-fan-pwm: Add missing install target Niklas Söderlund
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Niklas Söderlund @ 2025-07-04 10:07 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut, Laurent Pinchart, linux-renesas-soc,
devicetree
Cc: Niklas Söderlund
Hello,
This series adds a couple of overlays to verify the two CSI-2 busses
exposed on the V4H Sparrow Hawk board. The two busses are exposed on two
connectors labeled J1 and J2 on the board.
The first set adds overlays for the IMX219 camera sensor, one for each
connector (patch 2/5 and 3/5). A Raspberry Pi Camera Module 2 have been
used to verify the proper operation of the overlays.
The second sets adds overlays for the IMX462 camera sensors, also one
for each connector (patch 4/5 and 5/5). A DFM 36SX462-ML camera module
have been used to verify the proper operation of the overlays.
The reason two sets of overlays are needed is that the IMX219 uses
2-lanes CSI-2 D-PHY bus, while the IMX462 uses a 4-lane CSI-2 D-PHY bus.
To be able to properly test both situations on the board each sensor
needs to be able to connected to each of the two external busses.
Obviously only one sensor can be connected to J1, and one to J2 at any
given time.
Patch 1/5 is a drive-by fix that adds an missing install target for an
existing sparrow-hawk overlay. It could have been posted as a separate
patch but could have caused potential conflicts so I kept it in this
series.
See individual patches for changelog.
Niklas Söderlund (5):
arm64: dts: renesas: r8a779g3-sparrow-hawk-fan-pwm: Add missing
install target
arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1
arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J2
arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J1
arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J2
arch/arm64/boot/dts/renesas/Makefile | 13 ++
...8a779g3-sparrow-hawk-camera-j1-imx219.dtso | 111 +++++++++++++++++
...8a779g3-sparrow-hawk-camera-j1-imx462.dtso | 112 ++++++++++++++++++
...8a779g3-sparrow-hawk-camera-j2-imx219.dtso | 111 +++++++++++++++++
...8a779g3-sparrow-hawk-camera-j2-imx462.dtso | 112 ++++++++++++++++++
5 files changed, 459 insertions(+)
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx219.dtso
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx219.dtso
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx462.dtso
--
2.50.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 1/5] arm64: dts: renesas: r8a779g3-sparrow-hawk-fan-pwm: Add missing install target
2025-07-04 10:07 [PATCH v3 0/5] arm64: dts: renesas: sparrow-hawk: Add overlays for camera sensors Niklas Söderlund
@ 2025-07-04 10:07 ` Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 2/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1 Niklas Söderlund
` (3 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Niklas Söderlund @ 2025-07-04 10:07 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut, Laurent Pinchart, linux-renesas-soc,
devicetree
Cc: Niklas Söderlund, Laurent Pinchart
The target to consider the dtbo file for installation is missing, add
it.
Fixes: a719915e76f2 ("arm64: dts: renesas: r8a779g3: Add Retronix R-Car V4H Sparrow Hawk board support")
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
arch/arm64/boot/dts/renesas/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index 677ba3aa8931..47e46ef99d36 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -96,6 +96,7 @@ dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g2-white-hawk-single-ard-audio-da7212.dtb
DTC_FLAGS_r8a779g3-sparrow-hawk += -Wno-spi_bus_bridge
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk.dtb
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtbo
r8a779g3-sparrow-hawk-fan-pwm-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-fan-pwm.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtb
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 2/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1
2025-07-04 10:07 [PATCH v3 0/5] arm64: dts: renesas: sparrow-hawk: Add overlays for camera sensors Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 1/5] arm64: dts: renesas: r8a779g3-sparrow-hawk-fan-pwm: Add missing install target Niklas Söderlund
@ 2025-07-04 10:07 ` Niklas Söderlund
2025-07-07 11:47 ` Geert Uytterhoeven
2025-07-04 10:07 ` [PATCH v3 3/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J2 Niklas Söderlund
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Niklas Söderlund @ 2025-07-04 10:07 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut, Laurent Pinchart, linux-renesas-soc,
devicetree
Cc: Niklas Söderlund
Add an overlay to connect an IMX219 camera sensor to the J1 connector.
The IMX219 utilizes 2 CSI-2 D-PHY lanes. This enables the video capture
pipeline behind the CSI40 Rx to be enabled to process images from the
sensor.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
* Changes since v2
- Use the same regulator for all three supplies.
- Drop 'status = "okay"' property for the fixed clock.
- Drop 'status = "okay"' property for the sensor node.
- Drop unused label for sensor node.
* Changes since v1
- Drop 'status = "okay"' property for the fixed regulators.
---
arch/arm64/boot/dts/renesas/Makefile | 3 +
...8a779g3-sparrow-hawk-camera-j1-imx219.dtso | 111 ++++++++++++++++++
2 files changed, 114 insertions(+)
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx219.dtso
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index 47e46ef99d36..73218f7ec9af 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -96,7 +96,10 @@ dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g2-white-hawk-single-ard-audio-da7212.dtb
DTC_FLAGS_r8a779g3-sparrow-hawk += -Wno-spi_bus_bridge
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk.dtb
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtbo
+r8a779g3-sparrow-hawk-camera-j1-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtb
r8a779g3-sparrow-hawk-fan-pwm-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-fan-pwm.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtb
diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx219.dtso b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx219.dtso
new file mode 100644
index 000000000000..49ff04e1d7a3
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx219.dtso
@@ -0,0 +1,111 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Overlay for an IMX219 camera sensor in connector J1 on R-Car V4H
+ * ES3.0 Sparrow Hawk board.
+ *
+ * Copyright 2025 Renesas Electronics Corp.
+ * Copyright 2025 Niklas Söderlund <niklas.soderlund@ragnatech.se>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/media/video-interfaces.h>
+
+&{/} {
+ clk_cam_j1: clk_cam_j1 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+
+ /* Page 29 / CSI_IF_CN / J1 */
+ reg_cam_j1: reg_cam_j1 {
+ compatible = "regulator-fixed";
+ regulator-name = "reg_cam_j1";
+ enable-active-high;
+ gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&i2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ cam@10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+
+ clocks = <&clk_cam_j1>;
+
+ VANA-supply = <®_cam_j1>;
+ VDIG-supply = <®_cam_j1>;
+ VDDL-supply = <®_cam_j1>;
+
+ orientation = <2>;
+ rotation = <0>;
+
+ port {
+ imx219_j1_out: endpoint {
+ clock-noncontinuous;
+ link-frequencies = /bits/ 64 <456000000>;
+ data-lanes = <1 2>;
+ remote-endpoint = <&csi40_in>;
+ };
+ };
+ };
+};
+
+/* Page 29 / CSI_IF_CN */
+&csi40 {
+ status = "okay";
+
+ ports {
+ port {
+ csi40_in: endpoint {
+ bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ remote-endpoint = <&imx219_j1_out>;
+ };
+ };
+ };
+};
+
+&isp0 {
+ status = "okay";
+};
+
+&vin00 {
+ status = "okay";
+};
+
+&vin01 {
+ status = "okay";
+};
+
+&vin02 {
+ status = "okay";
+};
+
+&vin03 {
+ status = "okay";
+};
+
+&vin04 {
+ status = "okay";
+};
+
+&vin05 {
+ status = "okay";
+};
+
+&vin06 {
+ status = "okay";
+};
+
+&vin07 {
+ status = "okay";
+};
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 3/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J2
2025-07-04 10:07 [PATCH v3 0/5] arm64: dts: renesas: sparrow-hawk: Add overlays for camera sensors Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 1/5] arm64: dts: renesas: r8a779g3-sparrow-hawk-fan-pwm: Add missing install target Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 2/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1 Niklas Söderlund
@ 2025-07-04 10:07 ` Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 4/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J1 Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 5/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J2 Niklas Söderlund
4 siblings, 0 replies; 11+ messages in thread
From: Niklas Söderlund @ 2025-07-04 10:07 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut, Laurent Pinchart, linux-renesas-soc,
devicetree
Cc: Niklas Söderlund
Add an overlay to connect an IMX219 camera sensor to the J2 connector.
The IMX219 utilizes 2 CSI-2 D-PHY lanes. This enables the video capture
pipeline behind the CSI41 Rx to be enabled to process images from the
sensor.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
* Changes since v2
- Use the same regulator for all three supplies.
- Drop 'status = "okay"' property for the fixed clock.
- Drop 'status = "okay"' property for the sensor node.
- Drop unused label for sensor node.
* Changes since v1
- Drop 'status = "okay"' property for the fixed regulators.
---
arch/arm64/boot/dts/renesas/Makefile | 3 +
...8a779g3-sparrow-hawk-camera-j2-imx219.dtso | 111 ++++++++++++++++++
2 files changed, 114 insertions(+)
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx219.dtso
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index 73218f7ec9af..12803c4fbc80 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -97,9 +97,12 @@ dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g2-white-hawk-single-ard-audio-da7212.dtb
DTC_FLAGS_r8a779g3-sparrow-hawk += -Wno-spi_bus_bridge
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk.dtb
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtbo
r8a779g3-sparrow-hawk-camera-j1-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtb
+r8a779g3-sparrow-hawk-camera-j2-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtb
r8a779g3-sparrow-hawk-fan-pwm-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-fan-pwm.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtb
diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx219.dtso b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx219.dtso
new file mode 100644
index 000000000000..6c3d6e139e4f
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx219.dtso
@@ -0,0 +1,111 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Overlay for an IMX219 camera sensor in connector J2 on R-Car V4H
+ * ES3.0 Sparrow Hawk board.
+ *
+ * Copyright 2025 Renesas Electronics Corp.
+ * Copyright 2025 Niklas Söderlund <niklas.soderlund@ragnatech.se>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/media/video-interfaces.h>
+
+&{/} {
+ clk_cam_j2: clk_cam_j2 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+
+ /* Page 29 / CSI_IF_CN / J2 */
+ reg_cam_j2: reg_cam_j2 {
+ compatible = "regulator-fixed";
+ regulator-name = "reg_cam_j2";
+ enable-active-high;
+ gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ cam@10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+
+ clocks = <&clk_cam_j2>;
+
+ VANA-supply = <®_cam_j2>;
+ VDIG-supply = <®_cam_j2>;
+ VDDL-supply = <®_cam_j2>;
+
+ orientation = <2>;
+ rotation = <0>;
+
+ port {
+ imx219_j2_out: endpoint {
+ clock-noncontinuous;
+ link-frequencies = /bits/ 64 <456000000>;
+ data-lanes = <1 2>;
+ remote-endpoint = <&csi41_in>;
+ };
+ };
+ };
+};
+
+/* Page 29 / CSI_IF_CN */
+&csi41 {
+ status = "okay";
+
+ ports {
+ port {
+ csi41_in: endpoint {
+ bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ remote-endpoint = <&imx219_j2_out>;
+ };
+ };
+ };
+};
+
+&isp1 {
+ status = "okay";
+};
+
+&vin08 {
+ status = "okay";
+};
+
+&vin09 {
+ status = "okay";
+};
+
+&vin10 {
+ status = "okay";
+};
+
+&vin11 {
+ status = "okay";
+};
+
+&vin12 {
+ status = "okay";
+};
+
+&vin13 {
+ status = "okay";
+};
+
+&vin14 {
+ status = "okay";
+};
+
+&vin15 {
+ status = "okay";
+};
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 4/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J1
2025-07-04 10:07 [PATCH v3 0/5] arm64: dts: renesas: sparrow-hawk: Add overlays for camera sensors Niklas Söderlund
` (2 preceding siblings ...)
2025-07-04 10:07 ` [PATCH v3 3/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J2 Niklas Söderlund
@ 2025-07-04 10:07 ` Niklas Söderlund
2025-07-07 12:34 ` Laurent Pinchart
2025-07-04 10:07 ` [PATCH v3 5/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J2 Niklas Söderlund
4 siblings, 1 reply; 11+ messages in thread
From: Niklas Söderlund @ 2025-07-04 10:07 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut, Laurent Pinchart, linux-renesas-soc,
devicetree
Cc: Niklas Söderlund
Add an overlay to connect an IMX462 camera sensor to the J1 connector.
The IMX462 utilizes 4 CSI-2 D-PHY lanes. This enables the video capture
pipeline behind the CSI40 Rx to be enabled to process images from the
sensor.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
* Changes since v2
- Use the same regulator for all three supplies.
- Drop 'status = "okay"' property for the fixed clock.
- Drop 'status = "okay"' property for the sensor node.
- Drop unused label for sensor node.
* Changes since v1
- Drop 'status = "okay"' property for the fixed regulators.
---
arch/arm64/boot/dts/renesas/Makefile | 3 +
...8a779g3-sparrow-hawk-camera-j1-imx462.dtso | 112 ++++++++++++++++++
2 files changed, 115 insertions(+)
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index 12803c4fbc80..79d174077ddc 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -97,10 +97,13 @@ dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g2-white-hawk-single-ard-audio-da7212.dtb
DTC_FLAGS_r8a779g3-sparrow-hawk += -Wno-spi_bus_bridge
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk.dtb
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx462.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtbo
r8a779g3-sparrow-hawk-camera-j1-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtb
+r8a779g3-sparrow-hawk-camera-j1-imx462-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx462.dtbo
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx462.dtb
r8a779g3-sparrow-hawk-camera-j2-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtb
r8a779g3-sparrow-hawk-fan-pwm-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-fan-pwm.dtbo
diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
new file mode 100644
index 000000000000..63813ed216db
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
@@ -0,0 +1,112 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Overlay for an IMX462 camera sensor in connector J1 on R-Car V4H
+ * ES3.0 Sparrow Hawk board.
+ *
+ * Copyright 2025 Renesas Electronics Corp.
+ * Copyright 2025 Niklas Söderlund <niklas.soderlund@ragnatech.se>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/media/video-interfaces.h>
+
+&{/} {
+ clk_cam_j1: clk_cam_j1 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+
+ /* Page 29 / CSI_IF_CN / J1 */
+ reg_cam_j1: reg_cam_j1 {
+ compatible = "regulator-fixed";
+ regulator-name = "reg_cam_j1";
+ enable-active-high;
+ gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&i2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ cam@1a {
+ compatible = "sony,imx462lqr";
+ reg = <0x1a>;
+
+ clocks = <&clk_cam_j1>;
+ clock-names = "xclk";
+ clock-frequency = <37125000>;
+
+ vdddo-supply = <®_cam_j1>;
+ vdda-supply = <®_cam_j1>;
+ vddd-supply = <®_cam_j1>;
+
+ orientation = <2>;
+ rotation = <0>;
+
+ port {
+ imx462_j1_out: endpoint {
+ link-frequencies = /bits/ 64 <222750000 148500000>;
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&csi40_in>;
+ };
+ };
+ };
+};
+
+/* Page 29 / CSI_IF_CN */
+&csi40 {
+ status = "okay";
+
+ ports {
+ port {
+ csi40_in: endpoint {
+ bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+ clock-lanes = <0>;
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&imx462_j1_out>;
+ };
+ };
+ };
+};
+
+&isp0 {
+ status = "okay";
+};
+
+&vin00 {
+ status = "okay";
+};
+
+&vin01 {
+ status = "okay";
+};
+
+&vin02 {
+ status = "okay";
+};
+
+&vin03 {
+ status = "okay";
+};
+
+&vin04 {
+ status = "okay";
+};
+
+&vin05 {
+ status = "okay";
+};
+
+&vin06 {
+ status = "okay";
+};
+
+&vin07 {
+ status = "okay";
+};
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 5/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J2
2025-07-04 10:07 [PATCH v3 0/5] arm64: dts: renesas: sparrow-hawk: Add overlays for camera sensors Niklas Söderlund
` (3 preceding siblings ...)
2025-07-04 10:07 ` [PATCH v3 4/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J1 Niklas Söderlund
@ 2025-07-04 10:07 ` Niklas Söderlund
4 siblings, 0 replies; 11+ messages in thread
From: Niklas Söderlund @ 2025-07-04 10:07 UTC (permalink / raw)
To: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut, Laurent Pinchart, linux-renesas-soc,
devicetree
Cc: Niklas Söderlund
Add an overlay to connect an IMX462 camera sensor to the J2 connector.
The IMX462 utilizes 4 CSI-2 D-PHY lanes. This enables the video capture
pipeline behind the CSI41 Rx to be enabled to process images from the
sensor.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
* Changes since v2
- Use the same regulator for all three supplies.
- Drop 'status = "okay"' property for the fixed clock.
- Drop 'status = "okay"' property for the sensor node.
- Drop unused label for sensor node.
* Changes since v1
- Drop 'status = "okay"' property for the fixed regulators.
---
arch/arm64/boot/dts/renesas/Makefile | 3 +
...8a779g3-sparrow-hawk-camera-j2-imx462.dtso | 112 ++++++++++++++++++
2 files changed, 115 insertions(+)
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx462.dtso
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index 79d174077ddc..837e084cc07c 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -99,6 +99,7 @@ dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk.dtb
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx462.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx462.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtbo
r8a779g3-sparrow-hawk-camera-j1-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtb
@@ -106,6 +107,8 @@ r8a779g3-sparrow-hawk-camera-j1-imx462-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx462.dtb
r8a779g3-sparrow-hawk-camera-j2-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtb
+r8a779g3-sparrow-hawk-camera-j2-imx462-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j2-imx462.dtbo
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx462.dtb
r8a779g3-sparrow-hawk-fan-pwm-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-fan-pwm.dtbo
dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtb
diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx462.dtso b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx462.dtso
new file mode 100644
index 000000000000..d8d36a505fb9
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx462.dtso
@@ -0,0 +1,112 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Overlay for an IMX462 camera sensor in connector J2 on R-Car V4H
+ * ES3.0 Sparrow Hawk board.
+ *
+ * Copyright 2025 Renesas Electronics Corp.
+ * Copyright 2025 Niklas Söderlund <niklas.soderlund@ragnatech.se>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/media/video-interfaces.h>
+
+&{/} {
+ clk_cam_j2: clk_cam_j2 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+
+ /* Page 29 / CSI_IF_CN / J2 */
+ reg_cam_j2: reg_cam_j2 {
+ compatible = "regulator-fixed";
+ regulator-name = "reg_cam_j2";
+ enable-active-high;
+ gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ cam@1a {
+ compatible = "sony,imx462lqr";
+ reg = <0x1a>;
+
+ clocks = <&clk_cam_j2>;
+ clock-names = "xclk";
+ clock-frequency = <37125000>;
+
+ vdddo-supply = <®_cam_j2>;
+ vdda-supply = <®_cam_j2>;
+ vddd-supply = <®_cam_j2>;
+
+ orientation = <2>;
+ rotation = <0>;
+
+ port {
+ imx462_j2_out: endpoint {
+ link-frequencies = /bits/ 64 <222750000 148500000>;
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&csi41_in>;
+ };
+ };
+ };
+};
+
+/* Page 29 / CSI_IF_CN */
+&csi41 {
+ status = "okay";
+
+ ports {
+ port {
+ csi41_in: endpoint {
+ bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+ clock-lanes = <0>;
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&imx462_j2_out>;
+ };
+ };
+ };
+};
+
+&isp1 {
+ status = "okay";
+};
+
+&vin08 {
+ status = "okay";
+};
+
+&vin09 {
+ status = "okay";
+};
+
+&vin10 {
+ status = "okay";
+};
+
+&vin11 {
+ status = "okay";
+};
+
+&vin12 {
+ status = "okay";
+};
+
+&vin13 {
+ status = "okay";
+};
+
+&vin14 {
+ status = "okay";
+};
+
+&vin15 {
+ status = "okay";
+};
--
2.50.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1
2025-07-04 10:07 ` [PATCH v3 2/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1 Niklas Söderlund
@ 2025-07-07 11:47 ` Geert Uytterhoeven
2025-07-07 13:04 ` Niklas Söderlund
0 siblings, 1 reply; 11+ messages in thread
From: Geert Uytterhoeven @ 2025-07-07 11:47 UTC (permalink / raw)
To: Niklas Söderlund
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Marek Vasut,
Laurent Pinchart, linux-renesas-soc, devicetree
Hi Niklas,
On Fri, 4 Jul 2025 at 12:08, Niklas Söderlund
<niklas.soderlund+renesas@ragnatech.se> wrote:
> Add an overlay to connect an IMX219 camera sensor to the J1 connector.
> The IMX219 utilizes 2 CSI-2 D-PHY lanes. This enables the video capture
> pipeline behind the CSI40 Rx to be enabled to process images from the
> sensor.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Thanks for your patch!
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx219.dtso
> +/* Page 29 / CSI_IF_CN */
> +&csi40 {
> + status = "okay";
> +
> + ports {
> + port {
The base arch/arm64/boot/dts/renesas/r8a779g0.dtsi has "port@0".
Still, this is applied to the correct node?
$ dtx_diff --color
arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk{,-camera-j1-imx219}.dtb
[...]
port@0 {
reg = <0x00>;
+
+ endpoint {
+ bus-type = <0x04>;
+ clock-lanes = <0x00>;
+ data-lanes = <0x01 0x02>;
+ phandle = <0xf2>;
+ remote-endpoint = <0xf3>;
+ };
};
port@1 {
[...]
> + csi40_in: endpoint {
> + bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
> + clock-lanes = <0>;
> + data-lanes = <1 2>;
> + remote-endpoint = <&imx219_j1_out>;
> + };
> + };
> + };
> +};
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 4/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J1
2025-07-04 10:07 ` [PATCH v3 4/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J1 Niklas Söderlund
@ 2025-07-07 12:34 ` Laurent Pinchart
2025-07-07 13:25 ` Niklas Söderlund
0 siblings, 1 reply; 11+ messages in thread
From: Laurent Pinchart @ 2025-07-07 12:34 UTC (permalink / raw)
To: Niklas Söderlund
Cc: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut, linux-renesas-soc, devicetree
Hi Niklas,
On Fri, Jul 04, 2025 at 12:07:33PM +0200, Niklas Söderlund wrote:
> Add an overlay to connect an IMX462 camera sensor to the J1 connector.
> The IMX462 utilizes 4 CSI-2 D-PHY lanes. This enables the video capture
> pipeline behind the CSI40 Rx to be enabled to process images from the
> sensor.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> ---
> * Changes since v2
> - Use the same regulator for all three supplies.
> - Drop 'status = "okay"' property for the fixed clock.
> - Drop 'status = "okay"' property for the sensor node.
> - Drop unused label for sensor node.
>
> * Changes since v1
> - Drop 'status = "okay"' property for the fixed regulators.
> ---
> arch/arm64/boot/dts/renesas/Makefile | 3 +
> ...8a779g3-sparrow-hawk-camera-j1-imx462.dtso | 112 ++++++++++++++++++
> 2 files changed, 115 insertions(+)
> create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
>
> diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
> index 12803c4fbc80..79d174077ddc 100644
> --- a/arch/arm64/boot/dts/renesas/Makefile
> +++ b/arch/arm64/boot/dts/renesas/Makefile
> @@ -97,10 +97,13 @@ dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g2-white-hawk-single-ard-audio-da7212.dtb
> DTC_FLAGS_r8a779g3-sparrow-hawk += -Wno-spi_bus_bridge
> dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk.dtb
> dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
> +dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx462.dtbo
> dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
> dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtbo
> r8a779g3-sparrow-hawk-camera-j1-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
> dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtb
> +r8a779g3-sparrow-hawk-camera-j1-imx462-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx462.dtbo
> +dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx462.dtb
> r8a779g3-sparrow-hawk-camera-j2-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
> dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtb
> r8a779g3-sparrow-hawk-fan-pwm-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-fan-pwm.dtbo
> diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
> new file mode 100644
> index 000000000000..63813ed216db
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
> @@ -0,0 +1,112 @@
> +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +/*
> + * Device Tree Overlay for an IMX462 camera sensor in connector J1 on R-Car V4H
> + * ES3.0 Sparrow Hawk board.
> + *
> + * Copyright 2025 Renesas Electronics Corp.
> + * Copyright 2025 Niklas Söderlund <niklas.soderlund@ragnatech.se>
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/media/video-interfaces.h>
> +
> +&{/} {
> + clk_cam_j1: clk_cam_j1 {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <24000000>;
> + };
> +
> + /* Page 29 / CSI_IF_CN / J1 */
> + reg_cam_j1: reg_cam_j1 {
> + compatible = "regulator-fixed";
> + regulator-name = "reg_cam_j1";
> + enable-active-high;
> + gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
> + };
> +};
> +
> +&i2c1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "okay";
> +
> + cam@1a {
> + compatible = "sony,imx462lqr";
> + reg = <0x1a>;
> +
> + clocks = <&clk_cam_j1>;
> + clock-names = "xclk";
> + clock-frequency = <37125000>;
Usage of the clock-frequency property in camera sensors is deprecated.
I'm working on patches that will fix that in the imx290 driver. In the
meantime, you can apply this change for testing:
diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c
index fbf7eba3d71d..6a6cf37d62f9 100644
--- a/drivers/media/i2c/imx290.c
+++ b/drivers/media/i2c/imx290.c
@@ -1426,14 +1426,8 @@ static int imx290_get_regulators(struct device *dev, struct imx290 *imx290)
static int imx290_init_clk(struct imx290 *imx290)
{
u32 xclk_freq;
- int ret;
- ret = device_property_read_u32(imx290->dev, "clock-frequency",
- &xclk_freq);
- if (ret) {
- dev_err(imx290->dev, "Could not get xclk frequency\n");
- return ret;
- }
+ xclk_freq = clk_get_rate(imx290->xclk);
/* external clock must be 37.125 MHz or 74.25MHz */
switch (xclk_freq) {
@@ -1449,12 +1443,6 @@ static int imx290_init_clk(struct imx290 *imx290)
return -EINVAL;
}
- ret = clk_set_rate(imx290->xclk, xclk_freq);
- if (ret) {
- dev_err(imx290->dev, "Could not set xclk frequency\n");
- return ret;
- }
-
return 0;
}
If you need to set the external clock rate, the assigned-clocks and
assigned-clock-rates properties should be used instead. In this specific
case, the external clock is a fixed frequency clock, so you can't change
its rate. This leads to a second comment: the clock-frequency property
of the clk_cam_j1 node doesn't match the frequency you list here.
These comments apply to patch 5/5.
> +
> + vdddo-supply = <®_cam_j1>;
> + vdda-supply = <®_cam_j1>;
> + vddd-supply = <®_cam_j1>;
> +
> + orientation = <2>;
> + rotation = <0>;
> +
> + port {
> + imx462_j1_out: endpoint {
> + link-frequencies = /bits/ 64 <222750000 148500000>;
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&csi40_in>;
> + };
> + };
> + };
> +};
> +
> +/* Page 29 / CSI_IF_CN */
> +&csi40 {
> + status = "okay";
> +
> + ports {
> + port {
> + csi40_in: endpoint {
> + bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
> + clock-lanes = <0>;
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&imx462_j1_out>;
> + };
> + };
> + };
> +};
> +
> +&isp0 {
> + status = "okay";
> +};
> +
> +&vin00 {
> + status = "okay";
> +};
> +
> +&vin01 {
> + status = "okay";
> +};
> +
> +&vin02 {
> + status = "okay";
> +};
> +
> +&vin03 {
> + status = "okay";
> +};
> +
> +&vin04 {
> + status = "okay";
> +};
> +
> +&vin05 {
> + status = "okay";
> +};
> +
> +&vin06 {
> + status = "okay";
> +};
> +
> +&vin07 {
> + status = "okay";
> +};
--
Regards,
Laurent Pinchart
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1
2025-07-07 11:47 ` Geert Uytterhoeven
@ 2025-07-07 13:04 ` Niklas Söderlund
2025-07-07 13:09 ` Geert Uytterhoeven
0 siblings, 1 reply; 11+ messages in thread
From: Niklas Söderlund @ 2025-07-07 13:04 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Marek Vasut,
Laurent Pinchart, linux-renesas-soc, devicetree
Hi Geert,
On 2025-07-07 13:47:32 +0200, Geert Uytterhoeven wrote:
> Hi Niklas,
>
> On Fri, 4 Jul 2025 at 12:08, Niklas Söderlund
> <niklas.soderlund+renesas@ragnatech.se> wrote:
> > Add an overlay to connect an IMX219 camera sensor to the J1 connector.
> > The IMX219 utilizes 2 CSI-2 D-PHY lanes. This enables the video capture
> > pipeline behind the CSI40 Rx to be enabled to process images from the
> > sensor.
> >
> > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
>
> Thanks for your patch!
Thanks for your review.
>
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx219.dtso
>
> > +/* Page 29 / CSI_IF_CN */
> > +&csi40 {
> > + status = "okay";
> > +
> > + ports {
> > + port {
>
> The base arch/arm64/boot/dts/renesas/r8a779g0.dtsi has "port@0".
Indeed, this should be port@, will fix.
> Still, this is applied to the correct node?
As far as I can tell it did, and the cameras worked as expected.
>
> $ dtx_diff --color
> arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk{,-camera-j1-imx219}.dtb
> [...]
>
> port@0 {
> reg = <0x00>;
> +
> + endpoint {
> + bus-type = <0x04>;
> + clock-lanes = <0x00>;
> + data-lanes = <0x01 0x02>;
> + phandle = <0xf2>;
> + remote-endpoint = <0xf3>;
> + };
> };
>
> port@1 {
> [...]
>
> > + csi40_in: endpoint {
> > + bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
> > + clock-lanes = <0>;
> > + data-lanes = <1 2>;
> > + remote-endpoint = <&imx219_j1_out>;
> > + };
> > + };
> > + };
> > +};
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
--
Kind Regards,
Niklas Söderlund
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1
2025-07-07 13:04 ` Niklas Söderlund
@ 2025-07-07 13:09 ` Geert Uytterhoeven
0 siblings, 0 replies; 11+ messages in thread
From: Geert Uytterhoeven @ 2025-07-07 13:09 UTC (permalink / raw)
To: Niklas Söderlund
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Marek Vasut,
Laurent Pinchart, linux-renesas-soc, devicetree
Hi Niklas,
On Mon, 7 Jul 2025 at 15:04, Niklas Söderlund
<niklas.soderlund+renesas@ragnatech.se> wrote:
> On 2025-07-07 13:47:32 +0200, Geert Uytterhoeven wrote:
> > On Fri, 4 Jul 2025 at 12:08, Niklas Söderlund
> > <niklas.soderlund+renesas@ragnatech.se> wrote:
> > > Add an overlay to connect an IMX219 camera sensor to the J1 connector.
> > > The IMX219 utilizes 2 CSI-2 D-PHY lanes. This enables the video capture
> > > pipeline behind the CSI40 Rx to be enabled to process images from the
> > > sensor.
> > >
> > > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> > > --- /dev/null
> > > +++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx219.dtso
> >
> > > +/* Page 29 / CSI_IF_CN */
> > > +&csi40 {
> > > + status = "okay";
> > > +
> > > + ports {
> > > + port {
> >
> > The base arch/arm64/boot/dts/renesas/r8a779g0.dtsi has "port@0".
>
> Indeed, this should be port@, will fix.
Thanks!
> > Still, this is applied to the correct node?
>
> As far as I can tell it did, and the cameras worked as expected.
I am just wondering if dynamic overlays behave the same...
> > $ dtx_diff --color
> > arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk{,-camera-j1-imx219}.dtb
> > [...]
> >
> > port@0 {
> > reg = <0x00>;
> > +
> > + endpoint {
> > + bus-type = <0x04>;
> > + clock-lanes = <0x00>;
> > + data-lanes = <0x01 0x02>;
> > + phandle = <0xf2>;
> > + remote-endpoint = <0xf3>;
> > + };
> > };
> >
> > port@1 {
> > [...]
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 4/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J1
2025-07-07 12:34 ` Laurent Pinchart
@ 2025-07-07 13:25 ` Niklas Söderlund
0 siblings, 0 replies; 11+ messages in thread
From: Niklas Söderlund @ 2025-07-07 13:25 UTC (permalink / raw)
To: Laurent Pinchart
Cc: Geert Uytterhoeven, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut, linux-renesas-soc, devicetree
Hi Laurent,
Thanks for your comments.
On 2025-07-07 15:34:09 +0300, Laurent Pinchart wrote:
> Hi Niklas,
>
> On Fri, Jul 04, 2025 at 12:07:33PM +0200, Niklas Söderlund wrote:
> > Add an overlay to connect an IMX462 camera sensor to the J1 connector.
> > The IMX462 utilizes 4 CSI-2 D-PHY lanes. This enables the video capture
> > pipeline behind the CSI40 Rx to be enabled to process images from the
> > sensor.
> >
> > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> > ---
> > * Changes since v2
> > - Use the same regulator for all three supplies.
> > - Drop 'status = "okay"' property for the fixed clock.
> > - Drop 'status = "okay"' property for the sensor node.
> > - Drop unused label for sensor node.
> >
> > * Changes since v1
> > - Drop 'status = "okay"' property for the fixed regulators.
> > ---
> > arch/arm64/boot/dts/renesas/Makefile | 3 +
> > ...8a779g3-sparrow-hawk-camera-j1-imx462.dtso | 112 ++++++++++++++++++
> > 2 files changed, 115 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
> >
> > diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
> > index 12803c4fbc80..79d174077ddc 100644
> > --- a/arch/arm64/boot/dts/renesas/Makefile
> > +++ b/arch/arm64/boot/dts/renesas/Makefile
> > @@ -97,10 +97,13 @@ dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g2-white-hawk-single-ard-audio-da7212.dtb
> > DTC_FLAGS_r8a779g3-sparrow-hawk += -Wno-spi_bus_bridge
> > dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk.dtb
> > dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
> > +dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx462.dtbo
> > dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
> > dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-fan-pwm.dtbo
> > r8a779g3-sparrow-hawk-camera-j1-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx219.dtbo
> > dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx219.dtb
> > +r8a779g3-sparrow-hawk-camera-j1-imx462-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j1-imx462.dtbo
> > +dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j1-imx462.dtb
> > r8a779g3-sparrow-hawk-camera-j2-imx219-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-camera-j2-imx219.dtbo
> > dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g3-sparrow-hawk-camera-j2-imx219.dtb
> > r8a779g3-sparrow-hawk-fan-pwm-dtbs := r8a779g3-sparrow-hawk.dtb r8a779g3-sparrow-hawk-fan-pwm.dtbo
> > diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
> > new file mode 100644
> > index 000000000000..63813ed216db
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j1-imx462.dtso
> > @@ -0,0 +1,112 @@
> > +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +/*
> > + * Device Tree Overlay for an IMX462 camera sensor in connector J1 on R-Car V4H
> > + * ES3.0 Sparrow Hawk board.
> > + *
> > + * Copyright 2025 Renesas Electronics Corp.
> > + * Copyright 2025 Niklas Söderlund <niklas.soderlund@ragnatech.se>
> > + */
> > +
> > +/dts-v1/;
> > +/plugin/;
> > +
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/media/video-interfaces.h>
> > +
> > +&{/} {
> > + clk_cam_j1: clk_cam_j1 {
> > + compatible = "fixed-clock";
> > + #clock-cells = <0>;
> > + clock-frequency = <24000000>;
> > + };
> > +
> > + /* Page 29 / CSI_IF_CN / J1 */
> > + reg_cam_j1: reg_cam_j1 {
> > + compatible = "regulator-fixed";
> > + regulator-name = "reg_cam_j1";
> > + enable-active-high;
> > + gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
> > + };
> > +};
> > +
> > +&i2c1 {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + status = "okay";
> > +
> > + cam@1a {
> > + compatible = "sony,imx462lqr";
> > + reg = <0x1a>;
> > +
> > + clocks = <&clk_cam_j1>;
> > + clock-names = "xclk";
> > + clock-frequency = <37125000>;
>
> Usage of the clock-frequency property in camera sensors is deprecated.
> I'm working on patches that will fix that in the imx290 driver. In the
> meantime, you can apply this change for testing:
>
> diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c
> index fbf7eba3d71d..6a6cf37d62f9 100644
> --- a/drivers/media/i2c/imx290.c
> +++ b/drivers/media/i2c/imx290.c
> @@ -1426,14 +1426,8 @@ static int imx290_get_regulators(struct device *dev, struct imx290 *imx290)
> static int imx290_init_clk(struct imx290 *imx290)
> {
> u32 xclk_freq;
> - int ret;
>
> - ret = device_property_read_u32(imx290->dev, "clock-frequency",
> - &xclk_freq);
> - if (ret) {
> - dev_err(imx290->dev, "Could not get xclk frequency\n");
> - return ret;
> - }
> + xclk_freq = clk_get_rate(imx290->xclk);
>
> /* external clock must be 37.125 MHz or 74.25MHz */
> switch (xclk_freq) {
> @@ -1449,12 +1443,6 @@ static int imx290_init_clk(struct imx290 *imx290)
> return -EINVAL;
> }
>
> - ret = clk_set_rate(imx290->xclk, xclk_freq);
> - if (ret) {
> - dev_err(imx290->dev, "Could not set xclk frequency\n");
> - return ret;
> - }
> -
> return 0;
> }
>
>
> If you need to set the external clock rate, the assigned-clocks and
> assigned-clock-rates properties should be used instead. In this specific
> case, the external clock is a fixed frequency clock, so you can't change
> its rate.
Wit this change applied, correct clock in clk_cam_j1, and the
clock-frequency popery removed the camera still works. But of course the
bindings verification fails as clock-frequency is a mandatory property.
> This leads to a second comment: the clock-frequency property
> of the clk_cam_j1 node doesn't match the frequency you list here.
Woops, bad copy-past, fixed. Thanks for spotting.
>
> These comments apply to patch 5/5.
>
> > +
> > + vdddo-supply = <®_cam_j1>;
> > + vdda-supply = <®_cam_j1>;
> > + vddd-supply = <®_cam_j1>;
> > +
> > + orientation = <2>;
> > + rotation = <0>;
> > +
> > + port {
> > + imx462_j1_out: endpoint {
> > + link-frequencies = /bits/ 64 <222750000 148500000>;
> > + data-lanes = <1 2 3 4>;
> > + remote-endpoint = <&csi40_in>;
> > + };
> > + };
> > + };
> > +};
> > +
> > +/* Page 29 / CSI_IF_CN */
> > +&csi40 {
> > + status = "okay";
> > +
> > + ports {
> > + port {
> > + csi40_in: endpoint {
> > + bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
> > + clock-lanes = <0>;
> > + data-lanes = <1 2 3 4>;
> > + remote-endpoint = <&imx462_j1_out>;
> > + };
> > + };
> > + };
> > +};
> > +
> > +&isp0 {
> > + status = "okay";
> > +};
> > +
> > +&vin00 {
> > + status = "okay";
> > +};
> > +
> > +&vin01 {
> > + status = "okay";
> > +};
> > +
> > +&vin02 {
> > + status = "okay";
> > +};
> > +
> > +&vin03 {
> > + status = "okay";
> > +};
> > +
> > +&vin04 {
> > + status = "okay";
> > +};
> > +
> > +&vin05 {
> > + status = "okay";
> > +};
> > +
> > +&vin06 {
> > + status = "okay";
> > +};
> > +
> > +&vin07 {
> > + status = "okay";
> > +};
>
> --
> Regards,
>
> Laurent Pinchart
--
Kind Regards,
Niklas Söderlund
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-07-07 13:25 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-04 10:07 [PATCH v3 0/5] arm64: dts: renesas: sparrow-hawk: Add overlays for camera sensors Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 1/5] arm64: dts: renesas: r8a779g3-sparrow-hawk-fan-pwm: Add missing install target Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 2/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J1 Niklas Söderlund
2025-07-07 11:47 ` Geert Uytterhoeven
2025-07-07 13:04 ` Niklas Söderlund
2025-07-07 13:09 ` Geert Uytterhoeven
2025-07-04 10:07 ` [PATCH v3 3/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX219 on J2 Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 4/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J1 Niklas Söderlund
2025-07-07 12:34 ` Laurent Pinchart
2025-07-07 13:25 ` Niklas Söderlund
2025-07-04 10:07 ` [PATCH v3 5/5] arm64: dts: renesas: sparrow-hawk: Add overlay for IMX462 on J2 Niklas Söderlund
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).