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