Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39de65aa authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull i2c updates from Wolfram Sang:
 "Here is the pull request from the i2c subsystem.  It got a little
  delayed because I needed to wait for a dependency to be included
  (commit b424080a: "reset: Add optional resets and stubs").  Plus,
  I had some email problems.  All done now, the highlights are:

   - drivers can now deprecate their use of i2c classes.  That shouldn't
     be used on embedded platforms anyhow and was often blindly
     copy&pasted.  This mechanism gives users time to switch away and
     ultimately boot faster once the use of classes for those drivers is
     gone for good.

   - new drivers for QUP, Cadence, efm32

   - tracepoint support for I2C and SMBus

   - bigger cleanups for the mv64xxx, nomadik, and designware drivers

  And the usual bugfixes, cleanups, feature additions.  Most stuff has
  been in linux-next for a while.  Just some hot fixes and new drivers
  were added a bit more recently."

* 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (63 commits)
  i2c: cadence: fix Kconfig dependency
  i2c: Add driver for Cadence I2C controller
  i2c: cadence: Document device tree bindings
  Documentation: i2c: improve section about flags mangling the protocol
  i2c: qup: use proper type fro clk_freq
  i2c: qup: off by ones in qup_i2c_probe()
  i2c: efm32: fix binding doc
  MAINTAINERS: update I2C web resources
  i2c: qup: New bus driver for the Qualcomm QUP I2C controller
  i2c: qup: Add device tree bindings information
  i2c: i2c-xiic: deprecate class based instantiation
  i2c: i2c-sirf: deprecate class based instantiation
  i2c: i2c-mv64xxx: deprecate class based instantiation
  i2c: i2c-designware-platdrv: deprecate class based instantiation
  i2c: i2c-davinci: deprecate class based instantiation
  i2c: i2c-bcm2835: deprecate class based instantiation
  i2c: mv64xxx: Fix reset controller handling
  i2c: omap: fix usage of IS_ERR_VALUE with pm_runtime_get_sync
  i2c: efm32: new bus driver
  i2c: exynos5: remove unnecessary cast of void pointer
  ...
parents 97e18dc0 1fbeab0b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ Required properties :
- clocks: phandles to input clocks.

Optional properties:
- clock-frequency: Desired I2C bus frequency in Hz, otherwise defaults to 100000
- Child nodes conforming to i2c bus binding

Examples :
@@ -23,6 +24,7 @@ i2c0: i2c@fff84000 {
	#address-cells = <1>;
	#size-cells = <0>;
	clocks = <&twi0_clk>;
	clock-frequency = <400000>;

	24c512@50 {
		compatible = "24c512";
+24 −0
Original line number Diff line number Diff line
Binding for the Cadence I2C controller

Required properties:
  - reg: Physical base address and size of the controller's register area.
  - compatible: Compatibility string. Must be 'cdns,i2c-r1p10'.
  - clocks: Input clock specifier. Refer to common clock bindings.
  - interrupts: Interrupt specifier. Refer to interrupt bindings.
  - #address-cells: Should be 1.
  - #size-cells: Should be 0.

Optional properties:
  - clock-frequency: Desired operating frequency, in Hz, of the bus.
  - clock-names: Input clock name, should be 'pclk'.

Example:
	i2c@e0004000 {
		compatible = "cdns,i2c-r1p10";
		clocks = <&clkc 38>;
		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
		reg = <0xe0004000 0x1000>;
		clock-frequency = <400000>;
		#address-cells = <1>;
		#size-cells = <0>;
	};
+8 −0
Original line number Diff line number Diff line
@@ -14,6 +14,12 @@ Optional properties :
 - i2c-sda-hold-time-ns : should contain the SDA hold time in nanoseconds.
   This option is only supported in hardware blocks version 1.11a or newer.

 - i2c-scl-falling-time : should contain the SCL falling time in nanoseconds.
   This value which is by default 300ns is used to compute the tLOW period.

 - i2c-sda-falling-time : should contain the SDA falling time in nanoseconds.
   This value which is by default 300ns is used to compute the tHIGH period.

Example :

	i2c@f0000 {
@@ -34,4 +40,6 @@ Example :
		interrupts = <12 1>;
		clock-frequency = <400000>;
		i2c-sda-hold-time-ns = <300>;
		i2c-sda-falling-time-ns = <300>;
		i2c-scl-falling-time-ns = <300>;
	};
+34 −0
Original line number Diff line number Diff line
* Energymicro efm32 i2c controller

Required properties :

 - reg : Offset and length of the register set for the device
 - compatible : should be "energymicro,efm32-i2c"
 - interrupts : the interrupt number
 - clocks : reference to the module clock

Recommended properties :

 - clock-frequency : maximal I2C bus clock frequency in Hz.
 - efm32,location : Decides the location of the USART I/O pins.
   Allowed range : [0 .. 6]

Example:
	i2c0: i2c@4000a000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "energymicro,efm32-i2c";
		reg = <0x4000a000 0x400>;
		interrupts = <9>;
		clocks = <&cmu clk_HFPERCLKI2C0>;
		clock-frequency = <100000>;
		status = "ok";
		efm32,location = <3>;

		eeprom@50 {
			compatible = "microchip,24c02";
			reg = <0x50>;
			pagesize = <16>;
		};
	};
+14 −6
Original line number Diff line number Diff line
@@ -4,12 +4,16 @@
Required properties :

 - reg             : Offset and length of the register set for the device
 - compatible      : Should be "marvell,mv64xxx-i2c" or "allwinner,sun4i-i2c"
                     or "marvell,mv78230-i2c" or "marvell,mv78230-a0-i2c"
                     Note: Only use "marvell,mv78230-a0-i2c" for a very rare,
                     initial version of the SoC which had broken offload
                     support.  Linux auto-detects this and sets it
                     appropriately.
 - compatible      : Should be either:
                     - "allwinner,sun4i-i2c"
                     - "allwinner,sun6i-a31-i2c"
                     - "marvell,mv64xxx-i2c"
                     - "marvell,mv78230-i2c"
                     - "marvell,mv78230-a0-i2c"
                       * Note: Only use "marvell,mv78230-a0-i2c" for a
                         very rare, initial version of the SoC which
                         had broken offload support.  Linux
                         auto-detects this and sets it appropriately.
 - interrupts      : The interrupt number

Optional properties :
@@ -17,6 +21,10 @@ Optional properties :
 - clock-frequency : Desired I2C bus clock frequency in Hz. If not set the
default frequency is 100kHz

 - resets          : phandle to the parent reset controller. Mandatory
                     whenever you're using the "allwinner,sun6i-a31-i2c"
                     compatible.

Examples:

	i2c@11000 {
Loading