Re: [PATCH 4/4] ARM: dts: rockchip: add ov5647 camera module support to tinkerboard

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 2, 2020 at 7:46 AM Helen Koike <helen.koike@xxxxxxxxxxxxx> wrote:
>
>
>
> On 4/1/20 11:29 PM, karthik poduval wrote:
> > On Wed, Apr 1, 2020 at 5:00 PM Helen Koike <helen.koike@xxxxxxxxxxxxx> wrote:
> >>
> >> Hi Karthik,
> >>
> >> It is nice to see this driver being used and tested elsewhere.
> >>
> >> How did you tested the series? It would be nice to add it in the commit message.
> >>
> > Firstly thank you for your work on the rkisp1 and libcamera and
> > efforts of bringing it to mainline kernel. I tested the patch series
> > using yocto build with meta-rockchip and using media kernel tree TOT.
> > I also used libcamera to configure the pipeline (since it was more
> > convenient as compared to media-ctl commands). Sure I will add them to
> > the commit message in my next commit. Would this commit be the best
> > place to include testing instructions or include into all 4 commits
> > that I posted ?
>
> Nice, I'm glad it worked fine.
>
> I think you could just quickly mention in the commits something like:
>
> "Tested streaming on a tinkerboard with ov5647 with libcamera command: cam ..."
>
Thanks will do.
> >> On 3/31/20 4:57 AM, karthik poduval wrote:
> >>> ov5647 is one of the two camera modules as described in
> >>> https://tinkerboarding.co.uk/wiki/index.php/CSI-camera
> >>>
> >>> changes ported over from https://github.com/TinkerBoard/debian_kernel.git
> >>>
> >>> Reported-by: Karthik Poduval <karthik.poduval@xxxxxxxxx>
> >>> Signed-off-by: Karthik Poduval <karthik.poduval@xxxxxxxxx>
> >>
> >> please, see my comments from previous commit.
> >>
> >>> ---
> >>>  arch/arm/boot/dts/rk3288-tinker.dtsi | 37 ++++++++++++++++++++++++++++
> >>
> >> I wondering if changing thinkerboard dts make sense. Is the camera really hardwired
> >> on the tinker board, or is it an add-on?
> >>
> >> Regards,
> >> Helen
> > No the camera isn't hardwired but connects over a flex cable to an
> > adapter board, however based on my search I found that only 2 camera
> > adapter boards have been made for tinkerboard, IMX219 and OV5647. The
> > only camera adapter board I have with me is ov5647. Normally offboard
> > peripherals also need device tree entries. The tinkerbaord debain 4.4
> > kernel includes imx219 device entry in the device tree and provides
> > ov5647 device tree entry as an overlay. What is the recommendation
> > here ? Should it be an overlay or not added at all ?
>
> So usually this change don't go to the board's dtsi, otherwise you are
> mandating other users to use the same sensor as you did.
>
> I'm not sure how would be the alternative though, since overlays don't usually go upstream,
> and I'm not sure if there is a way to declare a "expected" node.
>
> Regards,
> Helen
Agree so let me abandon this commit then, the documentation devicetree
bindings example should help with anyone who is trying to bring up an
image sensor. For reference sake I am thinking of putting up my ov5647
and tinkerbaord changes to a custom yocto layer which would make it
that configuration (tinkerbaord + ov5647) specific.
>
> >>
> >>>  1 file changed, 37 insertions(+)
> >>>
> >>> diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi
> >>> b/arch/arm/boot/dts/rk3288-tinker.dtsi
> >>> index 312582c1bd37..720dd80ea3aa 100644
> >>> --- a/arch/arm/boot/dts/rk3288-tinker.dtsi
> >>> +++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
> >>> @@ -107,6 +107,13 @@
> >>>          startup-delay-us = <100000>;
> >>>          vin-supply = <&vcc_io>;
> >>>      };
> >>> +
> >>> +    ext_cam_clk: external-camera-clock {
> >>> +        compatible = "fixed-clock";
> >>> +        clock-frequency = <25000000>;
> >>> +        clock-output-names = "CLK_CAMERA_25MHZ";
> >>> +        #clock-cells = <0>;
> >>> +    };
> >>>  };
> >>>
> >>>  &cpu0 {
> >>> @@ -345,12 +352,42 @@
> >>>
> >>>  &i2c2 {
> >>>      status = "okay";
> >>> +    camera0: ov5647@36 {
> >>> +        compatible = "ovti,ov5647";
> >>> +        reg = <0x36>;
> >>> +        clocks = <&ext_cam_clk>;
> >>> +        status = "okay";
> >>> +        enable-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
> >>> +        port {
> >>> +            ov5647_out: endpoint {
> >>> +                remote-endpoint = <&isp_mipi_in>;
> >>> +                data-lanes = <1 2>;
> >>> +            };
> >>> +        };
> >>> +    };
> >>>  };
> >>>
> >>>  &i2c5 {
> >>>      status = "okay";
> >>>  };
> >>>
> >>> +&isp {
> >>> +    status = "okay";
> >>> +    phys = <&mipi_phy_rx0>;
> >>> +    phy-names = "dphy";
> >>> +
> >>> +    port {
> >>> +        isp_mipi_in: endpoint {
> >>> +            remote-endpoint = <&ov5647_out>;
> >>> +            data-lanes = <1 2>;
> >>> +        };
> >>> +    };
> >>> +};
> >>> +
> >>> +&mipi_phy_rx0 {
> >>> +    status = "okay";
> >>> +};
> >>> +
> >>>  &i2s {
> >>>      #sound-dai-cells = <0>;
> >>>      status = "okay";
> >>>
> >>
> >



-- 
Regards,
Karthik Poduval



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux