Commit 7e5d4236 authored by Wolfram Sang's avatar Wolfram Sang
Browse files

Merge tag 'i2c-host-6.9-part2' of...

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

Théo adds support for the Mobileye EyeQ5-I2C in the bindings.
This patch is followed by eight commits featuring improvements to
the Nomadik controller, such as simplification of the IRQ logic,
renaming of the private data structure, more efficient use of
FIELD_PREP/GET, GENMASK, etc., better time measurement with
ktime, and more.
parents a4145ce1 bb271301
Loading
Loading
Loading
Loading
+43 −6
Original line number Diff line number Diff line
@@ -14,9 +14,6 @@ description: The Nomadik I2C host controller began its life in the ST
maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

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

# Need a custom select here or 'arm,primecell' will match on lots of nodes
select:
  properties:
@@ -24,21 +21,23 @@ select:
      contains:
        enum:
          - st,nomadik-i2c
          - mobileye,eyeq5-i2c
  required:
    - compatible

properties:
  compatible:
    oneOf:
      # The variant found in STn8815
      - items:
          - const: st,nomadik-i2c
          - const: arm,primecell
      # The variant found in DB8500
      - items:
          - const: stericsson,db8500-i2c
          - const: st,nomadik-i2c
          - const: arm,primecell
      - items:
          - const: mobileye,eyeq5-i2c
          - const: arm,primecell

  reg:
    maxItems: 1
@@ -55,7 +54,7 @@ properties:
      - items:
          - const: mclk
          - const: apb_pclk
      # Clock name in DB8500
      # Clock name in DB8500 or EyeQ5
      - items:
          - const: i2cclk
          - const: apb_pclk
@@ -70,6 +69,16 @@ properties:
    minimum: 1
    maximum: 400000

  mobileye,olb:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - items:
          - description: Phandle to OLB system controller node.
          - description: Platform-wide controller ID (integer starting from zero).
    description:
      The phandle pointing to OLB system controller node, with the I2C
      controller index.

required:
  - compatible
  - reg
@@ -79,6 +88,20 @@ required:

unevaluatedProperties: false

allOf:
  - $ref: /schemas/i2c/i2c-controller.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: mobileye,eyeq5-i2c
    then:
      required:
        - mobileye,olb
    else:
      properties:
        mobileye,olb: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
@@ -111,5 +134,19 @@ examples:
      clocks = <&i2c0clk>, <&pclki2c0>;
      clock-names = "mclk", "apb_pclk";
    };
  - |
    #include <dt-bindings/interrupt-controller/mips-gic.h>
    i2c@300000 {
      compatible = "mobileye,eyeq5-i2c", "arm,primecell";
      reg = <0x300000 0x1000>;
      interrupt-parent = <&gic>;
      interrupts = <GIC_SHARED 1 IRQ_TYPE_LEVEL_HIGH>;
      clock-frequency = <400000>;
      #address-cells = <1>;
      #size-cells = <0>;
      clocks = <&i2c_ser_clk>, <&i2c_clk>;
      clock-names = "i2cclk", "apb_pclk";
      mobileye,olb = <&olb 0>;
    };

...
+432 −308

File changed.

Preview size limit exceeded, changes collapsed.