The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/src/arm64/renesas/gmsl-cameras.dtsi

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 // SPDX-License-Identifier: GPL-2.0+
    2 /*
    3  * Copyright (C) 2017 Ideas on Board <kieran.bingham@ideasonboard.com>
    4  * Copyright (C) 2021 Jacopo Mondi <jacopo+renesas@jmondi.org>
    5  *
    6  * Device Tree Source (overlay) that describes GMSL camera connected to
    7  * Fakra connectors for the Eagle V3M and Condor V3H (and compatible) boards.
    8  *
    9  * The following cameras are currently supported: RDACM20 and RDACM21.
   10  *
   11  * The board .dts file that include this has to select which cameras are in use
   12  * by specifying the camera model with:
   13  *
   14  * #define GMSL_CAMERA_RDACM20
   15  * or
   16  * #define GMSL_CAMERA_RDACM21
   17  *
   18  * And which cameras are connected to the board by defining:
   19  * for GMSL channel 0:
   20  *         #define GMSL_CAMERA_0
   21  *         #define GMSL_CAMERA_1
   22  *         #define GMSL_CAMERA_2
   23  *         #define GMSL_CAMERA_3
   24  *
   25  * for GMSL channel 1:
   26  *         #define GMSL_CAMERA_4
   27  *         #define GMSL_CAMERA_5
   28  *         #define GMSL_CAMERA_6
   29  *         #define GMSL_CAMERA_7
   30  */
   31 
   32 #include <dt-bindings/gpio/gpio.h>
   33 
   34 /* Validate the board file settings. */
   35 #if !defined(GMSL_CAMERA_RDACM20) && !defined(GMSL_CAMERA_RDACM21)
   36 #error "Camera model should be defined by the board file"
   37 #endif
   38 
   39 #if defined(GMSL_CAMERA_RDACM20) && defined(GMSL_CAMERA_RDACM21)
   40 #error "A single camera model should be selected"
   41 #endif
   42 
   43 #if !defined(GMSL_CAMERA_0) && !defined(GMSL_CAMERA_1) && \
   44     !defined(GMSL_CAMERA_2) && !defined(GMSL_CAMERA_3) && \
   45     !defined(GMSL_CAMERA_4) && !defined(GMSL_CAMERA_5) && \
   46     !defined(GMSL_CAMERA_6) && !defined(GMSL_CAMERA_7)
   47 #error "At least one camera should be selected"
   48 #endif
   49 
   50 /* Deduce from the enabled cameras which GMSL channels are active. */
   51 #if defined(GMSL_CAMERA_0) || defined(GMSL_CAMERA_1) || \
   52     defined(GMSL_CAMERA_2) || defined(GMSL_CAMERA_3)
   53 #define GMSL_0
   54 #endif
   55 
   56 #if defined(GMSL_CAMERA_4) || defined(GMSL_CAMERA_5) || \
   57     defined(GMSL_CAMERA_6) || defined(GMSL_CAMERA_7)
   58 #define GMSL_1
   59 #endif
   60 
   61 /* Deduce the camera model compatible string. */
   62 #if defined(GMSL_CAMERA_RDACM20)
   63 #define GMSL_CAMERA_MODEL "imi,rdacm20"
   64 #elif defined(GMSL_CAMERA_RDACM21)
   65 #define GMSL_CAMERA_MODEL "imi,rdacm21"
   66 #endif
   67 
   68 #ifdef GMSL_0
   69 &vin0 {
   70         status = "okay";
   71 };
   72 
   73 &vin1 {
   74         status = "okay";
   75 };
   76 
   77 &vin2 {
   78         status = "okay";
   79 };
   80 
   81 &vin3 {
   82         status = "okay";
   83 };
   84 
   85 &gmsl0 {
   86         status = "okay";
   87 
   88 #if defined(GMSL_CAMERA_RDACM21)
   89         maxim,reverse-channel-microvolt = <100000>;
   90 #endif
   91 
   92         ports {
   93 #ifdef GMSL_CAMERA_0
   94                 port@0 {
   95                         max9286_in0: endpoint {
   96                                 remote-endpoint = <&fakra_con0>;
   97                         };
   98                 };
   99 #endif
  100 
  101 #ifdef GMSL_CAMERA_1
  102                 port@1 {
  103                         max9286_in1: endpoint{
  104                                 remote-endpoint = <&fakra_con1>;
  105                         };
  106 
  107                 };
  108 #endif
  109 
  110 #ifdef GMSL_CAMERA_2
  111                 port@2 {
  112                         max9286_in2: endpoint {
  113                                 remote-endpoint = <&fakra_con2>;
  114                         };
  115 
  116                 };
  117 #endif
  118 
  119 #ifdef GMSL_CAMERA_3
  120                 port@3 {
  121                         max9286_in3: endpoint {
  122                                 remote-endpoint = <&fakra_con3>;
  123                         };
  124 
  125                 };
  126 #endif
  127         };
  128 
  129         i2c-mux {
  130 #ifdef GMSL_CAMERA_0
  131                 i2c@0 {
  132                         status = "okay";
  133 
  134                         camera@51 {
  135                                 compatible = GMSL_CAMERA_MODEL;
  136                                 reg = <0x51>, <0x61>;
  137 
  138                                 port {
  139                                         fakra_con0: endpoint {
  140                                                 remote-endpoint = <&max9286_in0>;
  141                                         };
  142                                 };
  143                         };
  144                 };
  145 #endif
  146 
  147 #ifdef GMSL_CAMERA_1
  148                 i2c@1 {
  149                         status = "okay";
  150 
  151                         camera@52 {
  152                                 compatible = GMSL_CAMERA_MODEL;
  153                                 reg = <0x52>, <0x62>;
  154 
  155                                 port {
  156                                         fakra_con1: endpoint {
  157                                                 remote-endpoint = <&max9286_in1>;
  158                                         };
  159                                 };
  160                         };
  161                 };
  162 #endif
  163 
  164 #ifdef GMSL_CAMERA_2
  165                 i2c@2 {
  166                         status = "okay";
  167 
  168                         camera@53 {
  169                                 compatible = GMSL_CAMERA_MODEL;
  170                                 reg = <0x53>, <0x63>;
  171 
  172                                 port {
  173                                         fakra_con2: endpoint {
  174                                                 remote-endpoint = <&max9286_in2>;
  175                                         };
  176                                 };
  177                         };
  178                 };
  179 #endif
  180 
  181 #ifdef GMSL_CAMERA_3
  182                 i2c@3 {
  183                         status = "okay";
  184 
  185                         camera@54 {
  186                                 compatible = GMSL_CAMERA_MODEL;
  187                                 reg = <0x54>, <0x64>;
  188 
  189                                 port {
  190                                         fakra_con3: endpoint {
  191                                                 remote-endpoint = <&max9286_in3>;
  192                                         };
  193                                 };
  194                         };
  195                 };
  196 #endif
  197         };
  198 };
  199 #endif /* ifdef GMSL_0 */
  200 
  201 #ifdef GMSL_1
  202 &vin4 {
  203         status = "okay";
  204 };
  205 
  206 &vin5 {
  207         status = "okay";
  208 };
  209 
  210 &vin6 {
  211         status = "okay";
  212 };
  213 
  214 &vin7 {
  215         status = "okay";
  216 };
  217 
  218 &gmsl1 {
  219         status = "okay";
  220 
  221 #if defined(GMSL_CAMERA_RDACM21)
  222         maxim,reverse-channel-microvolt = <100000>;
  223 #endif
  224 
  225         ports {
  226 #ifdef GMSL_CAMERA_4
  227                 port@0 {
  228                         max9286_in4: endpoint {
  229                                 remote-endpoint = <&fakra_con4>;
  230                         };
  231                 };
  232 #endif
  233 
  234 #ifdef GMSL_CAMERA_5
  235                 port@1 {
  236                         max9286_in5: endpoint{
  237                                 remote-endpoint = <&fakra_con5>;
  238                         };
  239 
  240                 };
  241 #endif
  242 
  243 #ifdef GMSL_CAMERA_6
  244                 port@2 {
  245                         max9286_in6: endpoint {
  246                                 remote-endpoint = <&fakra_con6>;
  247                         };
  248 
  249                 };
  250 #endif
  251 
  252 #ifdef GMSL_CAMERA_7
  253                 port@3 {
  254                         max9286_in7: endpoint {
  255                                 remote-endpoint = <&fakra_con7>;
  256                         };
  257 
  258                 };
  259 #endif
  260         };
  261 
  262         i2c-mux {
  263 #ifdef GMSL_CAMERA_4
  264                 i2c@0 {
  265                         status = "okay";
  266 
  267                         camera@55 {
  268                                 compatible = GMSL_CAMERA_MODEL;
  269                                 reg = <0x55>, <0x65>;
  270 
  271                                 port {
  272                                         fakra_con4: endpoint {
  273                                                 remote-endpoint = <&max9286_in4>;
  274                                         };
  275                                 };
  276                         };
  277                 };
  278 #endif
  279 
  280 #ifdef GMSL_CAMERA_5
  281                 i2c@1 {
  282                         status = "okay";
  283 
  284                         camera@56 {
  285                                 compatible = GMSL_CAMERA_MODEL;
  286                                 reg = <0x56>, <0x66>;
  287 
  288                                 port {
  289                                         fakra_con5: endpoint {
  290                                                 remote-endpoint = <&max9286_in5>;
  291                                         };
  292                                 };
  293                         };
  294                 };
  295 #endif
  296 
  297 #ifdef GMSL_CAMERA_6
  298                 i2c@2 {
  299                         status = "okay";
  300 
  301                         camera@57 {
  302                                 compatible = GMSL_CAMERA_MODEL;
  303                                 reg = <0x57>, <0x67>;
  304 
  305                                 port {
  306                                         fakra_con6: endpoint {
  307                                                 remote-endpoint = <&max9286_in6>;
  308                                         };
  309                                 };
  310                         };
  311                 };
  312 #endif
  313 
  314 #ifdef GMSL_CAMERA_7
  315                 i2c@3 {
  316                         status = "okay";
  317 
  318                         camera@58 {
  319                                 compatible = GMSL_CAMERA_MODEL;
  320                                 reg = <0x58>, <0x68>;
  321 
  322                                 port {
  323                                         fakra_con7: endpoint {
  324                                                 remote-endpoint = <&max9286_in7>;
  325                                         };
  326                                 };
  327                         };
  328                 };
  329 #endif
  330         };
  331 };
  332 #endif /* ifdef GMSL_1 */

Cache object: 54dfe13da576b0181c895a5a06315710


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.