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 Original line Diff line number Diff line
@@ -12,6 +12,7 @@ Required properties :
- clocks: phandles to input clocks.
- clocks: phandles to input clocks.


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


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


	24c512@50 {
	24c512@50 {
		compatible = "24c512";
		compatible = "24c512";
+24 −0
Original line number Original line 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 Original line Diff line number Diff line
@@ -14,6 +14,12 @@ Optional properties :
 - i2c-sda-hold-time-ns : should contain the SDA hold time in nanoseconds.
 - 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.
   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 :
Example :


	i2c@f0000 {
	i2c@f0000 {
@@ -34,4 +40,6 @@ Example :
		interrupts = <12 1>;
		interrupts = <12 1>;
		clock-frequency = <400000>;
		clock-frequency = <400000>;
		i2c-sda-hold-time-ns = <300>;
		i2c-sda-hold-time-ns = <300>;
		i2c-sda-falling-time-ns = <300>;
		i2c-scl-falling-time-ns = <300>;
	};
	};
+34 −0
Original line number Original line 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 Original line Diff line number Diff line
@@ -4,12 +4,16 @@
Required properties :
Required properties :


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


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


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

Examples:
Examples:


	i2c@11000 {
	i2c@11000 {
Loading