Message ID | 1584886352-4132-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | [v2] arm64: dts: renesas: r8a774c0-cat874: Add support for AISTARVISION MIPI Adapter V2.1 | expand |
Hi Prabhakar, On Sun, Mar 22, 2020 at 3:13 PM Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote: > This patch adds support for AISTARVISION MIPI Adapter V2.1 board connected > to G2E board. Common file aistarvision-mipi-adapter-2.1.dtsi is created > which have the camera endpoint nodes for imx219 and ov5645 so that this can > be re-used with other G2x platforms. > > r8a774c0-ek874-mipi-2.1.dts file enables the required VIN/CSI nodes and by > default ties ov5645 camera endpoint to CSI2. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > --- > Changes for v2: > * Dropped #{address,size}-cells > * Dropped unit address and reg for port Thanks for the update! > --- /dev/null > +++ b/arch/arm64/boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts > @@ -0,0 +1,75 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874) > + * connected with aistarvision-mipi-v2-adapter board > + * > + * Copyright (C) 2020 Renesas Electronics Corp. > + */ > + > +/dts-v1/; > +#include "r8a774c0-ek874.dts" > +#define MIPI_PARENT_I2C i2c3 > +#include "aistarvision-mipi-adapter-2.1.dtsi" > + > +/ { > + model = "Silicon Linux RZ/G2E evaluation kit EK874 (CAT874 + CAT875) with aistarvision-mipi-v2-adapter board"; > + compatible = "si-linux,cat875", "si-linux,cat874", "renesas,r8a774c0"; > +}; > + > +&i2c3 { > + status = "okay"; > +}; > + > +&vin4 { > + status = "okay"; > +}; > + > +&vin5 { > + status = "okay"; > +}; > + > +&csi40 { > + status = "okay"; > + > + ports { > + port { > + csi40_in: endpoint { > + clock-lanes = <0>; > + data-lanes = <1 2>; > + remote-endpoint = <&ov5645_ep>; > + }; > + }; > + }; > +}; > + > +&ov5645 { > + enable-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>; > + reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; > + > + clocks = <&cpg CPG_MOD 716>; I'm still a bit puzzled here. CPG_MOD 716 is the CSI40 module clock, which runs at 25 MHz, and is presumably output to the CSI0_CLKP/N pair? Or is its rate controlled by the CSI driver? On the MIPI board[*], that signal becomes MIPI1_CP/N. However, the MIPI board also has a "Clock Source Selection" header, which allows you to choose one of: 1. The fixed 24 MHz crystal, which is apparently used for the imx219 camera, as described by imx219_clk above, and matches the wanted clock rate specified below? 2. CSI1_CLK, 3. CSI2_CLK. The last two become CLK0/1 on the CAT874 board, which are driven by TPU0TO0/1. Which setting do you use for the ov5645 camera? > + clock-frequency = <24000000>; After your patch for the ov5645 driver, this should be replaced by assigned-clock-rates? The rest looks good to me, but I'm not a multi-media/camera expert. [*] https://github.com/Kevin-WSCU/96Boards-Camera Gr{oetje,eeting}s, Geert
Hi Geert, Thank you for the review. On Wed, Apr 1, 2020 at 10:45 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Prabhakar, > > On Sun, Mar 22, 2020 at 3:13 PM Lad Prabhakar > <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote: > > This patch adds support for AISTARVISION MIPI Adapter V2.1 board connected > > to G2E board. Common file aistarvision-mipi-adapter-2.1.dtsi is created > > which have the camera endpoint nodes for imx219 and ov5645 so that this can > > be re-used with other G2x platforms. > > > > r8a774c0-ek874-mipi-2.1.dts file enables the required VIN/CSI nodes and by > > default ties ov5645 camera endpoint to CSI2. > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > --- > > Changes for v2: > > * Dropped #{address,size}-cells > > * Dropped unit address and reg for port > > Thanks for the update! > > > --- /dev/null > > +++ b/arch/arm64/boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts > > @@ -0,0 +1,75 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874) > > + * connected with aistarvision-mipi-v2-adapter board > > + * > > + * Copyright (C) 2020 Renesas Electronics Corp. > > + */ > > + > > +/dts-v1/; > > +#include "r8a774c0-ek874.dts" > > +#define MIPI_PARENT_I2C i2c3 > > +#include "aistarvision-mipi-adapter-2.1.dtsi" > > + > > +/ { > > + model = "Silicon Linux RZ/G2E evaluation kit EK874 (CAT874 + CAT875) with aistarvision-mipi-v2-adapter board"; > > + compatible = "si-linux,cat875", "si-linux,cat874", "renesas,r8a774c0"; > > +}; > > + > > +&i2c3 { > > + status = "okay"; > > +}; > > + > > +&vin4 { > > + status = "okay"; > > +}; > > + > > +&vin5 { > > + status = "okay"; > > +}; > > + > > +&csi40 { > > + status = "okay"; > > + > > + ports { > > + port { > > + csi40_in: endpoint { > > + clock-lanes = <0>; > > + data-lanes = <1 2>; > > + remote-endpoint = <&ov5645_ep>; > > + }; > > + }; > > + }; > > +}; > > + > > +&ov5645 { > > + enable-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>; > > + reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; > > + > > + clocks = <&cpg CPG_MOD 716>; > > I'm still a bit puzzled here. > > CPG_MOD 716 is the CSI40 module clock, which runs at 25 MHz, and is > presumably output to the CSI0_CLKP/N pair? Or is its rate controlled > by the CSI driver? > On the MIPI board[*], that signal becomes MIPI1_CP/N. > However, the MIPI board also has a "Clock Source Selection" header, > which allows you to choose one of: > 1. The fixed 24 MHz crystal, which is apparently used for the imx219 > camera, as described by imx219_clk above, and matches the wanted > clock rate specified below? > 2. CSI1_CLK, > 3. CSI2_CLK. > The last two become CLK0/1 on the CAT874 board, which are driven by > TPU0TO0/1. > Yes my bad for not looking into this earlier, for both ov5645 and imx219 I do short pins 3-4 and 5-6 of J14, so for both the sensors the clocks should be fixed clock of 24Mhz, so I changed it imx219_clk to osc25250_clk and passed the same to ov5645 node. (imx219 sensor can take in a external clock from 6-27Mhz [2]) > Which setting do you use for the ov5645 camera? > > > + clock-frequency = <24000000>; > > After your patch for the ov5645 driver, this should be replaced by > assigned-clock-rates? > After v4 [1] it was decided that the frequency should be set by driver itself, so I'll be revisiting ov5645 driver. [1] https://patchwork.linuxtv.org/patch/62185/ [2] https://publiclab.org/system/images/photos/000/023/294/original/RASPBERRY_PI_CAMERA_V2_DATASHEET_IMX219PQH5_7.0.0_Datasheet_XXX.PDF Cheers, --Prabhakar > The rest looks good to me, but I'm not a multi-media/camera expert. > > [*] https://github.com/Kevin-WSCU/96Boards-Camera > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile index 2153842321ce..9f5c53d62f5e 100644 --- a/arch/arm64/boot/dts/renesas/Makefile +++ b/arch/arm64/boot/dts/renesas/Makefile @@ -4,7 +4,8 @@ dtb-$(CONFIG_ARCH_R8A774A1) += r8a774a1-hihope-rzg2m-ex.dtb dtb-$(CONFIG_ARCH_R8A774B1) += r8a774b1-hihope-rzg2n.dtb dtb-$(CONFIG_ARCH_R8A774B1) += r8a774b1-hihope-rzg2n-ex.dtb dtb-$(CONFIG_ARCH_R8A774C0) += r8a774c0-cat874.dtb r8a774c0-ek874.dtb \ - r8a774c0-ek874-idk-2121wr.dtb + r8a774c0-ek874-idk-2121wr.dtb \ + r8a774c0-ek874-mipi-2.1.dtb dtb-$(CONFIG_ARCH_R8A7795) += r8a77950-salvator-x.dtb dtb-$(CONFIG_ARCH_R8A7795) += r8a77950-ulcb.dtb r8a77950-ulcb-kf.dtb dtb-$(CONFIG_ARCH_R8A7795) += r8a77951-salvator-x.dtb r8a77951-salvator-xs.dtb diff --git a/arch/arm64/boot/dts/renesas/aistarvision-mipi-adapter-2.1.dtsi b/arch/arm64/boot/dts/renesas/aistarvision-mipi-adapter-2.1.dtsi new file mode 100644 index 000000000000..d2b656579b54 --- /dev/null +++ b/arch/arm64/boot/dts/renesas/aistarvision-mipi-adapter-2.1.dtsi @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the AISTARVISION MIPI Adapter V2.1 + * + * Copyright (C) 2020 Renesas Electronics Corp. + */ + +/ { + 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; + }; + + imx219_vana_2v8: 2p8v { + compatible = "regulator-fixed"; + regulator-name = "camera_vana"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + }; + + imx219_vdig_1v8: 1p8v { + compatible = "regulator-fixed"; + regulator-name = "camera_vdig"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + }; + + imx219_vddl_1v2: 1p2v { + compatible = "regulator-fixed"; + regulator-name = "camera_vddl"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + }; + + imx219_clk: imx219_clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + }; +}; + +&MIPI_PARENT_I2C { + ov5645: ov5645@3c { + compatible = "ovti,ov5645"; + reg = <0x3c>; + + clock-names = "xclk"; + + vdddo-supply = <&ov5645_vdddo_1v8>; + vdda-supply = <&ov5645_vdda_2v8>; + vddd-supply = <&ov5645_vddd_1v5>; + + port { + ov5645_ep: endpoint { + }; + }; + }; + + imx219: imx219@10 { + compatible = "sony,imx219"; + reg = <0x10>; + + VANA-supply = <&imx219_vana_2v8>; + VDIG-supply = <&imx219_vdig_1v8>; + VDDL-supply = <&imx219_vddl_1v2>; + clocks = <&imx219_clk>; + + port { + imx219_ep: endpoint { + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts b/arch/arm64/boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts new file mode 100644 index 000000000000..62000cc933bf --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874) + * connected with aistarvision-mipi-v2-adapter board + * + * Copyright (C) 2020 Renesas Electronics Corp. + */ + +/dts-v1/; +#include "r8a774c0-ek874.dts" +#define MIPI_PARENT_I2C i2c3 +#include "aistarvision-mipi-adapter-2.1.dtsi" + +/ { + model = "Silicon Linux RZ/G2E evaluation kit EK874 (CAT874 + CAT875) with aistarvision-mipi-v2-adapter board"; + compatible = "si-linux,cat875", "si-linux,cat874", "renesas,r8a774c0"; +}; + +&i2c3 { + status = "okay"; +}; + +&vin4 { + status = "okay"; +}; + +&vin5 { + status = "okay"; +}; + +&csi40 { + status = "okay"; + + ports { + port { + csi40_in: endpoint { + clock-lanes = <0>; + data-lanes = <1 2>; + remote-endpoint = <&ov5645_ep>; + }; + }; + }; +}; + +&ov5645 { + enable-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; + + clocks = <&cpg CPG_MOD 716>; + clock-frequency = <24000000>; + + port { + ov5645_ep: endpoint { + clock-lanes = <0>; + data-lanes = <1 2>; + remote-endpoint = <&csi40_in>; + }; + }; +}; + +&imx219 { + port { + imx219_ep: endpoint { + clock-lanes = <0>; + data-lanes = <1 2>; + link-frequencies = /bits/ 64 <456000000>; + /* uncomment remote-endpoint property to tie imx219 to + * CSI2 also make sure remote-endpoint for ov5645 camera + * is commented and remote endpoint phandle in csi40_in + * is imx219_ep + */ + /* remote-endpoint = <&csi40_in>; */ + }; + }; +};
This patch adds support for AISTARVISION MIPI Adapter V2.1 board connected to G2E board. Common file aistarvision-mipi-adapter-2.1.dtsi is created which have the camera endpoint nodes for imx219 and ov5645 so that this can be re-used with other G2x platforms. r8a774c0-ek874-mipi-2.1.dts file enables the required VIN/CSI nodes and by default ties ov5645 camera endpoint to CSI2. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> --- Changes for v2: * Dropped #{address,size}-cells * Dropped unit address and reg for port arch/arm64/boot/dts/renesas/Makefile | 3 +- .../aistarvision-mipi-adapter-2.1.dtsi | 95 +++++++++++++++++++ .../dts/renesas/r8a774c0-ek874-mipi-2.1.dts | 75 +++++++++++++++ 3 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 arch/arm64/boot/dts/renesas/aistarvision-mipi-adapter-2.1.dtsi create mode 100644 arch/arm64/boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts