[PATCH 00/12] i2c: designware_ic2: Improvements to timing

Simon Glass sjg at chromium.org
Sat Dec 21 17:15:13 CET 2019


This series updates the Designware I2C driver to support reading its
timing from the device tree and handling it in units of nanoseconds
instead of clock cycles.

A new function converts from nanoseconds to the units used by the I2C
controller and makes sure that the requested bus speed is not exceeded.
This is more accurate than the existing method.

The series includes a few smaller clean-ups in the same driver.

There is currently an existing configuration method used just for a few
x86 boards (Baytrail). This method is retained but it should be removed in
favour of using the device tree. I have not done this in this series since
I am not sure of the timings to use.


Simon Glass (12):
  i2c: designware_i2c: Add more registers
  i2c: designware_i2c: Don't allow changing IC_CLK
  i2c: designware_i2c: Include clk.h in the header file
  i2c: designware_i2c: Rename 'max' speed to 'high' speed
  i2c: designware_i2c: Use an enum for selected speed mode
  i2c: designware_i2c: Use an accurate bus clock instead of MHz
  i2c: designware_i2c: Bring in the binding file
  i2c: designware_i2c: Read device-tree properties
  i2c: designware_i2c: Drop scl_sda_cfg parameter
  i2c: designware_i2c: Put hold config in a struct
  i2c: designware_i2c: Rewrite timing calculation
  i2c: designware_i2c: Add spike supression

 .../i2c/i2c-designware.txt                    |  73 +++++
 drivers/i2c/designware_i2c.c                  | 263 ++++++++++++++----
 drivers/i2c/designware_i2c.h                  |  53 +++-
 drivers/i2c/designware_i2c_pci.c              |   4 +-
 4 files changed, 332 insertions(+), 61 deletions(-)
 create mode 100644 doc/device-tree-bindings/i2c/i2c-designware.txt

-- 
2.24.1.735.g03f4e72817-goog



More information about the U-Boot mailing list