All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Adam Ford <aford173@gmail.com>
Cc: arm-soc <linux-arm-kernel@lists.infradead.org>,
	Tim Harvey <tharvey@gateworks.com>,
	Schrempf Frieder <frieder.schrempf@kontron.de>,
	linux-media <linux-media@vger.kernel.org>,
	Adam Ford-BE <aford@beaconembedded.com>,
	cstevens@beaconembedded.com,
	Jagan Teki <jagan@amarulasolutions.com>,
	Rob Herring <robh+dt@kernel.org>, Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	NXP Linux Team <linux-imx@nxp.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Lucas Stach <l.stach@pengutronix.de>, Peng Fan <peng.fan@nxp.com>,
	devicetree <devicetree@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V2 4/5] arm64: dts: imx8mm-beacon: Enable OV5640 Camera
Date: Tue, 23 Nov 2021 02:15:01 +0200	[thread overview]
Message-ID: <YZwyhWPJVlC0JmpK@pendragon.ideasonboard.com> (raw)
In-Reply-To: <CAHCN7xK=SNgiC2kRzX4gftjkZX4Ms8PVbL69n7+eR-EAe68xag@mail.gmail.com>

Hi Adam,

On Sun, Nov 21, 2021 at 09:07:26PM -0600, Adam Ford wrote:
> On Sun, Nov 21, 2021 at 5:18 PM Laurent Pinchart wrote:
> > On Sat, Nov 06, 2021 at 10:54:26AM -0500, Adam Ford wrote:
> > > The baseboard has support for a TDNext 5640 Camera which
> > > uses an OV5640 connected to a 2-lane CSI2 interface.
> > >
> > > With the CSI and mipi_csi2 drivers pointing to an OV5640 camera, the media
> > > pipeline can be configured with the following:
> > >
> > >     media-ctl --links "'ov5640 1-003c':0->'imx7-mipi-csis.0':0[1]"
> > >
> > > The camera and various nodes in the pipeline can be configured for UYVY:
> > >     media-ctl -v -V "'ov5640 1-003c':0 [fmt:UYVY8_1X16/640x480 field:none]"
> > >     media-ctl -v -V "'csi':0 [fmt:UYVY8_1X16/640x480 field:none]"
> > >
> > > Signed-off-by: Adam Ford <aford173@gmail.com>
> >
> > As the ov5640 is on an add-on module, would a DT overlay be better ?
> 
> At least for the Beacon / LogicPD boards, I would prefer to avoid the
> overlays.  We have an i.M6Q and an OMAP3 board with cameras enabled in
> our development kit device trees.  If the cameras are not connected,
> they just display a message that the cameras are not communicating and
> move on.  I'm OK with that.

You know the board better than I do, so I won't push against this, but I
still think it may not lead to the best user experience, especially if a
user wanted to connect a different sensor to the development board.

