[v2,2/2] arm64: dts: renesas: rzg2l-smarc: Enable CRU, CSI support
Commit Message
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
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
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
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
@@ -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
new file mode 100644
@@ -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>;
+};
new file mode 100644
@@ -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>;
+ };
+ };
+ };
+};