diff mbox series

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

Message ID 20230317123314.145121-3-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show
Series RZ/G2L: Add CRU, CSI support | expand

Commit Message

Prabhakar March 17, 2023, 12:33 p.m. UTC
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

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@bp.renesas.com>
---
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

Comments

Chris Paterson March 17, 2023, 6:03 p.m. UTC | #1
Hello Prabhakar,

> From: Prabhakar <prabhakar.csengg@gmail.com>
> Sent: 17 March 2023 12:33
> 
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> 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@bp.renesas.com>
> ---
> 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
Prabhakar March 17, 2023, 6:31 p.m. UTC | #2
Hi Chris,

Thank you for the review.

On Fri, Mar 17, 2023 at 6:03 PM Chris Paterson
<Chris.Paterson2@renesas.com> wrote:
>
> Hello Prabhakar,
>
> > From: Prabhakar <prabhakar.csengg@gmail.com>
> > Sent: 17 March 2023 12:33
> >
> > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> >
> > 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@bp.renesas.com>
> > ---
> > 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/;
The above two lines are not required here.

> > +
> > +#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?
>
Good catch, yes they need to be moved into the overlay file instead.

Cheers,
Prabhakar
Geert Uytterhoeven March 30, 2023, 9:56 a.m. UTC | #3
Hi Prabhakar,

On Fri, Mar 17, 2023 at 1:37 PM Prabhakar <prabhakar.csengg@gmail.com> wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>
> 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@bp.renesas.com>

Thanks for your patch!

> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/rz-smarc-cru-csi-ov5645.dtsi

> +       ov5645_fixed_clk: osc25250_clk {

Please no underscores in device nodes.

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
i.e. will queue in renesas-devel for v6.4, with the above fixed,
and with the includes moved.

Gr{oetje,eeting}s,

                        Geert
diff mbox series

Patch

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>
+
+&{/} {
+	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>;
+			};
+		};
+	};
+};