linux/drivers/i2c/busses
Mika Westerberg defc0b2fb5 i2c: designware: make HCNT/LCNT values configurable
The DesignWare I2C controller has high count (HCNT) and low count (LCNT)
registers for each of the I2C speed modes (standard and fast). These
registers are programmed based on the input clock speed in the driver.

The current code calculates these values based on the input clock speed and
tries hard to meet the I2C bus timing requirements. This could result
non-optimal values with regarding to the bus speed. For example on Intel
BayTrail we get bus speed of 315.41kHz which is ~20% slower than we would
expect (400kHz) in fast mode (even though the timing requirements are met).

This patch makes it possible for the platform code to pass more optimal
HCNT/LCNT values to the core driver if they are known beforehand. If these
are not set we use the calculated and more conservative values.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Shinya Kuribayashi <skuribay@pobox.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2013-08-28 11:11:10 +02:00
..
i2c-acorn.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
i2c-ali15x3.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-ali1535.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-ali1563.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-amd756-s4882.c i2c: Ignore return value of i2c_del_adapter() 2013-04-02 07:06:03 +02:00
i2c-amd756.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-amd8111.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-at91.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-au1550.c i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls 2013-02-22 00:25:50 +01:00
i2c-bcm2835.c i2c: add bcm2835 driver 2013-02-12 11:33:59 +01:00
i2c-bfin-twi.c i2c: use dev_get_platdata() 2013-08-19 19:46:30 +02:00
i2c-cbus-gpio.c i2c: use dev_get_platdata() 2013-08-19 19:46:30 +02:00
i2c-cpm.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-davinci.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-designware-core.c i2c: designware: make HCNT/LCNT values configurable 2013-08-28 11:11:10 +02:00
i2c-designware-core.h i2c: designware: make HCNT/LCNT values configurable 2013-08-28 11:11:10 +02:00
i2c-designware-pcidrv.c i2c: designware-pci: drop superfluous {get|put}_device 2013-04-19 20:22:10 +02:00
i2c-designware-platdrv.c i2c: move ACPI helpers into the core 2013-08-23 10:22:29 +02:00
i2c-diolan-u2c.c i2c: diolan-u2c: Fix master_xfer return code 2012-08-18 12:27:27 +02:00
i2c-eg20t.c i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls 2013-02-22 00:25:50 +01:00
i2c-elektor.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-gpio.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-highlander.c i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls 2013-02-22 00:25:50 +01:00
i2c-hydra.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-i801.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-ibm_iic.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-ibm_iic.h
i2c-imx.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-iop3xx.c i2c: iop3xxx: fix build failure after waitqueue changes 2013-07-01 07:48:58 +02:00
i2c-iop3xx.h i2c-iop3xx: add iomem annotation 2011-01-04 00:53:37 +00:00
i2c-isch.c i2c: isch: Add module parameter for backbone clock rate if divider is unset 2013-02-11 15:53:49 +01:00
i2c-ismt.c i2c: ismt: add error return code in probe() 2013-08-28 10:28:08 +02:00
i2c-kempld.c i2c: Fix Kontron PLD prescaler calculation 2013-08-05 10:31:18 +02:00
i2c-mpc.c i2c: mpc: cleanup clock API use 2013-08-28 10:48:44 +02:00
i2c-mv64xxx.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-mxs.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-nforce2-s4985.c i2c: Ignore return value of i2c_del_adapter() 2013-04-02 07:06:03 +02:00
i2c-nforce2.c i2c: nforce2: fix coding style issues 2013-01-28 05:26:42 +01:00
i2c-nomadik.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-nuc900.c i2c: use dev_get_platdata() 2013-08-19 19:46:30 +02:00
i2c-ocores.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-octeon.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-omap.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-parport-light.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-parport.c i2c-parport: i2c_parport_irq can be static 2012-10-05 22:23:53 +02:00
i2c-parport.h i2c-parport: Various cleanups 2011-05-24 20:58:49 +02:00
i2c-pasemi.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-pca-isa.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-pca-platform.c i2c: use dev_get_platdata() 2013-08-19 19:46:30 +02:00
i2c-piix4.c i2c: piix4: Add support for secondary SMBus on AMD SB800 and AMD FCH chipsets 2013-08-15 15:17:31 +02:00
i2c-pmcmsp.c i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls 2013-02-22 00:25:50 +01:00
i2c-pnx.c i2c: pnx: fix error return code in i2c_pnx_probe() 2013-08-28 10:31:33 +02:00
i2c-powermac.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-puv3.c i2c: puv3: add CONFIG_PM_SLEEP to suspend function 2013-08-15 12:26:31 +02:00
i2c-pxa-pci.c i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls 2013-02-22 00:25:50 +01:00
i2c-pxa.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-rcar.c i2c: use dev_get_platdata() 2013-08-19 19:46:30 +02:00
i2c-s3c2410.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-s6000.c i2c: use dev_get_platdata() 2013-08-19 19:46:30 +02:00
i2c-s6000.h i2c: Change mail address of Oskar Schirmer 2012-05-17 15:15:56 +02:00
i2c-scmi.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
i2c-sh7760.c i2c: use dev_get_platdata() 2013-08-19 19:46:30 +02:00
i2c-sh_mobile.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-sibyte.c
i2c-simtec.c i2c/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-sirf.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-sis96x.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-sis630.c i2c: sis630: checkpatch cleanup 2013-02-11 15:59:40 +01:00
i2c-sis5595.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-stu300.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-taos-evm.c i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls 2013-02-22 00:25:50 +01:00
i2c-tegra.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-tiny-usb.c i2c: tiny-usb: do not use stack as URB transfer_buffer 2013-08-19 19:46:38 +02:00
i2c-versatile.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-via.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-viapro.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-viperboard.c i2c: Ignore return value of i2c_del_adapter() 2013-04-02 07:06:03 +02:00
i2c-wmt.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-xiic.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-xlr.c Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2013-02-26 09:41:53 -08:00
Kconfig i2c: davinci: Allow i2c driver available for keystone platforms 2013-08-15 14:29:34 +02:00
Makefile i2c: Kontron PLD i2c bus driver 2013-07-01 08:35:44 +02:00
scx200_acb.c i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls 2013-02-22 00:25:50 +01:00
scx200_i2c.c i2c/scx200_*: Replace printks with pr_<level>s 2012-10-05 22:23:52 +02:00