CN112069113A - I2c设备配置方法和系统 - Google Patents
I2c设备配置方法和系统 Download PDFInfo
- Publication number
- CN112069113A CN112069113A CN202010923796.3A CN202010923796A CN112069113A CN 112069113 A CN112069113 A CN 112069113A CN 202010923796 A CN202010923796 A CN 202010923796A CN 112069113 A CN112069113 A CN 112069113A
- Authority
- CN
- China
- Prior art keywords
- target
- configuration information
- adapter
- configuring
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种I2C设备配置方法和系统,包括:当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识;从ACPI表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标I2C设备在所述ACPI表中预先配置;基于所述目标配置信息为所述目标I2C设备配置I2C适配器,完成所述目标I2C设备的初始化。本发明实施例可以基于ACIP表实现目标I2C设备的初始化。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种I2C设备配置方法、一种I2C设备配置系统、电子设备和存储介质。
背景技术
I2C(Inter-Integrated Circuit,集成电路)总线是双向二线制同步串行总线,是一种2线串行接口总线,其中包括2路信号线,分别为串行数据线(Serial Data Line,SDA)和串行时钟线(Serial Clock Line,SCL)。
其中,I2C设备是通过I2C总线与CPU相连的设备,在操作系统的内核中,I2C设备的多种属性需要进行初始化,然而目前较少针对I2C设备指定其属性,完成I2C设备的初始化方案。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种I2C设备配置方法和相应的一种I2C设备配置系统、电子设备、存储介质。
为了解决上述问题,本发明实施例公开了一种I2C设备配置方法,包括:
当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识;
从ACPI表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标I2C设备在所述ACPI表中预先配置;
基于所述目标配置信息配置所述目标I2C设备的属性,完成所述目标I2C设备的初始化。
可选地,当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识之前,所述方法还包括:
在ACPI表的DSDT中,基于I2C设备的设备标识确定对应的配置信息;
在所述配置信息中设置所述I2C设备的属性信息。
可选地,在所述配置信息中设置所述I2C设备的属性信息,包括:
在所述配置信息中确定DSD对象;
在所述DSD对象中设置所述I2C设备的属性信息。
可选地,在所述配置信息中设置所述I2C设备的属性信息,包括:
在所述配置信息中设置所述I2C设备的适配器标识。
可选地,在所述配置信息中设置所述I2C设备的适配器标识,包括:
在所述配置信息中确定UID对象;
在所述UID对象中设置所述I2C设备的适配器标识。
可选地,在所述配置信息中设置所述I2C设备的适配器标识,包括:
在所述配置信息中确定DSD对象;
在所述DSD对象中设置UID对象,以在所述UID对象中设置所述I2C设备的适配器标识。
可选地,所述从ACPI表中调取与所述目标设备标识对应的目标配置信息,包括:
从ACPI表的DSDT中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息。
可选地,所述基于所述目标配置信息配置所述目标I2C设备的属性,包括:
从所述目标配置信息的所述DSD对象中,获取目标属性信息;
将所述目标I2C设备的属性,配置为所述目标属性信息。
可选地,所述基于所述目标配置信息配置所述目标I2C设备的属性,包括:
从所述目标配置信息的所述UID对象中,获取目标适配器标识;
调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
可选地,所述基于所述目标配置信息配置所述目标I2C设备的属性,包括:
从所述目标配置信息的所述DSD对象中的所述UID对象中获取目标适配器标识;
调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
可选地,在基于所述目标配置信息配置所述目标I2C设备的属性之后,所述方法还包括:
当初始化所述目标I2C设备失败时,调取设备树;
基于所述设备树配置所述目标I2C设备的属性。
可选地,所述基于所述设备树配置所述目标I2C设备的属性,包括:
基于所述设备树为所述目标I2C设备配置I2C适配器。
本发明实施例还公开了一种I2C设备配置系统,包括:
设备标识获取模块,用于当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识;
配置信息调取模块,用于从ACPI表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标I2C设备在所述ACPI表中预先配置;
配置模块,用于基于所述目标配置信息配置所述目标I2C设备的属性,完成所述目标I2C设备的初始化。
可选地,所述系统还包括:配置信息确定模块,用于在ACPI表的DSDT中,基于I2C设备的设备标识确定对应的配置信息;属性信息设置模块,用于在所述配置信息中设置所述I2C设备的属性信息。
可选地,所述属性信息设置模块,用于在所述配置信息中确定DSD对象;在所述DSD对象中设置所述I2C设备的属性信息。
可选地,所述属性信息设置模块,用于在所述配置信息中设置所述I2C设备的适配器标识。
可选地,所述属性信息设置模块,用于在所述配置信息中确定UID对象;在所述UID对象中设置所述I2C设备的适配器标识。
可选地,所述属性信息设置模块,用于在所述配置信息中确定DSD对象;在所述DSD对象中设置UID对象,以在所述UID对象中设置所述I2C设备的适配器标识。
可选地,所述配置信息调取模块,用于从ACPI表的DSDT中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息。
可选地,所述配置模块,用于从所述目标配置信息的所述DSD对象中,获取目标属性信息;将所述目标I2C设备的属性,配置为所述目标属性信息。
可选地,所述配置模块,用于从所述目标配置信息的所述UID对象中,获取目标适配器标识;调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
可选地,所述配置模块,用于从所述目标配置信息的所述DSD对象中的所述UID对象中获取目标适配器标识;调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
可选地,所述系统还包括:切换模块,用于当初始化所述目标I2C设备失败时,调取设备树;基于所述设备树配置所述目标I2C设备的属性。
可选地,所述切换模块,用于基于所述设备树为所述目标I2C设备配置I2C适配器。
本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的I2C设备配置方法的步骤。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的I2C设备配置方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,当初始化目标I2C设备时,获取目标I2C设备对应的目标设备标识,以从ACPI表中调取与目标设备标识对应的目标配置信息,从而可以基于目标配置信息配置目标I2C设备的属性,完成对目标I2C设备的初始化。本发明实施例可以基于ACIP表为目标I2C设备设置匹配的属性,实现I2C设备的初始化,使得I2C设备可以基于指定的属性信息进行正常工作,且由于只需要在操作系统中已有的ACIP表上预先配置I2C设备的配置信息然后初始化时调取即可,故而不会造成系统额外的负担,保证了系统流畅性。
附图说明
图1是本发明的一种I2C设备配置方法实施例的步骤流程图;
图2是本发明的一种I2C设备配置系统实施例的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的I2C设备配置方法和系统,在I2C设备初始化流程中,可以通过ACPI表的DSDT中对应的UID对象,来指定I2C设备的适配器,从而实现I2C设备的初始化,I2C设备可以开始正常运行。
参照图1,示出了本发明的一种I2C设备配置方法实施例的步骤流程图,应用于具有高级配置和电源管理接口ACPI表的平台上,具体可以包括如下步骤:
步骤101,当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识。
在具体实现中,在启动设备时需要对设备进行初始化(注册),比如对I2C设备进行初始化,以使I2C设备能够开始正常运行。设备标识是指的能够用于唯一识别设备的编码或者名称,例如I2C设备的设备标识可以为I2C7。
在本发明实施例中,进行初始化操作的I2C设备为目标I2C设备,在确定目标I2C设备时,将获取目标I2C设备对应的目标设备标识。
步骤102,从ACPI表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标I2C设备在所述ACPI表中预先配置。
其中,ACPI(Advanced Configuration and Power Management Interface,高级配置和电源管理接口)是Intel(i386,x86_64,IA64)等平台的标准固件规范,大部分操作系统需要从BIOS(Basic Input Output System,基本输入输出系统)得到的信息都可以从ACPI得到。具体地,ACPI的信息可以包括:配置信息、ACPI相关设备、底层硬件、电源管理、设备热插拔,ACPI由多个ACPI表组成,这些ACPI表存放在内存中,在需要时可以从内存中获取到所有的ACPI表。
在本发明实施例中,在ACPI表中预先配置所有的I2C设备所分别对应的配置信息。具体地,配置信息可以包括适配器标识、寄存器基地址、寄存器结束地址、控制器包含的管脚数量等属性信息,且配置信息与I2C设备的设备标识绑定,因此在确定需要进行初始化的目标I2C设备时,可以根据目标I2C设备的目标设备标识,从ACIP表中获取与该目标设备标识对应的目标配置信息。
步骤103,基于所述目标配置信息配置所述目标I2C设备的属性,完成所述目标I2C设备的初始化。
其中,在获取到目标I2C设备对应的目标配置信息后,就可以基于目标配置信息,对目标I2C设备的属性进行配置,从而完成对于目标I2C设备的初始化。
在本发明实施例中,当初始化目标I2C设备时,获取目标I2C设备对应的目标设备标识,以从ACPI表中调取与目标设备标识对应的目标配置信息,从而可以基于目标配置信息为目标I2C设备配置I2C适配器,完成对目标I2C设备的初始化。本发明实施例可以基于ACIP表为目标I2C设备分配匹配的I2C适配器,实现I2C设备的初始化,使得I2C设备可以基于指定的I2C适配器进行正常工作,且由于只需要在已有的ACIP表上更新I2C设备的配置信息,故而不会造成系统额外的负担,保证了系统流畅性。
在一示例性实施例中,所述步骤101,当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识之前,所述方法还可以包括:在ACPI表的DSDT中,基于I2C设备的设备标识确定对应的配置信息;在所述配置信息中设置所述I2C设备的属性信息。
其中,在ACPI表中有很多的表,其中DSDT(Differentiated System DescriptionTable,系统差异描述表)是其中一个最主要的ACPI表,DSDT可以提供关于基本系统的执行和配置信息。因此,本发明实施例在ACPI表的DSDT中,可以在各个I2C设备的设备标识所对应的配置信息中,预先设置由用户指定的属性信息。
在上述示例中,在DSDT预先针对各个I2C设备配置了对应的配置信息,使得后续在初始化I2C设备时,可以基于ACPI表中DSDT中的配置信息完成。
在一示例性实施例中,在所述配置信息中设置所述I2C设备的属性信息,包括:在所述配置信息中确定DSD对象;在所述DSD对象中设置所述I2C设备的属性信息。
其中,在DSDT具有DSD对象(_DSD),基于DSD对象可以实现数据的传递,例如硬件相关属性配置数据。在本发明实施例中,在DSDT中各个I2C设备对应的配置信息的DSD对象中,设置由用户指定的该通用可编程输入输出端口GPIO控制器对应的属性信息。
在上述示例中,在DSDT的DSD对象预先针对各个I2C设备配置了对应的属性信息,使得后续在初始化I2C设备时,可以基于ACPI表中DSDT中,DSD对象中的配置信息完成初始化。
在一示例性实施例中,在所述配置信息中设置所述I2C设备的属性信息,包括:在所述配置信息中设置所述I2C设备的适配器标识。
其中,针对I2C设备需要设置I2C控制器。具体地,I2C控制器(I2C总线控制器)是控制I2C总线的协议、仲裁、时序的控制器,内核中将I2C控制器抽象成软件上的适配器(adapter),通过I2C适配器可以传输数据。在I2C设备传输数据时,需要对I2C设备进行初始化,为I2C设备分配对应的I2C适配器,使得I2C设备可以通过I2C适配器进行数据传输,目前I2C控制器的I2C适配器为随机分配,因此很有可能由于适配器不匹配而导致I2C控制器无法正常运行。
因此针对I2C设备初始化需要为其分配I2C适配器(adapter)。I2C适配器可以实现I2C数据转换、传输和缓存等工作,I2C适配器具有对应的适配器标识,适配器标识为能够唯一识别适配器的编码或者名称。其中,适配器标识对应structi2c_adapter数据结构中的“nr”成员。
在一示例性实施例中,在所述配置信息中设置所述I2C设备的适配器标识,可以包括:在所述配置信息中确定UID对象;在所述UID对象中设置所述I2C设备的适配器标识。
其中,在DSDT具有UID对象(_UID),基于UID对象可以实现设备标识的传递。其中,UID对象用于在系统中区分不同设备,具体为通过UID对象为不同设备添加不同的设备标识来实现,而在本发明实施例中,UID对象除了可以用于区分不同的设备之外,还可以用于指定I2C设备的适配器标识,通过对现有UID对象的复用,可以减少配置信息设置时的步骤。
在本发明实施例中,在DSDT中各个I2C设备的配置信息的UID对象中,设置该I2C设备对应的适配器标识。
在上述示例中,在DSDT的DSD对象预先针对各个I2C设备配置了对应的适配器标识,使得后续在初始化I2C设备时,即为I2C设备配置适配器时,可以基于ACPI表中DSDT中,UID对象中的配置信息完成。
在一个具体示例中,固件需要在DSDT中I2C设备对应的配置信息的_UID中,指定适配器标识,从而作为内核配置I2C设备的适配器。具体地,一种DSDT中I2C设备的配置信息如下所示:
在上述示例中,针对一个I2C设备(I2C7),在配置信息的_UID中设置了对应的适配器标识0xXX。
在一示例性实施例中,在所述配置信息中设置所述I2C设备的适配器标识,包括:在所述配置信息中确定DSD对象;在所述DSD对象中设置UID对象,以在所述UID对象中设置所述I2C设备的适配器标识。
可选地,本发明实施例可以在DSD对象中,添加UID对象,并在UID对象中设置I2C设备的适配器标识。
在上述示例中,基于DSD对象中的UID对象中设置适配器标识,使得I2C设备的适配器以及其他硬件属性可以统一配置。
在一示例性实施例中,所述步骤102,从ACPI表中调取与所述目标设备标识对应的目标配置信息,包括:从ACPI表的DSDT中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息。
在本发明实施例中,在获取目标I2C设备的目标设备标识后,可以从ACPI表的DSDT中调取相应的配置信息,作为该目标I2C设备的目标配置信息。在上述示例中,在需要初始化目标I2C设备,即为I2C设备分配适配器时,只需要基于目标设备标识,即可从DSDT中调取到相应的目标配置信息,数据调取方式简单,易于实现。
在一示例性实施例中,所述步骤103,基于所述目标配置信息配置所述目标I2C设备的属性,包括:从所述目标配置信息的所述DSD对象中,获取目标属性信息;将所述目标I2C设备的属性,配置为所述目标属性信息。
其中,在调取目标I2C设备的目标配置信息后,可以从目标配置信息中的DSD对象中,进一步获取到目标属性信息,然后对于目标I2C设备的属性进行配置。
在一示例性实施例中,所述步骤103,基于所述目标配置信息为所述目标I2C设备配置I2C适配器,可以包括:从所述目标配置信息的所述UID对象中,获取目标适配器标识;调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
其中,在调取目标I2C设备的目标配置信息后,可以从目标配置信息中的UID对象中,进一步获取到对应的目标适配器标识,然后调取目标适配器标识确定对应的I2C适配器,以配置给目标I2C设备。
具体地,内核中解析目标I2C设备对应的UID对象,使用UID对象中的适配器标识,从而调取适配器标识对应的I2C适配器给I2C设备。例如:
acpi_evaluate_integer(ACPI_HANDLE(dev),"_UID",NULL,&id);
adapter->nr=id。
在上述示例中,如果从目标配置信息中获取的适配器标识为:0xXX,则将0xXX赋值给I2C设备,这样,I2C设备在调取适配器时,可以根据适配器标识调取对应的I2C适配器。
在一示例性实施例中,所述步骤103,所述基于所述目标配置信息配置所述目标I2C设备的属性,包括:从所述目标配置信息的所述DSD对象中的所述UID对象中获取目标适配器标识;调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
可选地,还可以从DSD对象中的UID对象中获取目标适配器标识,然后调取目标适配器标识对应的I2C适配器,以配置给目标I2C设备,在DSD对象中实现对I2C设备的硬件属性的统一配置。
在一示例性实施例中,在所述步骤103,基于所述目标配置信息为所述目标I2C设备配置I2C适配器之后,所述方法还可以包括:当初始化所述目标I2C设备失败时,调取设备树;基于所述设备树配置所述目标I2C设备的属性。
在具体实现中,基于ACPI表完成了对目标I2C设备的初始化后,就可以在系统中正常运行目标I2C设备。但是在实际中,可能由于软件或者硬件方面的原因,导致基于ACPI表无法完成对目标I2C设备的初始化,初始化失败,则可以切换初始化方式,切换为基于设备树(DeviceTree)对目标I2C设备的初始化。
其中,设备树是一种描述硬件的数据结构,许多硬件信息可以直接透过设备树传递给系统中,因此本发明实施例在设备树的节点中,预先配置了针对各个I2C设备的属性信息,例如适配器标识。
在一示例性实施例中,所述基于所述设备树配置所述目标I2C设备的属性,包括:基于所述设备树为所述目标I2C设备配置I2C适配器。
具体地,在初始化目标I2C设备失败可以调取设备树,然后基于调取设备树中对目标I2C设备预先设置的适配器标识,将目标I2C设备中的适配器标识,配置为设备树中对应的目标适配器标识。
举例来说,一种设备树中I2C设备的配置信息如下所示:
aliases{
i2c0=xx1
i2c1=xx2
}
在上述示例中,在设备树中针对I2C设备i2c0和i2c1,分别设置了对应的适配器标识:xx1和xx2。在基于设备树初始化目标I2C设备时,可以从设备树中获取对应的适配器标识,使得目标I2C设备可以基于适配器标识调取对应的适配器,从而完成目标I2C设备的初始化。
可选地,若基于设备树的目标I2C设备的初始化失败时,还可以基于内核固定配置的I2C设备的适配器标识,来实现目标I2C设备的初始化,进一步提高了系统的健壮性。
在一个具体示例中,内核中I2C设备的配置信息如下所示:
id=idr_alloc(&i2c_adapter_idr,adapter,
__i2c_first_dynamic_bus_num,0,GFP_KERNEL);
adapter->nr=id;
在上述示例中,通过调用idr_alloc()函数为I2C设备分配适配器标识,使得可以基于内核中的配置信息来实现对于I2C设备的初始化。
应用本发明实施例,在基于ACPI表初始化目标I2C设备失败时,可以切换为基于设备树或者内核中为目标I2C设备配置的适配器标识进行初始化,无需重启设备,提升了系统的健壮性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图2,示出了本发明的一种I2C设备配置系统实施例的结构框图,具体可以包括如下模块:
设备标识获取模块201,用于当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识;
配置信息调取模块202,用于从ACPI表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标I2C设备在所述ACPI表中预先配置;
配置模块203,用于基于所述目标配置信息配置所述目标I2C设备的属性,完成所述目标I2C设备的初始化。
在本发明的一个优选实施例中,所述系统还包括:
配置信息确定模块,用于在ACPI表的DSDT中,基于I2C设备的设备标识确定对应的配置信息;
属性信息设置模块,用于在所述配置信息中设置所述I2C设备的属性信息。
在本发明的一个优选实施例中,所述属性信息设置模块,用于在所述配置信息中确定DSD对象;在所述DSD对象中设置所述I2C设备的属性信息。
在本发明的一个优选实施例中,所述属性信息设置模块,用于在所述配置信息中设置所述I2C设备的适配器标识。
在本发明的一个优选实施例中,所述属性信息设置模块,用于在所述配置信息中确定UID对象;在所述UID对象中设置所述I2C设备的适配器标识。
在本发明的一个优选实施例中,所述属性信息设置模块,用于在所述配置信息中确定DSD对象;在所述DSD对象中设置UID对象,以在所述UID对象中设置所述I2C设备的适配器标识。
在本发明的一个优选实施例中,所述配置信息调取模块202,用于从ACPI表的DSDT中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息。
在本发明的一个优选实施例中,所述配置模块203,用于从所述目标配置信息的所述DSD对象中,获取目标属性信息;将所述目标I2C设备的属性,配置为所述目标属性信息。
在本发明的一个优选实施例中,所述配置模块203,用于从所述目标配置信息的所述UID对象中,获取目标适配器标识;调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
在本发明的一个优选实施例中,所述配置模块203,用于从所述目标配置信息的所述DSD对象中的所述UID对象中获取目标适配器标识;调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
可选地,所述系统还包括:切换模块,用于当初始化所述目标I2C设备失败时,调取设备树;基于所述设备树配置所述目标I2C设备的属性。
可选地,所述切换模块,用于基于所述设备树为所述目标I2C设备配置I2C适配器。
综上可知,在本发明实施例中,当初始化目标I2C设备时,获取目标I2C设备对应的目标设备标识,以从ACPI表中调取与目标设备标识对应的目标配置信息,从而可以基于目标配置信息配置目标I2C设备的属性,完成对目标I2C设备的初始化。本发明实施例可以基于ACIP表为目标I2C设备设置匹配的属性,实现I2C设备的初始化,使得I2C设备可以基于指定的属性信息进行正常工作,且由于只需要在操作系统中已有的ACIP表上预先配置I2C设备的配置信息然后初始化时调取即可,故而不会造成系统额外的负担,保证了系统流畅性。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上I2C设备配置方法实施例所述的步骤。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上I2C设备配置方法实施例所述的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种I2C设备配置方法、一种I2C设备配置系统、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种双向二线制同步串行总线I2C设备配置方法,其特征在于,应用于具有高级配置和电源管理接口ACPI表的平台上,该方法,包括:
在ACPI表的系统差异描述表DSDT中,基于I2C设备的设备标识确定对应的配置信息;
在所述配置信息中设置所述I2C设备的属性信息;
当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识;
从ACPI表的DSDT中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息;
基于所述目标配置信息配置所述目标I2C设备的属性,完成所述目标I2C设备的初始化。
2.根据权利要求1所述的方法,其特征在于,在所述配置信息中设置所述I2C设备的属性信息,包括:
在所述配置信息中确定系统差异描述DSD对象;
在所述DSD对象中设置所述I2C设备的属性信息。
所述基于所述目标配置信息配置所述目标I2C设备的属性,包括:
从所述目标配置信息的所述DSD对象中,获取目标属性信息;
将所述目标I2C设备的属性,配置为所述目标属性信息。
3.根据权利要求1所述的方法,其特征在于,在所述配置信息中设置所述I2C设备的属性信息,包括:
在所述配置信息中设置所述I2C设备的适配器标识。
4.根据权利要求3所述的方法,其特征在于,在所述配置信息中设置所述I2C设备的适配器标识,包括:
在所述配置信息中确定标识描述UID对象;
在所述UID对象中设置所述I2C设备的适配器标识;
所述基于所述目标配置信息配置所述目标I2C设备的属性,包括:
从所述目标配置信息的所述UID对象中,获取目标适配器标识;
调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
5.根据权利要求3所述的方法,其特征在于,在所述配置信息中设置所述I2C设备的适配器标识,包括:
在所述配置信息中确定DSD对象;
在所述DSD对象中设置UID对象,以在所述UID对象中设置所述I2C设备的适配器标识;
所述基于所述目标配置信息配置所述目标I2C设备的属性,包括:
从所述目标配置信息的所述DSD对象中的所述UID对象中获取目标适配器标识;
调取与所述目标适配器标识对应的I2C适配器,并配置给所述目标I2C设备。
6.根据权利要求1-5任一项所述的方法,其特征在于,在基于所述目标配置信息配置所述目标I2C设备的属性之后,所述方法还包括:
当初始化所述目标I2C设备失败时,调取设备树;
基于所述设备树配置所述目标I2C设备的属性。
7.一种I2C设备配置系统,其特征在于,应用于具有高级配置和电源管理接口ACPI表的平台上,包括:
配置信息确定模块,用于在ACPI表的DSDT中,基于I2C设备的设备标识确定对应的配置信息;
属性信息设置模块,用于在所述配置信息中设置所述I2C设备的属性信息;
设备标识获取模块,用于当初始化目标I2C设备时,获取所述目标I2C设备对应的目标设备标识;
配置信息调取模块,用于从ACPI表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标I2C设备在所述ACPI表中预先配置;
配置模块,用于基于所述目标配置信息配置所述目标I2C设备的属性,完成所述目标I2C设备的初始化。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:切换模块,用于当初始化所述目标I2C设备失败时,调取设备树;基于所述设备树配置所述目标I2C设备的属性。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的I2C设备配置方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的I2C设备配置方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010923796.3A CN112069113B (zh) | 2020-09-04 | 2020-09-04 | I2c设备配置方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010923796.3A CN112069113B (zh) | 2020-09-04 | 2020-09-04 | I2c设备配置方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069113A true CN112069113A (zh) | 2020-12-11 |
CN112069113B CN112069113B (zh) | 2023-01-06 |
Family
ID=73665554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010923796.3A Active CN112069113B (zh) | 2020-09-04 | 2020-09-04 | I2c设备配置方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069113B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463662A (zh) * | 2020-12-16 | 2021-03-09 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405320B1 (en) * | 1998-07-07 | 2002-06-11 | Compaq Computer Corporation | Computer system performing machine specific tasks before going to a low power state |
US20040073818A1 (en) * | 1999-07-26 | 2004-04-15 | Cheok Paul Poh Loh | Computer system performing machine specific tasks before going to a low power state |
CN101616022A (zh) * | 2008-06-26 | 2009-12-30 | 艾默生网络能源系统北美公司 | 一种基于snmp协议的智能设备管理方法及系统 |
US8566573B1 (en) * | 2010-11-08 | 2013-10-22 | Qlogic, Corporation | Selectable initialization for adapters |
US20130326542A1 (en) * | 2012-05-30 | 2013-12-05 | Red Hat Israel, Ltd. | Runtime modification of property names in advanced configuration and power interface (acpi) tables |
CN105677345A (zh) * | 2016-01-04 | 2016-06-15 | 段利平 | 一种交换机控制方法及装置 |
CN106708596A (zh) * | 2015-11-13 | 2017-05-24 | 华为技术有限公司 | 一种输入输出虚拟化资源的调整方法及处理器 |
US20190026118A1 (en) * | 2017-07-19 | 2019-01-24 | Vmware, Inc. | Providing fallback drivers for io devices in a computing system |
CN109656844A (zh) * | 2018-12-03 | 2019-04-19 | 郑州云海信息技术有限公司 | 一种AT24xx EEPROM驱动方法和装置 |
-
2020
- 2020-09-04 CN CN202010923796.3A patent/CN112069113B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405320B1 (en) * | 1998-07-07 | 2002-06-11 | Compaq Computer Corporation | Computer system performing machine specific tasks before going to a low power state |
US20040073818A1 (en) * | 1999-07-26 | 2004-04-15 | Cheok Paul Poh Loh | Computer system performing machine specific tasks before going to a low power state |
CN101616022A (zh) * | 2008-06-26 | 2009-12-30 | 艾默生网络能源系统北美公司 | 一种基于snmp协议的智能设备管理方法及系统 |
US8566573B1 (en) * | 2010-11-08 | 2013-10-22 | Qlogic, Corporation | Selectable initialization for adapters |
US20130326542A1 (en) * | 2012-05-30 | 2013-12-05 | Red Hat Israel, Ltd. | Runtime modification of property names in advanced configuration and power interface (acpi) tables |
CN106708596A (zh) * | 2015-11-13 | 2017-05-24 | 华为技术有限公司 | 一种输入输出虚拟化资源的调整方法及处理器 |
CN105677345A (zh) * | 2016-01-04 | 2016-06-15 | 段利平 | 一种交换机控制方法及装置 |
US20190026118A1 (en) * | 2017-07-19 | 2019-01-24 | Vmware, Inc. | Providing fallback drivers for io devices in a computing system |
CN109656844A (zh) * | 2018-12-03 | 2019-04-19 | 郑州云海信息技术有限公司 | 一种AT24xx EEPROM驱动方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463662A (zh) * | 2020-12-16 | 2021-03-09 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
CN112463662B (zh) * | 2020-12-16 | 2024-04-05 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
Also Published As
Publication number | Publication date |
---|---|
CN112069113B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159085B (zh) | 一种pcie带宽的自动配置方法、服务器主板及服务器 | |
US10585832B2 (en) | Apparatus and methods for dynamic role switching among USB hosts and devices | |
US10404538B1 (en) | Remote platform configuration | |
WO2017054573A1 (zh) | 一种配置方法及装置 | |
EP3497889B1 (en) | Device virtualization for containers | |
US10303487B2 (en) | System and method for booting an information handling system | |
US20130346650A1 (en) | Controller, electronic equipment unit, and usb device control method | |
CN111338662A (zh) | 从站的固件升级方法、固件升级装置及终端 | |
US20160117279A1 (en) | Dynamic Connection of PCIe Devices and Functions to an Array of Hosts | |
WO2022134855A1 (zh) | PCIe外插卡的带宽分配方法、装置、设备及存储介质 | |
JP2017508205A (ja) | プラットフォーム固有の機能の選択的有効化 | |
CN110119623A (zh) | 一种利用tpcm实现固件主动度量的可信主板实现方法 | |
WO2023147748A1 (zh) | 一种服务器初始化智能网卡的方法、装置、设备及介质 | |
US11113070B1 (en) | Automated identification and disablement of system devices in a computing system | |
CN112069113B (zh) | I2c设备配置方法和系统 | |
TW201441832A (zh) | 基板管理控制器唯讀記憶體控制系統及方法 | |
US10467173B2 (en) | Hot plugging of virtual bridges in a virtual PCI system | |
CN108108314B (zh) | 交换器系统 | |
CN112069102B (zh) | Gpio控制器配置方法和系统 | |
CN104899164B (zh) | 集成电路总线的地址寻址方法、集成电路总线设备和系统 | |
US6792610B2 (en) | Attaching a device driver to multiple logical devices of one physical device | |
CN112069112B (zh) | Uart控制器配置方法和系统 | |
WO2020000957A1 (zh) | 一种单主板多版本程序适配方法、系统、装置及存储介质 | |
US7127601B2 (en) | System and method for delivering FPGA programming | |
WO2017079951A1 (zh) | 计算机设备及计算机设备的io设备注册方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |