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