diff mbox series

ARM: dts: r8a7742-iwg21d-q7-dbcm-ca: Add OV7725 nodes

Message ID 20201120151343.24175-1-prabhakar.mahadev-lad.rj@bp.renesas.com
State New
Headers show
Series ARM: dts: r8a7742-iwg21d-q7-dbcm-ca: Add OV7725 nodes | expand

Commit Message

Prabhakar Mahadev Lad Nov. 20, 2020, 3:13 p.m. UTC
Add the ov7725 endpoint nodes to the camera daughter board. The ov7725
sensors can be populated on I2C{0,1,2,3} buses.

By default the VIN{0,1,2,3} are tied to OV5640{0,1,2,3} endpoints
respectively in the camera DB dts hence the remote-endpoint property in
OV7725{0,1,2,3} endpoints is commented out.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
---
Hi All,

This patch is based on top of [1].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/geert/
    renesas-devel.git/log/?h=renesas-arm-dt-for-v5.11

Cheers,
Prabhakar
---
 .../boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts    | 93 +++++++++++++++++++
 1 file changed, 93 insertions(+)

Comments

Geert Uytterhoeven Nov. 24, 2020, 9:04 a.m. UTC | #1
Hi Prabhakar,

On Fri, Nov 20, 2020 at 4:13 PM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> Add the ov7725 endpoint nodes to the camera daughter board. The ov7725

> sensors can be populated on I2C{0,1,2,3} buses.

>

> By default the VIN{0,1,2,3} are tied to OV5640{0,1,2,3} endpoints

> respectively in the camera DB dts hence the remote-endpoint property in

> OV7725{0,1,2,3} endpoints is commented out.

>

> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

> Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>


Thanks for your patch!

The camera definitions look mostly OK to me.

IIUIC, these are 4 plug-in cameras, that can be used instead of the
(currently described) 4 other OV5640-based plug-in cameras?
In addition, the user can mix and match them, in the 4 available
slots (J11-J14), which would require editing the DTS?

Wouldn't it be easier to have separate DTS files for the OV7725 and
OV5640 cameras, and #include them from r8a7742-iwg21d-q7-dbcm-ca.dts?

    /* 8bit CMOS Camera 1 (J13) */
    #define MCLK_CAM    &mclk_cam1
    #define ...
    /* Comment the below according to connected cameras */
    #include "ov5640.dts"
    //#include "ov7725.dts"
    #undef MCLK_CAM
    #undef ...

    [...]

> --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts

> +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts


> @@ -152,6 +198,30 @@

>                         };

>                 };

>         };

> +

> +       ov7725@21 {

> +               status = "disabled";


This one is disabled, the three others aren't?

> +               compatible = "ovti,ov7725";

> +               reg = <0x21>;

> +               clocks = <&mclk_cam3>;

> +

> +               port {

> +                       ov7725_2: endpoint {

> +                               bus-width = <8>;

> +                               bus-type = <6>;

> +                               /*

> +                                * uncomment remote-endpoint property to

> +                                * tie ov7725_2 to vin2ep also make

> +                                * sure to comment/remove remote-endpoint

> +                                * property from ov5640_2 endpoint and

> +                                * replace remote-endpoint property in

> +                                * vin2ep node with

> +                                * remote-endpoint = <&ov7725_2>;

> +                                */

> +                               /* remote-endpoint = <&vin2ep>; */

> +                       };

> +               };

> +       };

>  };


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
Lad, Prabhakar Nov. 24, 2020, 1:51 p.m. UTC | #2
Hi Geert,

Thank you for the review.

On Tue, Nov 24, 2020 at 9:04 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>

> Hi Prabhakar,

>

> On Fri, Nov 20, 2020 at 4:13 PM Lad Prabhakar

> <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:

> > Add the ov7725 endpoint nodes to the camera daughter board. The ov7725

> > sensors can be populated on I2C{0,1,2,3} buses.

> >

> > By default the VIN{0,1,2,3} are tied to OV5640{0,1,2,3} endpoints

> > respectively in the camera DB dts hence the remote-endpoint property in

> > OV7725{0,1,2,3} endpoints is commented out.

> >

> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

> > Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>

>

> Thanks for your patch!

>

> The camera definitions look mostly OK to me.

>

> IIUIC, these are 4 plug-in cameras, that can be used instead of the

> (currently described) 4 other OV5640-based plug-in cameras?

> In addition, the user can mix and match them, in the 4 available

> slots (J11-J14), which would require editing the DTS?

>

> Wouldn't it be easier to have separate DTS files for the OV7725 and

> OV5640 cameras, and #include them from r8a7742-iwg21d-q7-dbcm-ca.dts?

>

Good point, will move the vin and ov5640 nodes to
r8a7742-iwg21d-q7-dbcm-ov5640.dtsi and similarly add vin and ov7725
nodes to r8a7742-iwg21d-q7-dbcm-ov7725.dtsi and by default shall
include r8a7742-iwg21d-q7-dbcm-ov5640.dtsi in
r8a7742-iwg21d-q7-dbcm-ca.dts file.(Will keep the mclk_camx and
pimuxes in r8a7742-iwg21d-q7-dbcm-ca.dts file)

