2 min read
MIPI DisCo for I3C Streamlines Software Integration for I3C Components
Rob Gough, Chair of the MIPI Software Working Group : 24 July 2019
The MIPI Discovery and Configuration (MIPI DisCoSM) Base Specification, which simplifies the software integration of external devices in mobile and mobile-influenced systems, now forms the basis of a new specification for integrating MIPI I3C® components.
The growing range of DisCo specifications define the properties of MIPI devices and components, and conveys those properties to operating systems in an architecturally defined manner. The DisCo Base Specification, along with class specifications for various MIPI interfaces, eliminates much of the work of developing and implementing drivers for external devices. For system developers, this can shorten time to market and cut system development cost.
DisCo for I3C v1.0 is the latest in the series of class specifications that also includes MIPI DisCo for SoundWire® and MIPI DisCo for Narrow Interface for Debug and Test (NIDnTSM). Releases for other MIPI interfaces, including for cameras and imaging, are also planned.
DisCo for I3C will make it easier for system developers to migrate to the MIPI I3C bus specification, which was introduced in 2016 to help system builders adopt and integrate the fast-growing array of powerful sensors for vehicles, IoT devices and consumer electronics. MIPI I3C improves upon the older I2C interface by introducing in-band interrupts, higher speeds and other new capabilities.
How it works
The DisCo Base Specification and related class specifications provide a common framework for conveying the properties of external components, such as number of data ports and the maximum clock frequency of the device. DisCo is based on ACPI (Advanced Configuration and Power Interface) and is compatible with all ACPI-compliant operating systems, including Linux, Android, Chrome OS, Mac OS X and Microsoft Windows.
Sensor devices that are conformant with DisCo for I3C will provide in their native intellectual property the DisCo properties for the device. When a system vendor integrates a DisCo-conformant sensor, the OS will recognize those properties, identify the device type, and automatically implement a driver. For any device that uses the specification, there will be a common driver that any I3C-compatible OS can find and implement.
These common drivers will work on any platform that supports DisCo for I3C. This broad compatibility eliminates the need to write a different, platform-specific driver each time a given component is added to a system, though in some cases a system software developer may modify the driver slightly.
Benefits for developers
Driver development has long been a burden for vendors of systems with I2C-based sensors. Lacking a common driver, system developers have needed to hard-code information about the properties of each external device in a driver that is specific to the platform.
The result is that there are multiple custom drivers when using the same component in different systems, even if they run the same OS. By adopting devices that use I3C and include DisCo for I3C collateral, system makers can eliminate or significantly cut down on driver development, specifically porting a driver to a new platform – a time-consuming task that does nothing to differentiate systems in the market.
Meanwhile, vendors of sensor devices can make their products more attractive to system developers by adopting DisCo for I3C, offering customers faster and easier integration of the devices. MIPI Alliance encourages sensor developers to include the DisCo collateral and a data sheet with their components in order to make this possible.
The MIPI I3C family expands
DisCo for I3C is the latest specification from MIPI Alliance related to I3C. Last year, the Alliance released the MIPI I3C Host Controller Interface (MIPI I3C HCISM), which provides a common register set and operational model for software controllers of I3C buses. DisCo for I3C addresses the other end of the bus, providing information about the external devices connected to it. Together, these specifications make it easier to implement a complete I3C subsystem.
Currently, DisCo for I3C is compatible with version 1.0 of I3C, I3C Basic and I3C HCI. It will be updated as needed to support future versions of these specifications, including the upcoming I3C HCI v1.1.
Like other specifications from the MIPI Software Working Group, DisCo for I3C is available publicly for download to MIPI members and non-members alike. MIPI Alliance encourages companies that are interested in shaping the future of software for mobile device interfaces to join and participate in the Software Working Group.