[PATCH v3 00/23] i2c: designware_ic2: Improvements to timing and general cleanup

Heiko Schocher hs at denx.de
Wed Jan 29 07:00:46 CET 2020


Hello Simon,

Am 23.01.2020 um 19:48 schrieb Simon Glass:
> 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.
> 
> In addition the v2 series adds enums for i2c speed and updates drivers to
> use them.
> 
> 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.
> 
> Changes in v3:
> - Fix the address of comp_param1 by adding a gap
> - Drop note about moving to driver model
> - Use ARRAY_SIZE() for i2c_specs bounds check
> - Add new patch with support for fast-plus speed
> - Add new patch to move dw_i2c_speed_config to header
> - Add new patch to separate out the speed calculation
> - Add new patch to do more in the probe() method
> 
> Changes in v2:
> - Fix 'previde' typo
> - Add a few more clean-up patches for i2c
> 
> Simon Glass (23):
>    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: Add enums for i2c speed and address size
>    i2c: ast_i2c: Update to use standard enums for speed
>    i2c: designware_i2c: Update to use standard enums for speed
>    i2c: kona_i2c: Update to use standard enums for speed
>    i2c: omap: Update to use standard enums for speed
>    i2c: stm32: Update to use standard enums for speed
>    i2c: Update drivers to use enum for speed
>    i2c: designware_i2c: Add support for fast-plus speed
>    i2c: designware_i2c: Move dw_i2c_speed_config to header
>    i2c: designware_i2c: Separate out the speed calculation
>    i2c: designware_i2c: Do more in the probe() method
> 
>   .../i2c/i2c-designware.txt                    |  73 +++++
>   drivers/i2c/ast_i2c.c                         |   2 +-
>   drivers/i2c/ast_i2c.h                         |   2 -
>   drivers/i2c/designware_i2c.c                  | 300 ++++++++++++++----
>   drivers/i2c/designware_i2c.h                  |  73 ++++-
>   drivers/i2c/designware_i2c_pci.c              |   4 +-
>   drivers/i2c/exynos_hs_i2c.c                   |   5 +-
>   drivers/i2c/fsl_i2c.c                         |   3 +-
>   drivers/i2c/i2c-cdns.c                        |   2 +-
>   drivers/i2c/i2c-uclass.c                      |  12 +-
>   drivers/i2c/i2c-uniphier-f.c                  |   2 +-
>   drivers/i2c/i2c-uniphier.c                    |   2 +-
>   drivers/i2c/imx_lpi2c.c                       |   8 +-
>   drivers/i2c/kona_i2c.c                        |  28 +-
>   drivers/i2c/mv_i2c.c                          |   4 +-
>   drivers/i2c/mvtwsi.c                          |   5 +-
>   drivers/i2c/omap24xx_i2c.c                    |   5 +-
>   drivers/i2c/omap24xx_i2c.h                    |   4 -
>   drivers/i2c/rcar_i2c.c                        |   2 +-
>   drivers/i2c/rcar_iic.c                        |   2 +-
>   drivers/i2c/s3c24x0_i2c.c                     |   5 +-
>   drivers/i2c/sandbox_i2c.c                     |   3 +-
>   drivers/i2c/stm32f7_i2c.c                     |  43 +--
>   include/i2c.h                                 |  26 ++
>   24 files changed, 454 insertions(+), 161 deletions(-)
>   create mode 100644 doc/device-tree-bindings/i2c/i2c-designware.txt

Applied the hole series to u-boot-i2c master.

Thanks!

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot mailing list