xref: /freebsd/sys/contrib/device-tree/Bindings/i2c/apple,i2c.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28cc087a1SEmmanuel Vadot%YAML 1.2
38cc087a1SEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/i2c/apple,i2c.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68cc087a1SEmmanuel Vadot
78cc087a1SEmmanuel Vadottitle: Apple/PASemi I2C controller
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadotmaintainers:
108cc087a1SEmmanuel Vadot  - Sven Peter <sven@svenpeter.dev>
118cc087a1SEmmanuel Vadot
128cc087a1SEmmanuel Vadotdescription: |
138cc087a1SEmmanuel Vadot  Apple SoCs such as the M1 come with a I2C controller based on the one found
148cc087a1SEmmanuel Vadot  in machines with P. A. Semi's PWRficient processors.
158cc087a1SEmmanuel Vadot  The bus is used to communicate with e.g. USB PD chips or the speaker
168cc087a1SEmmanuel Vadot  amp.
178cc087a1SEmmanuel Vadot
188cc087a1SEmmanuel VadotallOf:
198cc087a1SEmmanuel Vadot  - $ref: /schemas/i2c/i2c-controller.yaml#
208cc087a1SEmmanuel Vadot
218cc087a1SEmmanuel Vadotproperties:
228cc087a1SEmmanuel Vadot  compatible:
238cc087a1SEmmanuel Vadot    items:
24e67e8565SEmmanuel Vadot      - enum:
25e67e8565SEmmanuel Vadot          - apple,t8103-i2c
26*fac71e4eSEmmanuel Vadot          - apple,t8112-i2c
27e67e8565SEmmanuel Vadot          - apple,t6000-i2c
288cc087a1SEmmanuel Vadot      - const: apple,i2c
298cc087a1SEmmanuel Vadot
308cc087a1SEmmanuel Vadot  reg:
318cc087a1SEmmanuel Vadot    maxItems: 1
328cc087a1SEmmanuel Vadot
338cc087a1SEmmanuel Vadot  clocks:
348cc087a1SEmmanuel Vadot    items:
358cc087a1SEmmanuel Vadot      - description: I2C bus reference clock
368cc087a1SEmmanuel Vadot
378cc087a1SEmmanuel Vadot  interrupts:
388cc087a1SEmmanuel Vadot    maxItems: 1
398cc087a1SEmmanuel Vadot
408cc087a1SEmmanuel Vadot  clock-frequency:
418cc087a1SEmmanuel Vadot    description: |
428cc087a1SEmmanuel Vadot      Desired I2C bus clock frequency in Hz. If not specified, 100 kHz will be
438cc087a1SEmmanuel Vadot      used. This frequency is generated by dividing the reference clock.
448cc087a1SEmmanuel Vadot      Allowed values are between ref_clk/(16*4) and ref_clk/(16*255).
458cc087a1SEmmanuel Vadot
46e67e8565SEmmanuel Vadot  power-domains:
47e67e8565SEmmanuel Vadot    maxItems: 1
48e67e8565SEmmanuel Vadot
498cc087a1SEmmanuel Vadotrequired:
508cc087a1SEmmanuel Vadot  - compatible
518cc087a1SEmmanuel Vadot  - reg
528cc087a1SEmmanuel Vadot  - clocks
538cc087a1SEmmanuel Vadot  - interrupts
548cc087a1SEmmanuel Vadot
558cc087a1SEmmanuel VadotunevaluatedProperties: false
568cc087a1SEmmanuel Vadot
578cc087a1SEmmanuel Vadotexamples:
588cc087a1SEmmanuel Vadot  - |
598cc087a1SEmmanuel Vadot    i2c@35010000 {
608cc087a1SEmmanuel Vadot      compatible = "apple,t8103-i2c", "apple,i2c";
618cc087a1SEmmanuel Vadot      reg = <0x35010000 0x4000>;
628cc087a1SEmmanuel Vadot      interrupt-parent = <&aic>;
638cc087a1SEmmanuel Vadot      interrupts = <0 627 4>;
648cc087a1SEmmanuel Vadot      clocks = <&ref_clk>;
658cc087a1SEmmanuel Vadot      #address-cells = <1>;
668cc087a1SEmmanuel Vadot      #size-cells = <0>;
678cc087a1SEmmanuel Vadot    };
68