1056d3857SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2056d3857SKrzysztof Kozlowski%YAML 1.2
3056d3857SKrzysztof Kozlowski---
4056d3857SKrzysztof Kozlowski$id: http://devicetree.org/schemas/i2c/samsung,s3c2410-i2c.yaml#
5056d3857SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6056d3857SKrzysztof Kozlowski
7056d3857SKrzysztof Kozlowskititle: Samsung S3C/S5P/Exynos SoC I2C Controller
8056d3857SKrzysztof Kozlowski
9056d3857SKrzysztof Kozlowskimaintainers:
108a1e6bb3SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzk@kernel.org>
11056d3857SKrzysztof Kozlowski
12056d3857SKrzysztof Kozlowskiproperties:
13056d3857SKrzysztof Kozlowski  compatible:
14056d3857SKrzysztof Kozlowski    enum:
15056d3857SKrzysztof Kozlowski      - samsung,s3c2410-i2c
16056d3857SKrzysztof Kozlowski      - samsung,s3c2440-i2c
17056d3857SKrzysztof Kozlowski        # For s3c2440-like I2C used inside HDMIPHY block found on several SoCs:
18056d3857SKrzysztof Kozlowski      - samsung,s3c2440-hdmiphy-i2c
19056d3857SKrzysztof Kozlowski        # For s3c2440-like I2C used as a host to SATA PHY controller on an
20056d3857SKrzysztof Kozlowski        # internal bus:
21056d3857SKrzysztof Kozlowski      - samsung,exynos5-sata-phy-i2c
22056d3857SKrzysztof Kozlowski
23056d3857SKrzysztof Kozlowski  '#address-cells':
24056d3857SKrzysztof Kozlowski    const: 1
25056d3857SKrzysztof Kozlowski
26056d3857SKrzysztof Kozlowski  clocks:
27056d3857SKrzysztof Kozlowski    maxItems: 1
28056d3857SKrzysztof Kozlowski
29056d3857SKrzysztof Kozlowski  clock-names:
30056d3857SKrzysztof Kozlowski    items:
31056d3857SKrzysztof Kozlowski      - const: i2c
32056d3857SKrzysztof Kozlowski
33056d3857SKrzysztof Kozlowski  gpios:
34056d3857SKrzysztof Kozlowski    description: |
35056d3857SKrzysztof Kozlowski      The order of the GPIOs should be the following:: <SDA, SCL>.  The GPIO
36056d3857SKrzysztof Kozlowski      specifier depends on the gpio controller. Required in all cases except
37056d3857SKrzysztof Kozlowski      for "samsung,s3c2440-hdmiphy-i2c" whose input/output lines are
38056d3857SKrzysztof Kozlowski      permanently wired to the respective client.
39056d3857SKrzysztof Kozlowski      This property is deprecated. Use "pinctrl-0" and "pinctrl-names" instead.
40*98530c34SRob Herring    deprecated: true
41056d3857SKrzysztof Kozlowski
42056d3857SKrzysztof Kozlowski  interrupts:
43056d3857SKrzysztof Kozlowski    maxItems: 1
44056d3857SKrzysztof Kozlowski
45056d3857SKrzysztof Kozlowski  reg:
46056d3857SKrzysztof Kozlowski    maxItems: 1
47056d3857SKrzysztof Kozlowski
48056d3857SKrzysztof Kozlowski  samsung,i2c-max-bus-freq:
49056d3857SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
50056d3857SKrzysztof Kozlowski    description:
51056d3857SKrzysztof Kozlowski      Desired frequency in Hz of the bus.
52056d3857SKrzysztof Kozlowski    default: 100000
53056d3857SKrzysztof Kozlowski
54056d3857SKrzysztof Kozlowski  samsung,i2c-sda-delay:
55056d3857SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
56056d3857SKrzysztof Kozlowski    description:
57056d3857SKrzysztof Kozlowski      Delay (in ns) applied to data line (SDA) edges.
58056d3857SKrzysztof Kozlowski    default: 0
59056d3857SKrzysztof Kozlowski
60056d3857SKrzysztof Kozlowski  samsung,i2c-slave-addr:
61056d3857SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
62056d3857SKrzysztof Kozlowski    description:
63056d3857SKrzysztof Kozlowski      Slave address in multi-master environment.
64056d3857SKrzysztof Kozlowski    default: 0
65056d3857SKrzysztof Kozlowski
66056d3857SKrzysztof Kozlowski  samsung,sysreg-phandle:
67056d3857SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
68056d3857SKrzysztof Kozlowski    description: Pandle to syscon used to control the system registers.
69056d3857SKrzysztof Kozlowski
70056d3857SKrzysztof Kozlowski  '#size-cells':
71056d3857SKrzysztof Kozlowski    const: 0
72056d3857SKrzysztof Kozlowski
73056d3857SKrzysztof Kozlowskirequired:
74056d3857SKrzysztof Kozlowski  - compatible
75056d3857SKrzysztof Kozlowski  - reg
76056d3857SKrzysztof Kozlowski
77056d3857SKrzysztof KozlowskiallOf:
78056d3857SKrzysztof Kozlowski  - $ref: /schemas/i2c/i2c-controller.yaml#
79056d3857SKrzysztof Kozlowski  - if:
80056d3857SKrzysztof Kozlowski      properties:
81056d3857SKrzysztof Kozlowski        compatible:
82056d3857SKrzysztof Kozlowski          contains:
83056d3857SKrzysztof Kozlowski            enum:
84056d3857SKrzysztof Kozlowski              - samsung,s3c2440-hdmiphy-i2c
85056d3857SKrzysztof Kozlowski              - samsung,exynos5-sata-phy-i2c
86056d3857SKrzysztof Kozlowski    then:
87056d3857SKrzysztof Kozlowski      properties:
88056d3857SKrzysztof Kozlowski        gpios: false
89056d3857SKrzysztof Kozlowski
90056d3857SKrzysztof Kozlowski  - if:
91056d3857SKrzysztof Kozlowski      properties:
92056d3857SKrzysztof Kozlowski        compatible:
93056d3857SKrzysztof Kozlowski          contains:
94056d3857SKrzysztof Kozlowski            enum:
95056d3857SKrzysztof Kozlowski              - samsung,s3c2410-i2c
96056d3857SKrzysztof Kozlowski              - samsung,s3c2440-i2c
97056d3857SKrzysztof Kozlowski              - samsung,s3c2440-hdmiphy-i2c
98056d3857SKrzysztof Kozlowski    then:
99056d3857SKrzysztof Kozlowski      required:
100056d3857SKrzysztof Kozlowski        - interrupts
101056d3857SKrzysztof Kozlowski
102056d3857SKrzysztof KozlowskiunevaluatedProperties: false
103056d3857SKrzysztof Kozlowski
104056d3857SKrzysztof Kozlowskiexamples:
105056d3857SKrzysztof Kozlowski  - |
106056d3857SKrzysztof Kozlowski    #include <dt-bindings/clock/exynos5250.h>
107056d3857SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
108056d3857SKrzysztof Kozlowski
109056d3857SKrzysztof Kozlowski    i2c@12c60000 {
110056d3857SKrzysztof Kozlowski        compatible = "samsung,s3c2440-i2c";
111056d3857SKrzysztof Kozlowski        reg = <0x12C60000 0x100>;
112056d3857SKrzysztof Kozlowski        interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
113056d3857SKrzysztof Kozlowski        #address-cells = <1>;
114056d3857SKrzysztof Kozlowski        #size-cells = <0>;
115056d3857SKrzysztof Kozlowski        clocks = <&clock CLK_I2C0>;
116056d3857SKrzysztof Kozlowski        clock-names = "i2c";
117056d3857SKrzysztof Kozlowski        pinctrl-names = "default";
118056d3857SKrzysztof Kozlowski        pinctrl-0 = <&i2c0_bus>;
119056d3857SKrzysztof Kozlowski
120056d3857SKrzysztof Kozlowski        samsung,sysreg-phandle = <&sysreg_system_controller>;
121056d3857SKrzysztof Kozlowski        samsung,i2c-sda-delay = <100>;
122056d3857SKrzysztof Kozlowski        samsung,i2c-max-bus-freq = <20000>;
123056d3857SKrzysztof Kozlowski        samsung,i2c-slave-addr = <0x66>;
124056d3857SKrzysztof Kozlowski
125056d3857SKrzysztof Kozlowski        eeprom@50 {
126dedf10f4SRob Herring            compatible = "samsung,s524ad0xd1", "atmel,24c128";
127056d3857SKrzysztof Kozlowski            reg = <0x50>;
128056d3857SKrzysztof Kozlowski        };
129056d3857SKrzysztof Kozlowski    };
130056d3857SKrzysztof Kozlowski
131056d3857SKrzysztof Kozlowski    i2c@12ce0000 {
132056d3857SKrzysztof Kozlowski        compatible = "samsung,s3c2440-hdmiphy-i2c";
133056d3857SKrzysztof Kozlowski        reg = <0x12CE0000 0x1000>;
134056d3857SKrzysztof Kozlowski        interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
135056d3857SKrzysztof Kozlowski        #address-cells = <1>;
136056d3857SKrzysztof Kozlowski        #size-cells = <0>;
137056d3857SKrzysztof Kozlowski        clocks = <&clock CLK_I2C_HDMI>;
138056d3857SKrzysztof Kozlowski        clock-names = "i2c";
139056d3857SKrzysztof Kozlowski
140056d3857SKrzysztof Kozlowski        samsung,i2c-sda-delay = <100>;
141056d3857SKrzysztof Kozlowski        samsung,i2c-max-bus-freq = <66000>;
142056d3857SKrzysztof Kozlowski
143056d3857SKrzysztof Kozlowski        phy-i2c@38 {
144056d3857SKrzysztof Kozlowski            compatible = "samsung,exynos4212-hdmiphy";
145056d3857SKrzysztof Kozlowski            reg = <0x38>;
146056d3857SKrzysztof Kozlowski        };
147056d3857SKrzysztof Kozlowski    };
148056d3857SKrzysztof Kozlowski
149056d3857SKrzysztof Kozlowski    i2c@121d0000 {
150056d3857SKrzysztof Kozlowski        compatible = "samsung,exynos5-sata-phy-i2c";
151056d3857SKrzysztof Kozlowski        reg = <0x121D0000 0x100>;
152056d3857SKrzysztof Kozlowski        #address-cells = <1>;
153056d3857SKrzysztof Kozlowski        #size-cells = <0>;
154056d3857SKrzysztof Kozlowski        clocks = <&clock CLK_SATA_PHYI2C>;
155056d3857SKrzysztof Kozlowski        clock-names = "i2c";
156056d3857SKrzysztof Kozlowski
157056d3857SKrzysztof Kozlowski        samsung,i2c-sda-delay = <100>;
158056d3857SKrzysztof Kozlowski        samsung,i2c-max-bus-freq = <40000>;
159056d3857SKrzysztof Kozlowski
160056d3857SKrzysztof Kozlowski        phy-i2c@38 {
161056d3857SKrzysztof Kozlowski            compatible = "samsung,exynos-sataphy-i2c";
162056d3857SKrzysztof Kozlowski            reg = <0x38>;
163056d3857SKrzysztof Kozlowski        };
164056d3857SKrzysztof Kozlowski    };
165