Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/st,nomadik-i2c.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ST Microelectronics Nomadik I2C
8
9description: The Nomadik I2C host controller began its life in the ST
10 Microelectronics STn8800 SoC, and was then inherited into STn8810 and
11 STn8815. It was part of the prototype STn8500 which then became ST-Ericsson
12 DB8500 after the merge of these two companies wireless divisions.
13
14maintainers:
15 - Linus Walleij <linus.walleij@linaro.org>
16
17# Need a custom select here or 'arm,primecell' will match on lots of nodes
18select:
19 properties:
20 compatible:
21 contains:
22 enum:
23 - st,nomadik-i2c
24 - mobileye,eyeq5-i2c
25 required:
26 - compatible
27
28properties:
29 compatible:
30 oneOf:
31 - items:
32 - const: st,nomadik-i2c
33 - const: arm,primecell
34 - items:
35 - const: stericsson,db8500-i2c
36 - const: st,nomadik-i2c
37 - const: arm,primecell
38 - items:
39 - const: mobileye,eyeq5-i2c
40 - const: arm,primecell
41
42 reg:
43 maxItems: 1
44
45 interrupts:
46 maxItems: 1
47
48 clocks:
49 maxItems: 2
50
51 clock-names:
52 oneOf:
53 # Clock name in STn8815
54 - items:
55 - const: mclk
56 - const: apb_pclk
57 # Clock name in DB8500 or EyeQ5
58 - items:
59 - const: i2cclk
60 - const: apb_pclk
61
62 power-domains:
63 maxItems: 1
64
65 resets:
66 maxItems: 1
67
68 clock-frequency:
69 minimum: 1
70 maximum: 400000
71
72 mobileye,olb:
73 $ref: /schemas/types.yaml#/definitions/phandle-array
74 items:
75 - items:
76 - description: Phandle to OLB system controller node.
77 - description: Platform-wide controller ID (integer starting from zero).
78 description:
79 The phandle pointing to OLB system controller node, with the I2C
80 controller index.
81
82required:
83 - compatible
84 - reg
85 - interrupts
86 - clocks
87 - clock-names
88
89unevaluatedProperties: false
90
91allOf:
92 - $ref: /schemas/i2c/i2c-controller.yaml#
93 - if:
94 properties:
95 compatible:
96 contains:
97 const: mobileye,eyeq5-i2c
98 then:
99 required:
100 - mobileye,olb
101 else:
102 properties:
103 mobileye,olb: false
104
105examples:
106 - |
107 #include <dt-bindings/interrupt-controller/irq.h>
108 #include <dt-bindings/interrupt-controller/arm-gic.h>
109 #include <dt-bindings/reset/stericsson,db8500-prcc-reset.h>
110 #include <dt-bindings/arm/ux500_pm_domains.h>
111 i2c@80004000 {
112 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
113 reg = <0x80004000 0x1000>;
114 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
115
116 #address-cells = <1>;
117 #size-cells = <0>;
118
119 clock-frequency = <400000>;
120 clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
121 clock-names = "i2cclk", "apb_pclk";
122 power-domains = <&pm_domains DOMAIN_VAPE>;
123 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_I2C0>;
124 };
125
126 i2c@101f8000 {
127 compatible = "st,nomadik-i2c", "arm,primecell";
128 reg = <0x101f8000 0x1000>;
129 interrupt-parent = <&vica>;
130 interrupts = <20>;
131 clock-frequency = <100000>;
132 #address-cells = <1>;
133 #size-cells = <0>;
134 clocks = <&i2c0clk>, <&pclki2c0>;
135 clock-names = "mclk", "apb_pclk";
136 };
137 - |
138 #include <dt-bindings/interrupt-controller/mips-gic.h>
139 i2c@300000 {
140 compatible = "mobileye,eyeq5-i2c", "arm,primecell";
141 reg = <0x300000 0x1000>;
142 interrupt-parent = <&gic>;
143 interrupts = <GIC_SHARED 1 IRQ_TYPE_LEVEL_HIGH>;
144 clock-frequency = <400000>;
145 #address-cells = <1>;
146 #size-cells = <0>;
147 clocks = <&i2c_ser_clk>, <&i2c_clk>;
148 clock-names = "i2cclk", "apb_pclk";
149 mobileye,olb = <&olb 0>;
150 };
151
152...