959632684c
This patch introduces the QMSI I2C driver which is simply a shim driver based on I2C driver provided by QMSI BSP. This initial version supports only I2C_0 controller in 'master' mode. Due to some issues with qm_i2c_master_irq_transfer API, the driver uses the polling APIs from QMSI. This means that the current thread doesn't sleep (i.e. is not scheduled out) while the I2C transfer is carried out. The qm_i2c_master_irq_transfer() issue is under investigation. Below follows the missing features which will be addressed by a new version of this patch or by upcoming patches. * Block the current thread until the I2C operation has actually completed. * Add support for multiple controllers. * Add support for slave mode. * Add support for suspend() and resume() APIs. In order to enable this driver, the following options should be set: CONFIG_QMSI_DRIVERS=y CONFIG_QMSI_INSTALL_PATH="/path/to/libqmsi/directory" CONFIG_I2C=y CONFIG_I2C_QMSI=y Finally, due to the lack of proper support for Quark SE in QMSI 1.0.0, this driver requires QMSI version greater than 1.0.0. This driver has been tested only with Quark SE based boards. Change-Id: I369992c7b5fe37f7e0b45be7f19e667ad1fca9ac Signed-off-by: Andre Guedes <andre.guedes@intel.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
i2c_dw.c | ||
i2c_dw.h | ||
i2c_dw_registers.h | ||
i2c_qmsi.c | ||
i2c_quark_se_ss.c | ||
i2c_quark_se_ss.h | ||
i2c_quark_se_ss_registers.h |