RE: [PATCH v2 2/2] arm64: dts: renesas: rzg2l-smarc: Enable CRU, CSI support

From: Chris Paterson
Date: Fri Mar 17 2023 - 14:03:55 EST


Hello Prabhakar,

> From: Prabhakar <prabhakar.csengg@xxxxxxxxx>
> Sent: 17 March 2023 12:33
>
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
>
> Enable CRU, CSI on RZ/G2L SMARC EVK and tie the CSI to OV5645 sensor
> using Device Tree overlay. rz-smarc-cru-csi-ov5645.dtsi is created so
> that RZ/G2L alike EVKs can make use of it.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> ---
> setenv bootfile kernel_fdt.itb
> tftpboot ${bootfile}
> bootm ${fileaddr}#rzg2l-smarc#ov5645
>
> v1->v2
> * New patch
> ---
> arch/arm64/boot/dts/renesas/Makefile | 1 +
> .../r9a07g044l2-smarc-cru-csi-ov5645.dtso | 18 ++++
> .../dts/renesas/rz-smarc-cru-csi-ov5645.dtsi | 87 +++++++++++++++++++
> 3 files changed, 106 insertions(+)
> create mode 100644 arch/arm64/boot/dts/renesas/r9a07g044l2-smarc-cru-
> csi-ov5645.dtso
> create mode 100644 arch/arm64/boot/dts/renesas/rz-smarc-cru-csi-
> ov5645.dtsi
>
> diff --git a/arch/arm64/boot/dts/renesas/Makefile
> b/arch/arm64/boot/dts/renesas/Makefile
> index 23b10c03091c..a553d99175cb 100644
> --- a/arch/arm64/boot/dts/renesas/Makefile
> +++ b/arch/arm64/boot/dts/renesas/Makefile
> @@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u11-
> smarc.dtb
>
> dtb-$(CONFIG_ARCH_R9A07G044) += r9a07g044c2-smarc.dtb
> dtb-$(CONFIG_ARCH_R9A07G044) += r9a07g044l2-smarc.dtb
> +dtb-$(CONFIG_ARCH_R9A07G044) += r9a07g044l2-smarc-cru-csi-
> ov5645.dtbo
>
> dtb-$(CONFIG_ARCH_R9A07G054) += r9a07g054l2-smarc.dtb
>
> diff --git a/arch/arm64/boot/dts/renesas/r9a07g044l2-smarc-cru-csi-
> ov5645.dtso b/arch/arm64/boot/dts/renesas/r9a07g044l2-smarc-cru-csi-
> ov5645.dtso
> new file mode 100644
> index 000000000000..40cece1491bb
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r9a07g044l2-smarc-cru-csi-ov5645.dtso
> @@ -0,0 +1,18 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Device Tree overlay for the RZ/G2L SMARC EVK with OV5645 camera
> + * connected to CSI and CRU enabled.
> + *
> + * Copyright (C) 2023 Renesas Electronics Corp.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#define OV5645_PARENT_I2C i2c0
> +#include "rz-smarc-cru-csi-ov5645.dtsi"
> +
> +&ov5645 {
> + enable-gpios = <&pinctrl RZG2L_GPIO(2, 0) GPIO_ACTIVE_HIGH>;
> + reset-gpios = <&pinctrl RZG2L_GPIO(40, 2) GPIO_ACTIVE_LOW>;
> +};
> diff --git a/arch/arm64/boot/dts/renesas/rz-smarc-cru-csi-ov5645.dtsi
> b/arch/arm64/boot/dts/renesas/rz-smarc-cru-csi-ov5645.dtsi
> new file mode 100644
> index 000000000000..95286bf2066e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/rz-smarc-cru-csi-ov5645.dtsi
> @@ -0,0 +1,87 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Common Device Tree for the RZ/G2L SMARC EVK (and alike EVKs) with
> + * OV5645 camera connected to CSI and CRU enabled.
> + *
> + * Copyright (C) 2023 Renesas Electronics Corp.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>

Are either of these includes used in this file?
Or should they move to the overlay?

Kind regards, Chris

> +
> +&{/} {
> + ov5645_vdddo_1v8: 1p8v {
> + compatible = "regulator-fixed";
> + regulator-name = "camera_vdddo";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + };
> +
> + ov5645_vdda_2v8: 2p8v {
> + compatible = "regulator-fixed";
> + regulator-name = "camera_vdda";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + regulator-always-on;
> + };
> +
> + ov5645_vddd_1v5: 1p5v {
> + compatible = "regulator-fixed";
> + regulator-name = "camera_vddd";
> + regulator-min-microvolt = <1500000>;
> + regulator-max-microvolt = <1500000>;
> + regulator-always-on;
> + };
> +
> + ov5645_fixed_clk: osc25250_clk {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <24000000>;
> + };
> +};
> +
> +&cru {
> + status = "okay";
> +};
> +
> +&csi2 {
> + status = "okay";
> +
> + ports {
> + port@0 {
> + csi2_in: endpoint {
> + clock-lanes = <0>;
> + data-lanes = <1 2>;
> + remote-endpoint = <&ov5645_ep>;
> + };
> + };
> + };
> +};
> +
> +&OV5645_PARENT_I2C {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "okay";
> +
> + ov5645: camera@3c {
> + compatible = "ovti,ov5645";
> + reg = <0x3c>;
> + clocks = <&ov5645_fixed_clk>;
> + clock-frequency = <24000000>;
> + vdddo-supply = <&ov5645_vdddo_1v8>;
> + vdda-supply = <&ov5645_vdda_2v8>;
> + vddd-supply = <&ov5645_vddd_1v5>;
> +
> + port {
> + ov5645_ep: endpoint {
> + clock-lanes = <0>;
> + data-lanes = <1 2>;
> + remote-endpoint = <&csi2_in>;
> + };
> + };
> + };
> +};
> --
> 2.25.1