IMX6 Parallel Camera Linux 4.4.3

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6 Parallel Camera Linux 4.4.3

1,672 Views
asmith
Contributor III

Trying to work through getting a parallel camera working with Linux 4.4.3

Most of the posts here are for much older kernels, or very specific camera modules.

Is there a generic CSI parallel camera driver ?

A Device Tree Template for a generic parallel camera ?

Tags (1)
0 Kudos
2 Replies

731 Views
joanxie
NXP TechSupport
NXP TechSupport

what camera do you use? if you use the camera as board's, you can find the driver source code in the bsp, if you need to use specific camera, pls let me know it.

0 Kudos

731 Views
asmith
Contributor III

I do not know much about the camera.

It is connected following: SolidRun's app note

SR-uSOM-MX6-AN1-Connecting-Parallel-Camera.pdf

The actual camera is connected via an FPGA that transforms the Camera IO's to Parallel data

The Pixel clock is 74.25Mhz

Resolution is 1080p30 2200 clocks per line 1120 lines per frame

1920 active pixels, 1080 active lines The data format is  16bit YCbCr 4:2:2 single data rate

I have the pinctrl - pinmuxing in the devicetree correct - I beleive.

But I need a device configuration that will properly select the "camera": and connect it through the IPU

Below is snippets from my device tree related tot he camera.

I am asking if this look about right ? Or if there is a recommendation or app note someone is aware of for this ?

ipu1: ipu@02400000 {

          #address-cells = <1>;

          #size-cells = <0>;

          compatible = "fsl,imx6q-ipu";

          reg = <0x02400000 0x400000>;

          interrupts = <0 6 4>,

          <0 5 4>;

          clocks = <&clks 130>,

          <&clks 131>,

          <&clks 132>;

          clock-names = "bus", "di0", "di1";

          resets = <&src 2>;

           ipu1_csi0: port@0 {

              reg = <0>;

           };

           ipu1_csi1: port@1 {

               reg = <1>;

           };

};

   pinctrl_ipu1_2: ipu1grp-2 { /* parallel camera */

                        fsl,pins = <

                              MX6QDL_PAD_EIM_D23__IPU2_CSI1_DATA_EN   0x0001b0b1  // M22

                              MX6QDL_PAD_EIM_D17__IPU2_CSI1_PIXCLK    0x0001b0b0  // H25

                              MX6QDL_PAD_EIM_DA11__IPU2_CSI1_HSYNC    0x0000b0b1  // M20

                              MX6QDL_PAD_EIM_DA12__IPU2_CSI1_VSYNC    0x0000b0b1  // M24

 

                              MX6QDL_PAD_EIM_DA9__IPU2_CSI1_DATA00    0x0001b0b0  // M21

                              MX6QDL_PAD_EIM_DA8__IPU2_CSI1_DATA01    0x0001b0b0  // L24

                              MX6QDL_PAD_EIM_DA7__IPU2_CSI1_DATA02    0x0001b0b0  // L25

                              MX6QDL_PAD_EIM_DA6__IPU2_CSI1_DATA03    0x0001b0b0  // K25

                              MX6QDL_PAD_EIM_DA5__IPU2_CSI1_DATA04    0x0001b0b0  // L23

                              MX6QDL_PAD_EIM_DA4__IPU2_CSI1_DATA05    0x0001b0b0  // L22

                              MX6QDL_PAD_EIM_DA3__IPU2_CSI1_DATA06    0x0001b0b0  // K24

                              MX6QDL_PAD_EIM_DA2__IPU2_CSI1_DATA07    0x0001b0b0  // L21

                              MX6QDL_PAD_EIM_DA1__IPU2_CSI1_DATA08    0x0001b0b0  // J25

                              MX6QDL_PAD_EIM_DA0__IPU2_CSI1_DATA09    0x0001b0b0  // L20

                              MX6QDL_PAD_EIM_D22__IPU2_CSI1_DATA10    0x0001b0b0  // K23

                              MX6QDL_PAD_EIM_EB0__IPU2_CSI1_DATA11    0x0001b0b0  // K21

                              MX6QDL_PAD_EIM_D28__IPU2_CSI1_DATA12    0x0001b0b0  // G24

                              MX6QDL_PAD_EIM_D27__IPU2_CSI1_DATA13    0x0001b0b0  // J22

                              MX6QDL_PAD_EIM_D26__IPU2_CSI1_DATA14    0x0001b0b0  // G25

                              MX6QDL_PAD_EIM_D20__IPU2_CSI1_DATA15    0x0001b0b0  // H22

                              MX6QDL_PAD_EIM_D19__IPU2_CSI1_DATA16    0x0001b0b0  // H23

                              MX6QDL_PAD_EIM_D18__IPU2_CSI1_DATA17    0x0001b0b0  // F24

                              MX6QDL_PAD_EIM_D16__IPU2_CSI1_DATA18    0x0001b0b0  // J21

                              MX6QDL_PAD_EIM_A24__IPU2_CSI1_DATA19    0x0001b0b0  // F25

                          >;

                      };

mipi_csi: mipi@021dc000 {

                 compatible = "fsl,imx6q-mipi-csi2";

                 reg = <0x021dc000 0x4000>;

                 interrupts = <0 100 0x04>, <0 101 0x04>;

                 clocks = <&clks 138>, <&clks 53>, <&clks 204>;

                 clock-names = "dphy_clk", "pixel_clk", "cfg_clk";

                 status = "okay";

                 ipu_id = <0>;

                 csi_id = <1>;

                 v_channel = <0>;

                 lanes = <2>;

                 pinctrl-names = "default";

                 pinctrl-0 = <&pinctrl_ipu1_2>;

};

v4l2_cap_0 {

      compatible = "fsl,imx6q-v4l2-capture";

        ipu_id = <0>;

        //ipu_id = <1>; 

        csi_id = <1>;

        mclk_source = <0>;

        mipi_camera = <1>;

        default_input = <0>;

        status = "okay";

    };

0 Kudos