Merge branch 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 14 Jan 2016 19:25:37 +0000 (11:25 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 14 Jan 2016 19:25:37 +0000 (11:25 -0800)
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
  ...

1  2 
Documentation/devicetree/bindings/i2c/trivial-devices.txt
drivers/i2c/busses/i2c-designware-core.c
drivers/i2c/busses/i2c-designware-platdrv.c
drivers/i2c/busses/i2c-rcar.c
drivers/i2c/busses/i2c-st.c

index f6fec952d6836fc7354739dba5578714bf7f8d23,f0568a6448c994eed191be0df3e5d42f1ecc5bcc..539874490492de666274aff20fda6dc1660f681d
@@@ -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
index bf72ae740fc17c3dfbab0f1c0004ee29ed73f03b,965512c3b1cfb7a447fc25e74c6dee740aba56d4..438f1b4964c08024c32e55e831f028f657db0e7d
@@@ -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;
Simple merge
Simple merge