Commit 4141cf67 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull i2c updates from Wolfram Sang:
 "I2C has the following changes for you:

   - new flag to mark DMA safe buffers in i2c_msg. Also, some
     infrastructure around it. And docs.

   - huge refactoring of the at24 driver led by the new maintainer
     Bartosz

   - update I2C bus recovery to send STOP after recovery

   - conversion from gpio to gpiod for I2C bus recovery

   - adding a fault-injector to the i2c-gpio driver

   - lots of small driver improvements, and bigger ones to
     i2c-sh_mobile"

* 'i2c/for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (99 commits)
  i2c: mv64xxx: Add myself as maintainer for this driver
  i2c: mv64xxx: Fix clock resource by adding an optional bus clock
  i2c: mv64xxx: Remove useless test before clk_disable_unprepare
  i2c: mxs: use true and false for boolean values
  i2c: meson: update doc description to fix build warnings
  i2c: meson: add configurable divider factors
  dt-bindings: i2c: update documentation for the Meson-AXG
  i2c: imx-lpi2c: add runtime pm support
  i2c: rcar: fix some trivial typos in comments
  i2c: davinci: fix the cpufreq transition
  i2c: rk3x: add proper kerneldoc header
  i2c: rk3x: account for const type of of_device_id.data
  i2c: acorn: remove outdated path from file header
  i2c: acorn: add MODULE_LICENSE tag
  i2c: rcar: implement bus recovery
  i2c: send STOP after successful bus recovery
  i2c: ensure SDA is released in recovery if SDA is controllable
  i2c: add 'set_sda' to bus_recovery_info
  i2c: add identifier in declarations for i2c_bus_recovery
  i2c: make kerneldoc about bus recovery more precise
  ...
parents 3462ac57 e38c8564
Loading
Loading
Loading
Loading
+78 −0
Original line number Diff line number Diff line
EEPROMs (I2C)

Required properties:

  - compatible: Must be a "<manufacturer>,<model>" pair. The following <model>
                values are supported (assuming "atmel" as manufacturer):

                "atmel,24c00",
                "atmel,24c01",
                "atmel,24cs01",
                "atmel,24c02",
                "atmel,24cs02",
                "atmel,24mac402",
                "atmel,24mac602",
                "atmel,spd",
                "atmel,24c04",
                "atmel,24cs04",
                "atmel,24c08",
                "atmel,24cs08",
                "atmel,24c16",
                "atmel,24cs16",
                "atmel,24c32",
                "atmel,24cs32",
                "atmel,24c64",
                "atmel,24cs64",
                "atmel,24c128",
                "atmel,24c256",
                "atmel,24c512",
                "atmel,24c1024",

                If <manufacturer> is not "atmel", then a fallback must be used
                with the same <model> and "atmel" as manufacturer.

                Example:
                        compatible = "microchip,24c128", "atmel,24c128";

                Supported manufacturers are:

                "catalyst",
                "microchip",
                "ramtron",
                "renesas",
                "nxp",
                "st",

                Some vendors use different model names for chips which are just
                variants of the above. Known such exceptions are listed below:

                "renesas,r1ex24002" - the fallback is "atmel,24c02"

  - reg: The I2C address of the EEPROM.

Optional properties:

  - pagesize: The length of the pagesize for writing. Please consult the
              manual of your device, that value varies a lot. A wrong value
              may result in data loss! If not specified, a safety value of
              '1' is used which will be very slow.

  - read-only: This parameterless property disables writes to the eeprom.

  - size: Total eeprom size in bytes.

  - no-read-rollover: This parameterless property indicates that the
                      multi-address eeprom does not automatically roll over
                      reads to the next slave address. Please consult the
                      manual of your device.

  - wp-gpios: GPIO to which the write-protect pin of the chip is connected.

Example:

eeprom@52 {
	compatible = "atmel,24c32";
	reg = <0x52>;
	pagesize = <32>;
	wp-gpios = <&gpio1 3 0>;
};
+0 −47
Original line number Diff line number Diff line
EEPROMs (I2C)

Required properties:

  - compatible : should be "<manufacturer>,<type>", like these:

	"atmel,24c00", "atmel,24c01", "atmel,24c02", "atmel,24c04",
	"atmel,24c08", "atmel,24c16", "atmel,24c32", "atmel,24c64",
	"atmel,24c128", "atmel,24c256", "atmel,24c512", "atmel,24c1024"

	"catalyst,24c32"

	"microchip,24c128"

	"ramtron,24c64"

	"renesas,r1ex24002"

	The following manufacturers values have been deprecated:
	"at", "at24"

	 If there is no specific driver for <manufacturer>, a generic
	 device with <type> and manufacturer "atmel" should be used.
	 Possible types are:
	 "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
	 "24c128", "24c256", "24c512", "24c1024", "spd"

  - reg : the I2C address of the EEPROM

Optional properties:

  - pagesize : the length of the pagesize for writing. Please consult the
               manual of your device, that value varies a lot. A wrong value
	       may result in data loss! If not specified, a safety value of
	       '1' is used which will be very slow.

  - read-only: this parameterless property disables writes to the eeprom

  - size: total eeprom size in bytes

Example:

eeprom@52 {
	compatible = "atmel,24c32";
	reg = <0x52>;
	pagesize = <32>;
};
+5 −1
Original line number Diff line number Diff line
Amlogic Meson I2C controller

Required properties:
 - compatible: must be "amlogic,meson6-i2c" or "amlogic,meson-gxbb-i2c"
 - compatible: must be:
	"amlogic,meson6-i2c" for Meson8 and compatible SoCs
	"amlogic,meson-gxbb-i2c" for GXBB and compatible SoCs
	"amlogic,meson-axg-i2c"for AXG and compatible SoCs

 - reg: physical address and length of the device registers
 - interrupts: a single interrupt specifier
 - clocks: clock for the device
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ The MediaTek's I2C controller is used to interface with I2C devices.
Required properties:
  - compatible: value should be either of the following.
      "mediatek,mt2701-i2c", "mediatek,mt6577-i2c": for MediaTek MT2701
      "mediatek,mt2712-i2c": for MediaTek MT2712
      "mediatek,mt6577-i2c": for MediaTek MT6577
      "mediatek,mt6589-i2c": for MediaTek MT6589
      "mediatek,mt7622-i2c": for MediaTek MT7622
+11 −2
Original line number Diff line number Diff line
* NXP PCA954x I2C bus switch

The driver supports NXP PCA954x and PCA984x I2C mux/switch devices.

Required Properties:

  - compatible: Must contain one of the following.
    "nxp,pca9540", "nxp,pca9542", "nxp,pca9543", "nxp,pca9544",
    "nxp,pca9545", "nxp,pca9546", "nxp,pca9547", "nxp,pca9548"
    "nxp,pca9540",
    "nxp,pca9542",
    "nxp,pca9543",
    "nxp,pca9544",
    "nxp,pca9545",
    "nxp,pca9546", "nxp,pca9846",
    "nxp,pca9547", "nxp,pca9847",
    "nxp,pca9548", "nxp,pca9848",
    "nxp,pca9849"

  - reg: The I2C address of the device.

Loading