RK3568平台 点亮imx586摄像头_imx586驱动

		};
	};
};

};

&csi2_dphy0_hw {
status = “okay”;
};

&mipi2_csi2 {
status = “okay”;

ports {
	#address-cells = <1>;
	#size-cells = <0>;

	port@0 {
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <0>;

		mipi2_csi2_input: endpoint@1 {
			reg = <1>;
			remote-endpoint = <&csidphy0_out>;
		};
	};

	port@1 {
		reg = <1>;
		#address-cells = <1>;
		#size-cells = <0>;

		mipi2_csi2_output: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&cif_mipi2_in0>;
		};
	};
};

};

&rkcif {
status = “okay”;
};

&rkcif_mipi_lvds2 {
status = “okay”;

port {
	cif_mipi2_in0: endpoint {
		remote-endpoint = <&mipi2_csi2_output>;
	};
};

};

&rkcif_mipi_lvds2_sditf {
status = “okay”;

port {
	mipi_lvds2_sditf: endpoint {
		remote-endpoint = <&isp0_vir0>;
	};
};

};

&rkcif_mmu {
status = “okay”;
};

&rkisp_unite {
status = “okay”;
};

&rkisp_unite_mmu {
status = “okay”;
};

&rkisp0_vir0 {
status = “okay”;
/* dual isp process image case
* other rkisp hw and virtual nodes should disabled
*/
rockchip,hw = <&rkisp_unite>;
port {
#address-cells = <1>;
#size-cells = <0>;

	isp0_vir0: endpoint@0 {
		reg = <0>;
		remote-endpoint = <&mipi_lvds2_sditf>;
	};
};

};


## 三.驱动调试


把驱动代码和设备树文件添加进去后就可以开始调试了。


使用i2ctool工具查看i2c5,发现有2个新的设别:0x10,0x50,猜测其中一个是senser,另一个可能是sensor的马达地址,尝试修改sensor的地址为0x10或者0x50看imx586能不能进probe函数。


![](https://img-blog.csdnimg.cn/470044189736432ba6798df46778eac2.png)


当修改imx586的地址为ox10的时候,看imx586已经进了probe函数了。


![](https://img-blog.csdnimg.cn/80e4f2b7ad804c6dac7214788e68740a.png)


从log可以看出imx586已经进了probe函数,但是并没有识别到sensor。


这时候,需要确认mipi摄像头上的供电是否正常,时钟是否正常。


经确认是sensor的一路供电没有,供电正常后可以设别到sensor。


![](https://img-blog.csdnimg.cn/ee4bd99e224145578420f8638926cff3.png)


到了这一步,可以确认,iic设备已经可以设别到sensor了,并挂载在iic5上面。


## 四.查看拓扑



rk3588_t:/ # media-ctl -d /dev/media0 -p
Opening media device /dev/media0
Enumerating entities
Found 14 entities
Enumerating pads and links
Media controller API version 0.0.177

Media device information

driver rkcif
model rkcif-mipi-lvds2
serial
bus info
hw revision 0x0
driver version 0.0.177

Device topology

  • entity 1: stream_cif_mipi_id0 (1 pad, 11 links)
    type Node subtype V4L
    device node name /dev/video0

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IMX_GPIO_NR是**用于确定GPIO(General-Purpose Input/Output,通用输入输出)端口号的宏定义**。 在嵌入式系统开发中,特别是在使用i.MX系列处理器时,IMX_GPIO_NR用于计算特定的GPIO端口号。这个宏通常在硬件抽象层(HAL)或驱动程序中定义,以便在不同的硬件平台上对GPIO进行统一操作。具体来说,IMX_GPIO_NR的公式是`((bank) - 1) * 32 + (nr))`,其中`bank`表示GPIO所在的银行编号,而`nr`表示在该银行内的GPIO编号。 以下是一些关于IMX_GPIO_NR的关键点: 1. **函数原型**:IMX_GPIO_NR通常在头文件如`hardware.h`中定义,作为计算GPIO端口号的函数原型参数。 2. **计算方法**:通过公式`((bank) - 1) * 32 + (nr))`可以计算出具体的GPIO端口号。例如,IMX_GPIO_NR(6,4)将会计算出164作为端口号。 3. **用途**:这个宏主要用于设置GPIO的方向(输入或输出),以及读取或写入GPIO的值。例如,`gpio_direction_output(IMX_GPIO_NR(3, 0), 1);`这行代码将GPIO3_IO00设置为高电平。 4. **硬件结构**:GPIO是微控制器芯片上的一种通用可编程I/O接口,它至少包含数据寄存器和控制寄存器两个部分。数据寄存器的位直接引到芯片外部,而控制寄存器则对数据寄存器中的每一位进行独立设置。 5. **操作系统兼容性**:在Linux操作系统中,GPIO操作接口允许用户通过统一的API来操作不同的GPIO,这样可以在不同的平台上复用相同的代码。 综上所述,了解IMX_GPIO_NR对于进行嵌入式系统开发,尤其是在使用i.MX处理器系列的项目中,是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值