Linux-lt8619c.c驱动分析

发布时间:2024年01月24日
lt8619c_probe() //驱动匹配函数
	lt8619c_parse_of() //解析设备树
	lt8619c_init_v4l2_ctrls() //初始化v4l2控件
		v4l2_ctrl_handler_init(&lt8619c->hdl, 2);
		v4l2_ctrl_new_std(&lt8619c->hdl, NULL, V4L2_CID_PIXEL_RATE, 0, lt8619c_PIXEL_RATE, 1, lt8619c_PIXEL_RATE);
		v4l2_ctrl_new_std(&lt8619c->hdl, &lt8619c_ctrl_ops, V4L2_CID_DV_RX_POWER_PRESENT, 0, 1, 0, 0);
	v4l2_i2c_subdev_init(sd, client, &lt8619c_ops); //初始化v4l2子设备
		sd->internal_ops = &lt8619c_subdev_internal_ops;
		sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
	media_entity_pads_init() //初始化媒体实体端口
		lt8619c->pad.flags = MEDIA_PAD_FL_SOURCE;
		sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
	lt8619c_power_on()	//芯片上电
	lt8619c_check_chip_id() //读取芯片id
	v4l2_async_register_subdev_sensor_common()	//注册子设备摄像头传感器
	INIT_DELAYED_WORK(&lt8619c->delayed_work_enable_hotplug, lt8619c_delayed_work_enable_hotplug);	//初始化一个延迟工作
	INIT_DELAYED_WORK(&lt8619c->delayed_work_monitor_resolution, lt8619c_delayed_work_monitor_resolution); 初始化一个延迟工作
	lt8619c_initial_setup(sd);	//芯片初始化
	gpiod_to_irq()	//申请gpio中断
	devm_request_threaded_irq()	//申请中断线程
	plugin_detect_irq()	//中断服务函数
	v4l2_ctrl_handler_setup()	//设置控制处理器的相关属性
文章来源:https://blog.csdn.net/qq_42952079/article/details/135831599
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。