Here is v4 of the driver for XLP9xx I2C controller. We have udpated the driver to address review comments Uwe and Arnd. Please let me know if there are any more comments or suggestions. Thanks, JC. Changes v3->v4: * Second round of changes from Uwe Kleine-König's review: - added variable in xlp9xx_i2c_mask_irq & xlp9xx_i2c_unmask_irq - use DIV_ROUND_UP when calculating prescale - removed unnecessary braces - renamed xlp9xx_i2c_set_rx_fifo_thres to xlp9xx_i2c_update_rx_fifo_thres and moved min macro there * Changes for comments from Arnd Bergmann - made a separate patch for i2c device tree document - Use netlogic,xlp980-i2c as DT compatible string Changes v2->v3: * Implement changes from Uwe Kleine-König's review: - add documentation link - remove unnecessary #includes - remove DATARDY interrupt - clean up alignment and whitespace - set CMD_STOP flag only for the last transfer - correct freq assignment in xlp9xx_i2c_get_frequency - remove printing out adap.nr in case of failure - update writing to control register to make the logic clear - clean up the #define ordering and naming a bit more * use correct type in handling return of wait_for_completion_timeout Changes v1->v2: * Implement changes from Ray Jui's review - Support for 0 length transfers - remove .owner assignment in platform_driver and .data assignment in of_device_id table - add synchronize_irq and disable interrupt in .remove - Move most prints to dev_dbg - add COMPILE_TEST - align wrapped line in function definitions - IRQ_NONE return if interrupt is not ours. - error check frequency setting in DTB - fix check of return of devm_ioremap_resource() and remove unnecessary prints - fix incorrect irq check - include file ordering fixed - few unneeded variables taken out - use u32 consistently for unsigned 32 bit int - add comment for prescale value calculation * Change clock-frequency parameter to take the bus frequency as expected in i2c subsystem * Rearrage register definitions to group them better * Add I2C_FUNC_10BIT_ADDR to xlp9xx_i2c_functionality() * use reinit_completion before each transfer * use i2c_add_adapter instead of doing i2c_add_numbered_adapter Subhendu Sekhar Behera (3): of: Add vendor prefix 'netlogic' i2c: xlp9xx: Driver for Netlogic XLP9XX/5XX I2C controller i2c: xlp9xx: device tree bindings .../devicetree/bindings/i2c/i2c-xlp9xx.txt | 22 + .../devicetree/bindings/vendor-prefixes.txt | 1 + drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-xlp9xx.c | 444 +++++++++++++++++++++ 5 files changed, 478 insertions(+) create mode 100644 Documentation/devicetree/bindings/i2c/i2c-xlp9xx.txt create mode 100644 drivers/i2c/busses/i2c-xlp9xx.c -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html