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

Commit 99cc7ad4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull i2c updates from Wolfram Sang:

 - the core has now a lockless variant of i2c_smbus_xfer. Some open
   coded versions of this got removed in drivers. This also enables
   proper SCCB support in regmap.

 - locking got a more precise naming. i2c_{un}lock_adapter() had to go,
   and we know use i2c_lock_bus() consistently with flags like
   I2C_LOCK_ROOT_ADAPTER and I2C_LOCK_SEGMENT to avoid ambiguity.

 - the gpio fault injector got a new delicate testcase

 - the bus recovery procedure got fixed to handle the new testcase
   correctly

 - a new quirk flag for controllers not able to handle zero length
   messages together with driver updates to use it

 - new drivers: FSI bus attached I2C masters, GENI I2C controller, Owl
   family S900

 - and a good set of driver improvements and bugfixes

* 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (77 commits)
  i2c: rcar: implement STOP and REP_START according to docs
  i2c: rcar: refactor private flags
  i2c: core: ACPI: Make acpi_gsb_i2c_read_bytes() check i2c_transfer return value
  i2c: core: ACPI: Properly set status byte to 0 for multi-byte writes
  dt-bindings: i2c: rcar: Add r8a774a1 support
  dt-bindings: i2c: sh_mobile: Add r8a774a1 support
  i2c: imx: Simplify stopped state tracking
  i2c: imx: Fix race condition in dma read
  i2c: pasemi: remove hardcoded bus numbers on smbus
  i2c: designware: Add SPDX license tag
  i2c: designware: Convert to use struct i2c_timings
  i2c: core: Parse SDA hold time from firmware
  i2c: designware-pcidrv: Mark expected switch fall-through
  i2c: amd8111: Mark expected switch fall-through
  i2c: sh_mobile: use core to detect 'no zero length read' quirk
  i2c: xlr: use core to detect 'no zero length' quirk
  i2c: rcar: use core to detect 'no zero length' quirk
  i2c: stu300: use core to detect 'no zero length' quirk
  i2c: pmcmsp: use core to detect 'no zero length' quirk
  i2c: mxs: use core to detect 'no zero length' quirk
  ...
parents 0214f46b 19358d44
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -72,6 +72,8 @@ Optional properties:


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


  - address-width: number of address bits (one of 8, 16).

Example:
Example:


