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 |
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
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>; + }; + }; + }; +};