xref: /freebsd/sys/contrib/device-tree/Bindings/i2c/st,nomadik-i2c.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b97ee269SEmmanuel Vadot%YAML 1.2
3b97ee269SEmmanuel Vadot---
4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/i2c/st,nomadik-i2c.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7*8bab661aSEmmanuel Vadottitle: ST Microelectronics Nomadik I2C
8b97ee269SEmmanuel Vadot
9b97ee269SEmmanuel Vadotdescription: The Nomadik I2C host controller began its life in the ST
10b97ee269SEmmanuel Vadot  Microelectronics STn8800 SoC, and was then inherited into STn8810 and
11b97ee269SEmmanuel Vadot  STn8815. It was part of the prototype STn8500 which then became ST-Ericsson
12b97ee269SEmmanuel Vadot  DB8500 after the merge of these two companies wireless divisions.
13b97ee269SEmmanuel Vadot
14b97ee269SEmmanuel Vadotmaintainers:
15b97ee269SEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
16b97ee269SEmmanuel Vadot
17b97ee269SEmmanuel VadotallOf:
18b97ee269SEmmanuel Vadot  - $ref: /schemas/i2c/i2c-controller.yaml#
19b97ee269SEmmanuel Vadot
20b97ee269SEmmanuel Vadot# Need a custom select here or 'arm,primecell' will match on lots of nodes
21b97ee269SEmmanuel Vadotselect:
22b97ee269SEmmanuel Vadot  properties:
23b97ee269SEmmanuel Vadot    compatible:
24b97ee269SEmmanuel Vadot      contains:
25b97ee269SEmmanuel Vadot        enum:
26b97ee269SEmmanuel Vadot          - st,nomadik-i2c
27b97ee269SEmmanuel Vadot  required:
28b97ee269SEmmanuel Vadot    - compatible
29b97ee269SEmmanuel Vadot
30b97ee269SEmmanuel Vadotproperties:
31b97ee269SEmmanuel Vadot  compatible:
32b97ee269SEmmanuel Vadot    oneOf:
33b97ee269SEmmanuel Vadot      # The variant found in STn8815
34b97ee269SEmmanuel Vadot      - items:
35b97ee269SEmmanuel Vadot          - const: st,nomadik-i2c
36b97ee269SEmmanuel Vadot          - const: arm,primecell
37b97ee269SEmmanuel Vadot      # The variant found in DB8500
38b97ee269SEmmanuel Vadot      - items:
39b97ee269SEmmanuel Vadot          - const: stericsson,db8500-i2c
40b97ee269SEmmanuel Vadot          - const: st,nomadik-i2c
41b97ee269SEmmanuel Vadot          - const: arm,primecell
42b97ee269SEmmanuel Vadot
43b97ee269SEmmanuel Vadot  reg:
44b97ee269SEmmanuel Vadot    maxItems: 1
45b97ee269SEmmanuel Vadot
46b97ee269SEmmanuel Vadot  interrupts:
47b97ee269SEmmanuel Vadot    maxItems: 1
48b97ee269SEmmanuel Vadot
49b97ee269SEmmanuel Vadot  clocks:
50b97ee269SEmmanuel Vadot    maxItems: 2
51b97ee269SEmmanuel Vadot
52b97ee269SEmmanuel Vadot  clock-names:
53b97ee269SEmmanuel Vadot    oneOf:
54b97ee269SEmmanuel Vadot      # Clock name in STn8815
55b97ee269SEmmanuel Vadot      - items:
56b97ee269SEmmanuel Vadot          - const: mclk
57b97ee269SEmmanuel Vadot          - const: apb_pclk
58b97ee269SEmmanuel Vadot      # Clock name in DB8500
59b97ee269SEmmanuel Vadot      - items:
60b97ee269SEmmanuel Vadot          - const: i2cclk
61b97ee269SEmmanuel Vadot          - const: apb_pclk
62b97ee269SEmmanuel Vadot
63b97ee269SEmmanuel Vadot  power-domains:
64b97ee269SEmmanuel Vadot    maxItems: 1
65b97ee269SEmmanuel Vadot
66b97ee269SEmmanuel Vadot  resets:
67b97ee269SEmmanuel Vadot    maxItems: 1
68b97ee269SEmmanuel Vadot
69b97ee269SEmmanuel Vadot  clock-frequency:
70b97ee269SEmmanuel Vadot    minimum: 1
71b97ee269SEmmanuel Vadot    maximum: 400000
72b97ee269SEmmanuel Vadot
73b97ee269SEmmanuel Vadotrequired:
74b97ee269SEmmanuel Vadot  - compatible
75b97ee269SEmmanuel Vadot  - reg
76b97ee269SEmmanuel Vadot  - interrupts
77b97ee269SEmmanuel Vadot  - clocks
78b97ee269SEmmanuel Vadot  - clock-names
79b97ee269SEmmanuel Vadot
80b97ee269SEmmanuel VadotunevaluatedProperties: false
81b97ee269SEmmanuel Vadot
82b97ee269SEmmanuel Vadotexamples:
83b97ee269SEmmanuel Vadot  - |
84b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
85b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
86b97ee269SEmmanuel Vadot    #include <dt-bindings/reset/stericsson,db8500-prcc-reset.h>
87b97ee269SEmmanuel Vadot    #include <dt-bindings/arm/ux500_pm_domains.h>
88b97ee269SEmmanuel Vadot    i2c@80004000 {
89b97ee269SEmmanuel Vadot      compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
90b97ee269SEmmanuel Vadot      reg = <0x80004000 0x1000>;
91b97ee269SEmmanuel Vadot      interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
92b97ee269SEmmanuel Vadot
93b97ee269SEmmanuel Vadot      #address-cells = <1>;
94b97ee269SEmmanuel Vadot      #size-cells = <0>;
95b97ee269SEmmanuel Vadot
96b97ee269SEmmanuel Vadot      clock-frequency = <400000>;
97b97ee269SEmmanuel Vadot      clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
98b97ee269SEmmanuel Vadot      clock-names = "i2cclk", "apb_pclk";
99b97ee269SEmmanuel Vadot      power-domains = <&pm_domains DOMAIN_VAPE>;
100b97ee269SEmmanuel Vadot      resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_I2C0>;
101b97ee269SEmmanuel Vadot    };
102b97ee269SEmmanuel Vadot
103b97ee269SEmmanuel Vadot    i2c@101f8000 {
104b97ee269SEmmanuel Vadot      compatible = "st,nomadik-i2c", "arm,primecell";
105b97ee269SEmmanuel Vadot      reg = <0x101f8000 0x1000>;
106b97ee269SEmmanuel Vadot      interrupt-parent = <&vica>;
107b97ee269SEmmanuel Vadot      interrupts = <20>;
108b97ee269SEmmanuel Vadot      clock-frequency = <100000>;
109b97ee269SEmmanuel Vadot      #address-cells = <1>;
110b97ee269SEmmanuel Vadot      #size-cells = <0>;
111b97ee269SEmmanuel Vadot      clocks = <&i2c0clk>, <&pclki2c0>;
112b97ee269SEmmanuel Vadot      clock-names = "mclk", "apb_pclk";
113b97ee269SEmmanuel Vadot    };
114b97ee269SEmmanuel Vadot
115b97ee269SEmmanuel Vadot...
116