1*056d3857SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*056d3857SKrzysztof Kozlowski%YAML 1.2
3*056d3857SKrzysztof Kozlowski---
4*056d3857SKrzysztof Kozlowski$id: http://devicetree.org/schemas/i2c/samsung,s3c2410-i2c.yaml#
5*056d3857SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*056d3857SKrzysztof Kozlowski
7*056d3857SKrzysztof Kozlowskititle: Samsung S3C/S5P/Exynos SoC I2C Controller
8*056d3857SKrzysztof Kozlowski
9*056d3857SKrzysztof Kozlowskimaintainers:
10*056d3857SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
11*056d3857SKrzysztof Kozlowski
12*056d3857SKrzysztof Kozlowskiproperties:
13*056d3857SKrzysztof Kozlowski  compatible:
14*056d3857SKrzysztof Kozlowski    enum:
15*056d3857SKrzysztof Kozlowski      - samsung,s3c2410-i2c
16*056d3857SKrzysztof Kozlowski      - samsung,s3c2440-i2c
17*056d3857SKrzysztof Kozlowski        # For s3c2440-like I2C used inside HDMIPHY block found on several SoCs:
18*056d3857SKrzysztof Kozlowski      - samsung,s3c2440-hdmiphy-i2c
19*056d3857SKrzysztof Kozlowski        # For s3c2440-like I2C used as a host to SATA PHY controller on an
20*056d3857SKrzysztof Kozlowski        # internal bus:
21*056d3857SKrzysztof Kozlowski      - samsung,exynos5-sata-phy-i2c
22*056d3857SKrzysztof Kozlowski
23*056d3857SKrzysztof Kozlowski  '#address-cells':
24*056d3857SKrzysztof Kozlowski    const: 1
25*056d3857SKrzysztof Kozlowski
26*056d3857SKrzysztof Kozlowski  clocks:
27*056d3857SKrzysztof Kozlowski    maxItems: 1
28*056d3857SKrzysztof Kozlowski
29*056d3857SKrzysztof Kozlowski  clock-names:
30*056d3857SKrzysztof Kozlowski    items:
31*056d3857SKrzysztof Kozlowski      - const: i2c
32*056d3857SKrzysztof Kozlowski
33*056d3857SKrzysztof Kozlowski  gpios:
34*056d3857SKrzysztof Kozlowski    description: |
35*056d3857SKrzysztof Kozlowski      The order of the GPIOs should be the following:: <SDA, SCL>.  The GPIO
36*056d3857SKrzysztof Kozlowski      specifier depends on the gpio controller. Required in all cases except
37*056d3857SKrzysztof Kozlowski      for "samsung,s3c2440-hdmiphy-i2c" whose input/output lines are
38*056d3857SKrzysztof Kozlowski      permanently wired to the respective client.
39*056d3857SKrzysztof Kozlowski      This property is deprecated. Use "pinctrl-0" and "pinctrl-names" instead.
40*056d3857SKrzysztof Kozlowski    deprecated: yes
41*056d3857SKrzysztof Kozlowski
42*056d3857SKrzysztof Kozlowski  interrupts:
43*056d3857SKrzysztof Kozlowski    maxItems: 1
44*056d3857SKrzysztof Kozlowski
45*056d3857SKrzysztof Kozlowski  reg:
46*056d3857SKrzysztof Kozlowski    maxItems: 1
47*056d3857SKrzysztof Kozlowski
48*056d3857SKrzysztof Kozlowski  samsung,i2c-max-bus-freq:
49*056d3857SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
50*056d3857SKrzysztof Kozlowski    description:
51*056d3857SKrzysztof Kozlowski      Desired frequency in Hz of the bus.
52*056d3857SKrzysztof Kozlowski    default: 100000
53*056d3857SKrzysztof Kozlowski
54*056d3857SKrzysztof Kozlowski  samsung,i2c-sda-delay:
55*056d3857SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
56*056d3857SKrzysztof Kozlowski    description:
57*056d3857SKrzysztof Kozlowski      Delay (in ns) applied to data line (SDA) edges.
58*056d3857SKrzysztof Kozlowski    default: 0
59*056d3857SKrzysztof Kozlowski
60*056d3857SKrzysztof Kozlowski  samsung,i2c-slave-addr:
61*056d3857SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
62*056d3857SKrzysztof Kozlowski    description:
63*056d3857SKrzysztof Kozlowski      Slave address in multi-master environment.
64*056d3857SKrzysztof Kozlowski    default: 0
65*056d3857SKrzysztof Kozlowski
66*056d3857SKrzysztof Kozlowski  samsung,sysreg-phandle:
67*056d3857SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
68*056d3857SKrzysztof Kozlowski    description: Pandle to syscon used to control the system registers.
69*056d3857SKrzysztof Kozlowski
70*056d3857SKrzysztof Kozlowski  '#size-cells':
71*056d3857SKrzysztof Kozlowski    const: 0
72*056d3857SKrzysztof Kozlowski
73*056d3857SKrzysztof Kozlowskirequired:
74*056d3857SKrzysztof Kozlowski  - compatible
75*056d3857SKrzysztof Kozlowski  - reg
76*056d3857SKrzysztof Kozlowski
77*056d3857SKrzysztof KozlowskiallOf:
78*056d3857SKrzysztof Kozlowski  - $ref: /schemas/i2c/i2c-controller.yaml#
79*056d3857SKrzysztof Kozlowski  - if:
80*056d3857SKrzysztof Kozlowski      properties:
81*056d3857SKrzysztof Kozlowski        compatible:
82*056d3857SKrzysztof Kozlowski          contains:
83*056d3857SKrzysztof Kozlowski            enum:
84*056d3857SKrzysztof Kozlowski              - samsung,s3c2440-hdmiphy-i2c
85*056d3857SKrzysztof Kozlowski              - samsung,exynos5-sata-phy-i2c
86*056d3857SKrzysztof Kozlowski    then:
87*056d3857SKrzysztof Kozlowski      properties:
88*056d3857SKrzysztof Kozlowski        gpios: false
89*056d3857SKrzysztof Kozlowski
90*056d3857SKrzysztof Kozlowski  - if:
91*056d3857SKrzysztof Kozlowski      properties:
92*056d3857SKrzysztof Kozlowski        compatible:
93*056d3857SKrzysztof Kozlowski          contains:
94*056d3857SKrzysztof Kozlowski            enum:
95*056d3857SKrzysztof Kozlowski              - samsung,s3c2410-i2c
96*056d3857SKrzysztof Kozlowski              - samsung,s3c2440-i2c
97*056d3857SKrzysztof Kozlowski              - samsung,s3c2440-hdmiphy-i2c
98*056d3857SKrzysztof Kozlowski    then:
99*056d3857SKrzysztof Kozlowski      required:
100*056d3857SKrzysztof Kozlowski        - interrupts
101*056d3857SKrzysztof Kozlowski
102*056d3857SKrzysztof KozlowskiunevaluatedProperties: false
103*056d3857SKrzysztof Kozlowski
104*056d3857SKrzysztof Kozlowskiexamples:
105*056d3857SKrzysztof Kozlowski  - |
106*056d3857SKrzysztof Kozlowski    #include <dt-bindings/clock/exynos5250.h>
107*056d3857SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
108*056d3857SKrzysztof Kozlowski
109*056d3857SKrzysztof Kozlowski    i2c@12c60000 {
110*056d3857SKrzysztof Kozlowski        compatible = "samsung,s3c2440-i2c";
111*056d3857SKrzysztof Kozlowski        reg = <0x12C60000 0x100>;
112*056d3857SKrzysztof Kozlowski        interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
113*056d3857SKrzysztof Kozlowski        #address-cells = <1>;
114*056d3857SKrzysztof Kozlowski        #size-cells = <0>;
115*056d3857SKrzysztof Kozlowski        clocks = <&clock CLK_I2C0>;
116*056d3857SKrzysztof Kozlowski        clock-names = "i2c";
117*056d3857SKrzysztof Kozlowski        pinctrl-names = "default";
118*056d3857SKrzysztof Kozlowski        pinctrl-0 = <&i2c0_bus>;
119*056d3857SKrzysztof Kozlowski
120*056d3857SKrzysztof Kozlowski        samsung,sysreg-phandle = <&sysreg_system_controller>;
121*056d3857SKrzysztof Kozlowski        samsung,i2c-sda-delay = <100>;
122*056d3857SKrzysztof Kozlowski        samsung,i2c-max-bus-freq = <20000>;
123*056d3857SKrzysztof Kozlowski        samsung,i2c-slave-addr = <0x66>;
124*056d3857SKrzysztof Kozlowski
125*056d3857SKrzysztof Kozlowski        eeprom@50 {
126*056d3857SKrzysztof Kozlowski            compatible = "samsung,s524ad0xd1";
127*056d3857SKrzysztof Kozlowski            reg = <0x50>;
128*056d3857SKrzysztof Kozlowski        };
129*056d3857SKrzysztof Kozlowski    };
130*056d3857SKrzysztof Kozlowski
131*056d3857SKrzysztof Kozlowski    i2c@12ce0000 {
132*056d3857SKrzysztof Kozlowski        compatible = "samsung,s3c2440-hdmiphy-i2c";
133*056d3857SKrzysztof Kozlowski        reg = <0x12CE0000 0x1000>;
134*056d3857SKrzysztof Kozlowski        interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
135*056d3857SKrzysztof Kozlowski        #address-cells = <1>;
136*056d3857SKrzysztof Kozlowski        #size-cells = <0>;
137*056d3857SKrzysztof Kozlowski        clocks = <&clock CLK_I2C_HDMI>;
138*056d3857SKrzysztof Kozlowski        clock-names = "i2c";
139*056d3857SKrzysztof Kozlowski
140*056d3857SKrzysztof Kozlowski        samsung,i2c-sda-delay = <100>;
141*056d3857SKrzysztof Kozlowski        samsung,i2c-max-bus-freq = <66000>;
142*056d3857SKrzysztof Kozlowski
143*056d3857SKrzysztof Kozlowski        phy-i2c@38 {
144*056d3857SKrzysztof Kozlowski            compatible = "samsung,exynos4212-hdmiphy";
145*056d3857SKrzysztof Kozlowski            reg = <0x38>;
146*056d3857SKrzysztof Kozlowski        };
147*056d3857SKrzysztof Kozlowski    };
148*056d3857SKrzysztof Kozlowski
149*056d3857SKrzysztof Kozlowski    i2c@121d0000 {
150*056d3857SKrzysztof Kozlowski        compatible = "samsung,exynos5-sata-phy-i2c";
151*056d3857SKrzysztof Kozlowski        reg = <0x121D0000 0x100>;
152*056d3857SKrzysztof Kozlowski        #address-cells = <1>;
153*056d3857SKrzysztof Kozlowski        #size-cells = <0>;
154*056d3857SKrzysztof Kozlowski        clocks = <&clock CLK_SATA_PHYI2C>;
155*056d3857SKrzysztof Kozlowski        clock-names = "i2c";
156*056d3857SKrzysztof Kozlowski
157*056d3857SKrzysztof Kozlowski        samsung,i2c-sda-delay = <100>;
158*056d3857SKrzysztof Kozlowski        samsung,i2c-max-bus-freq = <40000>;
159*056d3857SKrzysztof Kozlowski
160*056d3857SKrzysztof Kozlowski        phy-i2c@38 {
161*056d3857SKrzysztof Kozlowski            compatible = "samsung,exynos-sataphy-i2c";
162*056d3857SKrzysztof Kozlowski            reg = <0x38>;
163*056d3857SKrzysztof Kozlowski        };
164*056d3857SKrzysztof Kozlowski    };
165