Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/arm64/boot/dts/renesas/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 5 kB image not shown  

Quelle  gmsl-cameras.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2017 Ideas on Board <kieran.bingham@ideasonboard.com>
 * Copyright (C) 2021 Jacopo Mondi <jacopo+renesas@jmondi.org>
 *
 * Device Tree Source (overlay) that describes GMSL camera connected to
 * Fakra connectors for the Eagle V3M and Condor V3H (and compatible) boards.
 *
 * The following cameras are currently supported: RDACM20 and RDACM21.
 *
 * The board .dts file that include this has to 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:
 * for GMSL channel 0:
 *    #define GMSL_CAMERA_0
 *    #define GMSL_CAMERA_1
 *    #define GMSL_CAMERA_2
 *    #define GMSL_CAMERA_3
 *
 * for GMSL channel 1:
 *    #define GMSL_CAMERA_4
 *    #define GMSL_CAMERA_5
 *    #define GMSL_CAMERA_6
 *    #define GMSL_CAMERA_7
 */

#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

#if !defined(GMSL_CAMERA_0) && !defined(GMSL_CAMERA_1) && \
    !defined(GMSL_CAMERA_2) && !defined(GMSL_CAMERA_3) && \
    !defined(GMSL_CAMERA_4) && !defined(GMSL_CAMERA_5) && \
    !defined(GMSL_CAMERA_6) && !defined(GMSL_CAMERA_7)
#error "At least one camera should be selected"
#endif

/* Deduce from the enabled cameras which GMSL channels are active. */
#if defined(GMSL_CAMERA_0) || defined(GMSL_CAMERA_1) || \
    defined(GMSL_CAMERA_2) || defined(GMSL_CAMERA_3)
#define GMSL_0
#endif

#if defined(GMSL_CAMERA_4) || defined(GMSL_CAMERA_5) || \
    defined(GMSL_CAMERA_6) || defined(GMSL_CAMERA_7)
#define GMSL_1
#endif

/* Deduce the camera model compatible string. */
#if defined(GMSL_CAMERA_RDACM20)
#define GMSL_CAMERA_MODEL "imi,rdacm20"
#elif defined(GMSL_CAMERA_RDACM21)
#define GMSL_CAMERA_MODEL "imi,rdacm21"
#endif

#ifdef GMSL_0
&vin0 {
 status = "okay";
};

&vin1 {
 status = "okay";
};

&vin2 {
 status = "okay";
};

&vin3 {
 status = "okay";
};

&gmsl0 {
 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
 };
};
#endif /* ifdef GMSL_0 */

#ifdef GMSL_1
&vin4 {
 status = "okay";
};

&vin5 {
 status = "okay";
};

&vin6 {
 status = "okay";
};

&vin7 {
 status = "okay";
};

&gmsl1 {
 status = "okay";

#if defined(GMSL_CAMERA_RDACM21)
 maxim,reverse-channel-microvolt = <100000>;
#endif

 ports {
#ifdef GMSL_CAMERA_4
  port@0 {
   max9286_in4: endpoint {
    remote-endpoint = <&fakra_con4>;
   };
  };
#endif

#ifdef GMSL_CAMERA_5
  port@1 {
   max9286_in5: endpoint {
    remote-endpoint = <&fakra_con5>;
   };

  };
#endif

#ifdef GMSL_CAMERA_6
  port@2 {
   max9286_in6: endpoint {
    remote-endpoint = <&fakra_con6>;
   };

  };
#endif

#ifdef GMSL_CAMERA_7
  port@3 {
   max9286_in7: endpoint {
    remote-endpoint = <&fakra_con7>;
   };

  };
#endif
 };

 i2c-mux {
#ifdef GMSL_CAMERA_4
  i2c@0 {
   status = "okay";

   camera@55 {
    compatible = GMSL_CAMERA_MODEL;
    reg = <0x55>, <0x65>;

    port {
     fakra_con4: endpoint {
      remote-endpoint = <&max9286_in4>;
     };
    };
   };
  };
#endif

#ifdef GMSL_CAMERA_5
  i2c@1 {
   status = "okay";

   camera@56 {
    compatible = GMSL_CAMERA_MODEL;
    reg = <0x56>, <0x66>;

    port {
     fakra_con5: endpoint {
      remote-endpoint = <&max9286_in5>;
     };
    };
   };
  };
#endif

#ifdef GMSL_CAMERA_6
  i2c@2 {
   status = "okay";

   camera@57 {
    compatible = GMSL_CAMERA_MODEL;
    reg = <0x57>, <0x67>;

    port {
     fakra_con6: endpoint {
      remote-endpoint = <&max9286_in6>;
     };
    };
   };
  };
#endif

#ifdef GMSL_CAMERA_7
  i2c@3 {
   status = "okay";

   camera@58 {
    compatible = GMSL_CAMERA_MODEL;
    reg = <0x58>, <0x68>;

    port {
     fakra_con7: endpoint {
      remote-endpoint = <&max9286_in7>;
     };
    };
   };
  };
#endif
 };
};
#endif /* ifdef GMSL_1 */

[ Dauer der Verarbeitung: 0.3 Sekunden  (vorverarbeitet)  ]