Commit fba676bd authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'i2c-for-7.1-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c updates from Wolfram Sang:
 "The biggest news in this pull request is that it will start the last
  cycle of me handling the I2C subsystem. From 7.2. on, I will pass
  maintainership to Andi Shyti who has been maintaining the I2C drivers
  for a while now and who has done a great job in doing so.

  We will use this cycle for a hopefully smooth transition. Thanks must
  go to Andi for stepping up! I will still be around for guidance.

  Updates:
   - generic cleanups in npcm7xx, qcom-cci, xiic and designware DT
     bindings
   - atr: use kzalloc_flex for alias pool allocation
   - ixp4xx: convert bindings to DT schema
   - ocores: use read_poll_timeout_atomic() for polling waits
   - qcom-geni: skip extra TX DMA TRE for single read messages
   - s3c24xx: validate SMBus block length before using it
   - spacemit: refactor xfer path and add K1 PIO support
   - tegra: identify DVC and VI with SoC data variants
   - tegra: support SoC-specific register offsets
   - xiic: switch to devres and generic fw properties
   - xiic: skip input clock setup on non-OF systems
   - various minor improvements in other drivers

  rtl9300:
   - add per-SoC callbacks and clock support for RTL9607C
   - add support for new 50 kHz and 2.5 MHz bus speeds
   - general refactoring in preparation for RTL9607C support

  New support:
   - DesignWare GOOG5000 (ACPI HID)
   - Intel Nova Lake (ACPI ID)
   - Realtek RTL9607C
   - SpacemiT K3 binding
   - Tegra410 register layout support"

* tag 'i2c-for-7.1-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (40 commits)
  i2c: usbio: Add ACPI device-id for NVL platforms
  i2c: qcom-geni: Avoid extra TX DMA TRE for single read message in GPI mode
  i2c: atr: use kzalloc_flex
  i2c: spacemit: introduce pio for k1
  i2c: spacemit: move i2c_xfer_msg()
  i2c: xiic: skip input clock setup on non-OF systems
  i2c: xiic: use numbered adapter registration
  i2c: xiic: cosmetic: use resource format specifier in debug log
  i2c: xiic: cosmetic cleanup
  i2c: xiic: switch to generic device property accessors
  i2c: xiic: remove duplicate error message
  i2c: xiic: switch to devres managed APIs
  i2c: rtl9300: add RTL9607C i2c controller support
  i2c: rtl9300: introduce new function properties to driver data
  i2c: rtl9300: introduce clk struct for upcoming rtl9607 support
  dt-bindings: i2c: realtek,rtl9301-i2c: extend for clocks and RTL9607C support
  i2c: rtl9300: introduce a property for 8 bit width reg address
  i2c: rtl9300: introduce F_BUSY to the reg_fields struct
  i2c: rtl9300: introduce max length property to driver data
  i2c: rtl9300: split data_reg into read and write reg
  ...
parents 1e769656 e336aa3c
Loading
Loading
Loading
Loading
+0 −20
Original line number Diff line number Diff line
i2c Controller on XScale platforms such as IOP3xx and IXP4xx

Required properties:
- compatible : Must be one of
  "intel,iop3xx-i2c"
  "intel,ixp4xx-i2c";
- reg
- #address-cells = <1>;
- #size-cells = <0>;

Optional properties:
- Child nodes conforming to i2c bus binding

Example:

i2c@c8011000 {
	compatible = "intel,ixp4xx-i2c";
	reg = <0xc8011000 0x18>;
	interrupts = <33 IRQ_TYPE_LEVEL_LOW>;
};
+41 −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/intel,ixp4xx-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: I2c Controller on XScale platforms such as IOP3xx and IXP4xx

maintainers:
  - Andi Shyti <andi.shyti@kernel.org>

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

properties:
  compatible:
    enum:
      - intel,iop3xx-i2c
      - intel,ixp4xx-i2c

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c@c8011000 {
        compatible = "intel,ixp4xx-i2c";
        reg = <0xc8011000 0x18>;
        interrupts = <33 IRQ_TYPE_LEVEL_LOW>;
    };
+20 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ properties:
      - items:
          - enum:
              - qcom,kaanapali-cci
              - qcom,milos-cci
              - qcom,qcm2290-cci
              - qcom,qcs8300-cci
              - qcom,sa8775p-cci
@@ -34,6 +35,7 @@ properties:
              - qcom,sc8280xp-cci
              - qcom,sdm670-cci
              - qcom,sdm845-cci
              - qcom,sm6150-cci
              - qcom,sm6350-cci
              - qcom,sm8250-cci
              - qcom,sm8450-cci
@@ -251,6 +253,7 @@ allOf:
          contains:
            enum:
              - qcom,sa8775p-cci
              - qcom,sm6150-cci
              - qcom,sm8550-cci
              - qcom,sm8650-cci
              - qcom,x1e80100-cci
@@ -265,6 +268,23 @@ allOf:
            - const: cpas_ahb
            - const: cci

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,milos-cci
    then:
      properties:
        clocks:
          minItems: 3
          maxItems: 3
        clock-names:
          items:
            - const: soc_ahb
            - const: cpas_ahb
            - const: cci

additionalProperties: false

examples:
+15 −0
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@ description:
  assigned to either I2C controller.
  RTL9310 SoCs have equal capabilities but support 12 common SDA lines which
  can be assigned to either I2C controller.
  RTL9607C SoCs have equal capabilities but each controller only supports 1
  SCL/SDA line.

properties:
  compatible:
@@ -34,6 +36,7 @@ properties:
      - enum:
          - realtek,rtl9301-i2c
          - realtek,rtl9310-i2c
          - realtek,rtl9607-i2c

  reg:
    items:
@@ -51,6 +54,9 @@ properties:
      The SCL line number of this I2C controller.
    enum: [ 0, 1 ]

  clocks:
    maxItems: 1

patternProperties:
  '^i2c@[0-9ab]$':
    $ref: /schemas/i2c/i2c-controller.yaml
@@ -81,6 +87,15 @@ allOf:
    then:
      patternProperties:
        '^i2c@[89ab]$': false
  - if:
      properties:
        compatible:
          contains:
            const: realtek,rtl9607-i2c
    then:
      required:
        - realtek,scl
        - clocks

required:
  - compatible
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ properties:
      - items:
          - enum:
              - renesas,riic-r9a08g045   # RZ/G3S
              - renesas,riic-r9a08g046   # RZ/G3L
              - renesas,riic-r9a09g047   # RZ/G3E
              - renesas,riic-r9a09g056   # RZ/V2N
          - const: renesas,riic-r9a09g057   # RZ/V2H(P)
Loading