Messages in this thread | | | Date | Thu, 17 Jun 2021 03:30:05 +0300 | From | Laurent Pinchart <> | Subject | Re: [PATCH v5 6/7] arm64: dts: renesas: eagle: Add GMSL .dtsi |
| |
Hi Jacopo and Kieran,
Thank you for the patch.
On Mon, Apr 19, 2021 at 04:23:44PM +0200, Jacopo Mondi wrote: > From: Kieran Bingham <kieran.bingham@ideasonboard.com> > > Describe the FAKRA connector available on Eagle board that allows > connecting GMSL camera modules such as IMI RDACM20 and RDACM21. > > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org> > --- > arch/arm64/boot/dts/renesas/eagle-gmsl.dtsi | 178 ++++++++++++++++++++ > 1 file changed, 178 insertions(+) > create mode 100644 arch/arm64/boot/dts/renesas/eagle-gmsl.dtsi > > diff --git a/arch/arm64/boot/dts/renesas/eagle-gmsl.dtsi b/arch/arm64/boot/dts/renesas/eagle-gmsl.dtsi > new file mode 100644 > index 000000000000..d2e48dc3e820 > --- /dev/null > +++ b/arch/arm64/boot/dts/renesas/eagle-gmsl.dtsi > @@ -0,0 +1,178 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Device Tree Source (overlay) for the Eagle V3M GMSL connectors > + * > + * Copyright (C) 2017 Ideas on Board <kieran.bingham@ideasonboard.com> > + * Copyright (C) 2021 Jacopo Mondi <jacopo+renesas@jmondi.org> > + * > + * This overlay allows you to define GMSL cameras connected to the FAKRA > + * connectors on the Eagle-V3M (or compatible) board. > + * > + * The following cameras are currently supported: RDACM20 and RDACM21. > + * > + * The board .dts files that include this select which cameras are in use > + * by specifying the camera model with: > + * > + * #define GMSL_CAMERA_RDACM20 > + * or > + * #define GMSL_CAMERA_RDACM21 > + * > + * And which cameras are connected to the board by defining: > + * #define GMSL_CAMERA_0 > + * #define GMSL_CAMERA_1 > + * #define GMSL_CAMERA_2 > + * #define GMSL_CAMERA_3 > + */ > + > +#include <dt-bindings/gpio/gpio.h> > + > +/* Validate the board file settings. */ > +#if !defined(GMSL_CAMERA_RDACM20) && !defined(GMSL_CAMERA_RDACM21) > +#error "Camera model should be defined by the board file" > +#endif > + > +#if defined(GMSL_CAMERA_RDACM20) && defined(GMSL_CAMERA_RDACM21) > +#error "A single camera model should be selected" > +#endif
This won't scale when we'll support more than two different cameras, but we'll switch to overlays then :-)
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> + > +#if !defined(GMSL_CAMERA_0) && !defined(GMSL_CAMERA_1) && \ > + !defined(GMSL_CAMERA_2) && !defined(GMSL_CAMERA_3) > +#error "At least one camera should be selected" > +#endif > + > +#if defined(GMSL_CAMERA_RDACM20) > +#define GMSL_CAMERA_MODEL "imi,rdacm20" > +#elif defined(GMSL_CAMERA_RDACM21) > +#define GMSL_CAMERA_MODEL "imi,rdacm21" > +#endif > + > +&vin0 { > + status = "okay"; > +}; > + > +&vin1 { > + status = "okay"; > +}; > + > +&vin2 { > + status = "okay"; > +}; > + > +&vin3 { > + status = "okay"; > +}; > + > +&gmsl { > + status = "okay"; > + > +#if defined(GMSL_CAMERA_RDACM21) > + maxim,reverse-channel-microvolt = <100000>; > +#endif > + > + ports { > +#ifdef GMSL_CAMERA_0 > + port@0 { > + max9286_in0: endpoint { > + remote-endpoint = <&fakra_con0>; > + }; > + }; > +#endif > + > +#ifdef GMSL_CAMERA_1 > + port@1 { > + max9286_in1: endpoint{ > + remote-endpoint = <&fakra_con1>; > + }; > + > + }; > +#endif > + > +#ifdef GMSL_CAMERA_2 > + port@2 { > + max9286_in2: endpoint { > + remote-endpoint = <&fakra_con2>; > + }; > + > + }; > +#endif > + > +#ifdef GMSL_CAMERA_3 > + port@3 { > + max9286_in3: endpoint { > + remote-endpoint = <&fakra_con3>; > + }; > + > + }; > +#endif > + }; > + > + i2c-mux { > +#ifdef GMSL_CAMERA_0 > + i2c@0 { > + status = "okay"; > + > + camera@51 { > + compatible = GMSL_CAMERA_MODEL; > + reg = <0x51>, <0x61>; > + > + port { > + fakra_con0: endpoint { > + remote-endpoint = <&max9286_in0>; > + }; > + }; > + }; > + }; > +#endif > + > +#ifdef GMSL_CAMERA_1 > + i2c@1 { > + status = "okay"; > + > + camera@52 { > + compatible = GMSL_CAMERA_MODEL; > + reg = <0x52>, <0x62>; > + > + port { > + fakra_con1: endpoint { > + remote-endpoint = <&max9286_in1>; > + }; > + }; > + }; > + }; > +#endif > + > +#ifdef GMSL_CAMERA_2 > + i2c@2 { > + status = "okay"; > + > + camera@53 { > + compatible = GMSL_CAMERA_MODEL; > + reg = <0x53>, <0x63>; > + > + port { > + fakra_con2: endpoint { > + remote-endpoint = <&max9286_in2>; > + }; > + }; > + }; > + }; > +#endif > + > +#ifdef GMSL_CAMERA_3 > + i2c@3 { > + status = "okay"; > + > + camera@54 { > + compatible = GMSL_CAMERA_MODEL; > + reg = <0x54>, <0x64>; > + > + port { > + fakra_con3: endpoint { > + remote-endpoint = <&max9286_in3>; > + }; > + }; > + }; > + }; > +#endif > + }; > +};
-- Regards,
Laurent Pinchart
| |