From: Linus Torvalds Date: Thu, 14 Jan 2016 19:25:37 +0000 (-0800) Subject: Merge branch 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=32250e4a5fa0b618044afa59fba01093a4bcb14a;p=openwrt%2Fstaging%2Fblogic.git Merge branch 'i2c/for-4.5' of git://git./linux/kernel/git/wsa/linux Pull i2c updates from Wolfram Sang: "Quite some driver updates: - piix4 can now handle multiplexed adapters - brcmstb, xlr, eg20t, designware drivers support more SoCs - emev2 gained i2c slave support - img-scb and rcar got bigger refactoring to remove issues - lots of common driver updates i2c core changes: - new quirk flag when an adapter does not support clock stretching, so clients can be configured to avoid that if possible - added a helper function to retrieve timing parameters from firmware (with rcar being the first user) - "multi-master" DT binding added so drivers can adapt to this setting (like disabling PM to keep arbitration working) - RuntimePM for the logical adapter device is now always enabled by the core to ensure propagation from childs to the parent (the HW device) - new macro builtin_i2c_driver to reduce boilerplate" * 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (70 commits) i2c: create builtin_i2c_driver to avoid registration boilerplate i2c: imx: fix i2c resource leak with dma transfer dt-bindings: i2c: eeprom: add another EEPROM device dt-bindings: move I2C eeprom descriptions to the proper file i2c: designware: Do not require clock when SSCN and FFCN are provided DT: i2c: trivial-devices: Add Epson RX8010 and MPL3115 i2c: s3c2410: remove superfluous runtime PM calls i2c: always enable RuntimePM for the adapter device i2c: designware: retry transfer on transient failure i2c: ibm_iic: rename i2c_timings struct due to clash with generic version i2c: designware: Add support for AMD Seattle I2C i2c: imx: Remove unneeded comments i2c: st: use to_platform_device() i2c: designware: use to_pci_dev() i2c: brcmstb: Adding support for CM and DSL SoCs i2c: mediatek: fix i2c multi transfer issue in high speed mode i2c: imx: improve code readability i2c: imx: Improve message log when DMA is not used i2c: imx: add runtime pm support to improve the performance i2c: imx: init bus recovery info before adding i2c adapter ... --- 32250e4a5fa0b618044afa59fba01093a4bcb14a diff --cc Documentation/devicetree/bindings/i2c/trivial-devices.txt index f6fec952d683,f0568a6448c9..539874490492 --- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt +++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt @@@ -20,19 -20,7 +20,8 @@@ adi,adt7476 +/-1C TDM Extended Temp Ra adi,adt7490 +/-1C TDM Extended Temp Range I.C adi,adxl345 Three-Axis Digital Accelerometer adi,adxl346 Three-Axis Digital Accelerometer (backward-compatibility value "adi,adxl345" must be listed too) +ams,iaq-core AMS iAQ-Core VOC Sensor at,24c08 i2c serial eeprom (24cxx) - atmel,24c00 i2c serial eeprom (24cxx) - atmel,24c01 i2c serial eeprom (24cxx) - atmel,24c02 i2c serial eeprom (24cxx) - atmel,24c04 i2c serial eeprom (24cxx) - atmel,24c16 i2c serial eeprom (24cxx) - atmel,24c32 i2c serial eeprom (24cxx) - atmel,24c64 i2c serial eeprom (24cxx) - atmel,24c128 i2c serial eeprom (24cxx) - atmel,24c256 i2c serial eeprom (24cxx) - atmel,24c512 i2c serial eeprom (24cxx) - atmel,24c1024 i2c serial eeprom (24cxx) atmel,at97sc3204t i2c trusted platform module (TPM) capella,cm32181 CM32181: Ambient Light Sensor capella,cm3232 CM3232: Ambient Light Sensor diff --cc drivers/i2c/busses/i2c-designware-platdrv.c index bf72ae740fc1,965512c3b1cf..438f1b4964c0 --- a/drivers/i2c/busses/i2c-designware-platdrv.c +++ b/drivers/i2c/busses/i2c-designware-platdrv.c @@@ -122,8 -116,8 +122,9 @@@ static const struct acpi_device_id dw_i { "INT3433", 0 }, { "80860F41", 0 }, { "808622C1", 0 }, - { "AMD0010", 0 }, + { "AMD0010", ACCESS_INTR_MASK }, + { "AMDI0510", 0 }, + { "APMC0D0F", 0 }, { } }; MODULE_DEVICE_TABLE(acpi, dw_i2c_acpi_match); @@@ -134,9 -128,20 +135,21 @@@ static inline int dw_i2c_acpi_configure } #endif + static int i2c_dw_plat_prepare_clk(struct dw_i2c_dev *i_dev, bool prepare) + { + if (IS_ERR(i_dev->clk)) + return PTR_ERR(i_dev->clk); + + if (prepare) + return clk_prepare_enable(i_dev->clk); + + clk_disable_unprepare(i_dev->clk); + return 0; + } + static int dw_i2c_plat_probe(struct platform_device *pdev) { + struct dw_i2c_platform_data *pdata = dev_get_platdata(&pdev->dev); struct dw_i2c_dev *dev; struct i2c_adapter *adap; struct resource *mem;