> > > ---
> > > V2:  No change
> > >
> > >  .../freescale/imx8mm-beacon-baseboard.dtsi    | 58 +++++++++++++++++++
> > >  1 file changed, 58 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> > > index 6f5e63696ec0..0fb95f4a5e78 100644
> > > --- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> > > @@ -43,6 +43,16 @@ reg_audio: regulator-audio {
> > >               enable-active-high;
> > >       };
> > >
> > > +     reg_camera: regulator-camera {
> > > +             compatible = "regulator-fixed";
> > > +             regulator-name = "mipi_pwr";
> > > +             regulator-min-microvolt = <2800000>;
> > > +             regulator-max-microvolt = <2800000>;
> > > +             gpio = <&pca6416_1 0 GPIO_ACTIVE_HIGH>;
> > > +             enable-active-high;
> > > +             startup-delay-us = <100000>;
> > > +     };
> > > +
> > >       reg_usdhc2_vmmc: regulator-usdhc2 {
> > >               compatible = "regulator-fixed";
> > >               regulator-name = "VSD_3V3";
> > > @@ -67,6 +77,10 @@ sound {
> > >       };
> > >  };
> > >
> > > +&csi {
> > > +     status = "okay";
> > > +};
> > > +
> > >  &ecspi2 {
> > >       pinctrl-names = "default";
> > >       pinctrl-0 = <&pinctrl_espi2>;
> > > @@ -90,6 +104,30 @@ &i2c2 {
> > >       pinctrl-names = "default";
> > >       pinctrl-0 = <&pinctrl_i2c2>;
> > >       status = "okay";
> > > +
> > > +     camera@3c {
> > > +             compatible = "ovti,ov5640";
> > > +             pinctrl-names = "default";
> > > +             pinctrl-0 = <&pinctrl_ov5640>;
> > > +             reg = <0x3c>;
> > > +             clocks = <&clk IMX8MM_CLK_CLKO1>;
> > > +             clock-names = "xclk";
> > > +             assigned-clocks = <&clk IMX8MM_CLK_CLKO1>;
> > > +             assigned-clock-parents = <&clk IMX8MM_CLK_24M>;
> > > +             assigned-clock-rates = <24000000>;
> > > +             AVDD-supply = <&reg_camera>;  /* 2.8v */
> > > +             powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> > > +             reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
> > > +
> > > +             port {
> > > +                     /* MIPI CSI-2 bus endpoint */
> > > +                     ov5640_to_mipi_csi2: endpoint {
> > > +                             remote-endpoint = <&imx8mm_mipi_csi_in>;
> > > +                             clock-lanes = <0>;
> > > +                             data-lanes = <1 2>;
> > > +                     };
> > > +             };
> > > +     };
> > >  };
> > >
> > >  &i2c4 {
> > > @@ -141,6 +179,18 @@ pca6416_1: gpio@21 {
> > >       };
> > >  };
> > >
> > > +&mipi_csi {
> > > +     status = "okay";
> > > +     ports {
> > > +             port@0 {
> > > +                     imx8mm_mipi_csi_in: endpoint {
> > > +                             remote-endpoint = <&ov5640_to_mipi_csi2>;
> > > +                             data-lanes = <1 2>;
> > > +                     };
> > > +             };
> > > +     };
> > > +};
> > > +
> > >  &sai3 {
> > >       pinctrl-names = "default";
> > >       pinctrl-0 = <&pinctrl_sai3>;
> > > @@ -209,6 +259,14 @@ MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28        0x41
> > >               >;
> > >       };
> > >
> > > +     pinctrl_ov5640: ov5640grp {
> > > +             fsl,pins = <
> > > +                     MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7               0x19
> > > +                     MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6               0x19
> > > +                     MX8MM_IOMUXC_GPIO1_IO14_CCMSRCGPCMIX_CLKO1      0x59
> > > +             >;
> > > +     };
> > > +
> > >       pinctrl_pcal6414: pcal6414-gpiogrp {
> > >               fsl,pins = <
> > >                       MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27               0x19

-- 
Regards,

Laurent Pinchart

WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Adam Ford <aford173@gmail.com>
Cc: arm-soc <linux-arm-kernel@lists.infradead.org>,
	Tim Harvey <tharvey@gateworks.com>,
	Schrempf Frieder <frieder.schrempf@kontron.de>,
	linux-media <linux-media@vger.kernel.org>,
	Adam Ford-BE <aford@beaconembedded.com>,
	cstevens@beaconembedded.com,
	Jagan Teki <jagan@amarulasolutions.com>,
	Rob Herring <robh+dt@kernel.org>, Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	NXP Linux Team <linux-imx@nxp.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Lucas Stach <l.stach@pengutronix.de>, Peng Fan <peng.fan@nxp.com>,
	devicetree <devicetree@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V2 4/5] arm64: dts: imx8mm-beacon: Enable OV5640 Camera
Date: Tue, 23 Nov 2021 02:15:01 +0200	[thread overview]
Message-ID: <YZwyhWPJVlC0JmpK@pendragon.ideasonboard.com> (raw)
In-Reply-To: <CAHCN7xK=SNgiC2kRzX4gftjkZX4Ms8PVbL69n7+eR-EAe68xag@mail.gmail.com>

Hi Adam,

On Sun, Nov 21, 2021 at 09:07:26PM -0600, Adam Ford wrote:
> On Sun, Nov 21, 2021 at 5:18 PM Laurent Pinchart wrote:
> > On Sat, Nov 06, 2021 at 10:54:26AM -0500, Adam Ford wrote:
> > > The baseboard has support for a TDNext 5640 Camera which
> > > uses an OV5640 connected to a 2-lane CSI2 interface.
> > >
> > > With the CSI and mipi_csi2 drivers pointing to an OV5640 camera, the media
> > > pipeline can be configured with the following:
> > >
> > >     media-ctl --links "'ov5640 1-003c':0->'imx7-mipi-csis.0':0[1]"
> > >
> > > The camera and various nodes in the pipeline can be configured for UYVY:
> > >     media-ctl -v -V "'ov5640 1-003c':0 [fmt:UYVY8_1X16/640x480 field:none]"
> > >     media-ctl -v -V "'csi':0 [fmt:UYVY8_1X16/640x480 field:none]"
> > >
> > > Signed-off-by: Adam Ford <aford173@gmail.com>
> >
> > As the ov5640 is on an add-on module, would a DT overlay be better ?
> 
> At least for the Beacon / LogicPD boards, I would prefer to avoid the
> overlays.  We have an i.M6Q and an OMAP3 board with cameras enabled in
> our development kit device trees.  If the cameras are not connected,
> they just display a message that the cameras are not communicating and
> move on.  I'm OK with that.

You know the board better than I do, so I won't push against this, but I
still think it may not lead to the best user experience, especially if a
user wanted to connect a different sensor to the development board.

> > > ---
> > > V2:  No change
> > >
> > >  .../freescale/imx8mm-beacon-baseboard.dtsi    | 58 +++++++++++++++++++
> > >  1 file changed, 58 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> > > index 6f5e63696ec0..0fb95f4a5e78 100644
> > > --- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> > > @@ -43,6 +43,16 @@ reg_audio: regulator-audio {
> > >               enable-active-high;
> > >       };
> > >
> > > +     reg_camera: regulator-camera {
> > > +             compatible = "regulator-fixed";
> > > +             regulator-name = "mipi_pwr";
> > > +             regulator-min-microvolt = <2800000>;
> > > +             regulator-max-microvolt = <2800000>;
> > > +             gpio = <&pca6416_1 0 GPIO_ACTIVE_HIGH>;
> > > +             enable-active-high;
> > > +             startup-delay-us = <100000>;
> > > +     };
> > > +
> > >       reg_usdhc2_vmmc: regulator-usdhc2 {
> > >               compatible = "regulator-fixed";
> > >               regulator-name = "VSD_3V3";
> > > @@ -67,6 +77,10 @@ sound {
> > >       };
> > >  };
> > >
> > > +&csi {
> > > +     status = "okay";
> > > +};
> > > +
> > >  &ecspi2 {
> > >       pinctrl-names = "default";
> > >       pinctrl-0 = <&pinctrl_espi2>;
> > > @@ -90,6 +104,30 @@ &i2c2 {
> > >       pinctrl-names = "default";
> > >       pinctrl-0 = <&pinctrl_i2c2>;
> > >       status = "okay";
> > > +
> > > +     camera@3c {
> > > +             compatible = "ovti,ov5640";
> > > +             pinctrl-names = "default";
> > > +             pinctrl-0 = <&pinctrl_ov5640>;
> > > +             reg = <0x3c>;
> > > +             clocks = <&clk IMX8MM_CLK_CLKO1>;
> > > +             clock-names = "xclk";
> > > +             assigned-clocks = <&clk IMX8MM_CLK_CLKO1>;
> > > +             assigned-clock-parents = <&clk IMX8MM_CLK_24M>;
> > > +             assigned-clock-rates = <24000000>;
> > > +             AVDD-supply = <&reg_camera>;  /* 2.8v */
> > > +             powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> > > +             reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
> > > +
> > > +             port {
> > > +                     /* MIPI CSI-2 bus endpoint */
> > > +                     ov5640_to_mipi_csi2: endpoint {
> > > +                             remote-endpoint = <&imx8mm_mipi_csi_in>;
> > > +                             clock-lanes = <0>;
> > > +                             data-lanes = <1 2>;
> > > +                     };
> > > +             };
> > > +     };
> > >  };
> > >
> > >  &i2c4 {
> > > @@ -141,6 +179,18 @@ pca6416_1: gpio@21 {
> > >       };
> > >  };
> > >
> > > +&mipi_csi {
> > > +     status = "okay";
> > > +     ports {
> > > +             port@0 {
> > > +                     imx8mm_mipi_csi_in: endpoint {
> > > +                             remote-endpoint = <&ov5640_to_mipi_csi2>;
> > > +                             data-lanes = <1 2>;
> > > +                     };
> > > +             };
> > > +     };
> > > +};
> > > +
> > >  &sai3 {
> > >       pinctrl-names = "default";
> > >       pinctrl-0 = <&pinctrl_sai3>;
> > > @@ -209,6 +259,14 @@ MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28        0x41
> > >               >;
> > >       };
> > >
> > > +     pinctrl_ov5640: ov5640grp {
> > > +             fsl,pins = <
> > > +                     MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7               0x19
> > > +                     MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6               0x19
> > > +                     MX8MM_IOMUXC_GPIO1_IO14_CCMSRCGPCMIX_CLKO1      0x59
> > > +             >;
> > > +     };
> > > +
> > >       pinctrl_pcal6414: pcal6414-gpiogrp {
> > >               fsl,pins = <
> > >                       MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27               0x19

-- 
Regards,

Laurent Pinchart

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-11-23  0:15 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-06 15:54 [PATCH V2 1/5] soc: imx: imx8m-blk-ctrl: Fix imx8mm mipi reset Adam Ford
2021-11-06 15:54 ` Adam Ford
2021-11-06 15:54 ` [PATCH V2 2/5] arm64: dts: imx8mm: Add CSI nodes Adam Ford
2021-11-06 15:54   ` Adam Ford
2021-11-07 12:58   ` Fabio Estevam
2021-11-07 12:58     ` Fabio Estevam
2021-11-06 15:54 ` [PATCH V2 3/5] arm64: defconfig: Enable VIDEO_IMX_MEDIA Adam Ford
2021-11-06 15:54   ` Adam Ford
2021-11-07 13:01   ` Fabio Estevam
2021-11-07 13:01     ` Fabio Estevam
2021-11-06 15:54 ` [PATCH V2 4/5] arm64: dts: imx8mm-beacon: Enable OV5640 Camera Adam Ford
2021-11-06 15:54   ` Adam Ford
2021-11-07 13:01   ` Fabio Estevam
2021-11-07 13:01     ` Fabio Estevam
2021-11-21 23:18   ` Laurent Pinchart
2021-11-21 23:18     ` Laurent Pinchart
2021-11-22  3:07     ` Adam Ford
2021-11-22  3:07       ` Adam Ford
2021-11-23  0:15       ` Laurent Pinchart [this message]
2021-11-23  0:15         ` Laurent Pinchart
2021-11-23  7:38         ` (EXT) " Alexander Stein
2021-11-23  7:38           ` Alexander Stein
2021-11-23  9:47           ` Laurent Pinchart
2021-11-23  9:47             ` Laurent Pinchart
2021-11-29 18:56             ` Tim Harvey
2021-11-29 18:56               ` Tim Harvey
2021-11-06 15:54 ` [PATCH V2 5/5] arm64: defconfig: Enable OV5640 Adam Ford
2021-11-06 15:54   ` Adam Ford
2021-11-07 13:03   ` Fabio Estevam
2021-11-07 13:03     ` Fabio Estevam
2021-11-07 12:58 ` [PATCH V2 1/5] soc: imx: imx8m-blk-ctrl: Fix imx8mm mipi reset Fabio Estevam
2021-11-07 12:58   ` Fabio Estevam
2021-11-08  8:56 ` Lucas Stach
2021-11-08  8:56   ` Lucas Stach
2021-11-12  6:54 ` Jagan Teki
2021-11-12  6:54   ` Jagan Teki
2021-11-19 23:51   ` Tim Harvey
2021-11-19 23:51     ` Tim Harvey
2021-11-20 18:33     ` Adam Ford
2021-11-20 18:33       ` Adam Ford
2021-11-21 23:13       ` Laurent Pinchart
2021-11-21 23:13         ` Laurent Pinchart
2021-11-21 22:25 ` Laurent Pinchart
2021-11-21 22:25   ` Laurent Pinchart
2021-11-21 22:30   ` Laurent Pinchart
2021-11-21 22:30     ` Laurent Pinchart
2021-11-23 13:59   ` Adam Ford
2021-11-23 13:59     ` Adam Ford
2021-11-25  5:42     ` Jagan Teki
2021-11-25  5:42       ` Jagan Teki
2021-11-25 15:18       ` Adam Ford
2021-11-25 15:18         ` Adam Ford
2021-11-26  0:33         ` Laurent Pinchart
2021-11-26  0:33           ` Laurent Pinchart
2021-11-27 13:50           ` Adam Ford
2021-11-27 13:50             ` Adam Ford
2021-11-27 15:02             ` Laurent Pinchart
2021-11-27 15:02               ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YZwyhWPJVlC0JmpK@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=aford173@gmail.com \
    --cc=aford@beaconembedded.com \
    --cc=catalin.marinas@arm.com \
    --cc=cstevens@beaconembedded.com \
    --cc=devicetree@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=frieder.schrempf@kontron.de \
    --cc=jagan@amarulasolutions.com \
    --cc=kernel@pengutronix.de \
    --cc=l.stach@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=peng.fan@nxp.com \
    --cc=robh+dt@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=tharvey@gateworks.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.