当前位置: 首页 > news >正文

酒店网站做的比较好的互助县公司网站建设

酒店网站做的比较好的,互助县公司网站建设,阿里巴巴logo图片,第1模板网目录 1. 保存ft260_device到私有数据 2. 初始化I2C设备分配属性 3. 添加I2C适配器 4. 初始化GPIO 5. ft260_i2c_algo 5.1 ft260_functionality 5.2 ft260_i2c_xfer 5.3 ft260_smbus_xfer 6. ft260_i2c_quirks 这个函数是i2c的接口probe函数。 1. 保存ft260_device到私…

目录

1. 保存ft260_device到私有数据

2. 初始化I2C设备分配属性

3. 添加I2C适配器

4. 初始化GPIO

5. ft260_i2c_algo

5.1 ft260_functionality

5.2 ft260_i2c_xfer

5.3 ft260_smbus_xfer

6. ft260_i2c_quirks


这个函数是i2c的接口probe函数。

1. 保存ft260_device到私有数据

将ft260_device类型的指针保存到hdev设备指针的私有数据。

hid_set_drvdata(hdev, dev);
dev->hdev = hdev;

这一步的意义是在hid的接口函数中能够获取到FT260的设备信息。 

然后把hdev设备指针也保存到FT260的设备结构体中。

2. 初始化I2C设备分配属性

dev->adap.owner = THIS_MODULE;
dev->adap.class = I2C_CLASS_HWMON;
dev->adap.algo = &ft260_i2c_algo;
dev->adap.quirks = &ft260_i2c_quirks;
dev->adap.dev.parent = &hdev->dev;
snprintf(dev->adap.name, sizeof(dev->adap.name),"FT260 usb-i2c bridge");

将设备的所有者设置为当前模块,设备类别设置为硬件监控类,算法设置为ft260_i2c_algo,特性设置为ft260_i2c_quirks,父设备设置为hdev->dev,设备名称设置为"FT260 usb-i2c bridge"。

在初始化I2C设备前,先确认一下FT260的I2C状态是否为忙,如果处于忙的状态则复位一下i2c

ret = ft260_xfer_status(dev, FT260_I2C_STATUS_BUS_BUSY);
if (ret)ft260_i2c_reset(hdev);

3. 添加I2C适配器

i2c_set_adapdata(&dev->adap, dev);
ret = i2c_add_adapter(&dev->adap);
if (ret) {hid_err(hdev, "failed to add i2c adapter\n");return ret;
}

首先,通过i2c_set_adapdata函数将设备结构体dev的I2C适配器指针设置为&dev->adap。 然后,通过i2c_add_adapter函数将该适配器添加到I2C总线上。 如果添加适配器失败,函数会返回错误码,并通过hid_err函数输出错误信息。

4. 初始化GPIO

和uart probe里面probe是一样的。

5. ft260_i2c_algo

这部分是i2c读写的实现部分。

static const struct i2c_algorithm ft260_i2c_algo = {.master_xfer = ft260_i2c_xfer,.smbus_xfer = ft260_smbus_xfer,.functionality = ft260_functionality,
};

5.1 ft260_functionality

用于查询FT260芯片的功能。

static u32 ft260_functionality(struct i2c_adapter *adap)
{return I2C_FUNC_I2C | I2C_FUNC_SMBUS_BYTE |I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |I2C_FUNC_SMBUS_BLOCK_DATA | I2C_FUNC_SMBUS_I2C_BLOCK;
}

该函数用于设置i2c_adapter的功能。返回一个u32类型的值,该值表示支持的I2C功能的位掩码。具体支持的功能有:I2C传输、SMBus字节传输、SMBus字节数据传输、SMBus字数据传输、SMBus块数据传输和SMBus I2C块传输。

5.2 ft260_i2c_xfer

用于实现主模式下的I2C传输。

函数首先获取FT260设备指针,然后通过互斥锁锁定设备。接下来,函数将设备的电源模式设置为FULLON。如果设置失败,则函数释放互斥锁并返回错误码。如果只有一个消息需要传输,函数根据消息的读写标志调用相应的读或写函数进行数据传输。如果有多条消息,则调用写读函数进行组合传输。无论传输成功与否,函数都会将设备的电源模式恢复为NORMAL,并释放互斥锁,最后返回传输的消息数量。

5.3 ft260_smbus_xfer

用于实现SMBus模式下的I2C传输。

该函数接收I2C适配器、地址、标志、读写模式、命令、大小和数据作为参数。在函数内部,它首先获取适配器的数据结构指针,然后锁定设备的互斥锁。接下来,它为设备设置全开电源管理状态。然后根据传输的大小和读写模式,执行相应的I2C读写操作。如果传输大小不受支持,则返回错误。最后,它恢复设备的电源管理状态,解锁互斥锁,并返回执行结果。

6. ft260_i2c_quirks

用于描述I2C适配器的特殊行为。结构体中的flags成员设置了组合写然后读的操作标志,max_comb_1st_msg_len成员指定了在组合消息中第一个消息的最大长度。

http://www.15wanjia.com/news/170435.html

相关文章:

  • 怎么建立和设计公司网站手机兼职赚钱正规平台怎么找
  • 有多人做网站是个人备案怎么注册网址
  • 泉州做网站公司网络广告词
  • 郑州做网站_郑州免费建站我想做代加工
  • 品牌学习网站seo排名哪家公司好
  • 做亚克力在那个网站上好电子商务网站建设 代码
  • 做脚本的网站什么是网络营销与策划
  • 建设网站类策划书做响应式网站有什么插件
  • 包装材料网站建设免费做四年级题的网站
  • 自己可以做网站吗基于phpt漫画网站开发
  • 计算机应用网站建设与维护是做什么网站制作珠海公司
  • 合肥市城乡建设局网站首页购买域名后怎么做网站
  • 开封小吃网站建设网站建设质量管理定义
  • 表白网站在线制作软件帝国cms网站地址
  • 网站重要三要素建站系统和构建系统
  • 建设淘宝客网站多少钱打开wordpress标题显示
  • 茂名网站建设方案开发互站网源码
  • 晟阳建设官方网站m8+wordpress主题
  • 青岛建设监理协会网站建站公司哪家好都选万维科技
  • 北京首华建设经营有限公司网站科讯网站首页公告模板
  • 中国建设信用卡网站跨境电商免费开店的有哪些
  • 重庆网站模板建站百度app优化
  • 哪个网站可以做行程wordpress+爱情模板下载
  • 湖南城市建设技术学院官方网站wordpress怎么改登陆
  • 福建大佳建设工程有限公司网站云南能投基础设施投资开发建设有限公司网站
  • 全网模板建站系统wordpress金币插件
  • 网站服务器买了后怎么做网址导航系统
  • 网站制作1000元住房与城乡建设局网站
  • 婚庆网站html模板微官网是小程序吗
  • 网站建设策北京公司网站开发