Commit 96895199 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull i2c updates from Wolfram Sang:
 "For 3.19, the I2C subsystem has to offer special candy this time.
  Right in time for Christmas :)

   - I2C slave framework: finally, a generic mechanism for Linux being
     an I2C slave (if the bus driver supports that).  Docs are still
     missing but will come later this cycle, the code is good enough to
     go.
   - I2C muxes represent their topology in sysfs much more detailed.
     This will help users to navigate around much easier.
   - irq population of i2c clients is now done at probe time, not device
     creation time, to have better support for deferred probing.
   - new drivers for Imagination SCB, Amlogic Meson
   - DMA support added for Freescale IMX, Renesas SHMobile
   - slightly bigger driver updates to OMAP, i801, AT91, and rk3x
     (mostly quirk handling, timing updates, and using better kernel
     interfaces)
   - eeprom driver can now write with byte-access (very slow, but OK to
     have)
   - and the bunch of smaller fixes, cleanups, ID updates..."

* 'i2c/for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (56 commits)
  i2c: sh_mobile: remove unneeded DMA mask
  i2c: rcar: add slave support
  i2c: slave-eeprom: add eeprom simulator driver
  i2c: core changes for slave support
  MAINTAINERS: add I2C dt bindings also to I2C realm
  i2c: designware: Fix falling time bindings doc
  i2c: davinci: switch to use platform_get_irq
  Documentation: i2c: Use PM ops instead of legacy suspend/resume
  i2c: sh_mobile: optimize irq entry
  i2c: pxa: add support for SCCB devices
  omap: i2c: don't check bus state IP rev3.3 and earlier
  i2c: s3c2410: Handle i2c sys_cfg register in i2c driver
  i2c: rk3x: add Kconfig dependency on COMMON_CLK
  i2c: omap: add notes related to i2c multimaster mode
  i2c: omap: don't reset controller if Arbitration Lost detected
  i2c: omap: implement workaround for handling invalid BB-bit values
  i2c: omap: cleanup register definitions
  i2c: rk3x: handle dynamic clock rate changes correctly
  i2c: at91: enable probe deferring on dma channel request
  i2c: at91: remove legacy DMA support
  ...
parents 8fd9589c 6cf710d4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -14,10 +14,10 @@ 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.
 - i2c-scl-falling-time-ns : 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.
 - i2c-sda-falling-time-ns : should contain the SDA falling time in nanoseconds.
   This value which is by default 300ns is used to compute the tHIGH period.

Example :
+26 −0
Original line number Diff line number Diff line
IMG Serial Control Bus (SCB) I2C Controller

Required Properties:
- compatible: "img,scb-i2c"
- reg: Physical base address and length of controller registers
- interrupts: Interrupt number used by the controller
- clocks : Should contain a clock specifier for each entry in clock-names
- clock-names : Should contain the following entries:
                "scb", for the SCB core clock.
                "sys", for the system clock.
- clock-frequency: The I2C bus frequency in Hz
- #address-cells: Should be <1>
- #size-cells: Should be <0>

Example:

i2c@18100000 {
	compatible = "img,scb-i2c";
	reg = <0x18100000 0x200>;
	interrupts = <GIC_SHARED 2 IRQ_TYPE_LEVEL_HIGH>;
	clocks = <&i2c0_clk>, <&system_clk>;
	clock-names = "scb", "sys";
	clock-frequency = <400000>;
	#address-cells = <1>;
	#size-cells = <0>;
};
+11 −0
Original line number Diff line number Diff line
@@ -11,6 +11,8 @@ Required properties:
Optional properties:
- clock-frequency : Constains desired I2C/HS-I2C bus clock frequency in Hz.
  The absence of the propoerty indicates the default frequency 100 kHz.
- dmas: A list of two dma specifiers, one for each entry in dma-names.
- dma-names: should contain "tx" and "rx".

Examples:

@@ -26,3 +28,12 @@ i2c@70038000 { /* HS-I2C on i.MX51 */
	interrupts = <64>;
	clock-frequency = <400000>;
};

i2c0: i2c@40066000 { /* i2c0 on vf610 */
	compatible = "fsl,vf610-i2c";
	reg = <0x40066000 0x1000>;
	interrupts =<0 71 0x04>;
	dmas = <&edma0 0 50>,
		<&edma0 0 51>;
	dma-names = "rx","tx";
};
+24 −0
Original line number Diff line number Diff line
Amlogic Meson I2C controller

Required properties:
 - compatible: must be "amlogic,meson6-i2c"
 - reg: physical address and length of the device registers
 - interrupts: a single interrupt specifier
 - clocks: clock for the device
 - #address-cells: should be <1>
 - #size-cells: should be <0>

Optional properties:
- clock-frequency: the desired I2C bus clock frequency in Hz; in
  absence of this property the default value is used (100 kHz).

Examples:

	i2c@c8100500 {
		compatible = "amlogic,meson6-i2c";
		reg = <0xc8100500 0x20>;
		interrupts = <0 92 1>;
		clocks = <&clk81>;
		#address-cells = <1>;
		#size-cells = <0>;
	};
+14 −0
Original line number Diff line number Diff line
@@ -2,6 +2,15 @@ Device tree configuration for Renesas IIC (sh_mobile) driver

Required properties:
- compatible      : "renesas,iic-<soctype>". "renesas,rmobile-iic" as fallback
		     Examples with soctypes are:
			- "renesas,iic-r8a73a4" (R-Mobile APE6)
			- "renesas,iic-r8a7740" (R-Mobile A1)
			- "renesas,iic-r8a7790" (R-Car H2)
			- "renesas,iic-r8a7791" (R-Car M2-W)
			- "renesas,iic-r8a7792" (R-Car V2H)
			- "renesas,iic-r8a7793" (R-Car M2-N)
			- "renesas,iic-r8a7794" (R-Car E2)
			- "renesas,iic-sh73a0" (SH-Mobile AG5)
- reg             : address start and address range size of device
- interrupts      : interrupt of device
- clocks          : clock for device
@@ -10,6 +19,11 @@ Required properties:

Optional properties:
- clock-frequency : frequency of bus clock in Hz. Default 100kHz if unset.
- dmas            : Must contain a list of two references to DMA
		    specifiers, one for transmission, and one for
		    reception.
- dma-names       : Must contain a list of two DMA names, "tx" and "rx".


Pinctrl properties might be needed, too. See there.

Loading