Commit ea8491a2 authored by Sam Protsenko's avatar Sam Protsenko Committed by Wolfram Sang
Browse files

dt-bindings: i2c: exynos5: Add bus clock



In new Exynos SoCs (like Exynos850) where HSI2C is implemented as a
part of USIv2 block, there are two clocks provided to HSI2C controller:
  - PCLK: bus clock (APB), provides access to register interface
  - IPCLK: operating IP-core clock; SCL is derived from this one

Both clocks have to be asserted for HSI2C to be functional in that case.

Modify bindings doc to allow specifying bus clock in addition to
already described operating clock.

Signed-off-by: default avatarSam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent bd5f985d
Loading
Loading
Loading
Loading
+53 −6
Original line number Diff line number Diff line
@@ -18,9 +18,6 @@ description: |
  define USI node in device tree file, choosing "i2c" configuration. Please see
  Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml for details.

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

properties:
  compatible:
    oneOf:
@@ -49,11 +46,16 @@ properties:
      clock-frequency is >= 1MHz.

  clocks:
    maxItems: 1
    description: I2C operating clock
    minItems: 1
    items:
      - description: I2C operating clock
      - description: Bus clock (APB)

  clock-names:
    const: hsi2c
    minItems: 1
    items:
      - const: hsi2c
      - const: hsi2c_pclk

required:
  - compatible
@@ -61,6 +63,31 @@ required:
  - interrupts
  - clocks

allOf:
  - $ref: /schemas/i2c/i2c-controller.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,exynosautov9-hsi2c

    then:
      properties:
        clocks:
          minItems: 2

        clock-names:
          minItems: 2

      required:
        - clock-names

    else:
      properties:
        clocks:
          maxItems: 1

unevaluatedProperties: false

examples:
@@ -84,3 +111,23 @@ examples:
            reg = <0x66>;
        };
    };

  - |
    #include <dt-bindings/clock/exynos850.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    hsi2c_2: i2c@138c0000 {
        compatible = "samsung,exynosautov9-hsi2c";
        reg = <0x138c0000 0xc0>;
        interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
        #address-cells = <1>;
        #size-cells = <0>;
        clocks = <&cmu_peri CLK_GOUT_HSI2C2_IPCLK>,
                 <&cmu_peri CLK_GOUT_HSI2C2_PCLK>;
        clock-names = "hsi2c", "hsi2c_pclk";

        pmic@66 {
            /* compatible = "samsung,s2mps11-pmic"; */
            reg = <0x66>;
        };
    };