adv7280-m mipi csi with i.MX8M Mini

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

adv7280-m mipi csi with i.MX8M Mini

2,592 Views
deeksha
Contributor III

Hi ,

I am working on adv7280 -m video decoder with cvbs to mipi-csi interface on i.MX8 M Mini [ 5.4.70 kernel]

Please help me in finding correct driver for this module, There is two driver under bsp 

1. adv7180.c driver under drivers/media/i2c/ 

2. adv7180.c driver under drivers/media/platform/mxc/capture/

3. I found one adv7280.c driver from http://git.toradex.com/cgit/linux-toradex.git/tree/drivers/media/i2c/soc_camera/adv7280.c?h=toradex_...     

Please help me in finding the correct driver for this module.

Thanks in advance,

Deeksha

Labels (1)
0 Kudos
5 Replies

2,171 Views
sibinvougavent
Contributor I

Hi Deeksha,

Were you able to solve this issue? Did you find the linux driver for adv7280?

Regards,

Sibin

0 Kudos

2,148 Views
deeksha
Contributor III

Hi, 

Yes, I had used adv7180 driver in this path  /driver/media/i2c/adv7180.c

Regards,

Deeksha

0 Kudos

2,586 Views
igorpadykov
NXP Employee
NXP Employee

Hi Deeksha

 

seems this is correct driver. In general one can post this on adv7280 vendor (Analog Devices) support portal

https://ez.analog.com/linux-software-drivers/f/q-a/87510/adv7280-linux-driver-issue

 

Best regards
igor

0 Kudos

2,563 Views
deeksha
Contributor III

I used  driver under /driver/media/i2c/adv7180.c

I added dts tree as this,

 

adv7280@21 {
/*compatible = "adi,adv7280-m";*/
compatible = "adv,adv7180";
reg = <0x21>; /* proccessor reads from slave ALSB bit 1 */
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_adv7280>;
/* prgpp powerdown-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>; */
pwn-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; /* prgwy */
/* reset-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; */
reset-gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
/*irq-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; */

PVDD-supply = <&reg_3p3v>;
MVDD-supply= <&reg_3p3v>;
DOVDD-supply= <&reg_3p3v>;
AVDD-supply = <&reg_3p3v>;
DVDD-supply = <&reg_3p3v>;


assigned-clocks = <&clk IMX8MM_CLK_CLKO1>;
assigned-clock-parents = <&clk IMX8MM_CLK_24M>;
assigned-clock-rates = <24000000>;

csi_id = <0>;
cvbs = <8>;
clocks = <&clk IMX8MM_CLK_CLKO1>;
clock-names = "csi_mclk";
mclk = <24000000>;
mclk_source = <0>;


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

 

pinctrl_adv7280: adv7280 {
fsl,pins = <
/*MX8MM_IOMUXC_SPDIF1_IN_PWM2_OUT 0x41*/
/*MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9 0x116 */ /* video pd */
MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x140 /* video pd */
/* MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x116 */ /* video interrupt */
/*MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x156 */ /* reset pin */
MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10 0x41 /* reset pin */
>;
};

 

&mipi_csi_1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
clock_frequency = <24000000>;
port {
mipi1_sensor_ep: endpoint@1 {
remote-endpoint = <&adv7280m_out>;
data-lanes = <1>;
csis-hs-settle = <13>;
csis-clk-settle = <2>;
csis-wclk;
};

csi1_mipi_ep: endpoint@2 {
remote-endpoint = <&csi1_ep>;
};
};
};

&csi1_bridge {
fsl,mipi-mode;
csi-mux-mipi = <&gpr 0x14 4>;
status = "okay";
port {
csi1_ep: endpoint {
remote-endpoint = <&csi1_mipi_ep>;
};
};
};

 

Is this correct to get mipi-csi output?

 

i2c module is detecting with slave address 0x21,0x42,0x44

but /dev/video* node is not creating , will you help in resolving this issue ?

Thanks in advance 

Regards,

Deeksha

0 Kudos

2,558 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos