Commit 0e9ee7dd authored by Wolfram Sang's avatar Wolfram Sang
Browse files

Merge tag 'i2c-host-6.10' of...

Merge tag 'i2c-host-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow

Code cleanup:

A substantial code cleanup from Wolfram affects many drivers:

 - Removed dev_err() in case of timeout during i2c transfers, as
   timeouts are not considered errors and should not be treated
   as such.
 - For the same reason, 'timeout' variables have been renamed to
   'time_left'.

Other cleanups:

 - The viperboard driver now omits the "owner = THIS_MODULE"
   assignment.
 - Finally, we have eliminated the last remnants of
   I2C_CLASS_SPD: support for class-based devices has been
   completely removed from the mux-gpio driver.
 - In the ocore devices, a more standard use of ioport_map() for
   8-bit I/O read/write operations has been implemented.
 - The mpc driver will be among the first i2c drivers and one of
   the first in the kernel to use the __free auto cleanup
   routine.
 - The designware driver now uses MODULE_DEVICE_TABLE() instead
   of MODULE_ALIAS() for better consistency with the ID table.
 - Added prefixes to the octeon register macros.
 - Fixed some checkpatch errors in the newly created
   i2c-viai2c-common.c file.

Code refactoring:

 - The riic driver has refactored read/write operations to more
   flexibly support new platforms, laying the foundation for new
   SoC peculiarities.
 - In the i801 driver, a notifier callback has been created for
   muxed child segments.
 - The lpi2c driver now sets a clock rate during probe instead
   of continuously calling clk_get_rate().
 - Improvements in the clock divisor logic to accommodate other
   clock frequencies.
 - Combined some common functionalities during initialization
   for the wmt driver and separated others that can be
   independently used by different drivers. Now, all the common
   functionalities are grouped in the i2c-viai2c-common.c file.
 - Improved the clock stretching mechanism in the newly created
   i2c-viai2c-common.c file, inherited from the previous
   i2c-wmt.c.

Features added:

 - The octeon driver now includes watchdog timeout handling.
 - Added high-speed support for the octeon driver.

Added support for:

 - R9A09G057 SoC in the riic driver.
 - Rapids-D I2C controller in the designware driver.
 - Cadence driver now also supports RISC-V architectures.
 - Added support to the WMT device as a separate driver using the
   newly created i2c-viai2c-common.c functionalities.
 - Added support for the Zhaoxin I2C controller.

Some improvements in the bindings:

 - The pnx driver is converted to dtschema.
 - Added documentation for the Qualcomm SC8280XP.
parents 10316dcc 61e05bad
Loading
Loading
Loading
Loading
+0 −34
Original line number Diff line number Diff line
* NXP PNX I2C Controller

Required properties:

 - reg: Offset and length of the register set for the device
 - compatible: should be "nxp,pnx-i2c"
 - interrupts: configure one interrupt line
 - #address-cells: always 1 (for i2c addresses)
 - #size-cells: always 0

Optional properties:

 - clock-frequency: desired I2C bus clock frequency in Hz, Default: 100000 Hz

Examples:

	i2c1: i2c@400a0000 {
		compatible = "nxp,pnx-i2c";
		reg = <0x400a0000 0x100>;
		interrupt-parent = <&mic>;
		interrupts = <51 0>;
		#address-cells = <1>;
		#size-cells = <0>;
	};

	i2c2: i2c@400a8000 {
		compatible = "nxp,pnx-i2c";
		reg = <0x400a8000 0x100>;
		interrupt-parent = <&mic>;
		interrupts = <50 0>;
		#address-cells = <1>;
		#size-cells = <0>;
		clock-frequency = <100000>;
	};
+46 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/nxp,pnx-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP PNX I2C Controller

maintainers:
  - Animesh Agarwal <animeshagarwal28@gmail.com>

allOf:
  - $ref: /schemas/i2c/i2c-controller.yaml#

properties:
  compatible:
    const: nxp,pnx-i2c

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clock-frequency:
    default: 100000

required:
  - compatible
  - reg
  - interrupts
  - "#address-cells"
  - "#size-cells"

unevaluatedProperties: false

examples:
  - |
    i2c@400a0000 {
        compatible = "nxp,pnx-i2c";
        reg = <0x400a0000 0x100>;
        interrupt-parent = <&mic>;
        interrupts = <51 0>;
        #address-cells = <1>;
        #size-cells = <0>;
    };
+19 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ properties:
      - items:
          - enum:
              - qcom,sc7280-cci
              - qcom,sc8280xp-cci
              - qcom,sdm845-cci
              - qcom,sm6350-cci
              - qcom,sm8250-cci
@@ -176,6 +177,24 @@ allOf:
            - const: cci
            - const: cci_src

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc8280xp-cci
    then:
      properties:
        clocks:
          minItems: 4
          maxItems: 4
        clock-names:
          items:
            - const: camnoc_axi
            - const: slow_ahb_src
            - const: cpas_ahb
            - const: cci

additionalProperties: false

examples:
+11 −8
Original line number Diff line number Diff line
@@ -15,7 +15,8 @@ allOf:

properties:
  compatible:
    items:
    oneOf:
      - items:
          - enum:
              - renesas,riic-r7s72100   # RZ/A1H
              - renesas,riic-r7s9210    # RZ/A2M
@@ -24,6 +25,8 @@ properties:
              - renesas,riic-r9a07g054  # RZ/V2L
          - const: renesas,riic-rz      # RZ/A or RZ/G2L

      - const: renesas,riic-r9a09g057   # RZ/V2H(P)

  reg:
    maxItems: 1

+10 −2
Original line number Diff line number Diff line
@@ -2320,7 +2320,7 @@ M: Vladimir Zapolskiy <vz@mleia.com>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Maintained
T:	git git://github.com/vzapolskiy/linux-lpc32xx.git
F:	Documentation/devicetree/bindings/i2c/i2c-pnx.txt
F:	Documentation/devicetree/bindings/i2c/nxp,pnx-i2c.yaml
F:	arch/arm/boot/dts/nxp/lpc/lpc32*
F:	arch/arm/mach-lpc32xx/
F:	drivers/i2c/busses/i2c-pnx.c
@@ -3017,7 +3017,7 @@ S: Orphan
F:	Documentation/devicetree/bindings/i2c/i2c-wmt.txt
F:	arch/arm/mach-vt8500/
F:	drivers/clocksource/timer-vt8500.c
F:	drivers/i2c/busses/i2c-wmt.c
F:	drivers/i2c/busses/i2c-viai2c-wmt.c
F:	drivers/mmc/host/wmt-sdmmc.c
F:	drivers/pwm/pwm-vt8500.c
F:	drivers/rtc/rtc-vt8500.c
@@ -10258,6 +10258,14 @@ L: linux-i2c@vger.kernel.org
F:	Documentation/i2c/busses/i2c-ismt.rst
F:	drivers/i2c/busses/i2c-ismt.c
I2C/SMBUS ZHAOXIN DRIVER
M:	Hans Hu <hanshu@zhaoxin.com>
L:	linux-i2c@vger.kernel.org
S:	Maintained
W:	https://www.zhaoxin.com
F:	drivers/i2c/busses/i2c-viai2c-common.c
F:	drivers/i2c/busses/i2c-viai2c-zhaoxin.c
I2C/SMBUS STUB DRIVER
M:	Jean Delvare <jdelvare@suse.com>
L:	linux-i2c@vger.kernel.org
Loading