eeprom@52 {
eeprom@52 {
+40 −0
Original line number Original line Diff line number Diff line
Device-tree bindings for FSI-attached I2C master and busses
-----------------------------------------------------------

Required properties:
 - compatible = "ibm,i2c-fsi";
 - reg = < address size >;		: The FSI CFAM address and address
					  space size.
 - #address-cells = <1>;		: Number of address cells in child
					  nodes.
 - #size-cells = <0>;			: Number of size cells in child nodes.
 - child nodes				: Nodes to describe busses off the I2C
					  master.

Child node required properties:
 - reg = < port number >		: The port number on the I2C master.

Child node optional properties:
 - child nodes				: Nodes to describe devices on the I2C
					  bus.

Examples:

    i2c@1800 {
        compatible = "ibm,i2c-fsi";
        reg = < 0x1800 0x400 >;
        #address-cells = <1>;
        #size-cells = <0>;

        i2c-bus@0 {
            reg = <0>;
        };

        i2c-bus@1 {
            reg = <1>;

            eeprom@50 {
                compatible = "vendor,dev-name";
            };
        };
    };
+27 −0
Original line number Original line Diff line number Diff line
Actions Semiconductor Owl I2C controller

Required properties:

- compatible        : Should be "actions,s900-i2c".
- reg               : Offset and length of the register set for the device.
- #address-cells    : Should be 1.
- #size-cells       : Should be 0.
- interrupts        : A single interrupt specifier.
- clocks            : Phandle of the clock feeding the I2C controller.

Optional properties:

- clock-frequency   : Desired I2C bus clock frequency in Hz. As only Normal and
                      Fast modes are supported, possible values are 100000 and
                      400000.
Examples:

        i2c0: i2c@e0170000 {
                compatible = "actions,s900-i2c";
                reg = <0 0xe0170000 0 0x1000>;
                #address-cells = <1>;
                #size-cells = <0>;
                interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clock CLK_I2C0>;
                clock-frequency = <100000>;
        };
+4 −1
Original line number Original line Diff line number Diff line
@@ -4,6 +4,7 @@ Required properties:
- compatible:
- compatible:
	"renesas,i2c-r8a7743" if the device is a part of a R8A7743 SoC.
	"renesas,i2c-r8a7743" if the device is a part of a R8A7743 SoC.
	"renesas,i2c-r8a7745" if the device is a part of a R8A7745 SoC.
	"renesas,i2c-r8a7745" if the device is a part of a R8A7745 SoC.
	"renesas,i2c-r8a774a1" if the device is a part of a R8A774A1 SoC.
	"renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC.
	"renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC.
	"renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC.
	"renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC.
	"renesas,i2c-r8a7790" if the device is a part of a R8A7790 SoC.
	"renesas,i2c-r8a7790" if the device is a part of a R8A7790 SoC.
@@ -16,11 +17,13 @@ Required properties:
	"renesas,i2c-r8a77965" if the device is a part of a R8A77965 SoC.
	"renesas,i2c-r8a77965" if the device is a part of a R8A77965 SoC.
	"renesas,i2c-r8a77970" if the device is a part of a R8A77970 SoC.
	"renesas,i2c-r8a77970" if the device is a part of a R8A77970 SoC.
	"renesas,i2c-r8a77980" if the device is a part of a R8A77980 SoC.
	"renesas,i2c-r8a77980" if the device is a part of a R8A77980 SoC.
	"renesas,i2c-r8a77990" if the device is a part of a R8A77990 SoC.
	"renesas,i2c-r8a77995" if the device is a part of a R8A77995 SoC.
	"renesas,i2c-r8a77995" if the device is a part of a R8A77995 SoC.
	"renesas,rcar-gen1-i2c" for a generic R-Car Gen1 compatible device.
	"renesas,rcar-gen1-i2c" for a generic R-Car Gen1 compatible device.
	"renesas,rcar-gen2-i2c" for a generic R-Car Gen2 or RZ/G1 compatible
	"renesas,rcar-gen2-i2c" for a generic R-Car Gen2 or RZ/G1 compatible
				device.
				device.
	"renesas,rcar-gen3-i2c" for a generic R-Car Gen3 compatible device.
	"renesas,rcar-gen3-i2c" for a generic R-Car Gen3 or RZ/G2 compatible
				device.
	"renesas,i2c-rcar" (deprecated)
	"renesas,i2c-rcar" (deprecated)


	When compatible with the generic version, nodes must list the
	When compatible with the generic version, nodes must list the
+3 −1
Original line number Original line Diff line number Diff line
@@ -6,6 +6,7 @@ Required properties:
			- "renesas,iic-r8a7740" (R-Mobile A1)
			- "renesas,iic-r8a7740" (R-Mobile A1)
			- "renesas,iic-r8a7743" (RZ/G1M)
			- "renesas,iic-r8a7743" (RZ/G1M)
			- "renesas,iic-r8a7745" (RZ/G1E)
			- "renesas,iic-r8a7745" (RZ/G1E)
			- "renesas,iic-r8a774a1" (RZ/G2M)
			- "renesas,iic-r8a7790" (R-Car H2)
			- "renesas,iic-r8a7790" (R-Car H2)
			- "renesas,iic-r8a7791" (R-Car M2-W)
			- "renesas,iic-r8a7791" (R-Car M2-W)
			- "renesas,iic-r8a7792" (R-Car V2H)
			- "renesas,iic-r8a7792" (R-Car V2H)
@@ -17,7 +18,8 @@ Required properties:
			- "renesas,iic-sh73a0" (SH-Mobile AG5)
			- "renesas,iic-sh73a0" (SH-Mobile AG5)
			- "renesas,rcar-gen2-iic" (generic R-Car Gen2 or RZ/G1
			- "renesas,rcar-gen2-iic" (generic R-Car Gen2 or RZ/G1
							compatible device)
							compatible device)
			- "renesas,rcar-gen3-iic" (generic R-Car Gen3 compatible device)
			- "renesas,rcar-gen3-iic" (generic R-Car Gen3 or RZ/G2
							compatible device)
			- "renesas,rmobile-iic" (generic device)
			- "renesas,rmobile-iic" (generic device)


			When compatible with a generic R-Car version, nodes
			When compatible with a generic R-Car version, nodes
Loading