xref: /linux/Documentation/devicetree/bindings/i2c/apple,i2c.yaml (revision 6e9a12f85a7567bb9a41d5230468886bd6a27b20)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/apple,i2c.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Apple/PASemi I2C controller
8
9maintainers:
10  - Sven Peter <sven@svenpeter.dev>
11
12description: |
13  Apple SoCs such as the M1 come with a I2C controller based on the one found
14  in machines with P. A. Semi's PWRficient processors.
15  The bus is used to communicate with e.g. USB PD chips or the speaker
16  amp.
17
18allOf:
19  - $ref: /schemas/i2c/i2c-controller.yaml#
20
21properties:
22  compatible:
23    items:
24      - enum:
25          - apple,s5l8960x-i2c
26          - apple,t7000-i2c
27          - apple,s8000-i2c
28          - apple,t8010-i2c
29          - apple,t8015-i2c
30          - apple,t8103-i2c
31          - apple,t8112-i2c
32          - apple,t6000-i2c
33      - const: apple,i2c
34
35  reg:
36    maxItems: 1
37
38  clocks:
39    items:
40      - description: I2C bus reference clock
41
42  interrupts:
43    maxItems: 1
44
45  clock-frequency:
46    description: |
47      Desired I2C bus clock frequency in Hz. If not specified, 100 kHz will be
48      used. This frequency is generated by dividing the reference clock.
49      Allowed values are between ref_clk/(16*4) and ref_clk/(16*255).
50
51  power-domains:
52    maxItems: 1
53
54required:
55  - compatible
56  - reg
57  - clocks
58  - interrupts
59
60unevaluatedProperties: false
61
62examples:
63  - |
64    i2c@35010000 {
65      compatible = "apple,t8103-i2c", "apple,i2c";
66      reg = <0x35010000 0x4000>;
67      interrupt-parent = <&aic>;
68      interrupts = <0 627 4>;
69      clocks = <&ref_clk>;
70      #address-cells = <1>;
71      #size-cells = <0>;
72    };
73