AnsweredAssumed Answered

ADV7280-M : iMX7D : Linux

Question asked by dh29 on May 30, 2018
Latest reply on Jul 26, 2018 by dh29

I have just starting to try and bring up a ADV7280-M video grabber interfaced via a MIPI-CSI interface using a iMX7D (NXP/Freescale). I am using kernel v4.9.x (Freescale/NXP).

 

Upon delving in I am confused at what looks like two possible driver options:

  • /drivers/media/platform/mxc/subdev/adv7180.c
  • /drivers/media/i2c/adv7180.c

 

Along with this I have read some posts which mention needing parts of the OV5640 (MIPI camera) driver?

 

Hence I am struggling even to put together a sensible device-tree. This is what I have so far:

 

adv7280m@21 {
   status = "okay";
   compatible = "adi,adv7280-m";
   reg = <0x20>;
   pwn-gpios = <&tca6424_sb_23 13 GPIO_ACTIVE_HIGH>;
   csi_id =<0>; /* ?? */
   cvbs = <8>; /* Analogue channel: input 8 */
   clocks = <&clks IMX7D_CSI_MCLK_ROOT_CLK>;
   clock-names = "csi_mclk";
   mipi_camera = <1>; /* ?? */
   ipu_id = <0>; /* ?? */

 

   adv7280m_out: endpoint {
      clock-lanes = <0>;
      data-lanes = <1>;
      remote-endpoint = <&mipi_sensor_ep>;
      };
};

 

&mipi_csi {
   clock_frequency = <24000000>;
   status = "okay";

   port {
      mipi_sensor_ep: endpoint1 {
      remote-endpoint = <&adv7280m_out>;
      clock-lanes = <0>;
      data-lanes = <1>;
      csis-hs-settle = <13>;
      csis-clk-settle = <2>;
      };

 

         csi_mipi_ep: endpoint2 {
            remote-endpoint = <&csi_ep>;
         };
   };

 

&csi1 {
   csi-mux-mipi = <&gpr 0x14 4>;   /* ?? */
   status = "okay";

   port {
      csi_ep: endpoint {
      remote-endpoint = <&csi_mipi_ep>;
   };
};

 

I understand that only one driver should be enabled (VIDEO_ADV7180 or MXC_TVIN_ADV7180) but I am struggling to understand which approach to take and why, along with the specifics of the device-tree? Any guidance would be appreciated.

Outcomes