linux/drivers/mfd
Mika Westerberg 028af5941d mfd: intel-lpss: Pass SDA hold time to I2C host controller driver
Intel Skylake the LPSS I2C pad circuit has internal delays that require
programming non-zero SDA hold time for the I2C host controller. If this is
not done communication to slave devices may fail with arbitration lost
errors like the one seen below taken from Lenovo Yoga 900:

  i2c_hid i2c-SYNA2B29:00: Fetching the HID descriptor
  i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: cmd=20 00
  i2c_designware i2c_designware.1: i2c_dw_handle_tx_abort: lost arbitration

To fix this we follow what the Windows driver is doing and pass the default
SDA hold time of 230 ns to all Intel Skylake host controllers. This still
allows the platform to override these values by passing special ACPI
methods SSCN and FMCN.

Reported-by: Kevin Fenzi <kevin@scrye.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2015-12-07 02:29:24 +01:00
..
88pm80x.c mfd: 88pm80x: Add 88pm860 chip type support 2015-10-26 14:48:56 +00:00
88pm800.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
88pm805.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
88pm860x-core.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
88pm860x-i2c.c
aat2870-core.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
ab3100-core.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
ab3100-otp.c mfd: drop owner assignment from platform_drivers 2014-10-20 16:20:53 +02:00
ab8500-core.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
ab8500-debugfs.c mfd: ab8500-debugfs: Pass the IRQF_ONESHOT flag 2015-06-22 12:25:27 +01:00
ab8500-gpadc.c mfd: ab8500-gpadc: Pass the IRQF_ONESHOT flag 2015-06-22 12:25:28 +01:00
ab8500-sysctrl.c mfd: ab8500: Decrement the power supply's device reference counter 2015-03-13 23:15:54 +01:00
abx500-core.c
adp5520.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
arizona-core.c mfd: arizona: Signedness bug in arizona_runtime_suspend() 2015-10-30 18:56:58 +00:00
arizona-i2c.c mfd: arizona: Use correct type ID for device tree config 2015-10-30 17:20:30 +00:00
arizona-irq.c mfd: arizona: Fix typo in arizona_irq_map 2015-10-26 14:49:05 +00:00
arizona-spi.c - New Device Support 2015-11-06 10:23:50 -08:00
arizona.h mfd: arizona: Add support for WM8998 and WM1814 2015-08-11 15:08:42 +01:00
as3711.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
as3722.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
asic3.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
atmel-flexcom.c mfd: atmel-flexcom: Add a driver for Atmel Flexible Serial Communication Unit 2015-10-30 17:19:49 +00:00
atmel-hlcdc.c mfd: atmel-hlcdc: Fix module autoload for OF platform driver 2015-10-26 14:48:59 +00:00
axp20x.c mfd: axp20x: Add a cell for the power button part of the, axp288 PMICs 2015-10-30 17:20:39 +00:00
bcm590xx.c mfd: bcm590xx: Remove unnecessary MODULE_ALIAS() 2015-10-26 14:49:09 +00:00
cros_ec_i2c.c mfd: cros_ec_i2c: Add OF match table 2015-10-26 14:48:55 +00:00
cros_ec_spi.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
cros_ec.c mfd: cros_ec: Staticise some newly introduced structures 2015-06-22 12:23:02 +01:00
cs5535-mfd.c
da903x.c mfd: da903x: Simplify function return logic 2015-10-30 17:19:45 +00:00
da9052-core.c mfd: da9053: Addition of extra registers for GPIOs 8-13 2015-10-30 17:19:49 +00:00
da9052-i2c.c mfd: da9052: Simplify function return logic 2015-10-30 17:19:46 +00:00
da9052-irq.c mfd: Constify regmap and irq configuration data 2015-06-22 12:25:01 +01:00
da9052-spi.c - New Device Support 2015-11-06 10:23:50 -08:00
da9055-core.c mfd: Constify regmap and irq configuration data 2015-06-22 12:25:01 +01:00
da9055-i2c.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
da9062-core.c mfd: da9062-core: Rename get_device_type to da9062_get_device_type 2015-10-30 17:19:51 +00:00
da9063-core.c mfd: da9063: Add support for OnKey driver 2015-06-22 12:25:20 +01:00
da9063-i2c.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
da9063-irq.c mfd: da9063: Fix missing DA9063_M_DVC_RDY mask bit 2015-08-11 15:08:51 +01:00
da9150-core.c mfd: da9150: Use DEFINE_RES_IRQ_NAMED() help macro for IRQ resource 2015-10-13 11:28:36 +01:00
davinci_voicecodec.c mfd: davinci_voicecodec: Constify struct regmap_config 2015-01-22 15:56:24 +00:00
db8500-prcmu.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
dbx500-prcmu-regs.h
dln2.c mfd: dln2: Use msecs_to_jiffies for time conversion 2015-03-26 14:20:18 +00:00
dm355evm_msp.c
ezx-pcap.c Merge remote-tracking branches 'spi/topic/omap-100k', 'spi/topic/omap-uwire', 'spi/topic/owner', 'spi/topic/pxa' and 'spi/topic/pxa2xx' into spi-next 2015-11-04 11:02:12 +00:00
hi6421-pmic-core.c mfd: hi6421-pmic: Fix module autoload for OF platform driver 2015-10-26 14:49:00 +00:00
htc-egpio.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
htc-i2cpld.c mfd: htc-i2cpld: Remove unneded ret variable 2015-10-30 17:19:41 +00:00
htc-pasic3.c
intel_msic.c mfd: drop owner assignment from platform_drivers 2014-10-20 16:20:53 +02:00
intel_quark_i2c_gpio.c mfd: intel_quark_i2c_gpio: support devices behind i2c bus 2015-10-26 15:25:55 +01:00
intel_soc_pmic_bxtwc.c mfd: intel_soc_pmic_bxtwc: 64 bit bug in bxtwc_val_store() 2015-10-30 17:19:47 +00:00
intel_soc_pmic_core.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-09-04 15:49:32 -07:00
intel_soc_pmic_core.h mfd: Constify regmap and irq configuration data 2015-06-22 12:25:01 +01:00
intel_soc_pmic_crc.c mfd: intel_soc_pmic_crc: Add PWM cell device for Crystalcove PMIC 2015-07-21 09:22:08 +02:00
intel-lpss-acpi.c mfd: intel-lpss: Pass SDA hold time to I2C host controller driver 2015-12-07 02:29:24 +01:00
intel-lpss-pci.c mfd: intel-lpss: Pass SDA hold time to I2C host controller driver 2015-12-07 02:29:24 +01:00
intel-lpss.c mfd: intel-lpss: Add support for passing device properties 2015-12-07 02:29:23 +01:00
intel-lpss.h mfd: intel-lpss: Add support for passing device properties 2015-12-07 02:29:23 +01:00
ipaq-micro.c mfd: ipaq-micro: Convert to built-in platform driver 2015-08-11 15:09:00 +01:00
janz-cmodio.c can: janz-ican3: add support for CAL/CANopen firmware 2015-05-06 08:03:20 +02:00
jz4740-adc.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
Kconfig mfd: Make TPS6105X select REGMAP_I2C 2015-10-30 17:20:12 +00:00
kempld-core.c mfd: kempld-core: Simplify function return logic 2015-10-30 17:19:43 +00:00
lm3533-core.c mfd: lm3533: Fix unused variable build warning 2015-10-30 17:19:52 +00:00
lm3533-ctrlbank.c
lp3943.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
lp8788-irq.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
lp8788.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
lpc_ich.c mfd: lpc_ich: Separate device cells for clarity 2015-10-30 17:18:50 +00:00
lpc_sch.c mfd: lpc_sch: Enable WDT for Intel Quark X1000 2015-01-22 15:55:56 +00:00
Makefile mfd: atmel-flexcom: Add a driver for Atmel Flexible Serial Communication Unit 2015-10-30 17:19:49 +00:00
max8907.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
max8925-core.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
max8925-i2c.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
max8997-irq.c mfd: max899x: Avoid redundant irq_data lookup 2015-08-11 15:09:08 +01:00
max8997.c mfd: max8997: Fix module autoload for OF platform driver 2015-10-26 14:49:01 +00:00
max8998-irq.c mfd: max899x: Avoid redundant irq_data lookup 2015-08-11 15:09:08 +01:00
max8998.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
max14577.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
max77686.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
max77693.c - New Device Support 2015-09-04 11:35:03 -07:00
max77843.c mfd: max77843: Fix max77843_chg_init() return on error 2015-10-01 16:31:42 +01:00
mc13xxx-core.c mfd: mc13xxx-core: Pass the IRQF_ONESHOT flag 2015-06-22 12:25:24 +01:00
mc13xxx-i2c.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
mc13xxx-spi.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
mc13xxx.h
mcp-core.c
mcp-sa11x0.c mfd: drop owner assignment from platform_drivers 2014-10-20 16:20:53 +02:00
menelaus.c mfd: menelaus: Use macro for magic number 2015-03-30 10:06:55 +01:00
menf21bmc.c
mfd-core.c mfd: core: propagate device properties to sub devices drivers 2015-12-07 02:29:23 +01:00
mt6397-core.c mfd: mt6397: Implement wake handler and suspend/resume to handle wake up event 2015-08-11 15:09:11 +01:00
omap-usb-host.c mfd: omap-usb-host: Remove some unused functions 2015-01-22 16:03:53 +00:00
omap-usb-tll.c mfd: drop owner assignment from platform_drivers 2014-10-20 16:20:53 +02:00
omap-usb.h
palmas.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
pcf50633-adc.c
pcf50633-core.c mfd: pcf50633: Constify struct regmap_config 2015-01-22 15:56:21 +00:00
pcf50633-gpio.c
pcf50633-irq.c mfd: pcf50633: Remove unneded ret variable 2015-10-30 17:19:42 +00:00
pm8921-core.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
qcom_rpm.c mfd: qcom_rpm: Drop use of IRQF_NO_SUSPEND flag 2015-10-30 17:19:40 +00:00
qcom-spmi-pmic.c mfd: qcom-spmi-pmic: Add specific compatible strings for Qualcomm's SPMI PMIC's 2015-03-30 10:07:08 +01:00
rc5t583-irq.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
rc5t583.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
rdc321x-southbridge.c
retu-mfd.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
rk808.c mfd: Constify of_device_id array 2015-03-26 14:20:18 +00:00
rn5t618.c
rt5033.c mfd: rt5033: Add RT5033 Flash led sub device 2015-10-30 18:57:35 +00:00
rtl8411.c mfd: rtsx: Using pcr_dbg replace dev_dbg 2015-03-03 16:41:21 +00:00
rts5209.c mfd: rtsx: Simplify function return logic 2015-10-30 17:19:44 +00:00
rts5227.c mfd: rtsx: Add support for rts522A 2015-10-30 17:19:51 +00:00
rts5229.c mfd: rtsx: Simplify function return logic 2015-10-30 17:19:44 +00:00
rts5249.c mfd: rtsx: Simplify function return logic 2015-10-30 17:19:44 +00:00
rtsx_pcr.c mfd: avoid newly introduced compiler warning 2015-11-06 10:47:12 -08:00
rtsx_pcr.h mfd: rtsx: Add support for rts522A 2015-10-30 17:19:51 +00:00
rtsx_usb.c mfd: rtsx_usb: Prevent DMA from stack 2015-03-12 09:27:41 +00:00
sec-core.c mfd: sec-core: Remove unused s2mpu02-rtc and s2mpu02-clk children 2015-10-30 18:57:38 +00:00
sec-irq.c mfd: sec: Fix RTC alarm interrupt number on S2MPS11 2015-04-09 10:26:54 +01:00
si476x-cmd.c
si476x-i2c.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
si476x-prop.c
sky81452.c mfd: Add support for Skyworks SKY81452 driver 2015-03-12 09:08:12 +00:00
sm501.c mfd: sm501: Fix module autoload for OF platform driver 2015-10-26 14:49:02 +00:00
smsc-ece1099.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
ssbi.c mfd: drop owner assignment from platform_drivers 2014-10-20 16:20:53 +02:00
sta2x11-mfd.c mfd: drop owner assignment from platform_drivers 2014-10-20 16:20:53 +02:00
stmpe-i2c.c - New Device Support 2015-09-04 11:35:03 -07:00
stmpe-spi.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
stmpe.c mfd: stmpe: PWM on 24xx has altfunc 1 2015-10-26 14:48:57 +00:00
stmpe.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-12-30 16:59:59 -08:00
stw481x.c mfd: stw481x: Export I2C module alias information 2015-08-11 15:09:09 +01:00
sun6i-prcm.c mfd: sun6i-prcm: Add support for the ir-clk 2015-01-22 15:55:49 +00:00
syscon.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
t7l66xb.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
tc3589x.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
tc6387xb.c mfd: tc6387xb: prepare/unprepare clocks 2014-11-25 16:18:58 +00:00
tc6393xb.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: Remove unwanted reg_se_cache save 2015-03-03 16:41:15 +00:00
timberdale.c
timberdale.h
tmio_core.c
tps6105x.c mfd: tps6105x: Fix possible NULL pointer access 2015-10-30 17:19:40 +00:00
tps6507x.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
tps6586x.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
tps65010.c mfd: tps65010: Remove incorrect __exit markups 2015-04-09 10:26:40 +01:00
tps65090.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
tps65217.c mfd: tps65217: Add battery charger as subdevice 2015-10-26 14:49:08 +00:00
tps65218.c mfd: Export OF module alias information in missing drivers 2015-08-11 15:09:10 +01:00
tps65910.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
tps65911-comparator.c mfd: drop owner assignment from platform_drivers 2014-10-20 16:20:53 +02:00
tps65912-core.c
tps65912-i2c.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
tps65912-irq.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
tps65912-spi.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
tps80031.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
twl4030-audio.c mfd: drop owner assignment from platform_drivers 2014-10-20 16:20:53 +02:00
twl4030-irq.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
twl4030-power.c mfd: twl4030-power: Fix pmic for boards that need AC charger disabled 2015-06-22 12:25:04 +01:00
twl6030-irq.c mfd: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc 2015-08-11 15:09:06 +01:00
twl6040.c mfd: twl6040: Fix deferred probe handling for clk32k 2015-10-26 14:48:56 +00:00
twl-core.c twl4030_charger: use runtime_pm to keep usb phy active while charging. 2015-08-05 05:10:06 +02:00
twl-core.h
ucb1x00-assabet.c
ucb1x00-core.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
ucb1x00-ts.c
ucb1400_core.c
vexpress-sysreg.c mfd: vexpress: Remove non-DT code 2015-03-03 16:41:14 +00:00
viperboard.c mfd: Use mfd_add_hotplug_devices() helper 2014-11-25 16:18:42 +00:00
vx855.c
wl1273-core.c
wm831x-auxadc.c mfd: wm831x-auxadc: Pass the IRQF_ONESHOT flag 2015-06-22 12:25:25 +01:00
wm831x-core.c mfd: wm831x: Fix possible NULL pointer dereference 2015-10-26 14:49:04 +00:00
wm831x-i2c.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
wm831x-irq.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
wm831x-otp.c
wm831x-spi.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
wm5102-tables.c sound updates for 4.3-rc1 2015-09-04 11:46:02 -07:00
wm5110-tables.c mfd: arizona: Add register bits to support the ANC block 2015-10-26 14:49:06 +00:00
wm8350-core.c mfd: wm8350-core: Pass the IRQF_ONESHOT flag 2015-06-22 12:25:26 +01:00
wm8350-gpio.c
wm8350-i2c.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
wm8350-irq.c mfd: Kill off set_irq_flags usage 2015-08-11 15:09:01 +01:00
wm8350-regmap.c
wm8400-core.c mfd: Drop owner assignment from i2c_drivers 2015-08-11 15:08:48 +01:00
wm8994-core.c sound updates for 4.3-rc1 2015-09-04 11:46:02 -07:00
wm8994-irq.c mfd: wm8994: Fix NULL pointer exception on missing pdata 2015-08-11 15:09:13 +01:00
wm8994-regmap.c mfd: wm8994-regmap: Constify reg_default tables 2015-08-11 15:08:47 +01:00
wm8994.h
wm8997-tables.c sound updates for 4.3-rc1 2015-09-04 11:46:02 -07:00
wm8998-tables.c mfd: wm8998: Fixup register defaults/readables 2015-10-26 14:49:07 +00:00