>     /* 8bit CMOS Camera 1 (J13) */

>     #define MCLK_CAM    &mclk_cam1

>     #define ...

>     /* Comment the below according to connected cameras */

>     #include "ov5640.dts"

>     //#include "ov7725.dts"

>     #undef MCLK_CAM

>     #undef ...

>

>     [...]

>

> > --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts

> > +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts

>

> > @@ -152,6 +198,30 @@

> >                         };

> >                 };

> >         };

> > +

> > +       ov7725@21 {

> > +               status = "disabled";

>

> This one is disabled, the three others aren't?

>

my bad should have dropped this.

Cheers,
Prabhakar


> > +               compatible = "ovti,ov7725";

> > +               reg = <0x21>;

> > +               clocks = <&mclk_cam3>;

> > +

> > +               port {

> > +                       ov7725_2: endpoint {

> > +                               bus-width = <8>;

> > +                               bus-type = <6>;

> > +                               /*

> > +                                * uncomment remote-endpoint property to

> > +                                * tie ov7725_2 to vin2ep also make

> > +                                * sure to comment/remove remote-endpoint

> > +                                * property from ov5640_2 endpoint and

> > +                                * replace remote-endpoint property in

> > +                                * vin2ep node with

> > +                                * remote-endpoint = <&ov7725_2>;

> > +                                */

> > +                               /* remote-endpoint = <&vin2ep>; */

> > +                       };

> > +               };

> > +       };

> >  };

>

> 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 mbox series

Patch

diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts
index 98c3fbd89fa6..d1386bf7bdbe 100644
--- a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts
+++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts
@@ -108,6 +108,29 @@ 
 			};
 		};
 	};
+
+	ov7725@21 {
+		compatible = "ovti,ov7725";
+		reg = <0x21>;
+		clocks = <&mclk_cam1>;
+
+		port {
+			ov7725_0: endpoint {
+				bus-width = <8>;
+				bus-type = <6>;
+				/*
+				 * uncomment remote-endpoint property to
+				 * tie ov7725_0 to vin0ep also make
+				 * sure to comment/remove remote-endpoint
+				 * property from ov5640_0 endpoint and
+				 * replace remote-endpoint property in
+				 * vin0ep node with
+				 * remote-endpoint = <&ov7725_0>;
+				 */
+				/* remote-endpoint = <&vin0ep>; */
+			};
+		};
+	};
 };
 
 &i2c1 {
@@ -133,6 +156,29 @@ 
 			};
 		};
 	};
+
+	ov7725@21 {
+		compatible = "ovti,ov7725";
+		reg = <0x21>;
+		clocks = <&mclk_cam2>;
+
+		port {
+			ov7725_1: endpoint {
+				bus-width = <8>;
+				bus-type = <6>;
+				/*
+				 * uncomment remote-endpoint property to
+				 * tie ov7725_1 to vin1ep also make
+				 * sure to comment/remove remote-endpoint
+				 * property from ov5640_1 endpoint and
+				 * replace remote-endpoint property in
+				 * vin1ep node with
+				 * remote-endpoint = <&ov7725_1>;
+				 */
+				/* remote-endpoint = <&vin1ep>; */
+			};
+		};
+	};
 };
 
 &i2c2 {
@@ -152,6 +198,30 @@ 
 			};
 		};
 	};
+
+	ov7725@21 {
+		status = "disabled";
+		compatible = "ovti,ov7725";
+		reg = <0x21>;
+		clocks = <&mclk_cam3>;
+
+		port {
+			ov7725_2: endpoint {
+				bus-width = <8>;
+				bus-type = <6>;
+				/*
+				 * uncomment remote-endpoint property to
+				 * tie ov7725_2 to vin2ep also make
+				 * sure to comment/remove remote-endpoint
+				 * property from ov5640_2 endpoint and
+				 * replace remote-endpoint property in
+				 * vin2ep node with
+				 * remote-endpoint = <&ov7725_2>;
+				 */
+				/* remote-endpoint = <&vin2ep>; */
+			};
+		};
+	};
 };
 
 &i2c3 {
@@ -177,6 +247,29 @@ 
 			};
 		};
 	};
+
+	ov7725@21 {
+		compatible = "ovti,ov7725";
+		reg = <0x21>;
+		clocks = <&mclk_cam4>;
+
+		port {
+			ov7725_3: endpoint {
+				bus-width = <8>;
+				bus-type = <6>;
+				/*
+				 * uncomment remote-endpoint property to
+				 * tie ov7725_3 to vin3ep also make
+				 * sure to comment/remove remote-endpoint
+				 * property from ov5640_3 endpoint and
+				 * replace remote-endpoint property in
+				 * vin3ep node with
+				 * remote-endpoint = <&ov7725_3>;
+				 */
+				/* remote-endpoint = <&vin3ep>; */
+			};
+		};
+	};
 };
 
 &pfc {