1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/aspeed,i2c.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ASPEED I2C on the AST24XX, AST25XX, and AST26XX SoCs Device Tree Bindings
8
9maintainers:
10  - Rayn Chen <rayn_chen@aspeedtech.com>
11
12allOf:
13  - $ref: /schemas/i2c/i2c-controller.yaml#
14
15properties:
16  compatible:
17    enum:
18      - aspeed,ast2400-i2c-bus
19      - aspeed,ast2500-i2c-bus
20      - aspeed,ast2600-i2c-bus
21
22  reg:
23    minItems: 1
24    maxItems: 2
25    items:
26      - description: address offset and range of bus
27      - description: address offset and range of bus buffer
28
29  interrupts:
30    maxItems: 1
31
32  clocks:
33    maxItems: 1
34    description:
35      root clock of bus, should reference the APB
36      clock in the second cell
37
38  resets:
39    maxItems: 1
40
41  bus-frequency:
42    minimum: 500
43    maximum: 4000000
44    default: 100000
45    description: frequency of the bus clock in Hz defaults to 100 kHz when not
46      specified
47
48  multi-master:
49    type: boolean
50    description:
51      states that there is another master active on this bus
52
53required:
54  - reg
55  - compatible
56  - clocks
57  - resets
58
59unevaluatedProperties: false
60
61examples:
62  - |
63    #include <dt-bindings/clock/aspeed-clock.h>
64    i2c0: i2c-bus@40 {
65      #address-cells = <1>;
66      #size-cells = <0>;
67      #interrupt-cells = <1>;
68      compatible = "aspeed,ast2500-i2c-bus";
69      reg = <0x40 0x40>;
70      clocks = <&syscon ASPEED_CLK_APB>;
71      resets = <&syscon ASPEED_RESET_I2C>;
72      bus-frequency = <100000>;
73      interrupts = <0>;
74      interrupt-parent = <&i2c_ic>;
75    };
76