extcon_set_state_sync 函数原型和使用方法

时间: 2024-03-17 16:41:54 浏览: 18
`extcon_set_state_sync` 函数的原型定义在 `include/linux/extcon.h` 头文件中,具体如下: ``` int extcon_set_state_sync(struct extcon_dev *edev, unsigned int id, bool state); ``` 该函数接收三个参数: - `edev`:指向 `extcon_dev` 结构体的指针,表示外部连接器设备的实例。 - `id`:表示要设置状态的连接器 ID。 - `state`:表示要设置的连接器状态。`true` 表示连接器连接,`false` 表示连接器断开。 函数返回值为 0 表示设置成功,否则表示设置失败。 使用方法示例: ``` #include <linux/extcon.h> // 假设存在一个名为 "extcon_dev" 的外部连接器设备实例 struct extcon_dev *edev = ...; // 假设需要设置连接器 ID 为 0 的连接器状态为连接 int ret = extcon_set_state_sync(edev, 0, true); if (ret) { // 设置失败,进行错误处理 } else { // 设置成功 } ``` 需要注意的是,调用 `extcon_set_state_sync` 函数时,需要在合适的时机获取 `edev` 指针。另外,该函数会阻塞当前线程,因此不应在中断上下文中调用。
相关问题

extcon_set_state_sync

`extcon_set_state_sync` 是一个函数,它用于设置外部连接器(External Connector,简称 Extcon)的状态,并同步通知所有注册在该 Extcon 上的客户端。Extcon 是一个框架,它允许内核通过检测电缆插入和拔出的事件来管理外部连接器的状态。`extcon_set_state_sync` 函数的原型如下: ``` void extcon_set_state_sync(struct extcon_dev *edev, unsigned int id, bool state); ``` 其中,`edev` 是一个指向 Extcon 设备的指针,`id` 是一个标识符,用于指定要设置状态的 Extcon 插孔(jack),`state` 是一个布尔值,用于指定要设置的状态,`true` 表示插孔已连接,`false` 表示插孔已断开。当该函数被调用时,它会设置指定插孔的状态,并通知所有注册在该 Extcon 上的客户端,以便它们可以相应地更新自己的状态。

static inline void start_usb_peripheral(struct usbpd *pd) { enum plug_orientation cc = usbpd_get_plug_orientation(pd); union extcon_property_value val; val.intval = (cc == ORIENTATION_CC2); extcon_set_property(pd->extcon, EXTCON_USB, EXTCON_PROP_USB_TYPEC_POLARITY, val); val.intval = 1; extcon_set_property(pd->extcon, EXTCON_USB, EXTCON_PROP_USB_SS, val); val.intval = pd->typec_mode > POWER_SUPPLY_TYPEC_SOURCE_DEFAULT ? 1 : 0; extcon_set_property(pd->extcon, EXTCON_USB, EXTCON_PROP_USB_TYPEC_MED_HIGH_CURRENT, val); extcon_set_state_sync(pd->extcon, EXTCON_USB, 1); }代码分析

这段代码是一个函数,函数名为start_usb_peripheral,接收一个指向usbpd结构体的指针pd作为参数。函数的作用是启动USB外设。 函数中使用了usbpd_get_plug_orientation函数获取插头的方向,并将结果保存在枚举类型的变量cc中。然后使用了extcon_set_property函数分别设置了EXTCON_USB的三个属性值:EXTCON_PROP_USB_TYPEC_POLARITY、EXTCON_PROP_USB_SS和EXTCON_PROP_USB_TYPEC_MED_HIGH_CURRENT,这些属性值分别表示USB的极性、是否支持超级速率和是否支持中高电流模式。最后使用extcon_set_state_sync函数将EXTCON_USB的状态设置为1,表示连接上了USB外设。 需要注意的是,此代码片段中并没有展示函数的完整定义,因此无法确定函数的返回值类型和其他可能存在的参数。

相关推荐

最新推荐

recommend-type

mysql中find_in_set()函数的使用及in()用法详解

主要介绍了mysql中find_in_set()函数的使用以及in()用法详解,需要的朋友可以参考下
recommend-type

Mysql中FIND_IN_SET()和IN区别简析

主要介绍了Mysql中FIND_IN_SET()和IN区别简析,设计实例代码,具有一定参考价值。需要的朋友可以了解。
recommend-type

DC工具中set_dont_touch和set_size_only的区别.doc

DC工具中set_dont_touch和set_size_only的区别
recommend-type

MySQL高效模糊搜索之内置函数locate instr position find_in_set使用详解

常用的一共有4个方法,如下: 1.使用locate()方法 普通用法: SELECT`column`from`table`wherelocate('keyword',`condition`)&gt;0 ...2.使用instr()函数(据说是locate()的别名函数) SELECT `column` from `table`
recommend-type

C++标准库:std_set作为一个有序集合

std::set作为标准库的一个关联容器,实现内部元素进行了排序,使用这特性可以对一组元素进行插入排序。std::set最初的设计是完成数学中“集合”的概念,它提供的接口也是如此。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。