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