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