diff options
Diffstat (limited to 'Documentation/devicetree')
198 files changed, 5993 insertions, 165 deletions
diff --git a/Documentation/devicetree/bindings/arm/altera/socfpga-sdram-edac.txt b/Documentation/devicetree/bindings/arm/altera/socfpga-sdram-edac.txt new file mode 100644 index 000000000000..d0ce01da5c59 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/altera/socfpga-sdram-edac.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | Altera SOCFPGA SDRAM Error Detection & Correction [EDAC] | ||
2 | The EDAC accesses a range of registers in the SDRAM controller. | ||
3 | |||
4 | Required properties: | ||
5 | - compatible : should contain "altr,sdram-edac"; | ||
6 | - altr,sdr-syscon : phandle of the sdr module | ||
7 | - interrupts : Should contain the SDRAM ECC IRQ in the | ||
8 | appropriate format for the IRQ controller. | ||
9 | |||
10 | Example: | ||
11 | sdramedac { | ||
12 | compatible = "altr,sdram-edac"; | ||
13 | altr,sdr-syscon = <&sdr>; | ||
14 | interrupts = <0 39 4>; | ||
15 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt new file mode 100644 index 000000000000..7eece72b1a35 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/amlogic.txt | |||
@@ -0,0 +1,8 @@ | |||
1 | Amlogic MesonX device tree bindings | ||
2 | ------------------------------------------- | ||
3 | |||
4 | Boards with the Amlogic Meson6 SoC shall have the following properties: | ||
5 | |||
6 | Required root node property: | ||
7 | |||
8 | compatible = "amlogic,meson6"; | ||
diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.txt b/Documentation/devicetree/bindings/arm/atmel-at91.txt index 16f60b41c147..562cda9d86d9 100644 --- a/Documentation/devicetree/bindings/arm/atmel-at91.txt +++ b/Documentation/devicetree/bindings/arm/atmel-at91.txt | |||
@@ -1,6 +1,43 @@ | |||
1 | Atmel AT91 device tree bindings. | 1 | Atmel AT91 device tree bindings. |
2 | ================================ | 2 | ================================ |
3 | 3 | ||
4 | Boards with a SoC of the Atmel AT91 or SMART family shall have the following | ||
5 | properties: | ||
6 | |||
7 | Required root node properties: | ||
8 | compatible: must be one of: | ||
9 | * "atmel,at91rm9200" | ||
10 | |||
11 | * "atmel,at91sam9" for SoCs using an ARM926EJ-S core, shall be extended with | ||
12 | the specific SoC family or compatible: | ||
13 | o "atmel,at91sam9260" | ||
14 | o "atmel,at91sam9261" | ||
15 | o "atmel,at91sam9263" | ||
16 | o "atmel,at91sam9x5" for the 5 series, shall be extended with the specific | ||
17 | SoC compatible: | ||
18 | - "atmel,at91sam9g15" | ||
19 | - "atmel,at91sam9g25" | ||
20 | - "atmel,at91sam9g35" | ||
21 | - "atmel,at91sam9x25" | ||
22 | - "atmel,at91sam9x35" | ||
23 | o "atmel,at91sam9g20" | ||
24 | o "atmel,at91sam9g45" | ||
25 | o "atmel,at91sam9n12" | ||
26 | o "atmel,at91sam9rl" | ||
27 | * "atmel,sama5" for SoCs using a Cortex-A5, shall be extended with the specific | ||
28 | SoC family: | ||
29 | o "atmel,sama5d3" shall be extended with the specific SoC compatible: | ||
30 | - "atmel,sama5d31" | ||
31 | - "atmel,sama5d33" | ||
32 | - "atmel,sama5d34" | ||
33 | - "atmel,sama5d35" | ||
34 | - "atmel,sama5d36" | ||
35 | o "atmel,sama5d4" shall be extended with the specific SoC compatible: | ||
36 | - "atmel,sama5d41" | ||
37 | - "atmel,sama5d42" | ||
38 | - "atmel,sama5d43" | ||
39 | - "atmel,sama5d44" | ||
40 | |||
4 | PIT Timer required properties: | 41 | PIT Timer required properties: |
5 | - compatible: Should be "atmel,at91sam9260-pit" | 42 | - compatible: Should be "atmel,at91sam9260-pit" |
6 | - reg: Should contain registers location and length | 43 | - reg: Should contain registers location and length |
@@ -61,8 +98,8 @@ RAMC SDRAM/DDR Controller required properties: | |||
61 | - compatible: Should be "atmel,at91rm9200-sdramc", | 98 | - compatible: Should be "atmel,at91rm9200-sdramc", |
62 | "atmel,at91sam9260-sdramc", | 99 | "atmel,at91sam9260-sdramc", |
63 | "atmel,at91sam9g45-ddramc", | 100 | "atmel,at91sam9g45-ddramc", |
101 | "atmel,sama5d3-ddramc", | ||
64 | - reg: Should contain registers location and length | 102 | - reg: Should contain registers location and length |
65 | For at91sam9263 and at91sam9g45 you must specify 2 entries. | ||
66 | 103 | ||
67 | Examples: | 104 | Examples: |
68 | 105 | ||
@@ -71,12 +108,6 @@ Examples: | |||
71 | reg = <0xffffe800 0x200>; | 108 | reg = <0xffffe800 0x200>; |
72 | }; | 109 | }; |
73 | 110 | ||
74 | ramc0: ramc@ffffe400 { | ||
75 | compatible = "atmel,at91sam9g45-ddramc"; | ||
76 | reg = <0xffffe400 0x200 | ||
77 | 0xffffe600 0x200>; | ||
78 | }; | ||
79 | |||
80 | SHDWC Shutdown Controller | 111 | SHDWC Shutdown Controller |
81 | 112 | ||
82 | required properties: | 113 | required properties: |
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm63138.txt b/Documentation/devicetree/bindings/arm/bcm/bcm63138.txt new file mode 100644 index 000000000000..bd49987a8812 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/bcm/bcm63138.txt | |||
@@ -0,0 +1,9 @@ | |||
1 | Broadcom BCM63138 DSL System-on-a-Chip device tree bindings | ||
2 | ----------------------------------------------------------- | ||
3 | |||
4 | Boards compatible with the BCM63138 DSL System-on-a-Chip should have the | ||
5 | following properties: | ||
6 | |||
7 | Required root node property: | ||
8 | |||
9 | compatible: should be "brcm,bcm63138" | ||
diff --git a/Documentation/devicetree/bindings/arm/cavium-thunder.txt b/Documentation/devicetree/bindings/arm/cavium-thunder.txt new file mode 100644 index 000000000000..6f63a5866902 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/cavium-thunder.txt | |||
@@ -0,0 +1,10 @@ | |||
1 | Cavium Thunder platform device tree bindings | ||
2 | -------------------------------------------- | ||
3 | |||
4 | Boards with Cavium's Thunder SoC shall have following properties. | ||
5 | |||
6 | Root Node | ||
7 | --------- | ||
8 | Required root node properties: | ||
9 | |||
10 | - compatible = "cavium,thunder-88xx"; | ||
diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt index 298e2f6b33c6..fc446347ab6d 100644 --- a/Documentation/devicetree/bindings/arm/cpus.txt +++ b/Documentation/devicetree/bindings/arm/cpus.txt | |||
@@ -166,6 +166,7 @@ nodes to be present and contain the properties described below. | |||
166 | "arm,cortex-r5" | 166 | "arm,cortex-r5" |
167 | "arm,cortex-r7" | 167 | "arm,cortex-r7" |
168 | "brcm,brahma-b15" | 168 | "brcm,brahma-b15" |
169 | "cavium,thunder" | ||
169 | "faraday,fa526" | 170 | "faraday,fa526" |
170 | "intel,sa110" | 171 | "intel,sa110" |
171 | "intel,sa1100" | 172 | "intel,sa1100" |
@@ -219,6 +220,12 @@ nodes to be present and contain the properties described below. | |||
219 | Value type: <phandle> | 220 | Value type: <phandle> |
220 | Definition: Specifies the ACC[2] node associated with this CPU. | 221 | Definition: Specifies the ACC[2] node associated with this CPU. |
221 | 222 | ||
223 | - cpu-idle-states | ||
224 | Usage: Optional | ||
225 | Value type: <prop-encoded-array> | ||
226 | Definition: | ||
227 | # List of phandles to idle state nodes supported | ||
228 | by this cpu [3]. | ||
222 | 229 | ||
223 | Example 1 (dual-cluster big.LITTLE system 32-bit): | 230 | Example 1 (dual-cluster big.LITTLE system 32-bit): |
224 | 231 | ||
@@ -415,3 +422,5 @@ cpus { | |||
415 | -- | 422 | -- |
416 | [1] arm/msm/qcom,saw2.txt | 423 | [1] arm/msm/qcom,saw2.txt |
417 | [2] arm/msm/qcom,kpss-acc.txt | 424 | [2] arm/msm/qcom,kpss-acc.txt |
425 | [3] ARM Linux kernel documentation - idle states bindings | ||
426 | Documentation/devicetree/bindings/arm/idle-states.txt | ||
diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt index 8b4f7b7fe88b..abde1ea8a119 100644 --- a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt +++ b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt | |||
@@ -8,6 +8,8 @@ Required Properties: | |||
8 | * samsung,exynos4210-pd - for exynos4210 type power domain. | 8 | * samsung,exynos4210-pd - for exynos4210 type power domain. |
9 | - reg: physical base address of the controller and length of memory mapped | 9 | - reg: physical base address of the controller and length of memory mapped |
10 | region. | 10 | region. |
11 | - #power-domain-cells: number of cells in power domain specifier; | ||
12 | must be 0. | ||
11 | 13 | ||
12 | Optional Properties: | 14 | Optional Properties: |
13 | - clocks: List of clock handles. The parent clocks of the input clocks to the | 15 | - clocks: List of clock handles. The parent clocks of the input clocks to the |
@@ -29,6 +31,7 @@ Example: | |||
29 | lcd0: power-domain-lcd0 { | 31 | lcd0: power-domain-lcd0 { |
30 | compatible = "samsung,exynos4210-pd"; | 32 | compatible = "samsung,exynos4210-pd"; |
31 | reg = <0x10023C00 0x10>; | 33 | reg = <0x10023C00 0x10>; |
34 | #power-domain-cells = <0>; | ||
32 | }; | 35 | }; |
33 | 36 | ||
34 | mfc_pd: power-domain@10044060 { | 37 | mfc_pd: power-domain@10044060 { |
@@ -37,12 +40,8 @@ Example: | |||
37 | clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>, | 40 | clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>, |
38 | <&clock CLK_MOUT_USER_ACLK333>; | 41 | <&clock CLK_MOUT_USER_ACLK333>; |
39 | clock-names = "oscclk", "pclk0", "clk0"; | 42 | clock-names = "oscclk", "pclk0", "clk0"; |
43 | #power-domain-cells = <0>; | ||
40 | }; | 44 | }; |
41 | 45 | ||
42 | Example of the node using power domain: | 46 | See Documentation/devicetree/bindings/power/power_domain.txt for description |
43 | 47 | of consumer-side bindings. | |
44 | node { | ||
45 | /* ... */ | ||
46 | samsung,power-domain = <&lcd0>; | ||
47 | /* ... */ | ||
48 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/geniatech.txt b/Documentation/devicetree/bindings/arm/geniatech.txt new file mode 100644 index 000000000000..74ccba40b73b --- /dev/null +++ b/Documentation/devicetree/bindings/arm/geniatech.txt | |||
@@ -0,0 +1,5 @@ | |||
1 | Geniatech platforms device tree bindings | ||
2 | ------------------------------------------- | ||
3 | |||
4 | Geniatech ATV1200 | ||
5 | - compatible = "geniatech,atv1200" | ||
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt index 934f00025cc4..f717c7b48603 100644 --- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt +++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | |||
@@ -5,6 +5,11 @@ Hi4511 Board | |||
5 | Required root node properties: | 5 | Required root node properties: |
6 | - compatible = "hisilicon,hi3620-hi4511"; | 6 | - compatible = "hisilicon,hi3620-hi4511"; |
7 | 7 | ||
8 | HiP04 D01 Board | ||
9 | Required root node properties: | ||
10 | - compatible = "hisilicon,hip04-d01"; | ||
11 | |||
12 | |||
8 | Hisilicon system controller | 13 | Hisilicon system controller |
9 | 14 | ||
10 | Required properties: | 15 | Required properties: |
@@ -55,3 +60,21 @@ Example: | |||
55 | compatible = "hisilicon,pctrl"; | 60 | compatible = "hisilicon,pctrl"; |
56 | reg = <0xfca09000 0x1000>; | 61 | reg = <0xfca09000 0x1000>; |
57 | }; | 62 | }; |
63 | |||
64 | ----------------------------------------------------------------------- | ||
65 | Fabric: | ||
66 | |||
67 | Required Properties: | ||
68 | - compatible: "hisilicon,hip04-fabric"; | ||
69 | - reg: Address and size of Fabric | ||
70 | |||
71 | ----------------------------------------------------------------------- | ||
72 | Bootwrapper boot method (software protocol on SMP): | ||
73 | |||
74 | Required Properties: | ||
75 | - compatible: "hisilicon,hip04-bootwrapper"; | ||
76 | - boot-method: Address and size of boot method. | ||
77 | [0]: bootwrapper physical address | ||
78 | [1]: bootwrapper size | ||
79 | [2]: relocation physical address | ||
80 | [3]: relocation size | ||
diff --git a/Documentation/devicetree/bindings/arm/idle-states.txt b/Documentation/devicetree/bindings/arm/idle-states.txt new file mode 100644 index 000000000000..37375c7f3ccc --- /dev/null +++ b/Documentation/devicetree/bindings/arm/idle-states.txt | |||
@@ -0,0 +1,679 @@ | |||
1 | ========================================== | ||
2 | ARM idle states binding description | ||
3 | ========================================== | ||
4 | |||
5 | ========================================== | ||
6 | 1 - Introduction | ||
7 | ========================================== | ||
8 | |||
9 | ARM systems contain HW capable of managing power consumption dynamically, | ||
10 | where cores can be put in different low-power states (ranging from simple | ||
11 | wfi to power gating) according to OS PM policies. The CPU states representing | ||
12 | the range of dynamic idle states that a processor can enter at run-time, can be | ||
13 | specified through device tree bindings representing the parameters required | ||
14 | to enter/exit specific idle states on a given processor. | ||
15 | |||
16 | According to the Server Base System Architecture document (SBSA, [3]), the | ||
17 | power states an ARM CPU can be put into are identified by the following list: | ||
18 | |||
19 | - Running | ||
20 | - Idle_standby | ||
21 | - Idle_retention | ||
22 | - Sleep | ||
23 | - Off | ||
24 | |||
25 | The power states described in the SBSA document define the basic CPU states on | ||
26 | top of which ARM platforms implement power management schemes that allow an OS | ||
27 | PM implementation to put the processor in different idle states (which include | ||
28 | states listed above; "off" state is not an idle state since it does not have | ||
29 | wake-up capabilities, hence it is not considered in this document). | ||
30 | |||
31 | Idle state parameters (eg entry latency) are platform specific and need to be | ||
32 | characterized with bindings that provide the required information to OS PM | ||
33 | code so that it can build the required tables and use them at runtime. | ||
34 | |||
35 | The device tree binding definition for ARM idle states is the subject of this | ||
36 | document. | ||
37 | |||
38 | =========================================== | ||
39 | 2 - idle-states definitions | ||
40 | =========================================== | ||
41 | |||
42 | Idle states are characterized for a specific system through a set of | ||
43 | timing and energy related properties, that underline the HW behaviour | ||
44 | triggered upon idle states entry and exit. | ||
45 | |||
46 | The following diagram depicts the CPU execution phases and related timing | ||
47 | properties required to enter and exit an idle state: | ||
48 | |||
49 | ..__[EXEC]__|__[PREP]__|__[ENTRY]__|__[IDLE]__|__[EXIT]__|__[EXEC]__.. | ||
50 | | | | | | | ||
51 | |||
52 | |<------ entry ------->| | ||
53 | | latency | | ||
54 | |<- exit ->| | ||
55 | | latency | | ||
56 | |<-------- min-residency -------->| | ||
57 | |<------- wakeup-latency ------->| | ||
58 | |||
59 | Diagram 1: CPU idle state execution phases | ||
60 | |||
61 | EXEC: Normal CPU execution. | ||
62 | |||
63 | PREP: Preparation phase before committing the hardware to idle mode | ||
64 | like cache flushing. This is abortable on pending wake-up | ||
65 | event conditions. The abort latency is assumed to be negligible | ||
66 | (i.e. less than the ENTRY + EXIT duration). If aborted, CPU | ||
67 | goes back to EXEC. This phase is optional. If not abortable, | ||
68 | this should be included in the ENTRY phase instead. | ||
69 | |||
70 | ENTRY: The hardware is committed to idle mode. This period must run | ||
71 | to completion up to IDLE before anything else can happen. | ||
72 | |||
73 | IDLE: This is the actual energy-saving idle period. This may last | ||
74 | between 0 and infinite time, until a wake-up event occurs. | ||
75 | |||
76 | EXIT: Period during which the CPU is brought back to operational | ||
77 | mode (EXEC). | ||
78 | |||
79 | entry-latency: Worst case latency required to enter the idle state. The | ||
80 | exit-latency may be guaranteed only after entry-latency has passed. | ||
81 | |||
82 | min-residency: Minimum period, including preparation and entry, for a given | ||
83 | idle state to be worthwhile energywise. | ||
84 | |||
85 | wakeup-latency: Maximum delay between the signaling of a wake-up event and the | ||
86 | CPU being able to execute normal code again. If not specified, this is assumed | ||
87 | to be entry-latency + exit-latency. | ||
88 | |||
89 | These timing parameters can be used by an OS in different circumstances. | ||
90 | |||
91 | An idle CPU requires the expected min-residency time to select the most | ||
92 | appropriate idle state based on the expected expiry time of the next IRQ | ||
93 | (ie wake-up) that causes the CPU to return to the EXEC phase. | ||
94 | |||
95 | An operating system scheduler may need to compute the shortest wake-up delay | ||
96 | for CPUs in the system by detecting how long will it take to get a CPU out | ||
97 | of an idle state, eg: | ||
98 | |||
99 | wakeup-delay = exit-latency + max(entry-latency - (now - entry-timestamp), 0) | ||
100 | |||
101 | In other words, the scheduler can make its scheduling decision by selecting | ||
102 | (eg waking-up) the CPU with the shortest wake-up latency. | ||
103 | The wake-up latency must take into account the entry latency if that period | ||
104 | has not expired. The abortable nature of the PREP period can be ignored | ||
105 | if it cannot be relied upon (e.g. the PREP deadline may occur much sooner than | ||
106 | the worst case since it depends on the CPU operating conditions, ie caches | ||
107 | state). | ||
108 | |||
109 | An OS has to reliably probe the wakeup-latency since some devices can enforce | ||
110 | latency constraints guarantees to work properly, so the OS has to detect the | ||
111 | worst case wake-up latency it can incur if a CPU is allowed to enter an | ||
112 | idle state, and possibly to prevent that to guarantee reliable device | ||
113 | functioning. | ||
114 | |||
115 | The min-residency time parameter deserves further explanation since it is | ||
116 | expressed in time units but must factor in energy consumption coefficients. | ||
117 | |||
118 | The energy consumption of a cpu when it enters a power state can be roughly | ||
119 | characterised by the following graph: | ||
120 | |||
121 | | | ||
122 | | | ||
123 | | | ||
124 | e | | ||
125 | n | /--- | ||
126 | e | /------ | ||
127 | r | /------ | ||
128 | g | /----- | ||
129 | y | /------ | ||
130 | | ---- | ||
131 | | /| | ||
132 | | / | | ||
133 | | / | | ||
134 | | / | | ||
135 | | / | | ||
136 | | / | | ||
137 | |/ | | ||
138 | -----|-------+---------------------------------- | ||
139 | 0| 1 time(ms) | ||
140 | |||
141 | Graph 1: Energy vs time example | ||
142 | |||
143 | The graph is split in two parts delimited by time 1ms on the X-axis. | ||
144 | The graph curve with X-axis values = { x | 0 < x < 1ms } has a steep slope | ||
145 | and denotes the energy costs incurred whilst entering and leaving the idle | ||
146 | state. | ||
147 | The graph curve in the area delimited by X-axis values = {x | x > 1ms } has | ||
148 | shallower slope and essentially represents the energy consumption of the idle | ||
149 | state. | ||
150 | |||
151 | min-residency is defined for a given idle state as the minimum expected | ||
152 | residency time for a state (inclusive of preparation and entry) after | ||
153 | which choosing that state become the most energy efficient option. A good | ||
154 | way to visualise this, is by taking the same graph above and comparing some | ||
155 | states energy consumptions plots. | ||
156 | |||
157 | For sake of simplicity, let's consider a system with two idle states IDLE1, | ||
158 | and IDLE2: | ||
159 | |||
160 | | | ||
161 | | | ||
162 | | | ||
163 | | /-- IDLE1 | ||
164 | e | /--- | ||
165 | n | /---- | ||
166 | e | /--- | ||
167 | r | /-----/--------- IDLE2 | ||
168 | g | /-------/--------- | ||
169 | y | ------------ /---| | ||
170 | | / /---- | | ||
171 | | / /--- | | ||
172 | | / /---- | | ||
173 | | / /--- | | ||
174 | | --- | | ||
175 | | / | | ||
176 | | / | | ||
177 | |/ | time | ||
178 | ---/----------------------------+------------------------ | ||
179 | |IDLE1-energy < IDLE2-energy | IDLE2-energy < IDLE1-energy | ||
180 | | | ||
181 | IDLE2-min-residency | ||
182 | |||
183 | Graph 2: idle states min-residency example | ||
184 | |||
185 | In graph 2 above, that takes into account idle states entry/exit energy | ||
186 | costs, it is clear that if the idle state residency time (ie time till next | ||
187 | wake-up IRQ) is less than IDLE2-min-residency, IDLE1 is the better idle state | ||
188 | choice energywise. | ||
189 | |||
190 | This is mainly down to the fact that IDLE1 entry/exit energy costs are lower | ||
191 | than IDLE2. | ||
192 | |||
193 | However, the lower power consumption (ie shallower energy curve slope) of idle | ||
194 | state IDLE2 implies that after a suitable time, IDLE2 becomes more energy | ||
195 | efficient. | ||
196 | |||
197 | The time at which IDLE2 becomes more energy efficient than IDLE1 (and other | ||
198 | shallower states in a system with multiple idle states) is defined | ||
199 | IDLE2-min-residency and corresponds to the time when energy consumption of | ||
200 | IDLE1 and IDLE2 states breaks even. | ||
201 | |||
202 | The definitions provided in this section underpin the idle states | ||
203 | properties specification that is the subject of the following sections. | ||
204 | |||
205 | =========================================== | ||
206 | 3 - idle-states node | ||
207 | =========================================== | ||
208 | |||
209 | ARM processor idle states are defined within the idle-states node, which is | ||
210 | a direct child of the cpus node [1] and provides a container where the | ||
211 | processor idle states, defined as device tree nodes, are listed. | ||
212 | |||
213 | - idle-states node | ||
214 | |||
215 | Usage: Optional - On ARM systems, it is a container of processor idle | ||
216 | states nodes. If the system does not provide CPU | ||
217 | power management capabilities or the processor just | ||
218 | supports idle_standby an idle-states node is not | ||
219 | required. | ||
220 | |||
221 | Description: idle-states node is a container node, where its | ||
222 | subnodes describe the CPU idle states. | ||
223 | |||
224 | Node name must be "idle-states". | ||
225 | |||
226 | The idle-states node's parent node must be the cpus node. | ||
227 | |||
228 | The idle-states node's child nodes can be: | ||
229 | |||
230 | - one or more state nodes | ||
231 | |||
232 | Any other configuration is considered invalid. | ||
233 | |||
234 | An idle-states node defines the following properties: | ||
235 | |||
236 | - entry-method | ||
237 | Value type: <stringlist> | ||
238 | Usage and definition depend on ARM architecture version. | ||
239 | # On ARM v8 64-bit this property is required and must | ||
240 | be one of: | ||
241 | - "psci" (see bindings in [2]) | ||
242 | # On ARM 32-bit systems this property is optional | ||
243 | |||
244 | The nodes describing the idle states (state) can only be defined within the | ||
245 | idle-states node, any other configuration is considered invalid and therefore | ||
246 | must be ignored. | ||
247 | |||
248 | =========================================== | ||
249 | 4 - state node | ||
250 | =========================================== | ||
251 | |||
252 | A state node represents an idle state description and must be defined as | ||
253 | follows: | ||
254 | |||
255 | - state node | ||
256 | |||
257 | Description: must be child of the idle-states node | ||
258 | |||
259 | The state node name shall follow standard device tree naming | ||
260 | rules ([5], 2.2.1 "Node names"), in particular state nodes which | ||
261 | are siblings within a single common parent must be given a unique name. | ||
262 | |||
263 | The idle state entered by executing the wfi instruction (idle_standby | ||
264 | SBSA,[3][4]) is considered standard on all ARM platforms and therefore | ||
265 | must not be listed. | ||
266 | |||
267 | With the definitions provided above, the following list represents | ||
268 | the valid properties for a state node: | ||
269 | |||
270 | - compatible | ||
271 | Usage: Required | ||
272 | Value type: <stringlist> | ||
273 | Definition: Must be "arm,idle-state". | ||
274 | |||
275 | - local-timer-stop | ||
276 | Usage: See definition | ||
277 | Value type: <none> | ||
278 | Definition: if present the CPU local timer control logic is | ||
279 | lost on state entry, otherwise it is retained. | ||
280 | |||
281 | - entry-latency-us | ||
282 | Usage: Required | ||
283 | Value type: <prop-encoded-array> | ||
284 | Definition: u32 value representing worst case latency in | ||
285 | microseconds required to enter the idle state. | ||
286 | The exit-latency-us duration may be guaranteed | ||
287 | only after entry-latency-us has passed. | ||
288 | |||
289 | - exit-latency-us | ||
290 | Usage: Required | ||
291 | Value type: <prop-encoded-array> | ||
292 | Definition: u32 value representing worst case latency | ||
293 | in microseconds required to exit the idle state. | ||
294 | |||
295 | - min-residency-us | ||
296 | Usage: Required | ||
297 | Value type: <prop-encoded-array> | ||
298 | Definition: u32 value representing minimum residency duration | ||
299 | in microseconds, inclusive of preparation and | ||
300 | entry, for this idle state to be considered | ||
301 | worthwhile energy wise (refer to section 2 of | ||
302 | this document for a complete description). | ||
303 | |||
304 | - wakeup-latency-us: | ||
305 | Usage: Optional | ||
306 | Value type: <prop-encoded-array> | ||
307 | Definition: u32 value representing maximum delay between the | ||
308 | signaling of a wake-up event and the CPU being | ||
309 | able to execute normal code again. If omitted, | ||
310 | this is assumed to be equal to: | ||
311 | |||
312 | entry-latency-us + exit-latency-us | ||
313 | |||
314 | It is important to supply this value on systems | ||
315 | where the duration of PREP phase (see diagram 1, | ||
316 | section 2) is non-neglibigle. | ||
317 | In such systems entry-latency-us + exit-latency-us | ||
318 | will exceed wakeup-latency-us by this duration. | ||
319 | |||
320 | In addition to the properties listed above, a state node may require | ||
321 | additional properties specifics to the entry-method defined in the | ||
322 | idle-states node, please refer to the entry-method bindings | ||
323 | documentation for properties definitions. | ||
324 | |||
325 | =========================================== | ||
326 | 4 - Examples | ||
327 | =========================================== | ||
328 | |||
329 | Example 1 (ARM 64-bit, 16-cpu system, PSCI enable-method): | ||
330 | |||
331 | cpus { | ||
332 | #size-cells = <0>; | ||
333 | #address-cells = <2>; | ||
334 | |||
335 | CPU0: cpu@0 { | ||
336 | device_type = "cpu"; | ||
337 | compatible = "arm,cortex-a57"; | ||
338 | reg = <0x0 0x0>; | ||
339 | enable-method = "psci"; | ||
340 | cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0 | ||
341 | &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>; | ||
342 | }; | ||
343 | |||
344 | CPU1: cpu@1 { | ||
345 | device_type = "cpu"; | ||
346 | compatible = "arm,cortex-a57"; | ||
347 | reg = <0x0 0x1>; | ||
348 | enable-method = "psci"; | ||
349 | cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0 | ||
350 | &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>; | ||
351 | }; | ||
352 | |||
353 | CPU2: cpu@100 { | ||
354 | device_type = "cpu"; | ||
355 | compatible = "arm,cortex-a57"; | ||
356 | reg = <0x0 0x100>; | ||
357 | enable-method = "psci"; | ||
358 | cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0 | ||
359 | &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>; | ||
360 | }; | ||
361 | |||
362 | CPU3: cpu@101 { | ||
363 | device_type = "cpu"; | ||
364 | compatible = "arm,cortex-a57"; | ||
365 | reg = <0x0 0x101>; | ||
366 | enable-method = "psci"; | ||
367 | cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0 | ||
368 | &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>; | ||
369 | }; | ||
370 | |||
371 | CPU4: cpu@10000 { | ||
372 | device_type = "cpu"; | ||
373 | compatible = "arm,cortex-a57"; | ||
374 | reg = <0x0 0x10000>; | ||
375 | enable-method = "psci"; | ||
376 | cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0 | ||
377 | &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>; | ||
378 | }; | ||
379 | |||
380 | CPU5: cpu@10001 { | ||
381 | device_type = "cpu"; | ||
382 | compatible = "arm,cortex-a57"; | ||
383 | reg = <0x0 0x10001>; | ||
384 | enable-method = "psci"; | ||
385 | cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0 | ||
386 | &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>; | ||
387 | }; | ||
388 | |||
389 | CPU6: cpu@10100 { | ||
390 | device_type = "cpu"; | ||
391 | compatible = "arm,cortex-a57"; | ||
392 | reg = <0x0 0x10100>; | ||
393 | enable-method = "psci"; | ||
394 | cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0 | ||
395 | &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>; | ||
396 | }; | ||
397 | |||
398 | CPU7: cpu@10101 { | ||
399 | device_type = "cpu"; | ||
400 | compatible = "arm,cortex-a57"; | ||
401 | reg = <0x0 0x10101>; | ||
402 | enable-method = "psci"; | ||
403 | cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0 | ||
404 | &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>; | ||
405 | }; | ||
406 | |||
407 | CPU8: cpu@100000000 { | ||
408 | device_type = "cpu"; | ||
409 | compatible = "arm,cortex-a53"; | ||
410 | reg = <0x1 0x0>; | ||
411 | enable-method = "psci"; | ||
412 | cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0 | ||
413 | &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>; | ||
414 | }; | ||
415 | |||
416 | CPU9: cpu@100000001 { | ||
417 | device_type = "cpu"; | ||
418 | compatible = "arm,cortex-a53"; | ||
419 | reg = <0x1 0x1>; | ||
420 | enable-method = "psci"; | ||
421 | cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0 | ||
422 | &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>; | ||
423 | }; | ||
424 | |||
425 | CPU10: cpu@100000100 { | ||
426 | device_type = "cpu"; | ||
427 | compatible = "arm,cortex-a53"; | ||
428 | reg = <0x1 0x100>; | ||
429 | enable-method = "psci"; | ||
430 | cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0 | ||
431 | &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>; | ||
432 | }; | ||
433 | |||
434 | CPU11: cpu@100000101 { | ||
435 | device_type = "cpu"; | ||
436 | compatible = "arm,cortex-a53"; | ||
437 | reg = <0x1 0x101>; | ||
438 | enable-method = "psci"; | ||
439 | cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0 | ||
440 | &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>; | ||
441 | }; | ||
442 | |||
443 | CPU12: cpu@100010000 { | ||
444 | device_type = "cpu"; | ||
445 | compatible = "arm,cortex-a53"; | ||
446 | reg = <0x1 0x10000>; | ||
447 | enable-method = "psci"; | ||
448 | cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0 | ||
449 | &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>; | ||
450 | }; | ||
451 | |||
452 | CPU13: cpu@100010001 { | ||
453 | device_type = "cpu"; | ||
454 | compatible = "arm,cortex-a53"; | ||
455 | reg = <0x1 0x10001>; | ||
456 | enable-method = "psci"; | ||
457 | cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0 | ||
458 | &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>; | ||
459 | }; | ||
460 | |||
461 | CPU14: cpu@100010100 { | ||
462 | device_type = "cpu"; | ||
463 | compatible = "arm,cortex-a53"; | ||
464 | reg = <0x1 0x10100>; | ||
465 | enable-method = "psci"; | ||
466 | cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0 | ||
467 | &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>; | ||
468 | }; | ||
469 | |||
470 | CPU15: cpu@100010101 { | ||
471 | device_type = "cpu"; | ||
472 | compatible = "arm,cortex-a53"; | ||
473 | reg = <0x1 0x10101>; | ||
474 | enable-method = "psci"; | ||
475 | cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0 | ||
476 | &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>; | ||
477 | }; | ||
478 | |||
479 | idle-states { | ||
480 | entry-method = "arm,psci"; | ||
481 | |||
482 | CPU_RETENTION_0_0: cpu-retention-0-0 { | ||
483 | compatible = "arm,idle-state"; | ||
484 | arm,psci-suspend-param = <0x0010000>; | ||
485 | entry-latency-us = <20>; | ||
486 | exit-latency-us = <40>; | ||
487 | min-residency-us = <80>; | ||
488 | }; | ||
489 | |||
490 | CLUSTER_RETENTION_0: cluster-retention-0 { | ||
491 | compatible = "arm,idle-state"; | ||
492 | local-timer-stop; | ||
493 | arm,psci-suspend-param = <0x1010000>; | ||
494 | entry-latency-us = <50>; | ||
495 | exit-latency-us = <100>; | ||
496 | min-residency-us = <250>; | ||
497 | wakeup-latency-us = <130>; | ||
498 | }; | ||
499 | |||
500 | CPU_SLEEP_0_0: cpu-sleep-0-0 { | ||
501 | compatible = "arm,idle-state"; | ||
502 | local-timer-stop; | ||
503 | arm,psci-suspend-param = <0x0010000>; | ||
504 | entry-latency-us = <250>; | ||
505 | exit-latency-us = <500>; | ||
506 | min-residency-us = <950>; | ||
507 | }; | ||
508 | |||
509 | CLUSTER_SLEEP_0: cluster-sleep-0 { | ||
510 | compatible = "arm,idle-state"; | ||
511 | local-timer-stop; | ||
512 | arm,psci-suspend-param = <0x1010000>; | ||
513 | entry-latency-us = <600>; | ||
514 | exit-latency-us = <1100>; | ||
515 | min-residency-us = <2700>; | ||
516 | wakeup-latency-us = <1500>; | ||
517 | }; | ||
518 | |||
519 | CPU_RETENTION_1_0: cpu-retention-1-0 { | ||
520 | compatible = "arm,idle-state"; | ||
521 | arm,psci-suspend-param = <0x0010000>; | ||
522 | entry-latency-us = <20>; | ||
523 | exit-latency-us = <40>; | ||
524 | min-residency-us = <90>; | ||
525 | }; | ||
526 | |||
527 | CLUSTER_RETENTION_1: cluster-retention-1 { | ||
528 | compatible = "arm,idle-state"; | ||
529 | local-timer-stop; | ||
530 | arm,psci-suspend-param = <0x1010000>; | ||
531 | entry-latency-us = <50>; | ||
532 | exit-latency-us = <100>; | ||
533 | min-residency-us = <270>; | ||
534 | wakeup-latency-us = <100>; | ||
535 | }; | ||
536 | |||
537 | CPU_SLEEP_1_0: cpu-sleep-1-0 { | ||
538 | compatible = "arm,idle-state"; | ||
539 | local-timer-stop; | ||
540 | arm,psci-suspend-param = <0x0010000>; | ||
541 | entry-latency-us = <70>; | ||
542 | exit-latency-us = <100>; | ||
543 | min-residency-us = <300>; | ||
544 | wakeup-latency-us = <150>; | ||
545 | }; | ||
546 | |||
547 | CLUSTER_SLEEP_1: cluster-sleep-1 { | ||
548 | compatible = "arm,idle-state"; | ||
549 | local-timer-stop; | ||
550 | arm,psci-suspend-param = <0x1010000>; | ||
551 | entry-latency-us = <500>; | ||
552 | exit-latency-us = <1200>; | ||
553 | min-residency-us = <3500>; | ||
554 | wakeup-latency-us = <1300>; | ||
555 | }; | ||
556 | }; | ||
557 | |||
558 | }; | ||
559 | |||
560 | Example 2 (ARM 32-bit, 8-cpu system, two clusters): | ||
561 | |||
562 | cpus { | ||
563 | #size-cells = <0>; | ||
564 | #address-cells = <1>; | ||
565 | |||
566 | CPU0: cpu@0 { | ||
567 | device_type = "cpu"; | ||
568 | compatible = "arm,cortex-a15"; | ||
569 | reg = <0x0>; | ||
570 | cpu-idle-states = <&CPU_SLEEP_0_0 &CLUSTER_SLEEP_0>; | ||
571 | }; | ||
572 | |||
573 | CPU1: cpu@1 { | ||
574 | device_type = "cpu"; | ||
575 | compatible = "arm,cortex-a15"; | ||
576 | reg = <0x1>; | ||
577 | cpu-idle-states = <&CPU_SLEEP_0_0 &CLUSTER_SLEEP_0>; | ||
578 | }; | ||
579 | |||
580 | CPU2: cpu@2 { | ||
581 | device_type = "cpu"; | ||
582 | compatible = "arm,cortex-a15"; | ||
583 | reg = <0x2>; | ||
584 | cpu-idle-states = <&CPU_SLEEP_0_0 &CLUSTER_SLEEP_0>; | ||
585 | }; | ||
586 | |||
587 | CPU3: cpu@3 { | ||
588 | device_type = "cpu"; | ||
589 | compatible = "arm,cortex-a15"; | ||
590 | reg = <0x3>; | ||
591 | cpu-idle-states = <&CPU_SLEEP_0_0 &CLUSTER_SLEEP_0>; | ||
592 | }; | ||
593 | |||
594 | CPU4: cpu@100 { | ||
595 | device_type = "cpu"; | ||
596 | compatible = "arm,cortex-a7"; | ||
597 | reg = <0x100>; | ||
598 | cpu-idle-states = <&CPU_SLEEP_1_0 &CLUSTER_SLEEP_1>; | ||
599 | }; | ||
600 | |||
601 | CPU5: cpu@101 { | ||
602 | device_type = "cpu"; | ||
603 | compatible = "arm,cortex-a7"; | ||
604 | reg = <0x101>; | ||
605 | cpu-idle-states = <&CPU_SLEEP_1_0 &CLUSTER_SLEEP_1>; | ||
606 | }; | ||
607 | |||
608 | CPU6: cpu@102 { | ||
609 | device_type = "cpu"; | ||
610 | compatible = "arm,cortex-a7"; | ||
611 | reg = <0x102>; | ||
612 | cpu-idle-states = <&CPU_SLEEP_1_0 &CLUSTER_SLEEP_1>; | ||
613 | }; | ||
614 | |||
615 | CPU7: cpu@103 { | ||
616 | device_type = "cpu"; | ||
617 | compatible = "arm,cortex-a7"; | ||
618 | reg = <0x103>; | ||
619 | cpu-idle-states = <&CPU_SLEEP_1_0 &CLUSTER_SLEEP_1>; | ||
620 | }; | ||
621 | |||
622 | idle-states { | ||
623 | CPU_SLEEP_0_0: cpu-sleep-0-0 { | ||
624 | compatible = "arm,idle-state"; | ||
625 | local-timer-stop; | ||
626 | entry-latency-us = <200>; | ||
627 | exit-latency-us = <100>; | ||
628 | min-residency-us = <400>; | ||
629 | wakeup-latency-us = <250>; | ||
630 | }; | ||
631 | |||
632 | CLUSTER_SLEEP_0: cluster-sleep-0 { | ||
633 | compatible = "arm,idle-state"; | ||
634 | local-timer-stop; | ||
635 | entry-latency-us = <500>; | ||
636 | exit-latency-us = <1500>; | ||
637 | min-residency-us = <2500>; | ||
638 | wakeup-latency-us = <1700>; | ||
639 | }; | ||
640 | |||
641 | CPU_SLEEP_1_0: cpu-sleep-1-0 { | ||
642 | compatible = "arm,idle-state"; | ||
643 | local-timer-stop; | ||
644 | entry-latency-us = <300>; | ||
645 | exit-latency-us = <500>; | ||
646 | min-residency-us = <900>; | ||
647 | wakeup-latency-us = <600>; | ||
648 | }; | ||
649 | |||
650 | CLUSTER_SLEEP_1: cluster-sleep-1 { | ||
651 | compatible = "arm,idle-state"; | ||
652 | local-timer-stop; | ||
653 | entry-latency-us = <800>; | ||
654 | exit-latency-us = <2000>; | ||
655 | min-residency-us = <6500>; | ||
656 | wakeup-latency-us = <2300>; | ||
657 | }; | ||
658 | }; | ||
659 | |||
660 | }; | ||
661 | |||
662 | =========================================== | ||
663 | 5 - References | ||
664 | =========================================== | ||
665 | |||
666 | [1] ARM Linux Kernel documentation - CPUs bindings | ||
667 | Documentation/devicetree/bindings/arm/cpus.txt | ||
668 | |||
669 | [2] ARM Linux Kernel documentation - PSCI bindings | ||
670 | Documentation/devicetree/bindings/arm/psci.txt | ||
671 | |||
672 | [3] ARM Server Base System Architecture (SBSA) | ||
673 | http://infocenter.arm.com/help/index.jsp | ||
674 | |||
675 | [4] ARM Architecture Reference Manuals | ||
676 | http://infocenter.arm.com/help/index.jsp | ||
677 | |||
678 | [5] ePAPR standard | ||
679 | https://www.power.org/documentation/epapr-version-1-1/ | ||
diff --git a/Documentation/devicetree/bindings/arm/l2cc.txt b/Documentation/devicetree/bindings/arm/l2cc.txt index af527ee111c2..292ef7ca3058 100644 --- a/Documentation/devicetree/bindings/arm/l2cc.txt +++ b/Documentation/devicetree/bindings/arm/l2cc.txt | |||
@@ -2,6 +2,10 @@ | |||
2 | 2 | ||
3 | ARM cores often have a separate level 2 cache controller. There are various | 3 | ARM cores often have a separate level 2 cache controller. There are various |
4 | implementations of the L2 cache controller with compatible programming models. | 4 | implementations of the L2 cache controller with compatible programming models. |
5 | Some of the properties that are just prefixed "cache-*" are taken from section | ||
6 | 3.7.3 of the ePAPR v1.1 specification which can be found at: | ||
7 | https://www.power.org/wp-content/uploads/2012/06/Power_ePAPR_APPROVED_v1.1.pdf | ||
8 | |||
5 | The ARM L2 cache representation in the device tree should be done as follows: | 9 | The ARM L2 cache representation in the device tree should be done as follows: |
6 | 10 | ||
7 | Required properties: | 11 | Required properties: |
@@ -44,6 +48,12 @@ Optional properties: | |||
44 | I/O coherent mode. Valid only when the arm,pl310-cache compatible | 48 | I/O coherent mode. Valid only when the arm,pl310-cache compatible |
45 | string is used. | 49 | string is used. |
46 | - interrupts : 1 combined interrupt. | 50 | - interrupts : 1 combined interrupt. |
51 | - cache-size : specifies the size in bytes of the cache | ||
52 | - cache-sets : specifies the number of associativity sets of the cache | ||
53 | - cache-block-size : specifies the size in bytes of a cache block | ||
54 | - cache-line-size : specifies the size in bytes of a line in the cache, | ||
55 | if this is not specified, the line size is assumed to be equal to the | ||
56 | cache block size | ||
47 | - cache-id-part: cache id part number to be used if it is not present | 57 | - cache-id-part: cache id part number to be used if it is not present |
48 | on hardware | 58 | on hardware |
49 | - wt-override: If present then L2 is forced to Write through mode | 59 | - wt-override: If present then L2 is forced to Write through mode |
diff --git a/Documentation/devicetree/bindings/arm/mediatek.txt b/Documentation/devicetree/bindings/arm/mediatek.txt index d6ac71f37314..fa252261dfaf 100644 --- a/Documentation/devicetree/bindings/arm/mediatek.txt +++ b/Documentation/devicetree/bindings/arm/mediatek.txt | |||
@@ -6,3 +6,9 @@ Required root node property: | |||
6 | 6 | ||
7 | compatible: must contain "mediatek,mt6589" | 7 | compatible: must contain "mediatek,mt6589" |
8 | 8 | ||
9 | |||
10 | Supported boards: | ||
11 | |||
12 | - bq Aquaris5 smart phone: | ||
13 | Required root node properties: | ||
14 | - compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589"; | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/mpu.txt b/Documentation/devicetree/bindings/arm/omap/mpu.txt index 83f405bde138..763695db2bd9 100644 --- a/Documentation/devicetree/bindings/arm/omap/mpu.txt +++ b/Documentation/devicetree/bindings/arm/omap/mpu.txt | |||
@@ -10,6 +10,9 @@ Required properties: | |||
10 | Should be "ti,omap5-mpu" for OMAP5 | 10 | Should be "ti,omap5-mpu" for OMAP5 |
11 | - ti,hwmods: "mpu" | 11 | - ti,hwmods: "mpu" |
12 | 12 | ||
13 | Optional properties: | ||
14 | - sram: Phandle to the ocmcram node | ||
15 | |||
13 | Examples: | 16 | Examples: |
14 | 17 | ||
15 | - For an OMAP5 SMP system: | 18 | - For an OMAP5 SMP system: |
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index 0edc90305dfe..ddd9bcdf889c 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
@@ -85,6 +85,18 @@ SoCs: | |||
85 | - DRA722 | 85 | - DRA722 |
86 | compatible = "ti,dra722", "ti,dra72", "ti,dra7" | 86 | compatible = "ti,dra722", "ti,dra72", "ti,dra7" |
87 | 87 | ||
88 | - AM5728 | ||
89 | compatible = "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" | ||
90 | |||
91 | - AM5726 | ||
92 | compatible = "ti,am5726", "ti,dra742", "ti,dra74", "ti,dra7" | ||
93 | |||
94 | - AM5718 | ||
95 | compatible = "ti,am5718", "ti,dra722", "ti,dra72", "ti,dra7" | ||
96 | |||
97 | - AM5716 | ||
98 | compatible = "ti,am5716", "ti,dra722", "ti,dra72", "ti,dra7" | ||
99 | |||
88 | - AM4372 | 100 | - AM4372 |
89 | compatible = "ti,am4372", "ti,am43" | 101 | compatible = "ti,am4372", "ti,am43" |
90 | 102 | ||
diff --git a/Documentation/devicetree/bindings/arm/psci.txt b/Documentation/devicetree/bindings/arm/psci.txt index b4a58f39223c..5aa40ede0e99 100644 --- a/Documentation/devicetree/bindings/arm/psci.txt +++ b/Documentation/devicetree/bindings/arm/psci.txt | |||
@@ -50,6 +50,16 @@ Main node optional properties: | |||
50 | 50 | ||
51 | - migrate : Function ID for MIGRATE operation | 51 | - migrate : Function ID for MIGRATE operation |
52 | 52 | ||
53 | Device tree nodes that require usage of PSCI CPU_SUSPEND function (ie idle | ||
54 | state nodes, as per bindings in [1]) must specify the following properties: | ||
55 | |||
56 | - arm,psci-suspend-param | ||
57 | Usage: Required for state nodes[1] if the corresponding | ||
58 | idle-states node entry-method property is set | ||
59 | to "psci". | ||
60 | Value type: <u32> | ||
61 | Definition: power_state parameter to pass to the PSCI | ||
62 | suspend call. | ||
53 | 63 | ||
54 | Example: | 64 | Example: |
55 | 65 | ||
@@ -64,7 +74,6 @@ Case 1: PSCI v0.1 only. | |||
64 | migrate = <0x95c10003>; | 74 | migrate = <0x95c10003>; |
65 | }; | 75 | }; |
66 | 76 | ||
67 | |||
68 | Case 2: PSCI v0.2 only | 77 | Case 2: PSCI v0.2 only |
69 | 78 | ||
70 | psci { | 79 | psci { |
@@ -88,3 +97,6 @@ Case 3: PSCI v0.2 and PSCI v0.1. | |||
88 | 97 | ||
89 | ... | 98 | ... |
90 | }; | 99 | }; |
100 | |||
101 | [1] Kernel documentation - ARM idle states bindings | ||
102 | Documentation/devicetree/bindings/arm/idle-states.txt | ||
diff --git a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt index adc61b095bd1..709efaa30841 100644 --- a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt +++ b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt | |||
@@ -11,13 +11,25 @@ New driver handles the following | |||
11 | 11 | ||
12 | Required properties: | 12 | Required properties: |
13 | - compatible: Must be "samsung,exynos-adc-v1" | 13 | - compatible: Must be "samsung,exynos-adc-v1" |
14 | for exynos4412/5250 controllers. | 14 | for exynos4412/5250 and s5pv210 controllers. |
15 | Must be "samsung,exynos-adc-v2" for | 15 | Must be "samsung,exynos-adc-v2" for |
16 | future controllers. | 16 | future controllers. |
17 | Must be "samsung,exynos3250-adc" for | 17 | Must be "samsung,exynos3250-adc" for |
18 | controllers compatible with ADC of Exynos3250. | 18 | controllers compatible with ADC of Exynos3250. |
19 | - reg: Contains ADC register address range (base address and | 19 | Must be "samsung,s3c2410-adc" for |
20 | length) and the address of the phy enable register. | 20 | the ADC in s3c2410 and compatibles |
21 | Must be "samsung,s3c2416-adc" for | ||
22 | the ADC in s3c2416 and compatibles | ||
23 | Must be "samsung,s3c2440-adc" for | ||
24 | the ADC in s3c2440 and compatibles | ||
25 | Must be "samsung,s3c2443-adc" for | ||
26 | the ADC in s3c2443 and compatibles | ||
27 | Must be "samsung,s3c6410-adc" for | ||
28 | the ADC in s3c6410 and compatibles | ||
29 | - reg: List of ADC register address range | ||
30 | - The base address and range of ADC register | ||
31 | - The base address and range of ADC_PHY register (every | ||
32 | SoC except for s3c24xx/s3c64xx ADC) | ||
21 | - interrupts: Contains the interrupt information for the timer. The | 33 | - interrupts: Contains the interrupt information for the timer. The |
22 | format is being dependent on which interrupt controller | 34 | format is being dependent on which interrupt controller |
23 | the Samsung device uses. | 35 | the Samsung device uses. |
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt new file mode 100644 index 000000000000..51147cb5c036 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/shmobile.txt | |||
@@ -0,0 +1,71 @@ | |||
1 | Renesas SH-Mobile, R-Mobile, and R-Car Platform Device Tree Bindings | ||
2 | -------------------------------------------------------------------- | ||
3 | |||
4 | SoCs: | ||
5 | |||
6 | - Emma Mobile EV2 | ||
7 | compatible = "renesas,emev2" | ||
8 | - RZ/A1H (R7S72100) | ||
9 | compatible = "renesas,r7s72100" | ||
10 | - SH-Mobile AP4 (R8A73720/SH7372) | ||
11 | compatible = "renesas,sh7372" | ||
12 | - SH-Mobile AG5 (R8A73A00/SH73A0) | ||
13 | compatible = "renesas,sh73a0" | ||
14 | - R-Mobile APE6 (R8A73A40) | ||
15 | compatible = "renesas,r8a73a4" | ||
16 | - R-Mobile A1 (R8A77400) | ||
17 | compatible = "renesas,r8a7740" | ||
18 | - R-Car M1A (R8A77781) | ||
19 | compatible = "renesas,r8a7778" | ||
20 | - R-Car H1 (R8A77790) | ||
21 | compatible = "renesas,r8a7779" | ||
22 | - R-Car H2 (R8A77900) | ||
23 | compatible = "renesas,r8a7790" | ||
24 | - R-Car M2-W (R8A77910) | ||
25 | compatible = "renesas,r8a7791" | ||
26 | - R-Car V2H (R8A77920) | ||
27 | compatible = "renesas,r8a7792" | ||
28 | - R-Car M2-N (R8A77930) | ||
29 | compatible = "renesas,r8a7793" | ||
30 | - R-Car E2 (R8A77940) | ||
31 | compatible = "renesas,r8a7794" | ||
32 | |||
33 | |||
34 | Boards: | ||
35 | |||
36 | - Alt | ||
37 | compatible = "renesas,alt", "renesas,r8a7794" | ||
38 | - APE6-EVM | ||
39 | compatible = "renesas,ape6evm", "renesas,r8a73a4" | ||
40 | - APE6-EVM - Reference Device Tree Implementation | ||
41 | compatible = "renesas,ape6evm-reference", "renesas,r8a73a4" | ||
42 | - Atmark Techno Armadillo-800 EVA | ||
43 | compatible = "renesas,armadillo800eva" | ||
44 | - BOCK-W | ||
45 | compatible = "renesas,bockw", "renesas,r8a7778" | ||
46 | - BOCK-W - Reference Device Tree Implementation | ||
47 | compatible = "renesas,bockw-reference", "renesas,r8a7778" | ||
48 | - Genmai (RTK772100BC00000BR) | ||
49 | compatible = "renesas,genmai", "renesas,r7s72100" | ||
50 | - Gose | ||
51 | compatible = "renesas,gose", "renesas,r8a7793" | ||
52 | - Henninger | ||
53 | compatible = "renesas,henninger", "renesas,r8a7791" | ||
54 | - Koelsch (RTP0RC7791SEB00010S) | ||
55 | compatible = "renesas,koelsch", "renesas,r8a7791" | ||
56 | - Kyoto Microcomputer Co. KZM-A9-Dual | ||
57 | compatible = "renesas,kzm9d", "renesas,emev2" | ||
58 | - Kyoto Microcomputer Co. KZM-A9-GT | ||
59 | compatible = "renesas,kzm9g", "renesas,sh73a0" | ||
60 | - Kyoto Microcomputer Co. KZM-A9-GT - Reference Device Tree Implementation | ||
61 | compatible = "renesas,kzm9g-reference", "renesas,sh73a0" | ||
62 | - Lager (RTP0RC7790SEB00010S) | ||
63 | compatible = "renesas,lager", "renesas,r8a7790" | ||
64 | - Mackerel (R0P7372LC0016RL, AP4 EVM 2nd) | ||
65 | compatible = "renesas,mackerel" | ||
66 | - Marzen | ||
67 | compatible = "renesas,marzen", "renesas,r8a7779" | ||
68 | |||
69 | Note: Reference Device Tree Implementations are temporary implementations | ||
70 | to ease the migration from platform devices to Device Tree, and are | ||
71 | intended to be removed in the future. | ||
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt new file mode 100644 index 000000000000..ccf0adddc820 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt | |||
@@ -0,0 +1,12 @@ | |||
1 | NVIDIA Tegra Flow Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "nvidia,tegra<chip>-flowctrl" | ||
5 | - reg: Should contain one register range (address and length) | ||
6 | |||
7 | Example: | ||
8 | |||
9 | flow-controller@60007000 { | ||
10 | compatible = "nvidia,tegra20-flowctrl"; | ||
11 | reg = <0x60007000 0x1000>; | ||
12 | }; | ||
diff --git a/Documentation/devicetree/bindings/ata/qcom-sata.txt b/Documentation/devicetree/bindings/ata/qcom-sata.txt new file mode 100644 index 000000000000..094de91cd9fd --- /dev/null +++ b/Documentation/devicetree/bindings/ata/qcom-sata.txt | |||
@@ -0,0 +1,48 @@ | |||
1 | * Qualcomm AHCI SATA Controller | ||
2 | |||
3 | SATA nodes are defined to describe on-chip Serial ATA controllers. | ||
4 | Each SATA controller should have its own node. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : compatible list, must contain "generic-ahci" | ||
8 | - interrupts : <interrupt mapping for SATA IRQ> | ||
9 | - reg : <registers mapping> | ||
10 | - phys : Must contain exactly one entry as specified | ||
11 | in phy-bindings.txt | ||
12 | - phy-names : Must be "sata-phy" | ||
13 | |||
14 | Required properties for "qcom,ipq806x-ahci" compatible: | ||
15 | - clocks : Must contain an entry for each entry in clock-names. | ||
16 | - clock-names : Shall be: | ||
17 | "slave_iface" - Fabric port AHB clock for SATA | ||
18 | "iface" - AHB clock | ||
19 | "core" - core clock | ||
20 | "rxoob" - RX out-of-band clock | ||
21 | "pmalive" - Power Module Alive clock | ||
22 | - assigned-clocks : Shall be: | ||
23 | SATA_RXOOB_CLK | ||
24 | SATA_PMALIVE_CLK | ||
25 | - assigned-clock-rates : Shall be: | ||
26 | 100Mhz (100000000) for SATA_RXOOB_CLK | ||
27 | 100Mhz (100000000) for SATA_PMALIVE_CLK | ||
28 | |||
29 | Example: | ||
30 | sata@29000000 { | ||
31 | compatible = "qcom,ipq806x-ahci", "generic-ahci"; | ||
32 | reg = <0x29000000 0x180>; | ||
33 | |||
34 | interrupts = <0 209 0x0>; | ||
35 | |||
36 | clocks = <&gcc SFAB_SATA_S_H_CLK>, | ||
37 | <&gcc SATA_H_CLK>, | ||
38 | <&gcc SATA_A_CLK>, | ||
39 | <&gcc SATA_RXOOB_CLK>, | ||
40 | <&gcc SATA_PMALIVE_CLK>; | ||
41 | clock-names = "slave_iface", "iface", "core", | ||
42 | "rxoob", "pmalive"; | ||
43 | assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>; | ||
44 | assigned-clock-rates = <100000000>, <100000000>; | ||
45 | |||
46 | phys = <&sata_phy>; | ||
47 | phy-names = "sata-phy"; | ||
48 | }; | ||
diff --git a/Documentation/devicetree/bindings/bus/bcma.txt b/Documentation/devicetree/bindings/bus/bcma.txt new file mode 100644 index 000000000000..62a48348ac15 --- /dev/null +++ b/Documentation/devicetree/bindings/bus/bcma.txt | |||
@@ -0,0 +1,32 @@ | |||
1 | Driver for ARM AXI Bus with Broadcom Plugins (bcma) | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : brcm,bus-axi | ||
6 | |||
7 | - reg : iomem address range of chipcommon core | ||
8 | |||
9 | The cores on the AXI bus are automatically detected by bcma with the | ||
10 | memory ranges they are using and they get registered afterwards. | ||
11 | |||
12 | The top-level axi bus may contain children representing attached cores | ||
13 | (devices). This is needed since some hardware details can't be auto | ||
14 | detected (e.g. IRQ numbers). Also some of the cores may be responsible | ||
15 | for extra things, e.g. ChipCommon providing access to the GPIO chip. | ||
16 | |||
17 | Example: | ||
18 | |||
19 | axi@18000000 { | ||
20 | compatible = "brcm,bus-axi"; | ||
21 | reg = <0x18000000 0x1000>; | ||
22 | ranges = <0x00000000 0x18000000 0x00100000>; | ||
23 | #address-cells = <1>; | ||
24 | #size-cells = <1>; | ||
25 | |||
26 | chipcommon { | ||
27 | reg = <0x00000000 0x1000>; | ||
28 | |||
29 | gpio-controller; | ||
30 | #gpio-cells = <2>; | ||
31 | }; | ||
32 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/arm-integrator.txt b/Documentation/devicetree/bindings/clock/arm-integrator.txt index ecc69520bcea..11f5f95f571b 100644 --- a/Documentation/devicetree/bindings/clock/arm-integrator.txt +++ b/Documentation/devicetree/bindings/clock/arm-integrator.txt | |||
@@ -1,6 +1,6 @@ | |||
1 | Clock bindings for ARM Integrator and Versatile Core Module clocks | 1 | Clock bindings for ARM Integrator and Versatile Core Module clocks |
2 | 2 | ||
3 | Auxilary Oscillator Clock | 3 | Auxiliary Oscillator Clock |
4 | 4 | ||
5 | This is a configurable clock fed from a 24 MHz chrystal, | 5 | This is a configurable clock fed from a 24 MHz chrystal, |
6 | used for generating e.g. video clocks. It is located on the | 6 | used for generating e.g. video clocks. It is located on the |
diff --git a/Documentation/devicetree/bindings/clock/at91-clock.txt b/Documentation/devicetree/bindings/clock/at91-clock.txt index b3d544ca522a..7a4d4926f44e 100644 --- a/Documentation/devicetree/bindings/clock/at91-clock.txt +++ b/Documentation/devicetree/bindings/clock/at91-clock.txt | |||
@@ -74,6 +74,9 @@ Required properties: | |||
74 | "atmel,at91sam9x5-clk-utmi": | 74 | "atmel,at91sam9x5-clk-utmi": |
75 | at91 utmi clock | 75 | at91 utmi clock |
76 | 76 | ||
77 | "atmel,sama5d4-clk-h32mx": | ||
78 | at91 h32mx clock | ||
79 | |||
77 | Required properties for SCKC node: | 80 | Required properties for SCKC node: |
78 | - reg : defines the IO memory reserved for the SCKC. | 81 | - reg : defines the IO memory reserved for the SCKC. |
79 | - #size-cells : shall be 0 (reg is used to encode clk id). | 82 | - #size-cells : shall be 0 (reg is used to encode clk id). |
@@ -447,3 +450,14 @@ For example: | |||
447 | #clock-cells = <0>; | 450 | #clock-cells = <0>; |
448 | clocks = <&main>; | 451 | clocks = <&main>; |
449 | }; | 452 | }; |
453 | |||
454 | Required properties for 32 bits bus Matrix clock (h32mx clock): | ||
455 | - #clock-cells : from common clock binding; shall be set to 0. | ||
456 | - clocks : shall be the master clock source phandle. | ||
457 | |||
458 | For example: | ||
459 | h32ck: h32mxck { | ||
460 | #clock-cells = <0>; | ||
461 | compatible = "atmel,sama5d4-clk-h32mx"; | ||
462 | clocks = <&mck>; | ||
463 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt index aadc9c59e2d1..f57d9dd9ea85 100644 --- a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt | |||
@@ -7,6 +7,8 @@ Required Properties: | |||
7 | 7 | ||
8 | - compatible: should be one of the following. | 8 | - compatible: should be one of the following. |
9 | - "samsung,exynos3250-cmu" - controller compatible with Exynos3250 SoC. | 9 | - "samsung,exynos3250-cmu" - controller compatible with Exynos3250 SoC. |
10 | - "samsung,exynos3250-cmu-dmc" - controller compatible with | ||
11 | Exynos3250 SoC for Dynamic Memory Controller domain. | ||
10 | 12 | ||
11 | - reg: physical base address of the controller and length of memory mapped | 13 | - reg: physical base address of the controller and length of memory mapped |
12 | region. | 14 | region. |
@@ -20,7 +22,7 @@ All available clocks are defined as preprocessor macros in | |||
20 | dt-bindings/clock/exynos3250.h header and can be used in device | 22 | dt-bindings/clock/exynos3250.h header and can be used in device |
21 | tree sources. | 23 | tree sources. |
22 | 24 | ||
23 | Example 1: An example of a clock controller node is listed below. | 25 | Example 1: Examples of clock controller nodes are listed below. |
24 | 26 | ||
25 | cmu: clock-controller@10030000 { | 27 | cmu: clock-controller@10030000 { |
26 | compatible = "samsung,exynos3250-cmu"; | 28 | compatible = "samsung,exynos3250-cmu"; |
@@ -28,6 +30,12 @@ Example 1: An example of a clock controller node is listed below. | |||
28 | #clock-cells = <1>; | 30 | #clock-cells = <1>; |
29 | }; | 31 | }; |
30 | 32 | ||
33 | cmu_dmc: clock-controller@105C0000 { | ||
34 | compatible = "samsung,exynos3250-cmu-dmc"; | ||
35 | reg = <0x105C0000 0x2000>; | ||
36 | #clock-cells = <1>; | ||
37 | }; | ||
38 | |||
31 | Example 2: UART controller node that consumes the clock generated by the clock | 39 | Example 2: UART controller node that consumes the clock generated by the clock |
32 | controller. Refer to the standard clock bindings for information | 40 | controller. Refer to the standard clock bindings for information |
33 | about 'clocks' and 'clock-names' property. | 41 | about 'clocks' and 'clock-names' property. |
diff --git a/Documentation/devicetree/bindings/clock/gpio-gate-clock.txt b/Documentation/devicetree/bindings/clock/gpio-gate-clock.txt new file mode 100644 index 000000000000..d3379ff9b84b --- /dev/null +++ b/Documentation/devicetree/bindings/clock/gpio-gate-clock.txt | |||
@@ -0,0 +1,21 @@ | |||
1 | Binding for simple gpio gated clock. | ||
2 | |||
3 | This binding uses the common clock binding[1]. | ||
4 | |||
5 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
6 | |||
7 | Required properties: | ||
8 | - compatible : shall be "gpio-gate-clock". | ||
9 | - #clock-cells : from common clock binding; shall be set to 0. | ||
10 | - enable-gpios : GPIO reference for enabling and disabling the clock. | ||
11 | |||
12 | Optional properties: | ||
13 | - clocks: Maximum of one parent clock is supported. | ||
14 | |||
15 | Example: | ||
16 | clock { | ||
17 | compatible = "gpio-gate-clock"; | ||
18 | clocks = <&parentclk>; | ||
19 | #clock-cells = <0>; | ||
20 | enable-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; | ||
21 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/maxim,max77686.txt b/Documentation/devicetree/bindings/clock/maxim,max77686.txt index 96ce71bbd745..9c40739a661a 100644 --- a/Documentation/devicetree/bindings/clock/maxim,max77686.txt +++ b/Documentation/devicetree/bindings/clock/maxim,max77686.txt | |||
@@ -9,13 +9,21 @@ The MAX77686 contains three 32.768khz clock outputs that can be controlled | |||
9 | Following properties should be presend in main device node of the MFD chip. | 9 | Following properties should be presend in main device node of the MFD chip. |
10 | 10 | ||
11 | Required properties: | 11 | Required properties: |
12 | - #clock-cells: simple one-cell clock specifier format is used, where the | 12 | |
13 | only cell is used as an index of the clock inside the provider. Following | 13 | - #clock-cells: from common clock binding; shall be set to 1. |
14 | indices are allowed: | 14 | |
15 | Optional properties: | ||
16 | - clock-output-names: From common clock binding. | ||
17 | |||
18 | Each clock is assigned an identifier and client nodes can use this identifier | ||
19 | to specify the clock which they consume. Following indices are allowed: | ||
15 | - 0: 32khz_ap clock, | 20 | - 0: 32khz_ap clock, |
16 | - 1: 32khz_cp clock, | 21 | - 1: 32khz_cp clock, |
17 | - 2: 32khz_pmic clock. | 22 | - 2: 32khz_pmic clock. |
18 | 23 | ||
24 | Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max77686.h | ||
25 | header and can be used in device tree sources. | ||
26 | |||
19 | Example: Node of the MFD chip | 27 | Example: Node of the MFD chip |
20 | 28 | ||
21 | max77686: max77686@09 { | 29 | max77686: max77686@09 { |
@@ -34,5 +42,5 @@ Example: Clock consumer node | |||
34 | compatible = "bar,foo"; | 42 | compatible = "bar,foo"; |
35 | /* ... */ | 43 | /* ... */ |
36 | clock-names = "my-clock"; | 44 | clock-names = "my-clock"; |
37 | clocks = <&max77686 2>; | 45 | clocks = <&max77686 MAX77686_CLK_PMIC>; |
38 | }; | 46 | }; |
diff --git a/Documentation/devicetree/bindings/clock/maxim,max77802.txt b/Documentation/devicetree/bindings/clock/maxim,max77802.txt new file mode 100644 index 000000000000..c6dc7835f06c --- /dev/null +++ b/Documentation/devicetree/bindings/clock/maxim,max77802.txt | |||
@@ -0,0 +1,44 @@ | |||
1 | Binding for Maxim MAX77802 32k clock generator block | ||
2 | |||
3 | This is a part of device tree bindings of MAX77802 multi-function device. | ||
4 | More information can be found in bindings/mfd/max77802.txt file. | ||
5 | |||
6 | The MAX77802 contains two 32.768khz clock outputs that can be controlled | ||
7 | (gated/ungated) over I2C. | ||
8 | |||
9 | Following properties should be present in main device node of the MFD chip. | ||
10 | |||
11 | Required properties: | ||
12 | - #clock-cells: From common clock binding; shall be set to 1. | ||
13 | |||
14 | Optional properties: | ||
15 | - clock-output-names: From common clock binding. | ||
16 | |||
17 | Each clock is assigned an identifier and client nodes can use this identifier | ||
18 | to specify the clock which they consume. Following indices are allowed: | ||
19 | - 0: 32khz_ap clock, | ||
20 | - 1: 32khz_cp clock. | ||
21 | |||
22 | Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max77802.h | ||
23 | header and can be used in device tree sources. | ||
24 | |||
25 | Example: Node of the MFD chip | ||
26 | |||
27 | max77802: max77802@09 { | ||
28 | compatible = "maxim,max77802"; | ||
29 | interrupt-parent = <&wakeup_eint>; | ||
30 | interrupts = <26 0>; | ||
31 | reg = <0x09>; | ||
32 | #clock-cells = <1>; | ||
33 | |||
34 | /* ... */ | ||
35 | }; | ||
36 | |||
37 | Example: Clock consumer node | ||
38 | |||
39 | foo@0 { | ||
40 | compatible = "bar,foo"; | ||
41 | /* ... */ | ||
42 | clock-names = "my-clock"; | ||
43 | clocks = <&max77802 MAX77802_CLK_32K_AP>; | ||
44 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/pxa-clock.txt b/Documentation/devicetree/bindings/clock/pxa-clock.txt new file mode 100644 index 000000000000..4b4a9024bd99 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/pxa-clock.txt | |||
@@ -0,0 +1,16 @@ | |||
1 | * Clock bindings for Marvell PXA chips | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "marvell,pxa-clocks" | ||
5 | - #clock-cells: Should be <1> | ||
6 | |||
7 | The clock consumer should specify the desired clock by having the clock | ||
8 | ID in its "clocks" phandle cell (see include/.../pxa-clock.h). | ||
9 | |||
10 | Examples: | ||
11 | |||
12 | pxa2xx_clks: pxa2xx_clks@41300004 { | ||
13 | compatible = "marvell,pxa-clocks"; | ||
14 | #clock-cells = <1>; | ||
15 | status = "okay"; | ||
16 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt index 8a92b5fb3540..a5f52238c80d 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | |||
@@ -11,9 +11,12 @@ Required Properties: | |||
11 | 11 | ||
12 | - compatible: Must be one of the following | 12 | - compatible: Must be one of the following |
13 | - "renesas,r7s72100-mstp-clocks" for R7S72100 (RZ) MSTP gate clocks | 13 | - "renesas,r7s72100-mstp-clocks" for R7S72100 (RZ) MSTP gate clocks |
14 | - "renesas,r8a7740-mstp-clocks" for R8A7740 (R-Mobile A1) MSTP gate clocks | ||
14 | - "renesas,r8a7779-mstp-clocks" for R8A7779 (R-Car H1) MSTP gate clocks | 15 | - "renesas,r8a7779-mstp-clocks" for R8A7779 (R-Car H1) MSTP gate clocks |
15 | - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks | 16 | - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks |
16 | - "renesas,r8a7791-mstp-clocks" for R8A7791 (R-Car M2) MSTP gate clocks | 17 | - "renesas,r8a7791-mstp-clocks" for R8A7791 (R-Car M2) MSTP gate clocks |
18 | - "renesas,r8a7794-mstp-clocks" for R8A7794 (R-Car E2) MSTP gate clocks | ||
19 | - "renesas,sh73a0-mstp-clocks" for SH73A0 (SH-MobileAG5) MSTP gate clocks | ||
17 | - "renesas,cpg-mstp-clock" for generic MSTP gate clocks | 20 | - "renesas,cpg-mstp-clock" for generic MSTP gate clocks |
18 | - reg: Base address and length of the I/O mapped registers used by the MSTP | 21 | - reg: Base address and length of the I/O mapped registers used by the MSTP |
19 | clocks. The first register is the clock control register and is mandatory. | 22 | clocks. The first register is the clock control register and is mandatory. |
diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt index 7b41c2fe54db..e6ad35b894f9 100644 --- a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | |||
@@ -8,6 +8,7 @@ Required Properties: | |||
8 | - compatible: Must be one of | 8 | - compatible: Must be one of |
9 | - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG | 9 | - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG |
10 | - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG | 10 | - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG |
11 | - "renesas,r8a7794-cpg-clocks" for the r8a7794 CPG | ||
11 | - "renesas,rcar-gen2-cpg-clocks" for the generic R-Car Gen2 CPG | 12 | - "renesas,rcar-gen2-cpg-clocks" for the generic R-Car Gen2 CPG |
12 | 13 | ||
13 | - reg: Base address and length of the memory resource used by the CPG | 14 | - reg: Base address and length of the memory resource used by the CPG |
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt index d3a5c3c6d677..ed116df9c3e7 100644 --- a/Documentation/devicetree/bindings/clock/sunxi.txt +++ b/Documentation/devicetree/bindings/clock/sunxi.txt | |||
@@ -46,7 +46,11 @@ Required properties: | |||
46 | "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31 | 46 | "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31 |
47 | "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31 | 47 | "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31 |
48 | "allwinner,sun8i-a23-apb2-gates-clk" - for the APB2 gates on A23 | 48 | "allwinner,sun8i-a23-apb2-gates-clk" - for the APB2 gates on A23 |
49 | "allwinner,sun5i-a13-mbus-clk" - for the MBUS clock on A13 | ||
50 | "allwinner,sun4i-a10-mmc-output-clk" - for the MMC output clock on A10 | ||
51 | "allwinner,sun4i-a10-mmc-sample-clk" - for the MMC sample clock on A10 | ||
49 | "allwinner,sun4i-a10-mod0-clk" - for the module 0 family of clocks | 52 | "allwinner,sun4i-a10-mod0-clk" - for the module 0 family of clocks |
53 | "allwinner,sun8i-a23-mbus-clk" - for the MBUS clock on A23 | ||
50 | "allwinner,sun7i-a20-out-clk" - for the external output clocks | 54 | "allwinner,sun7i-a20-out-clk" - for the external output clocks |
51 | "allwinner,sun7i-a20-gmac-clk" - for the GMAC clock module on A20/A31 | 55 | "allwinner,sun7i-a20-gmac-clk" - for the GMAC clock module on A20/A31 |
52 | "allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20 | 56 | "allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20 |
diff --git a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt b/Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt index 366690cb86a3..e41c98ffbccb 100644 --- a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt +++ b/Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | Generic CPU0 cpufreq driver | 1 | Generic cpufreq driver |
2 | 2 | ||
3 | It is a generic cpufreq driver for CPU0 frequency management. It | 3 | It is a generic DT based cpufreq driver for frequency management. It supports |
4 | supports both uniprocessor (UP) and symmetric multiprocessor (SMP) | 4 | both uniprocessor (UP) and symmetric multiprocessor (SMP) systems which share |
5 | systems which share clock and voltage across all CPUs. | 5 | clock and voltage across all CPUs. |
6 | 6 | ||
7 | Both required and optional properties listed below must be defined | 7 | Both required and optional properties listed below must be defined |
8 | under node /cpus/cpu@0. | 8 | under node /cpus/cpu@0. |
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec6.txt b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt index c0a20cd972e3..baf8a3c1b469 100644 --- a/Documentation/devicetree/bindings/crypto/fsl-sec6.txt +++ b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt | |||
@@ -1,5 +1,5 @@ | |||
1 | SEC 6 is as Freescale's Cryptographic Accelerator and Assurance Module (CAAM). | 1 | SEC 6 is as Freescale's Cryptographic Accelerator and Assurance Module (CAAM). |
2 | Currently Freescale powerpc chip C29X is embeded with SEC 6. | 2 | Currently Freescale powerpc chip C29X is embedded with SEC 6. |
3 | SEC 6 device tree binding include: | 3 | SEC 6 device tree binding include: |
4 | -SEC 6 Node | 4 | -SEC 6 Node |
5 | -Job Ring Node | 5 | -Job Ring Node |
diff --git a/Documentation/devicetree/bindings/dma/rcar-audmapp.txt b/Documentation/devicetree/bindings/dma/rcar-audmapp.txt index 9f1d750d76de..61bca509d7b9 100644 --- a/Documentation/devicetree/bindings/dma/rcar-audmapp.txt +++ b/Documentation/devicetree/bindings/dma/rcar-audmapp.txt | |||
@@ -16,9 +16,9 @@ Example: | |||
16 | * DMA client | 16 | * DMA client |
17 | 17 | ||
18 | Required properties: | 18 | Required properties: |
19 | - dmas: a list of <[DMA multiplexer phandle] [SRS/DRS value]> pairs, | 19 | - dmas: a list of <[DMA multiplexer phandle] [SRS << 8 | DRS]> pairs. |
20 | where SRS/DRS values are fixed handles, specified in the SoC | 20 | where SRS/DRS are specified in the SoC manual. |
21 | manual as the value that would be written into the PDMACHCR. | 21 | It will be written into PDMACHCR as high 16-bit parts. |
22 | - dma-names: a list of DMA channel names, one per "dmas" entry | 22 | - dma-names: a list of DMA channel names, one per "dmas" entry |
23 | 23 | ||
24 | Example: | 24 | Example: |
diff --git a/Documentation/devicetree/bindings/drm/tilcdc/panel.txt b/Documentation/devicetree/bindings/drm/tilcdc/panel.txt index 9301c330d1a6..4ab9e2300907 100644 --- a/Documentation/devicetree/bindings/drm/tilcdc/panel.txt +++ b/Documentation/devicetree/bindings/drm/tilcdc/panel.txt | |||
@@ -18,6 +18,10 @@ Required properties: | |||
18 | Documentation/devicetree/bindings/video/display-timing.txt for display | 18 | Documentation/devicetree/bindings/video/display-timing.txt for display |
19 | timing binding details. | 19 | timing binding details. |
20 | 20 | ||
21 | Optional properties: | ||
22 | - backlight: phandle of the backlight device attached to the panel | ||
23 | - enable-gpios: GPIO pin to enable or disable the panel | ||
24 | |||
21 | Recommended properties: | 25 | Recommended properties: |
22 | - pinctrl-names, pinctrl-0: the pincontrol settings to configure | 26 | - pinctrl-names, pinctrl-0: the pincontrol settings to configure |
23 | muxing properly for pins that connect to TFP410 device | 27 | muxing properly for pins that connect to TFP410 device |
@@ -29,6 +33,9 @@ Example: | |||
29 | compatible = "ti,tilcdc,panel"; | 33 | compatible = "ti,tilcdc,panel"; |
30 | pinctrl-names = "default"; | 34 | pinctrl-names = "default"; |
31 | pinctrl-0 = <&bone_lcd3_cape_lcd_pins>; | 35 | pinctrl-0 = <&bone_lcd3_cape_lcd_pins>; |
36 | backlight = <&backlight>; | ||
37 | enable-gpios = <&gpio3 19 0>; | ||
38 | |||
32 | panel-info { | 39 | panel-info { |
33 | ac-bias = <255>; | 40 | ac-bias = <255>; |
34 | ac-bias-intrpt = <0>; | 41 | ac-bias-intrpt = <0>; |
diff --git a/Documentation/devicetree/bindings/extcon/extcon-rt8973a.txt b/Documentation/devicetree/bindings/extcon/extcon-rt8973a.txt new file mode 100644 index 000000000000..6dede7d11532 --- /dev/null +++ b/Documentation/devicetree/bindings/extcon/extcon-rt8973a.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | |||
2 | * Richtek RT8973A - Micro USB Switch device | ||
3 | |||
4 | The Richtek RT8973A is Micro USB Switch with OVP and I2C interface. The RT8973A | ||
5 | is a USB port accessory detector and switch that is optimized to protect low | ||
6 | voltage system from abnormal high input voltage (up to 28V) and supports high | ||
7 | speed USB operation. Also, RT8973A support 'auto-configuration' mode. | ||
8 | If auto-configuration mode is enabled, RT8973A would control internal h/w patch | ||
9 | for USB D-/D+ switching. | ||
10 | |||
11 | Required properties: | ||
12 | - compatible: Should be "richtek,rt8973a-muic" | ||
13 | - reg: Specifies the I2C slave address of the MUIC block. It should be 0x14 | ||
14 | - interrupt-parent: Specifies the phandle of the interrupt controller to which | ||
15 | the interrupts from rt8973a are delivered to. | ||
16 | - interrupts: Interrupt specifiers for detection interrupt sources. | ||
17 | |||
18 | Example: | ||
19 | |||
20 | rt8973a@14 { | ||
21 | compatible = "richtek,rt8973a-muic"; | ||
22 | interrupt-parent = <&gpx1>; | ||
23 | interrupts = <5 0>; | ||
24 | reg = <0x14>; | ||
25 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt b/Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt new file mode 100644 index 000000000000..6c7e6c7302f5 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | Keystone 2 DSP GPIO controller bindings | ||
2 | |||
3 | HOST OS userland running on ARM can send interrupts to DSP cores using | ||
4 | the DSP GPIO controller IP. It provides 28 IRQ signals per each DSP core. | ||
5 | This is one of the component used by the IPC mechanism used on Keystone SOCs. | ||
6 | |||
7 | For example TCI6638K2K SoC has 8 DSP GPIO controllers: | ||
8 | - 8 for C66x CorePacx CPUs 0-7 | ||
9 | |||
10 | Keystone 2 DSP GPIO controller has specific features: | ||
11 | - each GPIO can be configured only as output pin; | ||
12 | - setting GPIO value to 1 causes IRQ generation on target DSP core; | ||
13 | - reading pin value returns 0 - if IRQ was handled or 1 - IRQ is still | ||
14 | pending. | ||
15 | |||
16 | Required Properties: | ||
17 | - compatible: should be "ti,keystone-dsp-gpio" | ||
18 | - ti,syscon-dev: phandle/offset pair. The phandle to syscon used to | ||
19 | access device state control registers and the offset of device's specific | ||
20 | registers within device state control registers range. | ||
21 | - gpio-controller: Marks the device node as a gpio controller. | ||
22 | - #gpio-cells: Should be 2. | ||
23 | |||
24 | Please refer to gpio.txt in this directory for details of the common GPIO | ||
25 | bindings used by client devices. | ||
26 | |||
27 | Example: | ||
28 | dspgpio0: keystone_dsp_gpio@02620240 { | ||
29 | compatible = "ti,keystone-dsp-gpio"; | ||
30 | ti,syscon-dev = <&devctrl 0x240>; | ||
31 | gpio-controller; | ||
32 | #gpio-cells = <2>; | ||
33 | }; | ||
34 | |||
35 | dsp0: dsp0 { | ||
36 | compatible = "linux,rproc-user"; | ||
37 | ... | ||
38 | kick-gpio = <&dspgpio0 27>; | ||
39 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt b/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt new file mode 100644 index 000000000000..b9a42f294dd0 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | * NXP PCA953x I2C GPIO multiplexer | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Has to contain one of the following: | ||
5 | nxp,pca9505 | ||
6 | nxp,pca9534 | ||
7 | nxp,pca9535 | ||
8 | nxp,pca9536 | ||
9 | nxp,pca9537 | ||
10 | nxp,pca9538 | ||
11 | nxp,pca9539 | ||
12 | nxp,pca9554 | ||
13 | nxp,pca9555 | ||
14 | nxp,pca9556 | ||
15 | nxp,pca9557 | ||
16 | nxp,pca9574 | ||
17 | nxp,pca9575 | ||
18 | nxp,pca9698 | ||
19 | maxim,max7310 | ||
20 | maxim,max7312 | ||
21 | maxim,max7313 | ||
22 | maxim,max7315 | ||
23 | ti,pca6107 | ||
24 | ti,tca6408 | ||
25 | ti,tca6416 | ||
26 | ti,tca6424 | ||
27 | exar,xra1202 | ||
28 | |||
29 | Example: | ||
30 | |||
31 | |||
32 | gpio@20 { | ||
33 | compatible = "nxp,pca9505"; | ||
34 | reg = <0x20>; | ||
35 | pinctrl-names = "default"; | ||
36 | pinctrl-0 = <&pinctrl_pca9505>; | ||
37 | interrupt-parent = <&gpio3>; | ||
38 | interrupts = <23 IRQ_TYPE_LEVEL_LOW>; | ||
39 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-restart.txt b/Documentation/devicetree/bindings/gpio/gpio-restart.txt new file mode 100644 index 000000000000..af3701bc15c4 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-restart.txt | |||
@@ -0,0 +1,54 @@ | |||
1 | Drive a GPIO line that can be used to restart the system from a restart | ||
2 | handler. | ||
3 | |||
4 | This binding supports level and edge triggered reset. At driver load | ||
5 | time, the driver will request the given gpio line and install a restart | ||
6 | handler. If the optional properties 'open-source' is not found, the GPIO line | ||
7 | will be driven in the inactive state. Otherwise its not driven until | ||
8 | the restart is initiated. | ||
9 | |||
10 | When the system is restarted, the restart handler will be invoked in | ||
11 | priority order. The gpio is configured as an output, and driven active, | ||
12 | triggering a level triggered reset condition. This will also cause an | ||
13 | inactive->active edge condition, triggering positive edge triggered | ||
14 | reset. After a delay specified by active-delay, the GPIO is set to | ||
15 | inactive, thus causing an active->inactive edge, triggering negative edge | ||
16 | triggered reset. After a delay specified by inactive-delay, the GPIO | ||
17 | is driven active again. After a delay specified by wait-delay, the | ||
18 | restart handler completes allowing other restart handlers to be attempted. | ||
19 | |||
20 | Required properties: | ||
21 | - compatible : should be "gpio-restart". | ||
22 | - gpios : The GPIO to set high/low, see "gpios property" in | ||
23 | Documentation/devicetree/bindings/gpio/gpio.txt. If the pin should be | ||
24 | low to reset the board set it to "Active Low", otherwise set | ||
25 | gpio to "Active High". | ||
26 | |||
27 | Optional properties: | ||
28 | - open-source : Treat the GPIO as being open source and defer driving | ||
29 | it to when the restart is initiated. If this optional property is not | ||
30 | specified, the GPIO is initialized as an output in its inactive state. | ||
31 | - priority : A priority ranging from 0 to 255 (default 128) according to | ||
32 | the following guidelines: | ||
33 | 0: Restart handler of last resort, with limited restart | ||
34 | capabilities | ||
35 | 128: Default restart handler; use if no other restart handler is | ||
36 | expected to be available, and/or if restart functionality is | ||
37 | sufficient to restart the entire system | ||
38 | 255: Highest priority restart handler, will preempt all other | ||
39 | restart handlers | ||
40 | - active-delay: Delay (default 100) to wait after driving gpio active [ms] | ||
41 | - inactive-delay: Delay (default 100) to wait after driving gpio inactive [ms] | ||
42 | - wait-delay: Delay (default 3000) to wait after completing restart | ||
43 | sequence [ms] | ||
44 | |||
45 | Examples: | ||
46 | |||
47 | gpio-restart { | ||
48 | compatible = "gpio-restart"; | ||
49 | gpios = <&gpio 4 0>; | ||
50 | priority = <128>; | ||
51 | active-delay = <100>; | ||
52 | inactive-delay = <100>; | ||
53 | wait-delay = <3000>; | ||
54 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-xgene.txt b/Documentation/devicetree/bindings/gpio/gpio-xgene.txt new file mode 100644 index 000000000000..86dbb05e7758 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-xgene.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | APM X-Gene SoC GPIO controller bindings | ||
2 | |||
3 | This is a gpio controller that is part of the flash controller. | ||
4 | This gpio controller controls a total of 48 gpios. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: "apm,xgene-gpio" for X-Gene GPIO controller | ||
8 | - reg: Physical base address and size of the controller's registers | ||
9 | - #gpio-cells: Should be two. | ||
10 | - first cell is the pin number | ||
11 | - second cell is used to specify the gpio polarity: | ||
12 | 0 = active high | ||
13 | 1 = active low | ||
14 | - gpio-controller: Marks the device node as a GPIO controller. | ||
15 | |||
16 | Example: | ||
17 | gpio0: gpio0@1701c000 { | ||
18 | compatible = "apm,xgene-gpio"; | ||
19 | reg = <0x0 0x1701c000 0x0 0x40>; | ||
20 | gpio-controller; | ||
21 | #gpio-cells = <2>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt index 66416261e14d..b2afdb27adeb 100644 --- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt | |||
@@ -19,7 +19,7 @@ Required properties: | |||
19 | - gpio-controller : Marks the device node as a gpio controller. | 19 | - gpio-controller : Marks the device node as a gpio controller. |
20 | - #gpio-cells : Should be one. It is the pin number. | 20 | - #gpio-cells : Should be one. It is the pin number. |
21 | 21 | ||
22 | Example: | 22 | Example for a MMP platform: |
23 | 23 | ||
24 | gpio: gpio@d4019000 { | 24 | gpio: gpio@d4019000 { |
25 | compatible = "marvell,mmp-gpio"; | 25 | compatible = "marvell,mmp-gpio"; |
@@ -32,6 +32,19 @@ Example: | |||
32 | #interrupt-cells = <1>; | 32 | #interrupt-cells = <1>; |
33 | }; | 33 | }; |
34 | 34 | ||
35 | Example for a PXA3xx platform: | ||
36 | |||
37 | gpio: gpio@40e00000 { | ||
38 | compatible = "intel,pxa3xx-gpio"; | ||
39 | reg = <0x40e00000 0x10000>; | ||
40 | interrupt-names = "gpio0", "gpio1", "gpio_mux"; | ||
41 | interrupts = <8 9 10>; | ||
42 | gpio-controller; | ||
43 | #gpio-cells = <0x2>; | ||
44 | interrupt-controller; | ||
45 | #interrupt-cells = <0x2>; | ||
46 | }; | ||
47 | |||
35 | * Marvell Orion GPIO Controller | 48 | * Marvell Orion GPIO Controller |
36 | 49 | ||
37 | Required properties: | 50 | Required properties: |
diff --git a/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt b/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt index 2391e5c41999..fcca8e744f41 100644 --- a/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt +++ b/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt | |||
@@ -25,6 +25,9 @@ Requires node properties: | |||
25 | - "io-channels" Channel node of ADC to be used for | 25 | - "io-channels" Channel node of ADC to be used for |
26 | conversion. | 26 | conversion. |
27 | 27 | ||
28 | Optional node properties: | ||
29 | - "#thermal-sensor-cells" Used to expose itself to thermal fw. | ||
30 | |||
28 | Read more about iio bindings at | 31 | Read more about iio bindings at |
29 | Documentation/devicetree/bindings/iio/iio-bindings.txt | 32 | Documentation/devicetree/bindings/iio/iio-bindings.txt |
30 | 33 | ||
diff --git a/Documentation/devicetree/bindings/i2c/ti,bq32k.txt b/Documentation/devicetree/bindings/i2c/ti,bq32k.txt new file mode 100644 index 000000000000..e204906b9ad3 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/ti,bq32k.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | * TI BQ32000 I2C Serial Real-Time Clock | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should contain "ti,bq32000". | ||
5 | - reg: I2C address for chip | ||
6 | |||
7 | Optional properties: | ||
8 | - trickle-resistor-ohms : Selected resistor for trickle charger | ||
9 | Values usable are 1120 and 20180 | ||
10 | Should be given if trickle charger should be enabled | ||
11 | - trickle-diode-disable : Do not use internal trickle charger diode | ||
12 | Should be given if internal trickle charger diode should be disabled | ||
13 | Example: | ||
14 | bq32000: rtc@68 { | ||
15 | compatible = "ti,bq32000"; | ||
16 | trickle-resistor-ohms = <1120>; | ||
17 | reg = <0x68>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt index 6af570ec53b4..fbde415078e6 100644 --- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt +++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt | |||
@@ -35,7 +35,6 @@ catalyst,24c32 i2c serial eeprom | |||
35 | cirrus,cs42l51 Cirrus Logic CS42L51 audio codec | 35 | cirrus,cs42l51 Cirrus Logic CS42L51 audio codec |
36 | dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock | 36 | dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock |
37 | dallas,ds1338 I2C RTC with 56-Byte NV RAM | 37 | dallas,ds1338 I2C RTC with 56-Byte NV RAM |
38 | dallas,ds1339 I2C Serial Real-Time Clock | ||
39 | dallas,ds1340 I2C RTC with Trickle Charger | 38 | dallas,ds1340 I2C RTC with Trickle Charger |
40 | dallas,ds1374 I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output | 39 | dallas,ds1374 I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output |
41 | dallas,ds1631 High-Precision Digital Thermometer | 40 | dallas,ds1631 High-Precision Digital Thermometer |
@@ -44,7 +43,7 @@ dallas,ds1775 Tiny Digital Thermometer and Thermostat | |||
44 | dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM | 43 | dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM |
45 | dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O | 44 | dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O |
46 | dallas,ds75 Digital Thermometer and Thermostat | 45 | dallas,ds75 Digital Thermometer and Thermostat |
47 | dialog,da9053 DA9053: flexible system level PMIC with multicore support | 46 | dlg,da9053 DA9053: flexible system level PMIC with multicore support |
48 | epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE | 47 | epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE |
49 | epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE | 48 | epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE |
50 | fsl,mag3110 MAG3110: Xtrinsic High Accuracy, 3D Magnetometer | 49 | fsl,mag3110 MAG3110: Xtrinsic High Accuracy, 3D Magnetometer |
diff --git a/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt b/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt new file mode 100644 index 000000000000..5d3ec1df226d --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | Rockchip Successive Approximation Register (SAR) A/D Converter bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "rockchip,saradc" | ||
5 | - reg: physical base address of the controller and length of memory mapped | ||
6 | region. | ||
7 | - interrupts: The interrupt number to the cpu. The interrupt specifier format | ||
8 | depends on the interrupt controller. | ||
9 | - clocks: Must contain an entry for each entry in clock-names. | ||
10 | - clock-names: Shall be "saradc" for the converter-clock, and "apb_pclk" for | ||
11 | the peripheral clock. | ||
12 | - vref-supply: The regulator supply ADC reference voltage. | ||
13 | - #io-channel-cells: Should be 1, see ../iio-bindings.txt | ||
14 | |||
15 | Example: | ||
16 | saradc: saradc@2006c000 { | ||
17 | compatible = "rockchip,saradc"; | ||
18 | reg = <0x2006c000 0x100>; | ||
19 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | ||
20 | clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>; | ||
21 | clock-names = "saradc", "apb_pclk"; | ||
22 | #io-channel-cells = <1>; | ||
23 | vref-supply = <&vcc18>; | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt b/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt index dcebff1928e1..1a4a43d5c9ea 100644 --- a/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt +++ b/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt | |||
@@ -9,7 +9,7 @@ Required properties: | |||
9 | - interrupts: Should contain the interrupt for the device | 9 | - interrupts: Should contain the interrupt for the device |
10 | - clocks: The clock is needed by the ADC controller, ADC clock source is ipg clock. | 10 | - clocks: The clock is needed by the ADC controller, ADC clock source is ipg clock. |
11 | - clock-names: Must contain "adc", matching entry in the clocks property. | 11 | - clock-names: Must contain "adc", matching entry in the clocks property. |
12 | - vref-supply: The regulator supply ADC refrence voltage. | 12 | - vref-supply: The regulator supply ADC reference voltage. |
13 | 13 | ||
14 | Example: | 14 | Example: |
15 | adc0: adc@4003b000 { | 15 | adc0: adc@4003b000 { |
diff --git a/Documentation/devicetree/bindings/iio/dac/max5821.txt b/Documentation/devicetree/bindings/iio/dac/max5821.txt new file mode 100644 index 000000000000..54276ce8c971 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/dac/max5821.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | Maxim max5821 DAC device driver | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Must be "maxim,max5821" | ||
5 | - reg: Should contain the DAC I2C address | ||
6 | - vref-supply: Phandle to the vref power supply | ||
7 | |||
8 | Example: | ||
9 | |||
10 | max5821@38 { | ||
11 | compatible = "maxim,max5821"; | ||
12 | reg = <0x38>; | ||
13 | vref-supply = <®_max5821>; | ||
14 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt index baef432e8369..1852906517ab 100644 --- a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt +++ b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt | |||
@@ -11,10 +11,17 @@ Required properties: | |||
11 | 11 | ||
12 | Optional properties for main touchpad device: | 12 | Optional properties for main touchpad device: |
13 | 13 | ||
14 | - linux,gpio-keymap: An array of up to 4 entries indicating the Linux | 14 | - linux,gpio-keymap: When enabled, the SPT_GPIOPWN_T19 object sends messages |
15 | keycode generated by each GPIO. Linux keycodes are defined in | 15 | on GPIO bit changes. An array of up to 8 entries can be provided |
16 | indicating the Linux keycode mapped to each bit of the status byte, | ||
17 | starting at the LSB. Linux keycodes are defined in | ||
16 | <dt-bindings/input/input.h>. | 18 | <dt-bindings/input/input.h>. |
17 | 19 | ||
20 | Note: the numbering of the GPIOs and the bit they start at varies between | ||
21 | maXTouch devices. You must either refer to the documentation, or | ||
22 | experiment to determine which bit corresponds to which input. Use | ||
23 | KEY_RESERVED for unused padding values. | ||
24 | |||
18 | Example: | 25 | Example: |
19 | 26 | ||
20 | touch@4b { | 27 | touch@4b { |
diff --git a/Documentation/devicetree/bindings/input/ti,drv260x.txt b/Documentation/devicetree/bindings/input/ti,drv260x.txt new file mode 100644 index 000000000000..ee09c8f4474a --- /dev/null +++ b/Documentation/devicetree/bindings/input/ti,drv260x.txt | |||
@@ -0,0 +1,50 @@ | |||
1 | * Texas Instruments - drv260x Haptics driver family | ||
2 | |||
3 | Required properties: | ||
4 | - compatible - One of: | ||
5 | "ti,drv2604" - DRV2604 | ||
6 | "ti,drv2605" - DRV2605 | ||
7 | "ti,drv2605l" - DRV2605L | ||
8 | - reg - I2C slave address | ||
9 | - vbat-supply - Required supply regulator | ||
10 | - mode - Power up mode of the chip (defined in include/dt-bindings/input/ti-drv260x.h) | ||
11 | DRV260X_LRA_MODE - Linear Resonance Actuator mode (Piezoelectric) | ||
12 | DRV260X_LRA_NO_CAL_MODE - This is a LRA Mode but there is no calibration | ||
13 | sequence during init. And the device is configured for real | ||
14 | time playback mode (RTP mode). | ||
15 | DRV260X_ERM_MODE - Eccentric Rotating Mass mode (Rotary vibrator) | ||
16 | - library-sel - These are ROM based waveforms pre-programmed into the IC. | ||
17 | This should be set to set the library to use at power up. | ||
18 | (defined in include/dt-bindings/input/ti-drv260x.h) | ||
19 | DRV260X_LIB_EMPTY - Do not use a pre-programmed library | ||
20 | DRV260X_ERM_LIB_A - Pre-programmed Library | ||
21 | DRV260X_ERM_LIB_B - Pre-programmed Library | ||
22 | DRV260X_ERM_LIB_C - Pre-programmed Library | ||
23 | DRV260X_ERM_LIB_D - Pre-programmed Library | ||
24 | DRV260X_ERM_LIB_E - Pre-programmed Library | ||
25 | DRV260X_ERM_LIB_F - Pre-programmed Library | ||
26 | DRV260X_LIB_LRA - Pre-programmed LRA Library | ||
27 | |||
28 | Optional properties: | ||
29 | - enable-gpio - gpio pin to enable/disable the device. | ||
30 | - vib-rated-mv - The rated voltage of the actuator in millivolts. | ||
31 | If this is not set then the value will be defaulted to | ||
32 | 3.2 v. | ||
33 | - vib-overdrive-mv - The overdrive voltage of the actuator in millivolts. | ||
34 | If this is not set then the value will be defaulted to | ||
35 | 3.2 v. | ||
36 | Example: | ||
37 | |||
38 | haptics: haptics@5a { | ||
39 | compatible = "ti,drv2605l"; | ||
40 | reg = <0x5a>; | ||
41 | vbat-supply = <&vbat>; | ||
42 | enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; | ||
43 | mode = <DRV260X_LRA_MODE>; | ||
44 | library-sel = <DRV260X_LIB_LRA>; | ||
45 | vib-rated-mv = <3200>; | ||
46 | vib-overdriver-mv = <3200>; | ||
47 | } | ||
48 | |||
49 | For more product information please see the link below: | ||
50 | http://www.ti.com/product/drv2605 | ||
diff --git a/Documentation/devicetree/bindings/input/ti,drv2667.txt b/Documentation/devicetree/bindings/input/ti,drv2667.txt new file mode 100644 index 000000000000..996382cf994a --- /dev/null +++ b/Documentation/devicetree/bindings/input/ti,drv2667.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | * Texas Instruments - drv2667 Haptics driver | ||
2 | |||
3 | Required properties: | ||
4 | - compatible - "ti,drv2667" - DRV2667 | ||
5 | - reg - I2C slave address | ||
6 | - vbat-supply - Required supply regulator | ||
7 | |||
8 | Example: | ||
9 | |||
10 | haptics: haptics@59 { | ||
11 | compatible = "ti,drv2667"; | ||
12 | reg = <0x59>; | ||
13 | vbat-supply = <&vbat>; | ||
14 | }; | ||
15 | |||
16 | For more product information please see the link below: | ||
17 | http://www.ti.com/product/drv2667 | ||
diff --git a/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt b/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt new file mode 100644 index 000000000000..a3dde8c30e67 --- /dev/null +++ b/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt | |||
@@ -0,0 +1,36 @@ | |||
1 | Texas Instruments Palmas family power button module | ||
2 | |||
3 | This module is part of the Palmas family of PMICs. For more details | ||
4 | about the whole chip see: | ||
5 | Documentation/devicetree/bindings/mfd/palmas.txt. | ||
6 | |||
7 | This module provides a simple power button event via an Interrupt. | ||
8 | |||
9 | Required properties: | ||
10 | - compatible: should be one of the following | ||
11 | - "ti,palmas-pwrbutton": For Palmas compatible power on button | ||
12 | - interrupt-parent: Parent interrupt device, must be handle of palmas node. | ||
13 | - interrupts: Interrupt number of power button submodule on device. | ||
14 | |||
15 | Optional Properties: | ||
16 | |||
17 | - ti,palmas-long-press-seconds: Duration in seconds which the power | ||
18 | button should be kept pressed for Palmas to power off automatically. | ||
19 | NOTE: This depends on OTP support and POWERHOLD signal configuration | ||
20 | on platform. Valid values are 6, 8, 10 and 12. | ||
21 | - ti,palmas-pwron-debounce-milli-seconds: Duration in milliseconds | ||
22 | which the power button should be kept pressed for Palmas to register | ||
23 | a press for debouncing purposes. NOTE: This depends on specific | ||
24 | Palmas variation capability. Valid values are 15, 100, 500 and 1000. | ||
25 | |||
26 | Example: | ||
27 | |||
28 | &palmas { | ||
29 | palmas_pwr_button: pwrbutton { | ||
30 | compatible = "ti,palmas-pwrbutton"; | ||
31 | interrupt-parent = <&tps659038>; | ||
32 | interrupts = <1 IRQ_TYPE_EDGE_FALLING>; | ||
33 | ti,palmas-long-press-seconds = <12>; | ||
34 | ti,palmas-pwron-debounce-milli-seconds = <15>; | ||
35 | }; | ||
36 | }; | ||
diff --git a/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt b/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt index 2742e9cfd6b1..f292917fa00d 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Should be "atmel,<chip>-aic" | 4 | - compatible: Should be "atmel,<chip>-aic" |
5 | <chip> can be "at91rm9200" or "sama5d3" | 5 | <chip> can be "at91rm9200", "sama5d3" or "sama5d4" |
6 | - interrupt-controller: Identifies the node as an interrupt controller. | 6 | - interrupt-controller: Identifies the node as an interrupt controller. |
7 | - interrupt-parent: For single AIC system, it is an empty property. | 7 | - interrupt-parent: For single AIC system, it is an empty property. |
8 | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. | 8 | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. |
diff --git a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt new file mode 100644 index 000000000000..ff812a8a82bc --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt | |||
@@ -0,0 +1,86 @@ | |||
1 | Broadcom BCM7120-style Level 2 interrupt controller | ||
2 | |||
3 | This interrupt controller hardware is a second level interrupt controller that | ||
4 | is hooked to a parent interrupt controller: e.g: ARM GIC for ARM-based | ||
5 | platforms. It can be found on BCM7xxx products starting with BCM7120. | ||
6 | |||
7 | Such an interrupt controller has the following hardware design: | ||
8 | |||
9 | - outputs multiple interrupts signals towards its interrupt controller parent | ||
10 | |||
11 | - controls how some of the interrupts will be flowing, whether they will | ||
12 | directly output an interrupt signal towards the interrupt controller parent, | ||
13 | or if they will output an interrupt signal at this 2nd level interrupt | ||
14 | controller, in particular for UARTs | ||
15 | |||
16 | - not all 32-bits within the interrupt controller actually map to an interrupt | ||
17 | |||
18 | The typical hardware layout for this controller is represented below: | ||
19 | |||
20 | 2nd level interrupt line Outputs for the parent controller (e.g: ARM GIC) | ||
21 | |||
22 | 0 -----[ MUX ] ------------|==========> GIC interrupt 75 | ||
23 | \-----------\ | ||
24 | | | ||
25 | 1 -----[ MUX ] --------)---|==========> GIC interrupt 76 | ||
26 | \------------| | ||
27 | | | ||
28 | 2 -----[ MUX ] --------)---|==========> GIC interrupt 77 | ||
29 | \------------| | ||
30 | | | ||
31 | 3 ---------------------| | ||
32 | 4 ---------------------| | ||
33 | 5 ---------------------| | ||
34 | 7 ---------------------|---|===========> GIC interrupt 66 | ||
35 | 9 ---------------------| | ||
36 | 10 --------------------| | ||
37 | 11 --------------------/ | ||
38 | |||
39 | 6 ------------------------\ | ||
40 | |===========> GIC interrupt 64 | ||
41 | 8 ------------------------/ | ||
42 | |||
43 | 12 ........................ X | ||
44 | 13 ........................ X (not connected) | ||
45 | .. | ||
46 | 31 ........................ X | ||
47 | |||
48 | Required properties: | ||
49 | |||
50 | - compatible: should be "brcm,bcm7120-l2-intc" | ||
51 | - reg: specifies the base physical address and size of the registers | ||
52 | - interrupt-controller: identifies the node as an interrupt controller | ||
53 | - #interrupt-cells: specifies the number of cells needed to encode an interrupt | ||
54 | source, should be 1. | ||
55 | - interrupt-parent: specifies the phandle to the parent interrupt controller | ||
56 | this one is cascaded from | ||
57 | - interrupts: specifies the interrupt line(s) in the interrupt-parent controller | ||
58 | node, valid values depend on the type of parent interrupt controller | ||
59 | - brcm,int-map-mask: 32-bits bit mask describing how many and which interrupts | ||
60 | are wired to this 2nd level interrupt controller, and how they match their | ||
61 | respective interrupt parents. Should match exactly the number of interrupts | ||
62 | specified in the 'interrupts' property. | ||
63 | |||
64 | Optional properties: | ||
65 | |||
66 | - brcm,irq-can-wake: if present, this means the L2 controller can be used as a | ||
67 | wakeup source for system suspend/resume. | ||
68 | |||
69 | - brcm,int-fwd-mask: if present, a 32-bits bit mask to configure for the | ||
70 | interrupts which have a mux gate, typically UARTs. Setting these bits will | ||
71 | make their respective interrupts outputs bypass this 2nd level interrupt | ||
72 | controller completely, it completely transparent for the interrupt controller | ||
73 | parent | ||
74 | |||
75 | Example: | ||
76 | |||
77 | irq0_intc: interrupt-controller@f0406800 { | ||
78 | compatible = "brcm,bcm7120-l2-intc"; | ||
79 | interrupt-parent = <&intc>; | ||
80 | #interrupt-cells = <1>; | ||
81 | reg = <0xf0406800 0x8>; | ||
82 | interrupt-controller; | ||
83 | interrupts = <0x0 0x42 0x0>, <0x0 0x40 0x0>; | ||
84 | brcm,int-map-mask = <0xeb8>, <0x140>; | ||
85 | brcm,int-fwd-mask = <0x7>; | ||
86 | }; | ||
diff --git a/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt b/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt index 1486497a24c1..ce6a1a072028 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt | |||
@@ -4,11 +4,13 @@ Specifying interrupt information for devices | |||
4 | 1) Interrupt client nodes | 4 | 1) Interrupt client nodes |
5 | ------------------------- | 5 | ------------------------- |
6 | 6 | ||
7 | Nodes that describe devices which generate interrupts must contain an either an | 7 | Nodes that describe devices which generate interrupts must contain an |
8 | "interrupts" property or an "interrupts-extended" property. These properties | 8 | "interrupts" property, an "interrupts-extended" property, or both. If both are |
9 | contain a list of interrupt specifiers, one per output interrupt. The format of | 9 | present, the latter should take precedence; the former may be provided simply |
10 | the interrupt specifier is determined by the interrupt controller to which the | 10 | for compatibility with software that does not recognize the latter. These |
11 | interrupts are routed; see section 2 below for details. | 11 | properties contain a list of interrupt specifiers, one per output interrupt. The |
12 | format of the interrupt specifier is determined by the interrupt controller to | ||
13 | which the interrupts are routed; see section 2 below for details. | ||
12 | 14 | ||
13 | Example: | 15 | Example: |
14 | interrupt-parent = <&intc1>; | 16 | interrupt-parent = <&intc1>; |
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt index 1f8b0c507c26..c73acd060093 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt | |||
@@ -2,7 +2,13 @@ DT bindings for the R-/SH-Mobile irqpin controller | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | 4 | ||
5 | - compatible: has to be "renesas,intc-irqpin" | 5 | - compatible: has to be "renesas,intc-irqpin-<soctype>", "renesas,intc-irqpin" |
6 | as fallback. | ||
7 | Examples with soctypes are: | ||
8 | - "renesas,intc-irqpin-r8a7740" (R-Mobile A1) | ||
9 | - "renesas,intc-irqpin-r8a7778" (R-Car M1A) | ||
10 | - "renesas,intc-irqpin-r8a7779" (R-Car H1) | ||
11 | - "renesas,intc-irqpin-sh73a0" (SH-Mobile AG5) | ||
6 | - #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in | 12 | - #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in |
7 | interrupts.txt in this directory | 13 | interrupts.txt in this directory |
8 | 14 | ||
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt new file mode 100644 index 000000000000..1a88e62228e5 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt | |||
@@ -0,0 +1,32 @@ | |||
1 | DT bindings for the R-Mobile/R-Car interrupt controller | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible: has to be "renesas,irqc-<soctype>", "renesas,irqc" as fallback. | ||
6 | Examples with soctypes are: | ||
7 | - "renesas,irqc-r8a73a4" (R-Mobile AP6) | ||
8 | - "renesas,irqc-r8a7790" (R-Car H2) | ||
9 | - "renesas,irqc-r8a7791" (R-Car M2-W) | ||
10 | - "renesas,irqc-r8a7792" (R-Car V2H) | ||
11 | - "renesas,irqc-r8a7793" (R-Car M2-N) | ||
12 | - "renesas,irqc-r8a7794" (R-Car E2) | ||
13 | - #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in | ||
14 | interrupts.txt in this directory | ||
15 | |||
16 | Optional properties: | ||
17 | |||
18 | - any properties, listed in interrupts.txt, and any standard resource allocation | ||
19 | properties | ||
20 | |||
21 | Example: | ||
22 | |||
23 | irqc0: interrupt-controller@e61c0000 { | ||
24 | compatible = "renesas,irqc-r8a7790", "renesas,irqc"; | ||
25 | #interrupt-cells = <2>; | ||
26 | interrupt-controller; | ||
27 | reg = <0 0xe61c0000 0 0x200>; | ||
28 | interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>, | ||
29 | <0 1 IRQ_TYPE_LEVEL_HIGH>, | ||
30 | <0 2 IRQ_TYPE_LEVEL_HIGH>, | ||
31 | <0 3 IRQ_TYPE_LEVEL_HIGH>; | ||
32 | }; | ||
diff --git a/Documentation/devicetree/bindings/interrupt-controller/ti,keystone-irq.txt b/Documentation/devicetree/bindings/interrupt-controller/ti,keystone-irq.txt new file mode 100644 index 000000000000..d9bb106bdd16 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/ti,keystone-irq.txt | |||
@@ -0,0 +1,36 @@ | |||
1 | Keystone 2 IRQ controller IP | ||
2 | |||
3 | On Keystone SOCs, DSP cores can send interrupts to ARM | ||
4 | host using the IRQ controller IP. It provides 28 IRQ signals to ARM. | ||
5 | The IRQ handler running on HOST OS can identify DSP signal source by | ||
6 | analyzing SRCCx bits in IPCARx registers. This is one of the component | ||
7 | used by the IPC mechanism used on Keystone SOCs. | ||
8 | |||
9 | Required Properties: | ||
10 | - compatible: should be "ti,keystone-irq" | ||
11 | - ti,syscon-dev : phandle and offset pair. The phandle to syscon used to | ||
12 | access device control registers and the offset inside | ||
13 | device control registers range. | ||
14 | - interrupt-controller : Identifies the node as an interrupt controller | ||
15 | - #interrupt-cells : Specifies the number of cells needed to encode interrupt | ||
16 | source should be 1. | ||
17 | - interrupts: interrupt reference to primary interrupt controller | ||
18 | |||
19 | Please refer to interrupts.txt in this directory for details of the common | ||
20 | Interrupt Controllers bindings used by client devices. | ||
21 | |||
22 | Example: | ||
23 | kirq0: keystone_irq0@026202a0 { | ||
24 | compatible = "ti,keystone-irq"; | ||
25 | ti,syscon-dev = <&devctrl 0x2a0>; | ||
26 | interrupts = <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>; | ||
27 | interrupt-controller; | ||
28 | #interrupt-cells = <1>; | ||
29 | }; | ||
30 | |||
31 | dsp0: dsp0 { | ||
32 | compatible = "linux,rproc-user"; | ||
33 | ... | ||
34 | interrupt-parent = <&kirq0>; | ||
35 | interrupts = <10 2>; | ||
36 | }; | ||
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.txt b/Documentation/devicetree/bindings/iommu/arm,smmu.txt index 2d0f7cd867ea..06760503a819 100644 --- a/Documentation/devicetree/bindings/iommu/arm,smmu.txt +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.txt | |||
@@ -14,6 +14,7 @@ conditions. | |||
14 | "arm,smmu-v1" | 14 | "arm,smmu-v1" |
15 | "arm,smmu-v2" | 15 | "arm,smmu-v2" |
16 | "arm,mmu-400" | 16 | "arm,mmu-400" |
17 | "arm,mmu-401" | ||
17 | "arm,mmu-500" | 18 | "arm,mmu-500" |
18 | 19 | ||
19 | depending on the particular implementation and/or the | 20 | depending on the particular implementation and/or the |
diff --git a/Documentation/devicetree/bindings/leds/register-bit-led.txt b/Documentation/devicetree/bindings/leds/register-bit-led.txt new file mode 100644 index 000000000000..379cefdc0bda --- /dev/null +++ b/Documentation/devicetree/bindings/leds/register-bit-led.txt | |||
@@ -0,0 +1,99 @@ | |||
1 | Device Tree Bindings for Register Bit LEDs | ||
2 | |||
3 | Register bit leds are used with syscon multifunctional devices | ||
4 | where single bits in a certain register can turn on/off a | ||
5 | single LED. The register bit LEDs appear as children to the | ||
6 | syscon device, with the proper compatible string. For the | ||
7 | syscon bindings see: | ||
8 | Documentation/devicetree/bindings/mfd/syscon.txt | ||
9 | |||
10 | Each LED is represented as a sub-node of the syscon device. Each | ||
11 | node's name represents the name of the corresponding LED. | ||
12 | |||
13 | LED sub-node properties: | ||
14 | |||
15 | Required properties: | ||
16 | - compatible : must be "register-bit-led" | ||
17 | - offset : register offset to the register controlling this LED | ||
18 | - mask : bit mask for the bit controlling this LED in the register | ||
19 | typically 0x01, 0x02, 0x04 ... | ||
20 | |||
21 | Optional properties: | ||
22 | - label : (optional) | ||
23 | see Documentation/devicetree/bindings/leds/common.txt | ||
24 | - linux,default-trigger : (optional) | ||
25 | see Documentation/devicetree/bindings/leds/common.txt | ||
26 | - default-state: (optional) The initial state of the LED. Valid | ||
27 | values are "on", "off", and "keep". If the LED is already on or off | ||
28 | and the default-state property is set the to same value, then no | ||
29 | glitch should be produced where the LED momentarily turns off (or | ||
30 | on). The "keep" setting will keep the LED at whatever its current | ||
31 | state is, without producing a glitch. The default is off if this | ||
32 | property is not present. | ||
33 | |||
34 | Example: | ||
35 | |||
36 | syscon: syscon@10000000 { | ||
37 | compatible = "arm,realview-pb1176-syscon", "syscon"; | ||
38 | reg = <0x10000000 0x1000>; | ||
39 | |||
40 | led@08.0 { | ||
41 | compatible = "register-bit-led"; | ||
42 | offset = <0x08>; | ||
43 | mask = <0x01>; | ||
44 | label = "versatile:0"; | ||
45 | linux,default-trigger = "heartbeat"; | ||
46 | default-state = "on"; | ||
47 | }; | ||
48 | led@08.1 { | ||
49 | compatible = "register-bit-led"; | ||
50 | offset = <0x08>; | ||
51 | mask = <0x02>; | ||
52 | label = "versatile:1"; | ||
53 | linux,default-trigger = "mmc0"; | ||
54 | default-state = "off"; | ||
55 | }; | ||
56 | led@08.2 { | ||
57 | compatible = "register-bit-led"; | ||
58 | offset = <0x08>; | ||
59 | mask = <0x04>; | ||
60 | label = "versatile:2"; | ||
61 | linux,default-trigger = "cpu0"; | ||
62 | default-state = "off"; | ||
63 | }; | ||
64 | led@08.3 { | ||
65 | compatible = "register-bit-led"; | ||
66 | offset = <0x08>; | ||
67 | mask = <0x08>; | ||
68 | label = "versatile:3"; | ||
69 | default-state = "off"; | ||
70 | }; | ||
71 | led@08.4 { | ||
72 | compatible = "register-bit-led"; | ||
73 | offset = <0x08>; | ||
74 | mask = <0x10>; | ||
75 | label = "versatile:4"; | ||
76 | default-state = "off"; | ||
77 | }; | ||
78 | led@08.5 { | ||
79 | compatible = "register-bit-led"; | ||
80 | offset = <0x08>; | ||
81 | mask = <0x20>; | ||
82 | label = "versatile:5"; | ||
83 | default-state = "off"; | ||
84 | }; | ||
85 | led@08.6 { | ||
86 | compatible = "register-bit-led"; | ||
87 | offset = <0x08>; | ||
88 | mask = <0x40>; | ||
89 | label = "versatile:6"; | ||
90 | default-state = "off"; | ||
91 | }; | ||
92 | led@08.7 { | ||
93 | compatible = "register-bit-led"; | ||
94 | offset = <0x08>; | ||
95 | mask = <0x80>; | ||
96 | label = "versatile:7"; | ||
97 | default-state = "off"; | ||
98 | }; | ||
99 | }; | ||
diff --git a/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt b/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt new file mode 100644 index 000000000000..48edc4b92afb --- /dev/null +++ b/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt | |||
@@ -0,0 +1,108 @@ | |||
1 | OMAP2+ Mailbox Driver | ||
2 | ===================== | ||
3 | |||
4 | The OMAP mailbox hardware facilitates communication between different processors | ||
5 | using a queued mailbox interrupt mechanism. The IP block is external to the | ||
6 | various processor subsystems and is connected on an interconnect bus. The | ||
7 | communication is achieved through a set of registers for message storage and | ||
8 | interrupt configuration registers. | ||
9 | |||
10 | Each mailbox IP block has a certain number of h/w fifo queues and output | ||
11 | interrupt lines. An output interrupt line is routed to an interrupt controller | ||
12 | within a processor subsystem, and there can be more than one line going to a | ||
13 | specific processor's interrupt controller. The interrupt line connections are | ||
14 | fixed for an instance and are dictated by the IP integration into the SoC | ||
15 | (excluding the SoCs that have a Interrupt Crossbar IP). Each interrupt line is | ||
16 | programmable through a set of interrupt configuration registers, and have a rx | ||
17 | and tx interrupt source per h/w fifo. Communication between different processors | ||
18 | is achieved through the appropriate programming of the rx and tx interrupt | ||
19 | sources on the appropriate interrupt lines. | ||
20 | |||
21 | The number of h/w fifo queues and interrupt lines dictate the usable registers. | ||
22 | All the current OMAP SoCs except for the newest DRA7xx SoC has a single IP | ||
23 | instance. DRA7xx has multiple instances with different number of h/w fifo queues | ||
24 | and interrupt lines between different instances. The interrupt lines can also be | ||
25 | routed to different processor sub-systems on DRA7xx as they are routed through | ||
26 | the Crossbar, a kind of interrupt router/multiplexer. | ||
27 | |||
28 | Mailbox Device Node: | ||
29 | ==================== | ||
30 | A Mailbox device node is used to represent a Mailbox IP instance within a SoC. | ||
31 | The sub-mailboxes are represented as child nodes of this parent node. | ||
32 | |||
33 | Required properties: | ||
34 | -------------------- | ||
35 | - compatible: Should be one of the following, | ||
36 | "ti,omap2-mailbox" for OMAP2420, OMAP2430 SoCs | ||
37 | "ti,omap3-mailbox" for OMAP3430, OMAP3630 SoCs | ||
38 | "ti,omap4-mailbox" for OMAP44xx, OMAP54xx, AM33xx, | ||
39 | AM43xx and DRA7xx SoCs | ||
40 | - reg: Contains the mailbox register address range (base | ||
41 | address and length) | ||
42 | - interrupts: Contains the interrupt information for the mailbox | ||
43 | device. The format is dependent on which interrupt | ||
44 | controller the OMAP device uses | ||
45 | - ti,hwmods: Name of the hwmod associated with the mailbox | ||
46 | - ti,mbox-num-users: Number of targets (processor devices) that the mailbox | ||
47 | device can interrupt | ||
48 | - ti,mbox-num-fifos: Number of h/w fifo queues within the mailbox IP block | ||
49 | |||
50 | Child Nodes: | ||
51 | ============ | ||
52 | A child node is used for representing the actual sub-mailbox device that is | ||
53 | used for the communication between the host processor and a remote processor. | ||
54 | Each child node should have a unique node name across all the different | ||
55 | mailbox device nodes. | ||
56 | |||
57 | Required properties: | ||
58 | -------------------- | ||
59 | - ti,mbox-tx: sub-mailbox descriptor property defining a Tx fifo | ||
60 | - ti,mbox-rx: sub-mailbox descriptor property defining a Rx fifo | ||
61 | |||
62 | Sub-mailbox Descriptor Data | ||
63 | --------------------------- | ||
64 | Each of the above ti,mbox-tx and ti,mbox-rx properties should have 3 cells of | ||
65 | data that represent the following: | ||
66 | Cell #1 (fifo_id) - mailbox fifo id used either for transmitting | ||
67 | (ti,mbox-tx) or for receiving (ti,mbox-rx) | ||
68 | Cell #2 (irq_id) - irq identifier index number to use from the parent's | ||
69 | interrupts data. Should be 0 for most of the cases, a | ||
70 | positive index value is seen only on mailboxes that have | ||
71 | multiple interrupt lines connected to the MPU processor. | ||
72 | Cell #3 (usr_id) - mailbox user id for identifying the interrupt line | ||
73 | associated with generating a tx/rx fifo interrupt. | ||
74 | |||
75 | Example: | ||
76 | -------- | ||
77 | |||
78 | /* OMAP4 */ | ||
79 | mailbox: mailbox@4a0f4000 { | ||
80 | compatible = "ti,omap4-mailbox"; | ||
81 | reg = <0x4a0f4000 0x200>; | ||
82 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | ||
83 | ti,hwmods = "mailbox"; | ||
84 | ti,mbox-num-users = <3>; | ||
85 | ti,mbox-num-fifos = <8>; | ||
86 | mbox_ipu: mbox_ipu { | ||
87 | ti,mbox-tx = <0 0 0>; | ||
88 | ti,mbox-rx = <1 0 0>; | ||
89 | }; | ||
90 | mbox_dsp: mbox_dsp { | ||
91 | ti,mbox-tx = <3 0 0>; | ||
92 | ti,mbox-rx = <2 0 0>; | ||
93 | }; | ||
94 | }; | ||
95 | |||
96 | /* AM33xx */ | ||
97 | mailbox: mailbox@480C8000 { | ||
98 | compatible = "ti,omap4-mailbox"; | ||
99 | reg = <0x480C8000 0x200>; | ||
100 | interrupts = <77>; | ||
101 | ti,hwmods = "mailbox"; | ||
102 | ti,mbox-num-users = <4>; | ||
103 | ti,mbox-num-fifos = <8>; | ||
104 | mbox_wkupm3: wkup_m3 { | ||
105 | ti,mbox-tx = <0 0 0>; | ||
106 | ti,mbox-rx = <0 0 3>; | ||
107 | }; | ||
108 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/hix5hd2-ir.txt b/Documentation/devicetree/bindings/media/hix5hd2-ir.txt new file mode 100644 index 000000000000..fb5e7606643a --- /dev/null +++ b/Documentation/devicetree/bindings/media/hix5hd2-ir.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | Device-Tree bindings for hix5hd2 ir IP | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should contain "hisilicon,hix5hd2-ir". | ||
5 | - reg: Base physical address of the controller and length of memory | ||
6 | mapped region. | ||
7 | - interrupts: interrupt-specifier for the sole interrupt generated by | ||
8 | the device. The interrupt specifier format depends on the interrupt | ||
9 | controller parent. | ||
10 | - clocks: clock phandle and specifier pair. | ||
11 | - hisilicon,power-syscon: phandle of syscon used to control power. | ||
12 | |||
13 | Optional properties: | ||
14 | - linux,rc-map-name : Remote control map name. | ||
15 | |||
16 | Example node: | ||
17 | |||
18 | ir: ir@f8001000 { | ||
19 | compatible = "hisilicon,hix5hd2-ir"; | ||
20 | reg = <0xf8001000 0x1000>; | ||
21 | interrupts = <0 47 4>; | ||
22 | clocks = <&clock HIX5HD2_FIXED_24M>; | ||
23 | hisilicon,power-syscon = <&sysctrl>; | ||
24 | linux,rc-map-name = "rc-tivo"; | ||
25 | }; | ||
diff --git a/Documentation/devicetree/bindings/memory-controllers/synopsys.txt b/Documentation/devicetree/bindings/memory-controllers/synopsys.txt new file mode 100644 index 000000000000..f9c6454146b6 --- /dev/null +++ b/Documentation/devicetree/bindings/memory-controllers/synopsys.txt | |||
@@ -0,0 +1,11 @@ | |||
1 | Binding for Synopsys IntelliDDR Multi Protocol Memory Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be 'xlnx,zynq-ddrc-a05' | ||
5 | - reg: Base address and size of the controllers memory area | ||
6 | |||
7 | Example: | ||
8 | memory-controller@f8006000 { | ||
9 | compatible = "xlnx,zynq-ddrc-a05"; | ||
10 | reg = <0xf8006000 0x1000>; | ||
11 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/arizona.txt b/Documentation/devicetree/bindings/mfd/arizona.txt index 5c7e7230984a..7bd1273f571a 100644 --- a/Documentation/devicetree/bindings/mfd/arizona.txt +++ b/Documentation/devicetree/bindings/mfd/arizona.txt | |||
@@ -42,6 +42,13 @@ Optional properties: | |||
42 | the chip default will be used. If present exactly five values must | 42 | the chip default will be used. If present exactly five values must |
43 | be specified. | 43 | be specified. |
44 | 44 | ||
45 | - wlf,inmode : A list of INn_MODE register values, where n is the number | ||
46 | of input signals. Valid values are 0 (Differential), 1 (Single-ended) and | ||
47 | 2 (Digital Microphone). If absent, INn_MODE registers set to 0 by default. | ||
48 | If present, values must be specified less than or equal to the number of | ||
49 | input singals. If values less than the number of input signals, elements | ||
50 | that has not been specifed are set to 0 by default. | ||
51 | |||
45 | - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if | 52 | - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if |
46 | they are being externally supplied. As covered in | 53 | they are being externally supplied. As covered in |
47 | Documentation/devicetree/bindings/regulator/regulator.txt | 54 | Documentation/devicetree/bindings/regulator/regulator.txt |
diff --git a/Documentation/devicetree/bindings/mfd/atmel-gpbr.txt b/Documentation/devicetree/bindings/mfd/atmel-gpbr.txt new file mode 100644 index 000000000000..a28569540683 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/atmel-gpbr.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | * Device tree bindings for Atmel GPBR (General Purpose Backup Registers) | ||
2 | |||
3 | The GPBR are a set of battery-backed registers. | ||
4 | |||
5 | Required properties: | ||
6 | - compatible: "atmel,at91sam9260-gpbr", "syscon" | ||
7 | - reg: contains offset/length value of the GPBR memory | ||
8 | region. | ||
9 | |||
10 | Example: | ||
11 | |||
12 | gpbr: gpbr@fffffd50 { | ||
13 | compatible = "atmel,at91sam9260-gpbr", "syscon"; | ||
14 | reg = <0xfffffd50 0x10>; | ||
15 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/hi6421.txt b/Documentation/devicetree/bindings/mfd/hi6421.txt new file mode 100644 index 000000000000..0d5a4466a494 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/hi6421.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | * HI6421 Multi-Functional Device (MFD), by HiSilicon Ltd. | ||
2 | |||
3 | Required parent device properties: | ||
4 | - compatible : contains "hisilicon,hi6421-pmic"; | ||
5 | - reg : register range space of hi6421; | ||
6 | |||
7 | Supported Hi6421 sub-devices include: | ||
8 | |||
9 | Device IRQ Names Supply Names Description | ||
10 | ------ --------- ------------ ----------- | ||
11 | regulators : None : None : Regulators | ||
12 | |||
13 | Required child device properties: | ||
14 | None. | ||
15 | |||
16 | Example: | ||
17 | hi6421 { | ||
18 | compatible = "hisilicon,hi6421-pmic"; | ||
19 | reg = <0xfcc00000 0x0180>; /* 0x60 << 2 */ | ||
20 | |||
21 | regulators { | ||
22 | // supply for MLC NAND/ eMMC | ||
23 | hi6421_vout0_reg: hi6421_vout0 { | ||
24 | regulator-name = "VOUT0"; | ||
25 | regulator-min-microvolt = <2850000>; | ||
26 | regulator-max-microvolt = <2850000>; | ||
27 | }; | ||
28 | |||
29 | // supply for 26M Oscillator | ||
30 | hi6421_vout1_reg: hi6421_vout1 { | ||
31 | regulator-name = "VOUT1"; | ||
32 | regulator-min-microvolt = <1700000>; | ||
33 | regulator-max-microvolt = <2000000>; | ||
34 | regulator-boot-on; | ||
35 | regulator-always-on; | ||
36 | }; | ||
37 | }; | ||
38 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/max14577.txt b/Documentation/devicetree/bindings/mfd/max14577.txt new file mode 100644 index 000000000000..236264c10b92 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/max14577.txt | |||
@@ -0,0 +1,146 @@ | |||
1 | Maxim MAX14577/77836 Multi-Function Device | ||
2 | |||
3 | MAX14577 is a Multi-Function Device with Micro-USB Interface Circuit, Li+ | ||
4 | Battery Charger and SFOUT LDO output for powering USB devices. It is | ||
5 | interfaced to host controller using I2C. | ||
6 | |||
7 | MAX77836 additionally contains PMIC (with two LDO regulators) and Fuel Gauge. | ||
8 | |||
9 | |||
10 | Required properties: | ||
11 | - compatible : Must be "maxim,max14577" or "maxim,max77836". | ||
12 | - reg : I2C slave address for the max14577 chip (0x25 for max14577/max77836) | ||
13 | - interrupts : IRQ line for the chip. | ||
14 | - interrupt-parent : The parent interrupt controller. | ||
15 | |||
16 | |||
17 | Required nodes: | ||
18 | - charger : | ||
19 | Node for configuring the charger driver. | ||
20 | Required properties: | ||
21 | - compatible : "maxim,max14577-charger" | ||
22 | or "maxim,max77836-charger" | ||
23 | - maxim,fast-charge-uamp : Current in uA for Fast Charge; | ||
24 | Valid values: | ||
25 | - for max14577: 90000 - 950000; | ||
26 | - for max77836: 45000 - 475000; | ||
27 | - maxim,eoc-uamp : Current in uA for End-Of-Charge mode; | ||
28 | Valid values: | ||
29 | - for max14577: 50000 - 200000; | ||
30 | - for max77836: 5000 - 100000; | ||
31 | - maxim,ovp-uvolt : OverVoltage Protection Threshold in uV; | ||
32 | In an overvoltage condition, INT asserts and charging | ||
33 | stops. Valid values: | ||
34 | - 6000000, 6500000, 7000000, 7500000; | ||
35 | - maxim,constant-uvolt : Battery Constant Voltage in uV; | ||
36 | Valid values: | ||
37 | - 4000000 - 4280000 (step by 20000); | ||
38 | - 4350000; | ||
39 | |||
40 | |||
41 | Optional nodes: | ||
42 | - max14577-muic/max77836-muic : | ||
43 | Node used only by extcon consumers. | ||
44 | Required properties: | ||
45 | - compatible : "maxim,max14577-muic" or "maxim,max77836-muic" | ||
46 | |||
47 | - regulators : | ||
48 | Required properties: | ||
49 | - compatible : "maxim,max14577-regulator" | ||
50 | or "maxim,max77836-regulator" | ||
51 | |||
52 | May contain a sub-node per regulator from the list below. Each | ||
53 | sub-node should contain the constraints and initialization information | ||
54 | for that regulator. See regulator.txt for a description of standard | ||
55 | properties for these sub-nodes. | ||
56 | |||
57 | List of valid regulator names: | ||
58 | - for max14577: CHARGER, SAFEOUT. | ||
59 | - for max77836: CHARGER, SAFEOUT, LDO1, LDO2. | ||
60 | |||
61 | The SAFEOUT is a fixed voltage regulator so there is no need to specify | ||
62 | voltages for it. | ||
63 | |||
64 | |||
65 | Example: | ||
66 | |||
67 | #include <dt-bindings/interrupt-controller/irq.h> | ||
68 | |||
69 | max14577@25 { | ||
70 | compatible = "maxim,max14577"; | ||
71 | reg = <0x25>; | ||
72 | interrupt-parent = <&gpx1>; | ||
73 | interrupts = <5 IRQ_TYPE_NONE>; | ||
74 | |||
75 | muic: max14577-muic { | ||
76 | compatible = "maxim,max14577-muic"; | ||
77 | }; | ||
78 | |||
79 | regulators { | ||
80 | compatible = "maxim,max14577-regulator"; | ||
81 | |||
82 | SAFEOUT { | ||
83 | regulator-name = "SAFEOUT"; | ||
84 | }; | ||
85 | CHARGER { | ||
86 | regulator-name = "CHARGER"; | ||
87 | regulator-min-microamp = <90000>; | ||
88 | regulator-max-microamp = <950000>; | ||
89 | regulator-boot-on; | ||
90 | }; | ||
91 | }; | ||
92 | |||
93 | charger { | ||
94 | compatible = "maxim,max14577-charger"; | ||
95 | |||
96 | maxim,constant-uvolt = <4350000>; | ||
97 | maxim,fast-charge-uamp = <450000>; | ||
98 | maxim,eoc-uamp = <50000>; | ||
99 | maxim,ovp-uvolt = <6500000>; | ||
100 | }; | ||
101 | }; | ||
102 | |||
103 | |||
104 | max77836@25 { | ||
105 | compatible = "maxim,max77836"; | ||
106 | reg = <0x25>; | ||
107 | interrupt-parent = <&gpx1>; | ||
108 | interrupts = <5 IRQ_TYPE_NONE>; | ||
109 | |||
110 | muic: max77836-muic { | ||
111 | compatible = "maxim,max77836-muic"; | ||
112 | }; | ||
113 | |||
114 | regulators { | ||
115 | compatible = "maxim,max77836-regulator"; | ||
116 | |||
117 | SAFEOUT { | ||
118 | regulator-name = "SAFEOUT"; | ||
119 | }; | ||
120 | CHARGER { | ||
121 | regulator-name = "CHARGER"; | ||
122 | regulator-min-microamp = <90000>; | ||
123 | regulator-max-microamp = <950000>; | ||
124 | regulator-boot-on; | ||
125 | }; | ||
126 | LDO1 { | ||
127 | regulator-name = "LDO1"; | ||
128 | regulator-min-microvolt = <2700000>; | ||
129 | regulator-max-microvolt = <2700000>; | ||
130 | }; | ||
131 | LDO2 { | ||
132 | regulator-name = "LDO2"; | ||
133 | regulator-min-microvolt = <800000>; | ||
134 | regulator-max-microvolt = <3950000>; | ||
135 | }; | ||
136 | }; | ||
137 | |||
138 | charger { | ||
139 | compatible = "maxim,max77836-charger"; | ||
140 | |||
141 | maxim,constant-uvolt = <4350000>; | ||
142 | maxim,fast-charge-uamp = <225000>; | ||
143 | maxim,eoc-uamp = <7500>; | ||
144 | maxim,ovp-uvolt = <6500000>; | ||
145 | }; | ||
146 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt b/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt new file mode 100644 index 000000000000..7182b8857f57 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt | |||
@@ -0,0 +1,64 @@ | |||
1 | Qualcomm SPMI PMICs multi-function device bindings | ||
2 | |||
3 | The Qualcomm SPMI series presently includes PM8941, PM8841 and PMA8084 | ||
4 | PMICs. These PMICs use a QPNP scheme through SPMI interface. | ||
5 | QPNP is effectively a partitioning scheme for dividing the SPMI extended | ||
6 | register space up into logical pieces, and set of fixed register | ||
7 | locations/definitions within these regions, with some of these regions | ||
8 | specifically used for interrupt handling. | ||
9 | |||
10 | The QPNP PMICs are used with the Qualcomm Snapdragon series SoCs, and are | ||
11 | interfaced to the chip via the SPMI (System Power Management Interface) bus. | ||
12 | Support for multiple independent functions are implemented by splitting the | ||
13 | 16-bit SPMI slave address space into 256 smaller fixed-size regions, 256 bytes | ||
14 | each. A function can consume one or more of these fixed-size register regions. | ||
15 | |||
16 | Required properties: | ||
17 | - compatible: Should contain one of: | ||
18 | "qcom,pm8941" | ||
19 | "qcom,pm8841" | ||
20 | "qcom,pma8084" | ||
21 | or generalized "qcom,spmi-pmic". | ||
22 | - reg: Specifies the SPMI USID slave address for this device. | ||
23 | For more information see: | ||
24 | Documentation/devicetree/bindings/spmi/spmi.txt | ||
25 | |||
26 | Required properties for peripheral child nodes: | ||
27 | - compatible: Should contain "qcom,xxx", where "xxx" is a peripheral name. | ||
28 | |||
29 | Optional properties for peripheral child nodes: | ||
30 | - interrupts: Interrupts are specified as a 4-tuple. For more information | ||
31 | see: | ||
32 | Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt | ||
33 | - interrupt-names: Corresponding interrupt name to the interrupts property | ||
34 | |||
35 | Each child node of SPMI slave id represents a function of the PMIC. In the | ||
36 | example below the rtc device node represents a peripheral of pm8941 | ||
37 | SID = 0. The regulator device node represents a peripheral of pm8941 SID = 1. | ||
38 | |||
39 | Example: | ||
40 | |||
41 | spmi { | ||
42 | compatible = "qcom,spmi-pmic-arb"; | ||
43 | |||
44 | pm8941@0 { | ||
45 | compatible = "qcom,pm8941", "qcom,spmi-pmic"; | ||
46 | reg = <0x0 SPMI_USID>; | ||
47 | |||
48 | rtc { | ||
49 | compatible = "qcom,rtc"; | ||
50 | interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; | ||
51 | interrupt-names = "alarm"; | ||
52 | }; | ||
53 | }; | ||
54 | |||
55 | pm8941@1 { | ||
56 | compatible = "qcom,pm8941", "qcom,spmi-pmic"; | ||
57 | reg = <0x1 SPMI_USID>; | ||
58 | |||
59 | regulator { | ||
60 | compatible = "qcom,regulator"; | ||
61 | regulator-name = "8941_boost"; | ||
62 | }; | ||
63 | }; | ||
64 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/qcom,pm8xxx.txt b/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt index 03518dc8b6bd..f24f33409164 100644 --- a/Documentation/devicetree/bindings/mfd/qcom,pm8xxx.txt +++ b/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt | |||
@@ -61,6 +61,7 @@ The below bindings specify the set of valid subnodes. | |||
61 | Definition: must be one of: | 61 | Definition: must be one of: |
62 | "qcom,pm8058-rtc" | 62 | "qcom,pm8058-rtc" |
63 | "qcom,pm8921-rtc" | 63 | "qcom,pm8921-rtc" |
64 | "qcom,pm8941-rtc" | ||
64 | 65 | ||
65 | - reg: | 66 | - reg: |
66 | Usage: required | 67 | Usage: required |
diff --git a/Documentation/devicetree/bindings/mfd/rk808.txt b/Documentation/devicetree/bindings/mfd/rk808.txt new file mode 100644 index 000000000000..9e6e2592e5c8 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/rk808.txt | |||
@@ -0,0 +1,177 @@ | |||
1 | RK808 Power Management Integrated Circuit | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "rockchip,rk808" | ||
5 | - reg: I2C slave address | ||
6 | - interrupt-parent: The parent interrupt controller. | ||
7 | - interrupts: the interrupt outputs of the controller. | ||
8 | - #clock-cells: from common clock binding; shall be set to 1 (multiple clock | ||
9 | outputs). See <dt-bindings/clock/rockchip,rk808.h> for clock IDs. | ||
10 | |||
11 | Optional properties: | ||
12 | - clock-output-names: From common clock binding to override the | ||
13 | default output clock name | ||
14 | - rockchip,system-power-controller: Telling whether or not this pmic is controlling | ||
15 | the system power. | ||
16 | - vcc1-supply: The input supply for DCDC_REG1 | ||
17 | - vcc2-supply: The input supply for DCDC_REG2 | ||
18 | - vcc3-supply: The input supply for DCDC_REG3 | ||
19 | - vcc4-supply: The input supply for DCDC_REG4 | ||
20 | - vcc6-supply: The input supply for LDO_REG1 and LDO_REG2 | ||
21 | - vcc7-supply: The input supply for LDO_REG3 and LDO_REG7 | ||
22 | - vcc8-supply: The input supply for SWITCH_REG1 | ||
23 | - vcc9-supply: The input supply for LDO_REG4 and LDO_REG5 | ||
24 | - vcc10-supply: The input supply for LDO_REG6 | ||
25 | - vcc11-supply: The input supply for LDO_REG8 | ||
26 | - vcc12-supply: The input supply for SWITCH_REG2 | ||
27 | |||
28 | Regulators: All the regulators of RK808 to be instantiated shall be | ||
29 | listed in a child node named 'regulators'. Each regulator is represented | ||
30 | by a child node of the 'regulators' node. | ||
31 | |||
32 | regulator-name { | ||
33 | /* standard regulator bindings here */ | ||
34 | }; | ||
35 | |||
36 | Following regulators of the RK808 PMIC block are supported. Note that | ||
37 | the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO | ||
38 | number as described in RK808 datasheet. | ||
39 | |||
40 | - DCDC_REGn | ||
41 | - valid values for n are 1 to 4. | ||
42 | - LDO_REGn | ||
43 | - valid values for n are 1 to 8. | ||
44 | - SWITCH_REGn | ||
45 | - valid values for n are 1 to 2 | ||
46 | |||
47 | Standard regulator bindings are used inside regulator subnodes. Check | ||
48 | Documentation/devicetree/bindings/regulator/regulator.txt | ||
49 | for more details | ||
50 | |||
51 | Example: | ||
52 | rk808: pmic@1b { | ||
53 | compatible = "rockchip,rk808"; | ||
54 | clock-output-names = "xin32k", "rk808-clkout2"; | ||
55 | interrupt-parent = <&gpio0>; | ||
56 | interrupts = <4 IRQ_TYPE_LEVEL_LOW>; | ||
57 | pinctrl-names = "default"; | ||
58 | pinctrl-0 = <&pmic_int>; | ||
59 | reg = <0x1b>; | ||
60 | rockchip,system-power-controller; | ||
61 | wakeup-source; | ||
62 | #clock-cells = <1>; | ||
63 | |||
64 | vcc8-supply = <&vcc_18>; | ||
65 | vcc9-supply = <&vcc_io>; | ||
66 | vcc10-supply = <&vcc_io>; | ||
67 | vcc12-supply = <&vcc_io>; | ||
68 | vddio-supply = <&vccio_pmu>; | ||
69 | |||
70 | regulators { | ||
71 | vdd_cpu: DCDC_REG1 { | ||
72 | regulator-always-on; | ||
73 | regulator-boot-on; | ||
74 | regulator-min-microvolt = <750000>; | ||
75 | regulator-max-microvolt = <1300000>; | ||
76 | regulator-name = "vdd_arm"; | ||
77 | }; | ||
78 | |||
79 | vdd_gpu: DCDC_REG2 { | ||
80 | regulator-always-on; | ||
81 | regulator-boot-on; | ||
82 | regulator-min-microvolt = <850000>; | ||
83 | regulator-max-microvolt = <1250000>; | ||
84 | regulator-name = "vdd_gpu"; | ||
85 | }; | ||
86 | |||
87 | vcc_ddr: DCDC_REG3 { | ||
88 | regulator-always-on; | ||
89 | regulator-boot-on; | ||
90 | regulator-name = "vcc_ddr"; | ||
91 | }; | ||
92 | |||
93 | vcc_io: DCDC_REG4 { | ||
94 | regulator-always-on; | ||
95 | regulator-boot-on; | ||
96 | regulator-min-microvolt = <3300000>; | ||
97 | regulator-max-microvolt = <3300000>; | ||
98 | regulator-name = "vcc_io"; | ||
99 | }; | ||
100 | |||
101 | vccio_pmu: LDO_REG1 { | ||
102 | regulator-always-on; | ||
103 | regulator-boot-on; | ||
104 | regulator-min-microvolt = <3300000>; | ||
105 | regulator-max-microvolt = <3300000>; | ||
106 | regulator-name = "vccio_pmu"; | ||
107 | }; | ||
108 | |||
109 | vcc_tp: LDO_REG2 { | ||
110 | regulator-always-on; | ||
111 | regulator-boot-on; | ||
112 | regulator-min-microvolt = <3300000>; | ||
113 | regulator-max-microvolt = <3300000>; | ||
114 | regulator-name = "vcc_tp"; | ||
115 | }; | ||
116 | |||
117 | vdd_10: LDO_REG3 { | ||
118 | regulator-always-on; | ||
119 | regulator-boot-on; | ||
120 | regulator-min-microvolt = <1000000>; | ||
121 | regulator-max-microvolt = <1000000>; | ||
122 | regulator-name = "vdd_10"; | ||
123 | }; | ||
124 | |||
125 | vcc18_lcd: LDO_REG4 { | ||
126 | regulator-always-on; | ||
127 | regulator-boot-on; | ||
128 | regulator-min-microvolt = <1800000>; | ||
129 | regulator-max-microvolt = <1800000>; | ||
130 | regulator-name = "vcc18_lcd"; | ||
131 | }; | ||
132 | |||
133 | vccio_sd: LDO_REG5 { | ||
134 | regulator-always-on; | ||
135 | regulator-boot-on; | ||
136 | regulator-min-microvolt = <1800000>; | ||
137 | regulator-max-microvolt = <3300000>; | ||
138 | regulator-name = "vccio_sd"; | ||
139 | }; | ||
140 | |||
141 | vdd10_lcd: LDO_REG6 { | ||
142 | regulator-always-on; | ||
143 | regulator-boot-on; | ||
144 | regulator-min-microvolt = <1000000>; | ||
145 | regulator-max-microvolt = <1000000>; | ||
146 | regulator-name = "vdd10_lcd"; | ||
147 | }; | ||
148 | |||
149 | vcc_18: LDO_REG7 { | ||
150 | regulator-always-on; | ||
151 | regulator-boot-on; | ||
152 | regulator-min-microvolt = <1800000>; | ||
153 | regulator-max-microvolt = <1800000>; | ||
154 | regulator-name = "vcc_18"; | ||
155 | }; | ||
156 | |||
157 | vcca_codec: LDO_REG8 { | ||
158 | regulator-always-on; | ||
159 | regulator-boot-on; | ||
160 | regulator-min-microvolt = <3300000>; | ||
161 | regulator-max-microvolt = <3300000>; | ||
162 | regulator-name = "vcca_codec"; | ||
163 | }; | ||
164 | |||
165 | vcc_wl: SWITCH_REG1 { | ||
166 | regulator-always-on; | ||
167 | regulator-boot-on; | ||
168 | regulator-name = "vcc_wl"; | ||
169 | }; | ||
170 | |||
171 | vcc_lcd: SWITCH_REG2 { | ||
172 | regulator-always-on; | ||
173 | regulator-boot-on; | ||
174 | regulator-name = "vcc_lcd"; | ||
175 | }; | ||
176 | }; | ||
177 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/rn5t618.txt b/Documentation/devicetree/bindings/mfd/rn5t618.txt new file mode 100644 index 000000000000..937785a3eddc --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/rn5t618.txt | |||
@@ -0,0 +1,36 @@ | |||
1 | * Ricoh RN5T618 PMIC | ||
2 | |||
3 | Ricoh RN5T618 is a power management IC which integrates 3 step-down | ||
4 | DCDC converters, 7 low-dropout regulators, a Li-ion battery charger, | ||
5 | fuel gauge, ADC, GPIOs and a watchdog timer. It can be controlled | ||
6 | through a I2C interface. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: should be "ricoh,rn5t618" | ||
10 | - reg: the I2C slave address of the device | ||
11 | |||
12 | Sub-nodes: | ||
13 | - regulators: the node is required if the regulator functionality is | ||
14 | needed. The valid regulator names are: DCDC1, DCDC2, DCDC3, LDO1, | ||
15 | LDO2, LDO3, LDO4, LDO5, LDORTC1 and LDORTC2. | ||
16 | The common bindings for each individual regulator can be found in: | ||
17 | Documentation/devicetree/bindings/regulator/regulator.txt | ||
18 | |||
19 | Example: | ||
20 | |||
21 | pmic@32 { | ||
22 | compatible = "ricoh,rn5t618"; | ||
23 | reg = <0x32>; | ||
24 | |||
25 | regulators { | ||
26 | DCDC1 { | ||
27 | regulator-min-microvolt = <1050000>; | ||
28 | regulator-max-microvolt = <1050000>; | ||
29 | }; | ||
30 | |||
31 | DCDC2 { | ||
32 | regulator-min-microvolt = <1175000>; | ||
33 | regulator-max-microvolt = <1175000>; | ||
34 | }; | ||
35 | }; | ||
36 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt index ba2d7f0f9c5f..0e4026a6cbbf 100644 --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt +++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt | |||
@@ -47,7 +47,7 @@ sub-node should be of the format as listed below. | |||
47 | 47 | ||
48 | regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us | 48 | regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us |
49 | 49 | ||
50 | BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explictly | 50 | BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly |
51 | regulator-ramp-delay = <0> can be used for them to disable ramp delay. | 51 | regulator-ramp-delay = <0> can be used for them to disable ramp delay. |
52 | In the absence of the regulator-ramp-delay property, the default ramp | 52 | In the absence of the regulator-ramp-delay property, the default ramp |
53 | delay will be used. | 53 | delay will be used. |
diff --git a/Documentation/devicetree/bindings/mfd/stmpe.txt b/Documentation/devicetree/bindings/mfd/stmpe.txt index 56edb5520685..3fb68bfefc8b 100644 --- a/Documentation/devicetree/bindings/mfd/stmpe.txt +++ b/Documentation/devicetree/bindings/mfd/stmpe.txt | |||
@@ -13,6 +13,7 @@ Optional properties: | |||
13 | - interrupt-parent : Specifies which IRQ controller we're connected to | 13 | - interrupt-parent : Specifies which IRQ controller we're connected to |
14 | - wakeup-source : Marks the input device as wakable | 14 | - wakeup-source : Marks the input device as wakable |
15 | - st,autosleep-timeout : Valid entries (ms); 4, 16, 32, 64, 128, 256, 512 and 1024 | 15 | - st,autosleep-timeout : Valid entries (ms); 4, 16, 32, 64, 128, 256, 512 and 1024 |
16 | - irq-gpio : If present, which GPIO to use for event IRQ | ||
16 | 17 | ||
17 | Example: | 18 | Example: |
18 | 19 | ||
diff --git a/Documentation/devicetree/bindings/mfd/tc3589x.txt b/Documentation/devicetree/bindings/mfd/tc3589x.txt new file mode 100644 index 000000000000..6fcedba46ae9 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/tc3589x.txt | |||
@@ -0,0 +1,107 @@ | |||
1 | * Toshiba TC3589x multi-purpose expander | ||
2 | |||
3 | The Toshiba TC3589x series are I2C-based MFD devices which may expose the | ||
4 | following built-in devices: gpio, keypad, rotator (vibrator), PWM (for | ||
5 | e.g. LEDs or vibrators) The included models are: | ||
6 | |||
7 | - TC35890 | ||
8 | - TC35892 | ||
9 | - TC35893 | ||
10 | - TC35894 | ||
11 | - TC35895 | ||
12 | - TC35896 | ||
13 | |||
14 | Required properties: | ||
15 | - compatible : must be "toshiba,tc35890", "toshiba,tc35892", "toshiba,tc35893", | ||
16 | "toshiba,tc35894", "toshiba,tc35895" or "toshiba,tc35896" | ||
17 | - reg : I2C address of the device | ||
18 | - interrupt-parent : specifies which IRQ controller we're connected to | ||
19 | - interrupts : the interrupt on the parent the controller is connected to | ||
20 | - interrupt-controller : marks the device node as an interrupt controller | ||
21 | - #interrupt-cells : should be <1>, the first cell is the IRQ offset on this | ||
22 | TC3589x interrupt controller. | ||
23 | |||
24 | Optional nodes: | ||
25 | |||
26 | - GPIO | ||
27 | This GPIO module inside the TC3589x has 24 (TC35890, TC35892) or 20 | ||
28 | (other models) GPIO lines. | ||
29 | - compatible : must be "toshiba,tc3589x-gpio" | ||
30 | - interrupts : interrupt on the parent, which must be the tc3589x MFD device | ||
31 | - interrupt-controller : marks the device node as an interrupt controller | ||
32 | - #interrupt-cells : should be <2>, the first cell is the IRQ offset on this | ||
33 | TC3589x GPIO interrupt controller, the second cell is the interrupt flags | ||
34 | in accordance with <dt-bindings/interrupt-controller/irq.h>. The following | ||
35 | flags are valid: | ||
36 | - IRQ_TYPE_LEVEL_LOW | ||
37 | - IRQ_TYPE_LEVEL_HIGH | ||
38 | - IRQ_TYPE_EDGE_RISING | ||
39 | - IRQ_TYPE_EDGE_FALLING | ||
40 | - IRQ_TYPE_EDGE_BOTH | ||
41 | - gpio-controller : marks the device node as a GPIO controller | ||
42 | - #gpio-cells : should be <2>, the first cell is the GPIO offset on this | ||
43 | GPIO controller, the second cell is the flags. | ||
44 | |||
45 | - Keypad | ||
46 | This keypad is the same on all variants, supporting up to 96 different | ||
47 | keys. The linux-specific properties are modeled on those already existing | ||
48 | in other input drivers. | ||
49 | - compatible : must be "toshiba,tc3589x-keypad" | ||
50 | - debounce-delay-ms : debounce interval in milliseconds | ||
51 | - keypad,num-rows : number of rows in the matrix, see | ||
52 | bindings/input/matrix-keymap.txt | ||
53 | - keypad,num-columns : number of columns in the matrix, see | ||
54 | bindings/input/matrix-keymap.txt | ||
55 | - linux,keymap: the definition can be found in | ||
56 | bindings/input/matrix-keymap.txt | ||
57 | - linux,no-autorepeat: do no enable autorepeat feature. | ||
58 | - linux,wakeup: use any event on keypad as wakeup event. | ||
59 | |||
60 | Example: | ||
61 | |||
62 | tc35893@44 { | ||
63 | compatible = "toshiba,tc35893"; | ||
64 | reg = <0x44>; | ||
65 | interrupt-parent = <&gpio6>; | ||
66 | interrupts = <26 IRQ_TYPE_EDGE_RISING>; | ||
67 | |||
68 | interrupt-controller; | ||
69 | #interrupt-cells = <1>; | ||
70 | |||
71 | tc3589x_gpio { | ||
72 | compatible = "toshiba,tc3589x-gpio"; | ||
73 | interrupts = <0>; | ||
74 | |||
75 | interrupt-controller; | ||
76 | #interrupt-cells = <2>; | ||
77 | gpio-controller; | ||
78 | #gpio-cells = <2>; | ||
79 | }; | ||
80 | tc3589x_keypad { | ||
81 | compatible = "toshiba,tc3589x-keypad"; | ||
82 | interrupts = <6>; | ||
83 | debounce-delay-ms = <4>; | ||
84 | keypad,num-columns = <8>; | ||
85 | keypad,num-rows = <8>; | ||
86 | linux,no-autorepeat; | ||
87 | linux,wakeup; | ||
88 | linux,keymap = <0x0301006b | ||
89 | 0x04010066 | ||
90 | 0x06040072 | ||
91 | 0x040200d7 | ||
92 | 0x0303006a | ||
93 | 0x0205000e | ||
94 | 0x0607008b | ||
95 | 0x0500001c | ||
96 | 0x0403000b | ||
97 | 0x03040034 | ||
98 | 0x05020067 | ||
99 | 0x0305006c | ||
100 | 0x040500e7 | ||
101 | 0x0005009e | ||
102 | 0x06020073 | ||
103 | 0x01030039 | ||
104 | 0x07060069 | ||
105 | 0x050500d9>; | ||
106 | }; | ||
107 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/twl4030-power.txt b/Documentation/devicetree/bindings/mfd/twl4030-power.txt index b9ee7b98d3e2..3d19963312ce 100644 --- a/Documentation/devicetree/bindings/mfd/twl4030-power.txt +++ b/Documentation/devicetree/bindings/mfd/twl4030-power.txt | |||
@@ -23,8 +23,13 @@ down during off-idle. Note that this does not work on all boards | |||
23 | depending on how the external oscillator is wired. | 23 | depending on how the external oscillator is wired. |
24 | 24 | ||
25 | Optional properties: | 25 | Optional properties: |
26 | - ti,use_poweroff: With this flag, the chip will initiates an ACTIVE-to-OFF or | 26 | |
27 | SLEEP-to-OFF transition when the system poweroffs. | 27 | - ti,system-power-controller: This indicates that TWL4030 is the |
28 | power supply master of the system. With this flag, the chip will | ||
29 | initiate an ACTIVE-to-OFF or SLEEP-to-OFF transition when the | ||
30 | system poweroffs. | ||
31 | |||
32 | - ti,use_poweroff: Deprecated name for ti,system-power-controller | ||
28 | 33 | ||
29 | Example: | 34 | Example: |
30 | &i2c1 { | 35 | &i2c1 { |
diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt index 431716e37a39..b52628b18a53 100644 --- a/Documentation/devicetree/bindings/mmc/mmc.txt +++ b/Documentation/devicetree/bindings/mmc/mmc.txt | |||
@@ -40,6 +40,8 @@ Optional properties: | |||
40 | - mmc-hs200-1_2v: eMMC HS200 mode(1.2V I/O) is supported | 40 | - mmc-hs200-1_2v: eMMC HS200 mode(1.2V I/O) is supported |
41 | - mmc-hs400-1_8v: eMMC HS400 mode(1.8V I/O) is supported | 41 | - mmc-hs400-1_8v: eMMC HS400 mode(1.8V I/O) is supported |
42 | - mmc-hs400-1_2v: eMMC HS400 mode(1.2V I/O) is supported | 42 | - mmc-hs400-1_2v: eMMC HS400 mode(1.2V I/O) is supported |
43 | - dsr: Value the card's (optional) Driver Stage Register (DSR) should be | ||
44 | programmed with. Valid range: [0 .. 0xffff]. | ||
43 | 45 | ||
44 | *NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line | 46 | *NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line |
45 | polarity properties, we have to fix the meaning of the "normal" and "inverted" | 47 | polarity properties, we have to fix the meaning of the "normal" and "inverted" |
diff --git a/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt index c559f3f36309..c327c2d6f23d 100644 --- a/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt +++ b/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt | |||
@@ -10,12 +10,14 @@ extensions to the Synopsys Designware Mobile Storage Host Controller. | |||
10 | Required Properties: | 10 | Required Properties: |
11 | 11 | ||
12 | * compatible: should be | 12 | * compatible: should be |
13 | - "rockchip,rk2928-dw-mshc": for Rockchip RK2928 and following | 13 | - "rockchip,rk2928-dw-mshc": for Rockchip RK2928 and following, |
14 | before RK3288 | ||
15 | - "rockchip,rk3288-dw-mshc": for Rockchip RK3288 | ||
14 | 16 | ||
15 | Example: | 17 | Example: |
16 | 18 | ||
17 | rkdwmmc0@12200000 { | 19 | rkdwmmc0@12200000 { |
18 | compatible = "rockchip,rk2928-dw-mshc"; | 20 | compatible = "rockchip,rk3288-dw-mshc"; |
19 | reg = <0x12200000 0x1000>; | 21 | reg = <0x12200000 0x1000>; |
20 | interrupts = <0 75 0>; | 22 | interrupts = <0 75 0>; |
21 | #address-cells = <1>; | 23 | #address-cells = <1>; |
diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt index fa0f327cde01..400b640fabc7 100644 --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt | |||
@@ -19,6 +19,9 @@ Required properties: | |||
19 | "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC | 19 | "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC |
20 | "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC | 20 | "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC |
21 | "renesas,sdhi-r8a7791" - SDHI IP on R8A7791 SoC | 21 | "renesas,sdhi-r8a7791" - SDHI IP on R8A7791 SoC |
22 | "renesas,sdhi-r8a7792" - SDHI IP on R8A7792 SoC | ||
23 | "renesas,sdhi-r8a7793" - SDHI IP on R8A7793 SoC | ||
24 | "renesas,sdhi-r8a7794" - SDHI IP on R8A7794 SoC | ||
22 | 25 | ||
23 | Optional properties: | 26 | Optional properties: |
24 | - toshiba,mmc-wrprotect-disable: write-protect detection is unavailable | 27 | - toshiba,mmc-wrprotect-disable: write-protect detection is unavailable |
diff --git a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt index 65f4f7c43136..fb733c4e1c11 100644 --- a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt +++ b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt | |||
@@ -22,7 +22,7 @@ Optional properties: | |||
22 | width of 8 is assumed. | 22 | width of 8 is assumed. |
23 | 23 | ||
24 | - ti,nand-ecc-opt: A string setting the ECC layout to use. One of: | 24 | - ti,nand-ecc-opt: A string setting the ECC layout to use. One of: |
25 | "sw" <deprecated> use "ham1" instead | 25 | "sw" 1-bit Hamming ecc code via software |
26 | "hw" <deprecated> use "ham1" instead | 26 | "hw" <deprecated> use "ham1" instead |
27 | "hw-romcode" <deprecated> use "ham1" instead | 27 | "hw-romcode" <deprecated> use "ham1" instead |
28 | "ham1" 1-bit Hamming ecc code | 28 | "ham1" 1-bit Hamming ecc code |
@@ -110,8 +110,8 @@ on various other factors also like; | |||
110 | Other factor which governs the selection of ecc-scheme is oob-size. | 110 | Other factor which governs the selection of ecc-scheme is oob-size. |
111 | Higher ECC schemes require more OOB/Spare area to store ECC syndrome, | 111 | Higher ECC schemes require more OOB/Spare area to store ECC syndrome, |
112 | so the device should have enough free bytes available its OOB/Spare | 112 | so the device should have enough free bytes available its OOB/Spare |
113 | area to accomodate ECC for entire page. In general following expression | 113 | area to accommodate ECC for entire page. In general following expression |
114 | helps in determining if given device can accomodate ECC syndrome: | 114 | helps in determining if given device can accommodate ECC syndrome: |
115 | "2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE" | 115 | "2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE" |
116 | where | 116 | where |
117 | OOBSIZE number of bytes in OOB/spare area | 117 | OOBSIZE number of bytes in OOB/spare area |
@@ -133,5 +133,5 @@ on various other factors also like; | |||
133 | Example(b): For a device with PAGESIZE = 2048 and OOBSIZE = 128 and | 133 | Example(b): For a device with PAGESIZE = 2048 and OOBSIZE = 128 and |
134 | trying to use BCH16 (ECC_BYTES=26) ecc-scheme. | 134 | trying to use BCH16 (ECC_BYTES=26) ecc-scheme. |
135 | Number of ECC bytes per page = (2 + (2048 / 512) * 26) = 106 B | 135 | Number of ECC bytes per page = (2 + (2048 / 512) * 26) = 106 B |
136 | which can be accomodate in the OOB/Spare area of this device | 136 | which can be accommodated in the OOB/Spare area of this device |
137 | (OOBSIZE=128). So this device can use BCH16 ecc-scheme. | 137 | (OOBSIZE=128). So this device can use BCH16 ecc-scheme. |
diff --git a/Documentation/devicetree/bindings/net/apm-xgene-enet.txt b/Documentation/devicetree/bindings/net/apm-xgene-enet.txt index ebcad25efd0a..cfcc52705ed8 100644 --- a/Documentation/devicetree/bindings/net/apm-xgene-enet.txt +++ b/Documentation/devicetree/bindings/net/apm-xgene-enet.txt | |||
@@ -3,7 +3,7 @@ APM X-Gene SoC Ethernet nodes | |||
3 | Ethernet nodes are defined to describe on-chip ethernet interfaces in | 3 | Ethernet nodes are defined to describe on-chip ethernet interfaces in |
4 | APM X-Gene SoC. | 4 | APM X-Gene SoC. |
5 | 5 | ||
6 | Required properties: | 6 | Required properties for all the ethernet interfaces: |
7 | - compatible: Should be "apm,xgene-enet" | 7 | - compatible: Should be "apm,xgene-enet" |
8 | - reg: Address and length of the register set for the device. It contains the | 8 | - reg: Address and length of the register set for the device. It contains the |
9 | information of registers in the same order as described by reg-names | 9 | information of registers in the same order as described by reg-names |
@@ -15,6 +15,8 @@ Required properties: | |||
15 | - clocks: Reference to the clock entry. | 15 | - clocks: Reference to the clock entry. |
16 | - local-mac-address: MAC address assigned to this device | 16 | - local-mac-address: MAC address assigned to this device |
17 | - phy-connection-type: Interface type between ethernet device and PHY device | 17 | - phy-connection-type: Interface type between ethernet device and PHY device |
18 | |||
19 | Required properties for ethernet interfaces that have external PHY: | ||
18 | - phy-handle: Reference to a PHY node connected to this device | 20 | - phy-handle: Reference to a PHY node connected to this device |
19 | 21 | ||
20 | - mdio: Device tree subnode with the following required properties: | 22 | - mdio: Device tree subnode with the following required properties: |
diff --git a/Documentation/devicetree/bindings/net/broadcom-mdio-unimac.txt b/Documentation/devicetree/bindings/net/broadcom-mdio-unimac.txt new file mode 100644 index 000000000000..ab0bb4247d14 --- /dev/null +++ b/Documentation/devicetree/bindings/net/broadcom-mdio-unimac.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | * Broadcom UniMAC MDIO bus controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should one from "brcm,genet-mdio-v1", "brcm,genet-mdio-v2", | ||
5 | "brcm,genet-mdio-v3", "brcm,genet-mdio-v4" or "brcm,unimac-mdio" | ||
6 | - reg: address and length of the regsiter set for the device, first one is the | ||
7 | base register, and the second one is optional and for indirect accesses to | ||
8 | larger than 16-bits MDIO transactions | ||
9 | - reg-names: name(s) of the register must be "mdio" and optional "mdio_indir_rw" | ||
10 | - #size-cells: must be 1 | ||
11 | - #address-cells: must be 0 | ||
12 | |||
13 | Optional properties: | ||
14 | - interrupts: must be one if the interrupt is shared with the Ethernet MAC or | ||
15 | Ethernet switch this MDIO block is integrated from, or must be two, if there | ||
16 | are two separate interrupts, first one must be "mdio done" and second must be | ||
17 | for "mdio error" | ||
18 | - interrupt-names: must be "mdio_done_error" when there is a share interrupt fed | ||
19 | to this hardware block, or must be "mdio_done" for the first interrupt and | ||
20 | "mdio_error" for the second when there are separate interrupts | ||
21 | |||
22 | Child nodes of this MDIO bus controller node are standard Ethernet PHY device | ||
23 | nodes as described in Documentation/devicetree/bindings/net/phy.txt | ||
24 | |||
25 | Example: | ||
26 | |||
27 | mdio@403c0 { | ||
28 | compatible = "brcm,unimac-mdio"; | ||
29 | reg = <0x403c0 0x8 0x40300 0x18>; | ||
30 | reg-names = "mdio", "mdio_indir_rw"; | ||
31 | #size-cells = <1>; | ||
32 | #address-cells = <0>; | ||
33 | |||
34 | ... | ||
35 | phy@0 { | ||
36 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
37 | reg = <0>; | ||
38 | }; | ||
39 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/broadcom-sf2.txt b/Documentation/devicetree/bindings/net/broadcom-sf2.txt new file mode 100644 index 000000000000..30d487597ecb --- /dev/null +++ b/Documentation/devicetree/bindings/net/broadcom-sf2.txt | |||
@@ -0,0 +1,78 @@ | |||
1 | * Broadcom Starfighter 2 integrated swich | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible: should be "brcm,bcm7445-switch-v4.0" | ||
6 | - reg: addresses and length of the register sets for the device, must be 6 | ||
7 | pairs of register addresses and lengths | ||
8 | - interrupts: interrupts for the devices, must be two interrupts | ||
9 | - dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt | ||
10 | - dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt | ||
11 | - #size-cells: must be 0 | ||
12 | - #address-cells: must be 2, see dsa/dsa.txt | ||
13 | |||
14 | Subnodes: | ||
15 | |||
16 | The integrated switch subnode should be specified according to the binding | ||
17 | described in dsa/dsa.txt. | ||
18 | |||
19 | Optional properties: | ||
20 | |||
21 | - reg-names: litteral names for the device base register addresses, when present | ||
22 | must be: "core", "reg", "intrl2_0", "intrl2_1", "fcb", "acb" | ||
23 | |||
24 | - interrupt-names: litternal names for the device interrupt lines, when present | ||
25 | must be: "switch_0" and "switch_1" | ||
26 | |||
27 | - brcm,num-gphy: specify the maximum number of integrated gigabit PHYs in the | ||
28 | switch | ||
29 | |||
30 | - brcm,num-rgmii-ports: specify the maximum number of RGMII interfaces supported | ||
31 | by the switch | ||
32 | |||
33 | - brcm,fcb-pause-override: boolean property, if present indicates that the switch | ||
34 | supports Failover Control Block pause override capability | ||
35 | |||
36 | - brcm,acb-packets-inflight: boolean property, if present indicates that the switch | ||
37 | Admission Control Block supports reporting the number of packets in-flight in a | ||
38 | switch queue | ||
39 | |||
40 | Example: | ||
41 | |||
42 | switch_top@f0b00000 { | ||
43 | compatible = "simple-bus"; | ||
44 | #size-cells = <1>; | ||
45 | #address-cells = <1>; | ||
46 | ranges = <0 0xf0b00000 0x40804>; | ||
47 | |||
48 | ethernet_switch@0 { | ||
49 | compatible = "brcm,bcm7445-switch-v4.0"; | ||
50 | #size-cells = <0>; | ||
51 | #address-cells = <2>; | ||
52 | reg = <0x0 0x40000 | ||
53 | 0x40000 0x110 | ||
54 | 0x40340 0x30 | ||
55 | 0x40380 0x30 | ||
56 | 0x40400 0x34 | ||
57 | 0x40600 0x208>; | ||
58 | interrupts = <0 0x18 0 | ||
59 | 0 0x19 0>; | ||
60 | brcm,num-gphy = <1>; | ||
61 | brcm,num-rgmii-ports = <2>; | ||
62 | brcm,fcb-pause-override; | ||
63 | brcm,acb-packets-inflight; | ||
64 | |||
65 | ... | ||
66 | switch@0 { | ||
67 | reg = <0 0>; | ||
68 | #size-cells = <0>; | ||
69 | #address-cells <1>; | ||
70 | |||
71 | port@0 { | ||
72 | label = "gphy"; | ||
73 | reg = <0>; | ||
74 | }; | ||
75 | ... | ||
76 | }; | ||
77 | }; | ||
78 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/can/m_can.txt b/Documentation/devicetree/bindings/net/can/m_can.txt new file mode 100644 index 000000000000..9e331777c203 --- /dev/null +++ b/Documentation/devicetree/bindings/net/can/m_can.txt | |||
@@ -0,0 +1,67 @@ | |||
1 | Bosch MCAN controller Device Tree Bindings | ||
2 | ------------------------------------------------- | ||
3 | |||
4 | Required properties: | ||
5 | - compatible : Should be "bosch,m_can" for M_CAN controllers | ||
6 | - reg : physical base address and size of the M_CAN | ||
7 | registers map and Message RAM | ||
8 | - reg-names : Should be "m_can" and "message_ram" | ||
9 | - interrupts : Should be the interrupt number of M_CAN interrupt | ||
10 | line 0 and line 1, could be same if sharing | ||
11 | the same interrupt. | ||
12 | - interrupt-names : Should contain "int0" and "int1" | ||
13 | - clocks : Clocks used by controller, should be host clock | ||
14 | and CAN clock. | ||
15 | - clock-names : Should contain "hclk" and "cclk" | ||
16 | - pinctrl-<n> : Pinctrl states as described in bindings/pinctrl/pinctrl-bindings.txt | ||
17 | - pinctrl-names : Names corresponding to the numbered pinctrl states | ||
18 | - bosch,mram-cfg : Message RAM configuration data. | ||
19 | Multiple M_CAN instances can share the same Message | ||
20 | RAM and each element(e.g Rx FIFO or Tx Buffer and etc) | ||
21 | number in Message RAM is also configurable, | ||
22 | so this property is telling driver how the shared or | ||
23 | private Message RAM are used by this M_CAN controller. | ||
24 | |||
25 | The format should be as follows: | ||
26 | <offset sidf_elems xidf_elems rxf0_elems rxf1_elems | ||
27 | rxb_elems txe_elems txb_elems> | ||
28 | The 'offset' is an address offset of the Message RAM | ||
29 | where the following elements start from. This is | ||
30 | usually set to 0x0 if you're using a private Message | ||
31 | RAM. The remain cells are used to specify how many | ||
32 | elements are used for each FIFO/Buffer. | ||
33 | |||
34 | M_CAN includes the following elements according to user manual: | ||
35 | 11-bit Filter 0-128 elements / 0-128 words | ||
36 | 29-bit Filter 0-64 elements / 0-128 words | ||
37 | Rx FIFO 0 0-64 elements / 0-1152 words | ||
38 | Rx FIFO 1 0-64 elements / 0-1152 words | ||
39 | Rx Buffers 0-64 elements / 0-1152 words | ||
40 | Tx Event FIFO 0-32 elements / 0-64 words | ||
41 | Tx Buffers 0-32 elements / 0-576 words | ||
42 | |||
43 | Please refer to 2.4.1 Message RAM Configuration in | ||
44 | Bosch M_CAN user manual for details. | ||
45 | |||
46 | Example: | ||
47 | SoC dtsi: | ||
48 | m_can1: can@020e8000 { | ||
49 | compatible = "bosch,m_can"; | ||
50 | reg = <0x020e8000 0x4000>, <0x02298000 0x4000>; | ||
51 | reg-names = "m_can", "message_ram"; | ||
52 | interrupts = <0 114 0x04>, | ||
53 | <0 114 0x04>; | ||
54 | interrupt-names = "int0", "int1"; | ||
55 | clocks = <&clks IMX6SX_CLK_CANFD>, | ||
56 | <&clks IMX6SX_CLK_CANFD>; | ||
57 | clock-names = "hclk", "cclk"; | ||
58 | bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; | ||
59 | status = "disabled"; | ||
60 | }; | ||
61 | |||
62 | Board dts: | ||
63 | &m_can1 { | ||
64 | pinctrl-names = "default"; | ||
65 | pinctrl-0 = <&pinctrl_m_can1>; | ||
66 | status = "enabled"; | ||
67 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/can/rcar_can.txt b/Documentation/devicetree/bindings/net/can/rcar_can.txt new file mode 100644 index 000000000000..002d8440bf66 --- /dev/null +++ b/Documentation/devicetree/bindings/net/can/rcar_can.txt | |||
@@ -0,0 +1,43 @@ | |||
1 | Renesas R-Car CAN controller Device Tree Bindings | ||
2 | ------------------------------------------------- | ||
3 | |||
4 | Required properties: | ||
5 | - compatible: "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC. | ||
6 | "renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC. | ||
7 | "renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC. | ||
8 | "renesas,can-r8a7791" if CAN controller is a part of R8A7791 SoC. | ||
9 | - reg: physical base address and size of the R-Car CAN register map. | ||
10 | - interrupts: interrupt specifier for the sole interrupt. | ||
11 | - clocks: phandles and clock specifiers for 3 CAN clock inputs. | ||
12 | - clock-names: 3 clock input name strings: "clkp1", "clkp2", "can_clk". | ||
13 | - pinctrl-0: pin control group to be used for this controller. | ||
14 | - pinctrl-names: must be "default". | ||
15 | |||
16 | Optional properties: | ||
17 | - renesas,can-clock-select: R-Car CAN Clock Source Select. Valid values are: | ||
18 | <0x0> (default) : Peripheral clock (clkp1) | ||
19 | <0x1> : Peripheral clock (clkp2) | ||
20 | <0x3> : Externally input clock | ||
21 | |||
22 | Example | ||
23 | ------- | ||
24 | |||
25 | SoC common .dtsi file: | ||
26 | |||
27 | can0: can@e6e80000 { | ||
28 | compatible = "renesas,can-r8a7791"; | ||
29 | reg = <0 0xe6e80000 0 0x1000>; | ||
30 | interrupts = <0 186 IRQ_TYPE_LEVEL_HIGH>; | ||
31 | clocks = <&mstp9_clks R8A7791_CLK_RCAN0>, | ||
32 | <&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>; | ||
33 | clock-names = "clkp1", "clkp2", "can_clk"; | ||
34 | status = "disabled"; | ||
35 | }; | ||
36 | |||
37 | Board specific .dts file: | ||
38 | |||
39 | &can0 { | ||
40 | pinctrl-0 = <&can0_pins>; | ||
41 | pinctrl-names = "default"; | ||
42 | status = "okay"; | ||
43 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt index ae2b8b7f9c38..33fe8462edf4 100644 --- a/Documentation/devicetree/bindings/net/cpsw.txt +++ b/Documentation/devicetree/bindings/net/cpsw.txt | |||
@@ -24,15 +24,17 @@ Optional properties: | |||
24 | - ti,hwmods : Must be "cpgmac0" | 24 | - ti,hwmods : Must be "cpgmac0" |
25 | - no_bd_ram : Must be 0 or 1 | 25 | - no_bd_ram : Must be 0 or 1 |
26 | - dual_emac : Specifies Switch to act as Dual EMAC | 26 | - dual_emac : Specifies Switch to act as Dual EMAC |
27 | - syscon : Phandle to the system control device node, which is | ||
28 | the control module device of the am33x | ||
27 | 29 | ||
28 | Slave Properties: | 30 | Slave Properties: |
29 | Required properties: | 31 | Required properties: |
30 | - phy_id : Specifies slave phy id | 32 | - phy_id : Specifies slave phy id |
31 | - phy-mode : See ethernet.txt file in the same directory | 33 | - phy-mode : See ethernet.txt file in the same directory |
32 | - mac-address : See ethernet.txt file in the same directory | ||
33 | 34 | ||
34 | Optional properties: | 35 | Optional properties: |
35 | - dual_emac_res_vlan : Specifies VID to be used to segregate the ports | 36 | - dual_emac_res_vlan : Specifies VID to be used to segregate the ports |
37 | - mac-address : See ethernet.txt file in the same directory | ||
36 | 38 | ||
37 | Note: "ti,hwmods" field is used to fetch the base address and irq | 39 | Note: "ti,hwmods" field is used to fetch the base address and irq |
38 | resources from TI, omap hwmod data base during device registration. | 40 | resources from TI, omap hwmod data base during device registration. |
@@ -57,6 +59,7 @@ Examples: | |||
57 | active_slave = <0>; | 59 | active_slave = <0>; |
58 | cpts_clock_mult = <0x80000000>; | 60 | cpts_clock_mult = <0x80000000>; |
59 | cpts_clock_shift = <29>; | 61 | cpts_clock_shift = <29>; |
62 | syscon = <&cm>; | ||
60 | cpsw_emac0: slave@0 { | 63 | cpsw_emac0: slave@0 { |
61 | phy_id = <&davinci_mdio>, <0>; | 64 | phy_id = <&davinci_mdio>, <0>; |
62 | phy-mode = "rgmii-txid"; | 65 | phy-mode = "rgmii-txid"; |
@@ -85,6 +88,7 @@ Examples: | |||
85 | active_slave = <0>; | 88 | active_slave = <0>; |
86 | cpts_clock_mult = <0x80000000>; | 89 | cpts_clock_mult = <0x80000000>; |
87 | cpts_clock_shift = <29>; | 90 | cpts_clock_shift = <29>; |
91 | syscon = <&cm>; | ||
88 | cpsw_emac0: slave@0 { | 92 | cpsw_emac0: slave@0 { |
89 | phy_id = <&davinci_mdio>, <0>; | 93 | phy_id = <&davinci_mdio>, <0>; |
90 | phy-mode = "rgmii-txid"; | 94 | phy-mode = "rgmii-txid"; |
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.txt b/Documentation/devicetree/bindings/net/dsa/dsa.txt index 49f4f7ae3f51..a62c889aafca 100644 --- a/Documentation/devicetree/bindings/net/dsa/dsa.txt +++ b/Documentation/devicetree/bindings/net/dsa/dsa.txt | |||
@@ -39,6 +39,22 @@ Optionnal property: | |||
39 | This property is only used when switches are being | 39 | This property is only used when switches are being |
40 | chained/cascaded together. | 40 | chained/cascaded together. |
41 | 41 | ||
42 | - phy-handle : Phandle to a PHY on an external MDIO bus, not the | ||
43 | switch internal one. See | ||
44 | Documentation/devicetree/bindings/net/ethernet.txt | ||
45 | for details. | ||
46 | |||
47 | - phy-mode : String representing the connection to the designated | ||
48 | PHY node specified by the 'phy-handle' property. See | ||
49 | Documentation/devicetree/bindings/net/ethernet.txt | ||
50 | for details. | ||
51 | |||
52 | Optional subnodes: | ||
53 | - fixed-link : Fixed-link subnode describing a link to a non-MDIO | ||
54 | managed entity. See | ||
55 | Documentation/devicetree/bindings/net/fixed-link.txt | ||
56 | for details. | ||
57 | |||
42 | Example: | 58 | Example: |
43 | 59 | ||
44 | dsa@0 { | 60 | dsa@0 { |
@@ -58,6 +74,7 @@ Example: | |||
58 | port@0 { | 74 | port@0 { |
59 | reg = <0>; | 75 | reg = <0>; |
60 | label = "lan1"; | 76 | label = "lan1"; |
77 | phy-handle = <&phy0>; | ||
61 | }; | 78 | }; |
62 | 79 | ||
63 | port@1 { | 80 | port@1 { |
diff --git a/Documentation/devicetree/bindings/net/emac_rockchip.txt b/Documentation/devicetree/bindings/net/emac_rockchip.txt new file mode 100644 index 000000000000..8dc1c79fef7f --- /dev/null +++ b/Documentation/devicetree/bindings/net/emac_rockchip.txt | |||
@@ -0,0 +1,50 @@ | |||
1 | * ARC EMAC 10/100 Ethernet platform driver for Rockchip Rk3066/RK3188 SoCs | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "rockchip,rk3066-emac" or "rockchip,rk3188-emac" | ||
5 | according to the target SoC. | ||
6 | - reg: Address and length of the register set for the device | ||
7 | - interrupts: Should contain the EMAC interrupts | ||
8 | - rockchip,grf: phandle to the syscon grf used to control speed and mode | ||
9 | for emac. | ||
10 | - phy: see ethernet.txt file in the same directory. | ||
11 | - phy-mode: see ethernet.txt file in the same directory. | ||
12 | |||
13 | Optional properties: | ||
14 | - phy-supply: phandle to a regulator if the PHY needs one | ||
15 | |||
16 | Clock handling: | ||
17 | - clocks: Must contain an entry for each entry in clock-names. | ||
18 | - clock-names: Shall be "hclk" for the host clock needed to calculate and set | ||
19 | polling period of EMAC and "macref" for the reference clock needed to transfer | ||
20 | data to and from the phy. | ||
21 | |||
22 | Child nodes of the driver are the individual PHY devices connected to the | ||
23 | MDIO bus. They must have a "reg" property given the PHY address on the MDIO bus. | ||
24 | |||
25 | Examples: | ||
26 | |||
27 | ethernet@10204000 { | ||
28 | compatible = "rockchip,rk3188-emac"; | ||
29 | reg = <0xc0fc2000 0x3c>; | ||
30 | interrupts = <6>; | ||
31 | mac-address = [ 00 11 22 33 44 55 ]; | ||
32 | |||
33 | clocks = <&cru HCLK_EMAC>, <&cru SCLK_MAC>; | ||
34 | clock-names = "hclk", "macref"; | ||
35 | |||
36 | pinctrl-names = "default"; | ||
37 | pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>; | ||
38 | |||
39 | rockchip,grf = <&grf>; | ||
40 | |||
41 | phy = <&phy0>; | ||
42 | phy-mode = "rmii"; | ||
43 | phy-supply = <&vcc_rmii>; | ||
44 | |||
45 | #address-cells = <1>; | ||
46 | #size-cells = <0>; | ||
47 | phy0: ethernet-phy@0 { | ||
48 | reg = <1>; | ||
49 | }; | ||
50 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/fsl-fec.txt b/Documentation/devicetree/bindings/net/fsl-fec.txt index 8a2c7b55ec16..0c8775c45798 100644 --- a/Documentation/devicetree/bindings/net/fsl-fec.txt +++ b/Documentation/devicetree/bindings/net/fsl-fec.txt | |||
@@ -16,6 +16,12 @@ Optional properties: | |||
16 | - phy-handle : phandle to the PHY device connected to this device. | 16 | - phy-handle : phandle to the PHY device connected to this device. |
17 | - fixed-link : Assume a fixed link. See fixed-link.txt in the same directory. | 17 | - fixed-link : Assume a fixed link. See fixed-link.txt in the same directory. |
18 | Use instead of phy-handle. | 18 | Use instead of phy-handle. |
19 | - fsl,num-tx-queues : The property is valid for enet-avb IP, which supports | ||
20 | hw multi queues. Should specify the tx queue number, otherwise set tx queue | ||
21 | number to 1. | ||
22 | - fsl,num-rx-queues : The property is valid for enet-avb IP, which supports | ||
23 | hw multi queues. Should specify the rx queue number, otherwise set rx queue | ||
24 | number to 1. | ||
19 | 25 | ||
20 | Optional subnodes: | 26 | Optional subnodes: |
21 | - mdio : specifies the mdio bus in the FEC, used as a container for phy nodes | 27 | - mdio : specifies the mdio bus in the FEC, used as a container for phy nodes |
diff --git a/Documentation/devicetree/bindings/net/marvell-pxa168.txt b/Documentation/devicetree/bindings/net/marvell-pxa168.txt new file mode 100644 index 000000000000..845a148a346e --- /dev/null +++ b/Documentation/devicetree/bindings/net/marvell-pxa168.txt | |||
@@ -0,0 +1,36 @@ | |||
1 | * Marvell PXA168 Ethernet Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "marvell,pxa168-eth". | ||
5 | - reg: address and length of the register set for the device. | ||
6 | - interrupts: interrupt for the device. | ||
7 | - clocks: pointer to the clock for the device. | ||
8 | |||
9 | Optional properties: | ||
10 | - port-id: Ethernet port number. Should be '0','1' or '2'. | ||
11 | - #address-cells: must be 1 when using sub-nodes. | ||
12 | - #size-cells: must be 0 when using sub-nodes. | ||
13 | - phy-handle: see ethernet.txt file in the same directory. | ||
14 | - local-mac-address: see ethernet.txt file in the same directory. | ||
15 | |||
16 | Sub-nodes: | ||
17 | Each PHY can be represented as a sub-node. This is not mandatory. | ||
18 | |||
19 | Sub-nodes required properties: | ||
20 | - reg: the MDIO address of the PHY. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | eth0: ethernet@f7b90000 { | ||
25 | compatible = "marvell,pxa168-eth"; | ||
26 | reg = <0xf7b90000 0x10000>; | ||
27 | clocks = <&chip CLKID_GETH0>; | ||
28 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <0>; | ||
31 | phy-handle = <ðphy0>; | ||
32 | |||
33 | ethphy0: ethernet-phy@0 { | ||
34 | reg = <0>; | ||
35 | }; | ||
36 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/meson-dwmac.txt b/Documentation/devicetree/bindings/net/meson-dwmac.txt new file mode 100644 index 000000000000..ec633d74a8a8 --- /dev/null +++ b/Documentation/devicetree/bindings/net/meson-dwmac.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | * Amlogic Meson DWMAC Ethernet controller | ||
2 | |||
3 | The device inherits all the properties of the dwmac/stmmac devices | ||
4 | described in the file net/stmmac.txt with the following changes. | ||
5 | |||
6 | Required properties: | ||
7 | |||
8 | - compatible: should be "amlogic,meson6-dwmac" along with "snps,dwmac" | ||
9 | and any applicable more detailed version number | ||
10 | described in net/stmmac.txt | ||
11 | |||
12 | - reg: should contain a register range for the dwmac controller and | ||
13 | another one for the Amlogic specific configuration | ||
14 | |||
15 | Example: | ||
16 | |||
17 | ethmac: ethernet@c9410000 { | ||
18 | compatible = "amlogic,meson6-dwmac", "snps,dwmac"; | ||
19 | reg = <0xc9410000 0x10000 | ||
20 | 0xc1108108 0x4>; | ||
21 | interrupts = <0 8 1>; | ||
22 | interrupt-names = "macirq"; | ||
23 | clocks = <&clk81>; | ||
24 | clock-names = "stmmaceth"; | ||
25 | } | ||
diff --git a/Documentation/devicetree/bindings/net/micrel.txt b/Documentation/devicetree/bindings/net/micrel.txt index 98a3e61f9ee8..e1d99b95c4ec 100644 --- a/Documentation/devicetree/bindings/net/micrel.txt +++ b/Documentation/devicetree/bindings/net/micrel.txt | |||
@@ -16,3 +16,9 @@ Optional properties: | |||
16 | KSZ8051: register 0x1f, bits 5..4 | 16 | KSZ8051: register 0x1f, bits 5..4 |
17 | 17 | ||
18 | See the respective PHY datasheet for the mode values. | 18 | See the respective PHY datasheet for the mode values. |
19 | |||
20 | - clocks, clock-names: contains clocks according to the common clock bindings. | ||
21 | |||
22 | supported clocks: | ||
23 | - KSZ8021, KSZ8031: "rmii-ref": The RMII refence input clock. Used | ||
24 | to determine the XI input clock. | ||
diff --git a/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt b/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt index 3b58ae480344..9005608cbbd1 100644 --- a/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt +++ b/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt | |||
@@ -26,7 +26,7 @@ Example (for ARM-based BeagleBoard xM with ST21NFCB on I2C2): | |||
26 | clock-frequency = <400000>; | 26 | clock-frequency = <400000>; |
27 | 27 | ||
28 | interrupt-parent = <&gpio5>; | 28 | interrupt-parent = <&gpio5>; |
29 | interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | 29 | interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; |
30 | 30 | ||
31 | reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>; | 31 | reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>; |
32 | }; | 32 | }; |
diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt index 1e436133685f..7c89ca290ced 100644 --- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt +++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt | |||
@@ -13,6 +13,11 @@ Optional SoC Specific Properties: | |||
13 | - pinctrl-names: Contains only one value - "default". | 13 | - pinctrl-names: Contains only one value - "default". |
14 | - pintctrl-0: Specifies the pin control groups used for this controller. | 14 | - pintctrl-0: Specifies the pin control groups used for this controller. |
15 | - autosuspend-delay: Specify autosuspend delay in milliseconds. | 15 | - autosuspend-delay: Specify autosuspend delay in milliseconds. |
16 | - vin-voltage-override: Specify voltage of VIN pin in microvolts. | ||
17 | - irq-status-read-quirk: Specify that the trf7970a being used has the | ||
18 | "IRQ Status Read" erratum. | ||
19 | - en2-rf-quirk: Specify that the trf7970a being used has the "EN2 RF" | ||
20 | erratum. | ||
16 | 21 | ||
17 | Example (for ARM-based BeagleBone with TRF7970A on SPI1): | 22 | Example (for ARM-based BeagleBone with TRF7970A on SPI1): |
18 | 23 | ||
@@ -30,7 +35,10 @@ Example (for ARM-based BeagleBone with TRF7970A on SPI1): | |||
30 | ti,enable-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>, | 35 | ti,enable-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>, |
31 | <&gpio2 5 GPIO_ACTIVE_LOW>; | 36 | <&gpio2 5 GPIO_ACTIVE_LOW>; |
32 | vin-supply = <&ldo3_reg>; | 37 | vin-supply = <&ldo3_reg>; |
38 | vin-voltage-override = <5000000>; | ||
33 | autosuspend-delay = <30000>; | 39 | autosuspend-delay = <30000>; |
40 | irq-status-read-quirk; | ||
41 | en2-rf-quirk; | ||
34 | status = "okay"; | 42 | status = "okay"; |
35 | }; | 43 | }; |
36 | }; | 44 | }; |
diff --git a/Documentation/devicetree/bindings/net/qca-qca7000-spi.txt b/Documentation/devicetree/bindings/net/qca-qca7000-spi.txt new file mode 100644 index 000000000000..c74989c0d8ac --- /dev/null +++ b/Documentation/devicetree/bindings/net/qca-qca7000-spi.txt | |||
@@ -0,0 +1,47 @@ | |||
1 | * Qualcomm QCA7000 (Ethernet over SPI protocol) | ||
2 | |||
3 | Note: The QCA7000 is useable as a SPI device. In this case it must be defined | ||
4 | as a child of a SPI master in the device tree. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : Should be "qca,qca7000" | ||
8 | - reg : Should specify the SPI chip select | ||
9 | - interrupts : The first cell should specify the index of the source interrupt | ||
10 | and the second cell should specify the trigger type as rising edge | ||
11 | - spi-cpha : Must be set | ||
12 | - spi-cpol: Must be set | ||
13 | |||
14 | Optional properties: | ||
15 | - interrupt-parent : Specify the pHandle of the source interrupt | ||
16 | - spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at. | ||
17 | Numbers smaller than 1000000 or greater than 16000000 are invalid. Missing | ||
18 | the property will set the SPI frequency to 8000000 Hertz. | ||
19 | - local-mac-address: 6 bytes, MAC address | ||
20 | - qca,legacy-mode : Set the SPI data transfer of the QCA7000 to legacy mode. | ||
21 | In this mode the SPI master must toggle the chip select between each data | ||
22 | word. In burst mode these gaps aren't necessary, which is faster. | ||
23 | This setting depends on how the QCA7000 is setup via GPIO pin strapping. | ||
24 | If the property is missing the driver defaults to burst mode. | ||
25 | |||
26 | Example: | ||
27 | |||
28 | /* Freescale i.MX28 SPI master*/ | ||
29 | ssp2: spi@80014000 { | ||
30 | #address-cells = <1>; | ||
31 | #size-cells = <0>; | ||
32 | compatible = "fsl,imx28-spi"; | ||
33 | pinctrl-names = "default"; | ||
34 | pinctrl-0 = <&spi2_pins_a>; | ||
35 | status = "okay"; | ||
36 | |||
37 | qca7000: ethernet@0 { | ||
38 | compatible = "qca,qca7000"; | ||
39 | reg = <0x0>; | ||
40 | interrupt-parent = <&gpio3>; /* GPIO Bank 3 */ | ||
41 | interrupts = <25 0x1>; /* Index: 25, rising edge */ | ||
42 | spi-cpha; /* SPI mode: CPHA=1 */ | ||
43 | spi-cpol; /* SPI mode: CPOL=1 */ | ||
44 | spi-max-frequency = <8000000>; /* freq: 8 MHz */ | ||
45 | local-mac-address = [ A0 B0 C0 D0 E0 F0 ]; | ||
46 | }; | ||
47 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/samsung-sxgbe.txt b/Documentation/devicetree/bindings/net/samsung-sxgbe.txt index 989f6c95cfd5..888c250197fe 100644 --- a/Documentation/devicetree/bindings/net/samsung-sxgbe.txt +++ b/Documentation/devicetree/bindings/net/samsung-sxgbe.txt | |||
@@ -17,7 +17,7 @@ Required properties: | |||
17 | - samsung,pbl: Integer, Programmable Burst Length. | 17 | - samsung,pbl: Integer, Programmable Burst Length. |
18 | Supported values are 1, 2, 4, 8, 16, or 32. | 18 | Supported values are 1, 2, 4, 8, 16, or 32. |
19 | - samsung,burst-map: Integer, Program the possible bursts supported by sxgbe | 19 | - samsung,burst-map: Integer, Program the possible bursts supported by sxgbe |
20 | This is an interger and represents allowable DMA bursts when fixed burst. | 20 | This is an integer and represents allowable DMA bursts when fixed burst. |
21 | Allowable range is 0x01-0x3F. When this field is set fixed burst is enabled. | 21 | Allowable range is 0x01-0x3F. When this field is set fixed burst is enabled. |
22 | When fixed length is needed for burst mode, it can be set within allowable | 22 | When fixed length is needed for burst mode, it can be set within allowable |
23 | range. | 23 | range. |
diff --git a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt index 2a60cd3e8d5d..3a9d67951606 100644 --- a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt +++ b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt | |||
@@ -12,6 +12,10 @@ Required properties: | |||
12 | - altr,sysmgr-syscon : Should be the phandle to the system manager node that | 12 | - altr,sysmgr-syscon : Should be the phandle to the system manager node that |
13 | encompasses the glue register, the register offset, and the register shift. | 13 | encompasses the glue register, the register offset, and the register shift. |
14 | 14 | ||
15 | Optional properties: | ||
16 | altr,emac-splitter: Should be the phandle to the emac splitter soft IP node if | ||
17 | DWMAC controller is connected emac splitter. | ||
18 | |||
15 | Example: | 19 | Example: |
16 | 20 | ||
17 | gmac0: ethernet@ff700000 { | 21 | gmac0: ethernet@ff700000 { |
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt index 9b03c57563a4..c41afd963edf 100644 --- a/Documentation/devicetree/bindings/net/stmmac.txt +++ b/Documentation/devicetree/bindings/net/stmmac.txt | |||
@@ -39,6 +39,10 @@ Optional properties: | |||
39 | further clocks may be specified in derived bindings. | 39 | further clocks may be specified in derived bindings. |
40 | - clock-names: One name for each entry in the clocks property, the | 40 | - clock-names: One name for each entry in the clocks property, the |
41 | first one should be "stmmaceth". | 41 | first one should be "stmmaceth". |
42 | - clk_ptp_ref: this is the PTP reference clock; in case of the PTP is | ||
43 | available this clock is used for programming the Timestamp Addend Register. | ||
44 | If not passed then the system clock will be used and this is fine on some | ||
45 | platforms. | ||
42 | 46 | ||
43 | Examples: | 47 | Examples: |
44 | 48 | ||
@@ -54,5 +58,5 @@ Examples: | |||
54 | snps,multicast-filter-bins = <256>; | 58 | snps,multicast-filter-bins = <256>; |
55 | snps,perfect-filter-entries = <128>; | 59 | snps,perfect-filter-entries = <128>; |
56 | clocks = <&clock>; | 60 | clocks = <&clock>; |
57 | clock-names = "stmmaceth">; | 61 | clock-names = "stmmaceth"; |
58 | }; | 62 | }; |
diff --git a/Documentation/devicetree/bindings/panel/auo,b101xtn01.txt b/Documentation/devicetree/bindings/panel/auo,b101xtn01.txt new file mode 100644 index 000000000000..889d511d66c9 --- /dev/null +++ b/Documentation/devicetree/bindings/panel/auo,b101xtn01.txt | |||
@@ -0,0 +1,7 @@ | |||
1 | AU Optronics Corporation 10.1" WXGA TFT LCD panel | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "auo,b101xtn01" | ||
5 | |||
6 | This binding is compatible with the simple-panel binding, which is specified | ||
7 | in simple-panel.txt in this directory. | ||
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt index d0d15ee42834..9f4faa8e8d00 100644 --- a/Documentation/devicetree/bindings/pci/designware-pcie.txt +++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt | |||
@@ -2,6 +2,10 @@ | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should contain "snps,dw-pcie" to identify the core. | 4 | - compatible: should contain "snps,dw-pcie" to identify the core. |
5 | - reg: Should contain the configuration address space. | ||
6 | - reg-names: Must be "config" for the PCIe configuration space. | ||
7 | (The old way of getting the configuration address space from "ranges" | ||
8 | is deprecated and should be avoided.) | ||
5 | - #address-cells: set to <3> | 9 | - #address-cells: set to <3> |
6 | - #size-cells: set to <2> | 10 | - #size-cells: set to <2> |
7 | - device_type: set to "pci" | 11 | - device_type: set to "pci" |
@@ -19,3 +23,6 @@ Required properties: | |||
19 | 23 | ||
20 | Optional properties: | 24 | Optional properties: |
21 | - reset-gpio: gpio pin number of power good signal | 25 | - reset-gpio: gpio pin number of power good signal |
26 | - bus-range: PCI bus numbers covered (it is recommended for new devicetrees to | ||
27 | specify this property, to keep backwards compatibility a range of 0x00-0xff | ||
28 | is assumed if not present) | ||
diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt index 9455fd0ec830..6fbba53a309b 100644 --- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt | |||
@@ -17,7 +17,9 @@ Example: | |||
17 | 17 | ||
18 | pcie@0x01000000 { | 18 | pcie@0x01000000 { |
19 | compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; | 19 | compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; |
20 | reg = <0x01ffc000 0x4000>; | 20 | reg = <0x01ffc000 0x04000>, |
21 | <0x01f00000 0x80000>; | ||
22 | reg-names = "dbi", "config"; | ||
21 | #address-cells = <3>; | 23 | #address-cells = <3>; |
22 | #size-cells = <2>; | 24 | #size-cells = <2>; |
23 | device_type = "pci"; | 25 | device_type = "pci"; |
diff --git a/Documentation/devicetree/bindings/pci/fsl,pci.txt b/Documentation/devicetree/bindings/pci/fsl,pci.txt new file mode 100644 index 000000000000..d8ac4a768e7e --- /dev/null +++ b/Documentation/devicetree/bindings/pci/fsl,pci.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | * Bus Enumeration by Freescale PCI-X Agent | ||
2 | |||
3 | Typically any Freescale PCI-X bridge hardware strapped into Agent mode | ||
4 | is prevented from enumerating the bus. The PrPMC form-factor requires | ||
5 | all mezzanines to be PCI-X Agents, but one per system may still | ||
6 | enumerate the bus. | ||
7 | |||
8 | The property defined below will allow a PCI-X bridge to be used for bus | ||
9 | enumeration despite being strapped into Agent mode. | ||
10 | |||
11 | Required properties: | ||
12 | - fsl,pci-agent-force-enum : There is no value associated with this | ||
13 | property. The property itself is treated as a boolean. | ||
14 | |||
15 | Example: | ||
16 | |||
17 | /* PCI-X bridge known to be PrPMC Monarch */ | ||
18 | pci0: pci@ef008000 { | ||
19 | fsl,pci-agent-force-enum; | ||
20 | #interrupt-cells = <1>; | ||
21 | #size-cells = <2>; | ||
22 | #address-cells = <3>; | ||
23 | compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; | ||
24 | device_type = "pci"; | ||
25 | ... | ||
26 | ... | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/pci/host-generic-pci.txt b/Documentation/devicetree/bindings/pci/host-generic-pci.txt index f0b0436807b4..cf3e205e0b7e 100644 --- a/Documentation/devicetree/bindings/pci/host-generic-pci.txt +++ b/Documentation/devicetree/bindings/pci/host-generic-pci.txt | |||
@@ -55,7 +55,7 @@ For CAM, this 24-bit offset is: | |||
55 | cfg_offset(bus, device, function, register) = | 55 | cfg_offset(bus, device, function, register) = |
56 | bus << 16 | device << 11 | function << 8 | register | 56 | bus << 16 | device << 11 | function << 8 | register |
57 | 57 | ||
58 | Whilst ECAM extends this by 4 bits to accomodate 4k of function space: | 58 | Whilst ECAM extends this by 4 bits to accommodate 4k of function space: |
59 | 59 | ||
60 | cfg_offset(bus, device, function, register) = | 60 | cfg_offset(bus, device, function, register) = |
61 | bus << 20 | device << 15 | function << 12 | register | 61 | bus << 20 | device << 15 | function << 12 | register |
diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt index 0823362548dc..d763e047c6ae 100644 --- a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt +++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt | |||
@@ -1,7 +1,10 @@ | |||
1 | NVIDIA Tegra PCIe controller | 1 | NVIDIA Tegra PCIe controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: "nvidia,tegra20-pcie" or "nvidia,tegra30-pcie" | 4 | - compatible: Must be one of: |
5 | - "nvidia,tegra20-pcie" | ||
6 | - "nvidia,tegra30-pcie" | ||
7 | - "nvidia,tegra124-pcie" | ||
5 | - device_type: Must be "pci" | 8 | - device_type: Must be "pci" |
6 | - reg: A list of physical base address and length for each set of controller | 9 | - reg: A list of physical base address and length for each set of controller |
7 | registers. Must contain an entry for each entry in the reg-names property. | 10 | registers. Must contain an entry for each entry in the reg-names property. |
@@ -57,6 +60,11 @@ Required properties: | |||
57 | - afi | 60 | - afi |
58 | - pcie_x | 61 | - pcie_x |
59 | 62 | ||
63 | Required properties on Tegra124 and later: | ||
64 | - phys: Must contain an entry for each entry in phy-names. | ||
65 | - phy-names: Must include the following entries: | ||
66 | - pcie | ||
67 | |||
60 | Power supplies for Tegra20: | 68 | Power supplies for Tegra20: |
61 | - avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. | 69 | - avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. |
62 | - vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. | 70 | - vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. |
@@ -84,6 +92,21 @@ Power supplies for Tegra30: | |||
84 | - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V. | 92 | - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V. |
85 | - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. | 93 | - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. |
86 | 94 | ||
95 | Power supplies for Tegra124: | ||
96 | - Required: | ||
97 | - avddio-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. | ||
98 | - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. | ||
99 | - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must | ||
100 | supply 1.05 V. | ||
101 | - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks. | ||
102 | Must supply 3.3 V. | ||
103 | - hvdd-pex-pll-e-supply: High-voltage supply for PLLE (shared with USB3). | ||
104 | Must supply 3.3 V. | ||
105 | - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must | ||
106 | supply 2.8-3.3 V. | ||
107 | - avdd-pll-erefe-supply: Power supply for PLLE (shared with USB3). Must | ||
108 | supply 1.05 V. | ||
109 | |||
87 | Root ports are defined as subnodes of the PCIe controller node. | 110 | Root ports are defined as subnodes of the PCIe controller node. |
88 | 111 | ||
89 | Required properties: | 112 | Required properties: |
diff --git a/Documentation/devicetree/bindings/pci/pci-keystone.txt b/Documentation/devicetree/bindings/pci/pci-keystone.txt new file mode 100644 index 000000000000..54eae2938174 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/pci-keystone.txt | |||
@@ -0,0 +1,63 @@ | |||
1 | TI Keystone PCIe interface | ||
2 | |||
3 | Keystone PCI host Controller is based on Designware PCI h/w version 3.65. | ||
4 | It shares common functions with PCIe Designware core driver and inherit | ||
5 | common properties defined in | ||
6 | Documentation/devicetree/bindings/pci/designware-pci.txt | ||
7 | |||
8 | Please refer to Documentation/devicetree/bindings/pci/designware-pci.txt | ||
9 | for the details of Designware DT bindings. Additional properties are | ||
10 | described here as well as properties that are not applicable. | ||
11 | |||
12 | Required Properties:- | ||
13 | |||
14 | compatibility: "ti,keystone-pcie" | ||
15 | reg: index 1 is the base address and length of DW application registers. | ||
16 | index 2 is the base address and length of PCI device ID register. | ||
17 | |||
18 | pcie_msi_intc : Interrupt controller device node for MSI IRQ chip | ||
19 | interrupt-cells: should be set to 1 | ||
20 | interrupt-parent: Parent interrupt controller phandle | ||
21 | interrupts: GIC interrupt lines connected to PCI MSI interrupt lines | ||
22 | |||
23 | Example: | ||
24 | pcie_msi_intc: msi-interrupt-controller { | ||
25 | interrupt-controller; | ||
26 | #interrupt-cells = <1>; | ||
27 | interrupt-parent = <&gic>; | ||
28 | interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, | ||
29 | <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>, | ||
30 | <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>, | ||
31 | <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>, | ||
32 | <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>, | ||
33 | <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>, | ||
34 | <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>, | ||
35 | <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>; | ||
36 | }; | ||
37 | |||
38 | pcie_intc: Interrupt controller device node for Legacy IRQ chip | ||
39 | interrupt-cells: should be set to 1 | ||
40 | interrupt-parent: Parent interrupt controller phandle | ||
41 | interrupts: GIC interrupt lines connected to PCI Legacy interrupt lines | ||
42 | |||
43 | Example: | ||
44 | pcie_intc: legacy-interrupt-controller { | ||
45 | interrupt-controller; | ||
46 | #interrupt-cells = <1>; | ||
47 | interrupt-parent = <&gic>; | ||
48 | interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>, | ||
49 | <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>, | ||
50 | <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>, | ||
51 | <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>; | ||
52 | }; | ||
53 | |||
54 | Optional properties:- | ||
55 | phys: phandle to Generic Keystone SerDes phy for PCI | ||
56 | phy-names: name of the Generic Keystine SerDes phy for PCI | ||
57 | - If boot loader already does PCI link establishment, then phys and | ||
58 | phy-names shouldn't be present. | ||
59 | |||
60 | Designware DT Properties not applicable for Keystone PCI | ||
61 | |||
62 | 1. pcie_bus clock-names not used. Instead, a phandle to phys is used. | ||
63 | |||
diff --git a/Documentation/devicetree/bindings/pci/ti-pci.txt b/Documentation/devicetree/bindings/pci/ti-pci.txt new file mode 100644 index 000000000000..3d217911b313 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/ti-pci.txt | |||
@@ -0,0 +1,59 @@ | |||
1 | TI PCI Controllers | ||
2 | |||
3 | PCIe Designware Controller | ||
4 | - compatible: Should be "ti,dra7-pcie"" | ||
5 | - reg : Two register ranges as listed in the reg-names property | ||
6 | - reg-names : The first entry must be "ti-conf" for the TI specific registers | ||
7 | The second entry must be "rc-dbics" for the designware pcie | ||
8 | registers | ||
9 | The third entry must be "config" for the PCIe configuration space | ||
10 | - phys : list of PHY specifiers (used by generic PHY framework) | ||
11 | - phy-names : must be "pcie-phy0", "pcie-phy1", "pcie-phyN".. based on the | ||
12 | number of PHYs as specified in *phys* property. | ||
13 | - ti,hwmods : Name of the hwmod associated to the pcie, "pcie<X>", | ||
14 | where <X> is the instance number of the pcie from the HW spec. | ||
15 | - interrupts : Two interrupt entries must be specified. The first one is for | ||
16 | main interrupt line and the second for MSI interrupt line. | ||
17 | - #address-cells, | ||
18 | #size-cells, | ||
19 | #interrupt-cells, | ||
20 | device_type, | ||
21 | ranges, | ||
22 | num-lanes, | ||
23 | interrupt-map-mask, | ||
24 | interrupt-map : as specified in ../designware-pcie.txt | ||
25 | |||
26 | Example: | ||
27 | axi { | ||
28 | compatible = "simple-bus"; | ||
29 | #size-cells = <1>; | ||
30 | #address-cells = <1>; | ||
31 | ranges = <0x51000000 0x51000000 0x3000 | ||
32 | 0x0 0x20000000 0x10000000>; | ||
33 | pcie@51000000 { | ||
34 | compatible = "ti,dra7-pcie"; | ||
35 | reg = <0x51000000 0x2000>, <0x51002000 0x14c>, <0x1000 0x2000>; | ||
36 | reg-names = "rc_dbics", "ti_conf", "config"; | ||
37 | interrupts = <0 232 0x4>, <0 233 0x4>; | ||
38 | #address-cells = <3>; | ||
39 | #size-cells = <2>; | ||
40 | device_type = "pci"; | ||
41 | ranges = <0x81000000 0 0 0x03000 0 0x00010000 | ||
42 | 0x82000000 0 0x20013000 0x13000 0 0xffed000>; | ||
43 | #interrupt-cells = <1>; | ||
44 | num-lanes = <1>; | ||
45 | ti,hwmods = "pcie1"; | ||
46 | phys = <&pcie1_phy>; | ||
47 | phy-names = "pcie-phy0"; | ||
48 | interrupt-map-mask = <0 0 0 7>; | ||
49 | interrupt-map = <0 0 0 1 &pcie_intc 1>, | ||
50 | <0 0 0 2 &pcie_intc 2>, | ||
51 | <0 0 0 3 &pcie_intc 3>, | ||
52 | <0 0 0 4 &pcie_intc 4>; | ||
53 | pcie_intc: interrupt-controller { | ||
54 | interrupt-controller; | ||
55 | #address-cells = <0>; | ||
56 | #interrupt-cells = <1>; | ||
57 | }; | ||
58 | }; | ||
59 | }; | ||
diff --git a/Documentation/devicetree/bindings/pci/xgene-pci.txt b/Documentation/devicetree/bindings/pci/xgene-pci.txt new file mode 100644 index 000000000000..1070b068c7c6 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/xgene-pci.txt | |||
@@ -0,0 +1,57 @@ | |||
1 | * AppliedMicro X-Gene PCIe interface | ||
2 | |||
3 | Required properties: | ||
4 | - device_type: set to "pci" | ||
5 | - compatible: should contain "apm,xgene-pcie" to identify the core. | ||
6 | - reg: A list of physical base address and length for each set of controller | ||
7 | registers. Must contain an entry for each entry in the reg-names | ||
8 | property. | ||
9 | - reg-names: Must include the following entries: | ||
10 | "csr": controller configuration registers. | ||
11 | "cfg": pcie configuration space registers. | ||
12 | - #address-cells: set to <3> | ||
13 | - #size-cells: set to <2> | ||
14 | - ranges: ranges for the outbound memory, I/O regions. | ||
15 | - dma-ranges: ranges for the inbound memory regions. | ||
16 | - #interrupt-cells: set to <1> | ||
17 | - interrupt-map-mask and interrupt-map: standard PCI properties | ||
18 | to define the mapping of the PCIe interface to interrupt | ||
19 | numbers. | ||
20 | - clocks: from common clock binding: handle to pci clock. | ||
21 | |||
22 | Optional properties: | ||
23 | - status: Either "ok" or "disabled". | ||
24 | - dma-coherent: Present if dma operations are coherent | ||
25 | |||
26 | Example: | ||
27 | |||
28 | SoC specific DT Entry: | ||
29 | |||
30 | pcie0: pcie@1f2b0000 { | ||
31 | status = "disabled"; | ||
32 | device_type = "pci"; | ||
33 | compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; | ||
34 | #interrupt-cells = <1>; | ||
35 | #size-cells = <2>; | ||
36 | #address-cells = <3>; | ||
37 | reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */ | ||
38 | 0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */ | ||
39 | reg-names = "csr", "cfg"; | ||
40 | ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */ | ||
41 | 0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000>; /* mem */ | ||
42 | dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 | ||
43 | 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; | ||
44 | interrupt-map-mask = <0x0 0x0 0x0 0x7>; | ||
45 | interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1 | ||
46 | 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1 | ||
47 | 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1 | ||
48 | 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>; | ||
49 | dma-coherent; | ||
50 | clocks = <&pcie0clk 0>; | ||
51 | }; | ||
52 | |||
53 | |||
54 | Board specific DT Entry: | ||
55 | &pcie0 { | ||
56 | status = "ok"; | ||
57 | }; | ||
diff --git a/Documentation/devicetree/bindings/pci/xilinx-pcie.txt b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt new file mode 100644 index 000000000000..3e2c88d97ad4 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt | |||
@@ -0,0 +1,62 @@ | |||
1 | * Xilinx AXI PCIe Root Port Bridge DT description | ||
2 | |||
3 | Required properties: | ||
4 | - #address-cells: Address representation for root ports, set to <3> | ||
5 | - #size-cells: Size representation for root ports, set to <2> | ||
6 | - #interrupt-cells: specifies the number of cells needed to encode an | ||
7 | interrupt source. The value must be 1. | ||
8 | - compatible: Should contain "xlnx,axi-pcie-host-1.00.a" | ||
9 | - reg: Should contain AXI PCIe registers location and length | ||
10 | - device_type: must be "pci" | ||
11 | - interrupts: Should contain AXI PCIe interrupt | ||
12 | - interrupt-map-mask, | ||
13 | interrupt-map: standard PCI properties to define the mapping of the | ||
14 | PCI interface to interrupt numbers. | ||
15 | - ranges: ranges for the PCI memory regions (I/O space region is not | ||
16 | supported by hardware) | ||
17 | Please refer to the standard PCI bus binding document for a more | ||
18 | detailed explanation | ||
19 | |||
20 | Optional properties: | ||
21 | - bus-range: PCI bus numbers covered | ||
22 | |||
23 | Interrupt controller child node | ||
24 | +++++++++++++++++++++++++++++++ | ||
25 | Required properties: | ||
26 | - interrupt-controller: identifies the node as an interrupt controller | ||
27 | - #address-cells: specifies the number of cells needed to encode an | ||
28 | address. The value must be 0. | ||
29 | - #interrupt-cells: specifies the number of cells needed to encode an | ||
30 | interrupt source. The value must be 1. | ||
31 | |||
32 | NOTE: | ||
33 | The core provides a single interrupt for both INTx/MSI messages. So, | ||
34 | created a interrupt controller node to support 'interrupt-map' DT | ||
35 | functionality. The driver will create an IRQ domain for this map, decode | ||
36 | the four INTx interrupts in ISR and route them to this domain. | ||
37 | |||
38 | |||
39 | Example: | ||
40 | ++++++++ | ||
41 | |||
42 | pci_express: axi-pcie@50000000 { | ||
43 | #address-cells = <3>; | ||
44 | #size-cells = <2>; | ||
45 | #interrupt-cells = <1>; | ||
46 | compatible = "xlnx,axi-pcie-host-1.00.a"; | ||
47 | reg = < 0x50000000 0x10000000 >; | ||
48 | device_type = "pci"; | ||
49 | interrupts = < 0 52 4 >; | ||
50 | interrupt-map-mask = <0 0 0 7>; | ||
51 | interrupt-map = <0 0 0 1 &pcie_intc 1>, | ||
52 | <0 0 0 2 &pcie_intc 2>, | ||
53 | <0 0 0 3 &pcie_intc 3>, | ||
54 | <0 0 0 4 &pcie_intc 4>; | ||
55 | ranges = < 0x02000000 0 0x60000000 0x60000000 0 0x10000000 >; | ||
56 | |||
57 | pcie_intc: interrupt-controller { | ||
58 | interrupt-controller; | ||
59 | #address-cells = <0>; | ||
60 | #interrupt-cells = <1>; | ||
61 | } | ||
62 | }; | ||
diff --git a/Documentation/devicetree/bindings/phy/phy-bindings.txt b/Documentation/devicetree/bindings/phy/phy-bindings.txt index 2aa1840200ed..1293c321754c 100644 --- a/Documentation/devicetree/bindings/phy/phy-bindings.txt +++ b/Documentation/devicetree/bindings/phy/phy-bindings.txt | |||
@@ -27,7 +27,7 @@ phys: phy { | |||
27 | }; | 27 | }; |
28 | 28 | ||
29 | That node describes an IP block (PHY provider) that implements 2 different PHYs. | 29 | That node describes an IP block (PHY provider) that implements 2 different PHYs. |
30 | In order to differentiate between these 2 PHYs, an additonal specifier should be | 30 | In order to differentiate between these 2 PHYs, an additional specifier should be |
31 | given while trying to get a reference to it. | 31 | given while trying to get a reference to it. |
32 | 32 | ||
33 | PHY user node | 33 | PHY user node |
diff --git a/Documentation/devicetree/bindings/phy/phy-stih407-usb.txt b/Documentation/devicetree/bindings/phy/phy-stih407-usb.txt new file mode 100644 index 000000000000..1ef8228db73b --- /dev/null +++ b/Documentation/devicetree/bindings/phy/phy-stih407-usb.txt | |||
@@ -0,0 +1,30 @@ | |||
1 | ST STiH407 USB PHY controller | ||
2 | |||
3 | This file documents the dt bindings for the usb picoPHY driver which is the PHY for both USB2 and USB3 | ||
4 | host controllers (when controlling usb2/1.1 devices) available on STiH407 SoC family from STMicroelectronics. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : should be "st,stih407-usb2-phy" | ||
8 | - reg : contain the offset and length of the system configuration registers | ||
9 | used as glue logic to control & parameter phy | ||
10 | - reg-names : the names of the system configuration registers in "reg", should be "param" and "reg" | ||
11 | - st,syscfg : sysconfig register to manage phy parameter at driver level | ||
12 | - resets : list of phandle and reset specifier pairs. There should be two entries, one | ||
13 | for the whole phy and one for the port | ||
14 | - reset-names : list of reset signal names. Should be "global" and "port" | ||
15 | See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt | ||
16 | See: Documentation/devicetree/bindings/reset/reset.txt | ||
17 | |||
18 | Example: | ||
19 | |||
20 | usb2_picophy0: usbpicophy@f8 { | ||
21 | compatible = "st,stih407-usb2-phy"; | ||
22 | reg = <0xf8 0x04>, /* syscfg 5062 */ | ||
23 | <0xf4 0x04>; /* syscfg 5061 */ | ||
24 | reg-names = "param", "ctrl"; | ||
25 | #phy-cells = <0>; | ||
26 | st,syscfg = <&syscfg_core>; | ||
27 | resets = <&softreset STIH407_PICOPHY_SOFTRESET>, | ||
28 | <&picophyreset STIH407_PICOPHY0_RESET>; | ||
29 | reset-names = "global", "port"; | ||
30 | }; | ||
diff --git a/Documentation/devicetree/bindings/phy/phy-stih41x-usb.txt b/Documentation/devicetree/bindings/phy/phy-stih41x-usb.txt new file mode 100644 index 000000000000..00944a05ee6b --- /dev/null +++ b/Documentation/devicetree/bindings/phy/phy-stih41x-usb.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | STMicroelectronics STiH41x USB PHY binding | ||
2 | ------------------------------------------ | ||
3 | |||
4 | This file contains documentation for the usb phy found in STiH415/6 SoCs from | ||
5 | STMicroelectronics. | ||
6 | |||
7 | Required properties: | ||
8 | - compatible : should be "st,stih416-usb-phy" or "st,stih415-usb-phy" | ||
9 | - st,syscfg : should be a phandle of the syscfg node | ||
10 | - clock-names : must contain "osc_phy" | ||
11 | - clocks : must contain an entry for each name in clock-names. | ||
12 | See: Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
13 | - #phy-cells : must be 0 for this phy | ||
14 | See: Documentation/devicetree/bindings/phy/phy-bindings.txt | ||
15 | |||
16 | Example: | ||
17 | |||
18 | usb2_phy: usb2phy@0 { | ||
19 | compatible = "st,stih416-usb-phy"; | ||
20 | #phy-cell = <0>; | ||
21 | st,syscfg = <&syscfg_rear>; | ||
22 | clocks = <&clk_sysin>; | ||
23 | clock-names = "osc_phy"; | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt b/Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt new file mode 100644 index 000000000000..86f2dbe07ed4 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | Qualcomm DWC3 HS AND SS PHY CONTROLLER | ||
2 | -------------------------------------- | ||
3 | |||
4 | DWC3 PHY nodes are defined to describe on-chip Synopsis Physical layer | ||
5 | controllers. Each DWC3 PHY controller should have its own node. | ||
6 | |||
7 | Required properties: | ||
8 | - compatible: should contain one of the following: | ||
9 | - "qcom,dwc3-hs-usb-phy" for High Speed Synopsis PHY controller | ||
10 | - "qcom,dwc3-ss-usb-phy" for Super Speed Synopsis PHY controller | ||
11 | - reg: offset and length of the DWC3 PHY controller register set | ||
12 | - #phy-cells: must be zero | ||
13 | - clocks: a list of phandles and clock-specifier pairs, one for each entry in | ||
14 | clock-names. | ||
15 | - clock-names: Should contain "ref" for the PHY reference clock | ||
16 | |||
17 | Optional clocks: | ||
18 | "xo" External reference clock | ||
19 | |||
20 | Example: | ||
21 | phy@100f8800 { | ||
22 | compatible = "qcom,dwc3-hs-usb-phy"; | ||
23 | reg = <0x100f8800 0x30>; | ||
24 | clocks = <&gcc USB30_0_UTMI_CLK>; | ||
25 | clock-names = "ref"; | ||
26 | #phy-cells = <0>; | ||
27 | |||
28 | status = "ok"; | ||
29 | }; | ||
30 | |||
31 | phy@100f8830 { | ||
32 | compatible = "qcom,dwc3-ss-usb-phy"; | ||
33 | reg = <0x100f8830 0x30>; | ||
34 | clocks = <&gcc USB30_0_MASTER_CLK>; | ||
35 | clock-names = "ref"; | ||
36 | #phy-cells = <0>; | ||
37 | |||
38 | status = "ok"; | ||
39 | }; | ||
diff --git a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt new file mode 100644 index 000000000000..00fc52a034b7 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt | |||
@@ -0,0 +1,51 @@ | |||
1 | * Renesas R-Car generation 2 USB PHY | ||
2 | |||
3 | This file provides information on what the device node for the R-Car generation | ||
4 | 2 USB PHY contains. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC. | ||
8 | "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC. | ||
9 | - reg: offset and length of the register block. | ||
10 | - #address-cells: number of address cells for the USB channel subnodes, must | ||
11 | be <1>. | ||
12 | - #size-cells: number of size cells for the USB channel subnodes, must be <0>. | ||
13 | - clocks: clock phandle and specifier pair. | ||
14 | - clock-names: string, clock input name, must be "usbhs". | ||
15 | |||
16 | The USB PHY device tree node should have the subnodes corresponding to the USB | ||
17 | channels. These subnodes must contain the following properties: | ||
18 | - reg: the USB controller selector; see the table below for the values. | ||
19 | - #phy-cells: see phy-bindings.txt in the same directory, must be <1>. | ||
20 | |||
21 | The phandle's argument in the PHY specifier is the USB controller selector for | ||
22 | the USB channel; see the selector meanings below: | ||
23 | |||
24 | +-----------+---------------+---------------+ | ||
25 | |\ Selector | | | | ||
26 | + --------- + 0 | 1 | | ||
27 | | Channel \| | | | ||
28 | +-----------+---------------+---------------+ | ||
29 | | 0 | PCI EHCI/OHCI | HS-USB | | ||
30 | | 2 | PCI EHCI/OHCI | xHCI | | ||
31 | +-----------+---------------+---------------+ | ||
32 | |||
33 | Example (Lager board): | ||
34 | |||
35 | usb-phy@e6590100 { | ||
36 | compatible = "renesas,usb-phy-r8a7790"; | ||
37 | reg = <0 0xe6590100 0 0x100>; | ||
38 | #address-cells = <1>; | ||
39 | #size-cells = <0>; | ||
40 | clocks = <&mstp7_clks R8A7790_CLK_HSUSB>; | ||
41 | clock-names = "usbhs"; | ||
42 | |||
43 | usb-channel@0 { | ||
44 | reg = <0>; | ||
45 | #phy-cells = <1>; | ||
46 | }; | ||
47 | usb-channel@2 { | ||
48 | reg = <2>; | ||
49 | #phy-cells = <1>; | ||
50 | }; | ||
51 | }; | ||
diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt b/Documentation/devicetree/bindings/phy/samsung-phy.txt index 7a6feea2a48b..15e0f2c7130f 100644 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt | |||
@@ -17,8 +17,11 @@ Samsung EXYNOS SoC series Display Port PHY | |||
17 | ------------------------------------------------- | 17 | ------------------------------------------------- |
18 | 18 | ||
19 | Required properties: | 19 | Required properties: |
20 | - compatible : should be "samsung,exynos5250-dp-video-phy"; | 20 | - compatible : should be one of the following supported values: |
21 | - reg : offset and length of the Display Port PHY register set; | 21 | - "samsung,exynos5250-dp-video-phy" |
22 | - "samsung,exynos5420-dp-video-phy" | ||
23 | - samsung,pmu-syscon: phandle for PMU system controller interface, used to | ||
24 | control pmu registers for power isolation. | ||
22 | - #phy-cells : from the generic PHY bindings, must be 0; | 25 | - #phy-cells : from the generic PHY bindings, must be 0; |
23 | 26 | ||
24 | Samsung S5P/EXYNOS SoC series USB PHY | 27 | Samsung S5P/EXYNOS SoC series USB PHY |
diff --git a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt index 02ab5ab198a4..b7a93e80a302 100644 --- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt | |||
@@ -19,6 +19,7 @@ such as pull-up, multi drive, etc. | |||
19 | 19 | ||
20 | Required properties for iomux controller: | 20 | Required properties for iomux controller: |
21 | - compatible: "atmel,at91rm9200-pinctrl" or "atmel,at91sam9x5-pinctrl" | 21 | - compatible: "atmel,at91rm9200-pinctrl" or "atmel,at91sam9x5-pinctrl" |
22 | or "atmel,sama5d3-pinctrl" | ||
22 | - atmel,mux-mask: array of mask (periph per bank) to describe if a pin can be | 23 | - atmel,mux-mask: array of mask (periph per bank) to describe if a pin can be |
23 | configured in this periph mode. All the periph and bank need to be describe. | 24 | configured in this periph mode. All the periph and bank need to be describe. |
24 | 25 | ||
@@ -85,13 +86,20 @@ Required properties for pin configuration node: | |||
85 | PIN_BANK 0 is pioA, PIN_BANK 1 is pioB... | 86 | PIN_BANK 0 is pioA, PIN_BANK 1 is pioB... |
86 | 87 | ||
87 | Bits used for CONFIG: | 88 | Bits used for CONFIG: |
88 | PULL_UP (1 << 0): indicate this pin need a pull up. | 89 | PULL_UP (1 << 0): indicate this pin needs a pull up. |
89 | MULTIDRIVE (1 << 1): indicate this pin need to be configured as multidrive. | 90 | MULTIDRIVE (1 << 1): indicate this pin needs to be configured as multi-drive. |
90 | DEGLITCH (1 << 2): indicate this pin need deglitch. | 91 | Multi-drive is equivalent to open-drain type output. |
91 | PULL_DOWN (1 << 3): indicate this pin need a pull down. | 92 | DEGLITCH (1 << 2): indicate this pin needs deglitch. |
92 | DIS_SCHMIT (1 << 4): indicate this pin need to disable schmit trigger. | 93 | PULL_DOWN (1 << 3): indicate this pin needs a pull down. |
93 | DEBOUNCE (1 << 16): indicate this pin need debounce. | 94 | DIS_SCHMIT (1 << 4): indicate this pin needs to the disable schmitt trigger. |
94 | DEBOUNCE_VAL (0x3fff << 17): debounce val. | 95 | DRIVE_STRENGTH (3 << 5): indicate the drive strength of the pin using the |
96 | following values: | ||
97 | 00 - No change (reset state value kept) | ||
98 | 01 - Low | ||
99 | 10 - Medium | ||
100 | 11 - High | ||
101 | DEBOUNCE (1 << 16): indicate this pin needs debounce. | ||
102 | DEBOUNCE_VAL (0x3fff << 17): debounce value. | ||
95 | 103 | ||
96 | NOTE: | 104 | NOTE: |
97 | Some requirements for using atmel,at91rm9200-pinctrl binding: | 105 | Some requirements for using atmel,at91rm9200-pinctrl binding: |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt index 6464bf769460..189814e7cdc7 100644 --- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt | |||
@@ -10,6 +10,7 @@ Required properties: | |||
10 | - reg: Should contain a list of base address and size pairs for: | 10 | - reg: Should contain a list of base address and size pairs for: |
11 | -- first entry - the drive strength and pad control registers. | 11 | -- first entry - the drive strength and pad control registers. |
12 | -- second entry - the pinmux registers | 12 | -- second entry - the pinmux registers |
13 | -- third entry - the MIPI_PAD_CTRL register | ||
13 | 14 | ||
14 | Tegra124 adds the following optional properties for pin configuration subnodes. | 15 | Tegra124 adds the following optional properties for pin configuration subnodes. |
15 | The macros for options are defined in the | 16 | The macros for options are defined in the |
@@ -91,6 +92,12 @@ Valid values for pin and group names are: | |||
91 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, | 92 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, |
92 | gmh, owr, uda, gpv, dev3, cec, usb_vbus_en, ao3, ao0, hv0, sdio4, ao4. | 93 | gmh, owr, uda, gpv, dev3, cec, usb_vbus_en, ao3, ao0, hv0, sdio4, ao4. |
93 | 94 | ||
95 | MIPI pad control groups: | ||
96 | |||
97 | These support only the nvidia,function property. | ||
98 | |||
99 | dsi_b | ||
100 | |||
94 | Valid values for nvidia,functions are: | 101 | Valid values for nvidia,functions are: |
95 | 102 | ||
96 | blink, cec, cldvfs, clk12, cpu, dap, dap1, dap2, dev3, displaya, | 103 | blink, cec, cldvfs, clk12, cpu, dap, dap1, dap2, dev3, displaya, |
@@ -101,14 +108,15 @@ Valid values for nvidia,functions are: | |||
101 | sdmmc4, soc, spdif, spi1, spi2, spi3, spi4, spi5, spi6, trace, uarta, | 108 | sdmmc4, soc, spdif, spi1, spi2, spi3, spi4, spi5, spi6, trace, uarta, |
102 | uartb, uartc, uartd, ulpi, usb, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, | 109 | uartb, uartc, uartd, ulpi, usb, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, |
103 | vi, vi_alt1, vi_alt3, vimclk2, vimclk2_alt, sata, ccla, pe0, pe, pe1, | 110 | vi, vi_alt1, vi_alt3, vimclk2, vimclk2_alt, sata, ccla, pe0, pe, pe1, |
104 | dp, rtck, sys, clk tmds. | 111 | dp, rtck, sys, clk tmds, csi, dsi_b |
105 | 112 | ||
106 | Example: | 113 | Example: |
107 | 114 | ||
108 | pinmux: pinmux { | 115 | pinmux: pinmux { |
109 | compatible = "nvidia,tegra124-pinmux"; | 116 | compatible = "nvidia,tegra124-pinmux"; |
110 | reg = <0x70000868 0x164 /* Pad control registers */ | 117 | reg = <0x0 0x70000868 0x0 0x164>, /* Pad control registers */ |
111 | 0x70003000 0x434>; /* PinMux registers */ | 118 | <0x0 0x70003000 0x0 0x434>, /* Mux registers */ |
119 | <0x0 0x70000820 0x0 0x8>; /* MIPI pad control */ | ||
112 | }; | 120 | }; |
113 | 121 | ||
114 | Example pinmux entries: | 122 | Example pinmux entries: |
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt index fa40a177164c..98eb94d91a1c 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt | |||
@@ -127,6 +127,24 @@ whether there is any interaction between the child and intermediate parent | |||
127 | nodes, is again defined entirely by the binding for the individual pin | 127 | nodes, is again defined entirely by the binding for the individual pin |
128 | controller device. | 128 | controller device. |
129 | 129 | ||
130 | == Generic pin multiplexing node content == | ||
131 | |||
132 | pin multiplexing nodes: | ||
133 | |||
134 | function - the mux function to select | ||
135 | groups - the list of groups to select with this function | ||
136 | |||
137 | Example: | ||
138 | |||
139 | state_0_node_a { | ||
140 | function = "uart0"; | ||
141 | groups = "u0rxtx", "u0rtscts"; | ||
142 | }; | ||
143 | state_1_node_a { | ||
144 | function = "spi0"; | ||
145 | groups = "spi0pins"; | ||
146 | }; | ||
147 | |||
130 | == Generic pin configuration node content == | 148 | == Generic pin configuration node content == |
131 | 149 | ||
132 | Many data items that are represented in a pin configuration node are common | 150 | Many data items that are represented in a pin configuration node are common |
@@ -139,8 +157,12 @@ structure of the DT nodes that contain these properties. | |||
139 | Supported generic properties are: | 157 | Supported generic properties are: |
140 | 158 | ||
141 | pins - the list of pins that properties in the node | 159 | pins - the list of pins that properties in the node |
142 | apply to | 160 | apply to (either this or "group" has to be |
143 | function - the mux function to select | 161 | specified) |
162 | group - the group to apply the properties to, if the driver | ||
163 | supports configuration of whole groups rather than | ||
164 | individual pins (either this or "pins" has to be | ||
165 | specified) | ||
144 | bias-disable - disable any pin bias | 166 | bias-disable - disable any pin bias |
145 | bias-high-impedance - high impedance mode ("third-state", "floating") | 167 | bias-high-impedance - high impedance mode ("third-state", "floating") |
146 | bias-bus-hold - latch weakly | 168 | bias-bus-hold - latch weakly |
@@ -163,6 +185,21 @@ output-low - set the pin to output mode with low level | |||
163 | output-high - set the pin to output mode with high level | 185 | output-high - set the pin to output mode with high level |
164 | slew-rate - set the slew rate | 186 | slew-rate - set the slew rate |
165 | 187 | ||
188 | For example: | ||
189 | |||
190 | state_0_node_a { | ||
191 | pins = "GPIO0_AJ5", "GPIO2_AH4"; /* CTS+RXD */ | ||
192 | bias-pull-up; | ||
193 | }; | ||
194 | state_1_node_a { | ||
195 | pins = "GPIO1_AJ3", "GPIO3_AH3"; /* RTS+TXD */ | ||
196 | output-high; | ||
197 | }; | ||
198 | state_2_node_a { | ||
199 | group = "foo-group"; | ||
200 | bias-pull-up; | ||
201 | }; | ||
202 | |||
166 | Some of the generic properties take arguments. For those that do, the | 203 | Some of the generic properties take arguments. For those that do, the |
167 | arguments are described below. | 204 | arguments are described below. |
168 | 205 | ||
@@ -170,15 +207,6 @@ arguments are described below. | |||
170 | binding for the hardware defines: | 207 | binding for the hardware defines: |
171 | - Whether the entries are integers or strings, and their meaning. | 208 | - Whether the entries are integers or strings, and their meaning. |
172 | 209 | ||
173 | - function takes a list of function names/IDs as a required argument. The | ||
174 | specific binding for the hardware defines: | ||
175 | - Whether the entries are integers or strings, and their meaning. | ||
176 | - Whether only a single entry is allowed (which is applied to all entries | ||
177 | in the pins property), or whether there may alternatively be one entry per | ||
178 | entry in the pins property, in which case the list lengths must match, and | ||
179 | for each list index i, the function at list index i is applied to the pin | ||
180 | at list index i. | ||
181 | |||
182 | - bias-pull-up, -down and -pin-default take as optional argument on hardware | 210 | - bias-pull-up, -down and -pin-default take as optional argument on hardware |
183 | supporting it the pull strength in Ohm. bias-disable will disable the pull. | 211 | supporting it the pull strength in Ohm. bias-disable will disable the pull. |
184 | 212 | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt index 0211c6d8a522..2fb90b37aa09 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt | |||
@@ -50,7 +50,7 @@ Valid values for function are: | |||
50 | gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, | 50 | gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, |
51 | gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1, | 51 | gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1, |
52 | gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm, | 52 | gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm, |
53 | riva_wlan, sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic, | 53 | riva_wlan, sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic, ps_hold |
54 | 54 | ||
55 | Example: | 55 | Example: |
56 | 56 | ||
@@ -62,7 +62,7 @@ Example: | |||
62 | #gpio-cells = <2>; | 62 | #gpio-cells = <2>; |
63 | interrupt-controller; | 63 | interrupt-controller; |
64 | #interrupt-cells = <2>; | 64 | #interrupt-cells = <2>; |
65 | interrupts = <0 32 0x4>; | 65 | interrupts = <0 16 0x4>; |
66 | 66 | ||
67 | pinctrl-names = "default"; | 67 | pinctrl-names = "default"; |
68 | pinctrl-0 = <&gsbi5_uart_default>; | 68 | pinctrl-0 = <&gsbi5_uart_default>; |
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,apq8084-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,apq8084-pinctrl.txt new file mode 100644 index 000000000000..ffafa1990a30 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/qcom,apq8084-pinctrl.txt | |||
@@ -0,0 +1,179 @@ | |||
1 | Qualcomm APQ8084 TLMM block | ||
2 | |||
3 | This binding describes the Top Level Mode Multiplexer block found in the | ||
4 | MSM8960 platform. | ||
5 | |||
6 | - compatible: | ||
7 | Usage: required | ||
8 | Value type: <string> | ||
9 | Definition: must be "qcom,apq8084-pinctrl" | ||
10 | |||
11 | - reg: | ||
12 | Usage: required | ||
13 | Value type: <prop-encoded-array> | ||
14 | Definition: the base address and size of the TLMM register space. | ||
15 | |||
16 | - interrupts: | ||
17 | Usage: required | ||
18 | Value type: <prop-encoded-array> | ||
19 | Definition: should specify the TLMM summary IRQ. | ||
20 | |||
21 | - interrupt-controller: | ||
22 | Usage: required | ||
23 | Value type: <none> | ||
24 | Definition: identifies this node as an interrupt controller | ||
25 | |||
26 | - #interrupt-cells: | ||
27 | Usage: required | ||
28 | Value type: <u32> | ||
29 | Definition: must be 2. Specifying the pin number and flags, as defined | ||
30 | in <dt-bindings/interrupt-controller/irq.h> | ||
31 | |||
32 | - gpio-controller: | ||
33 | Usage: required | ||
34 | Value type: <none> | ||
35 | Definition: identifies this node as a gpio controller | ||
36 | |||
37 | - #gpio-cells: | ||
38 | Usage: required | ||
39 | Value type: <u32> | ||
40 | Definition: must be 2. Specifying the pin number and flags, as defined | ||
41 | in <dt-bindings/gpio/gpio.h> | ||
42 | |||
43 | Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for | ||
44 | a general description of GPIO and interrupt bindings. | ||
45 | |||
46 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
47 | common pinctrl bindings used by client devices, including the meaning of the | ||
48 | phrase "pin configuration node". | ||
49 | |||
50 | The pin configuration nodes act as a container for an abitrary number of | ||
51 | subnodes. Each of these subnodes represents some desired configuration for a | ||
52 | pin, a group, or a list of pins or groups. This configuration can include the | ||
53 | mux function to select on those pin(s)/group(s), and various pin configuration | ||
54 | parameters, such as pull-up, drive strength, etc. | ||
55 | |||
56 | |||
57 | PIN CONFIGURATION NODES: | ||
58 | |||
59 | The name of each subnode is not important; all subnodes should be enumerated | ||
60 | and processed purely based on their content. | ||
61 | |||
62 | Each subnode only affects those parameters that are explicitly listed. In | ||
63 | other words, a subnode that lists a mux function but no pin configuration | ||
64 | parameters implies no information about any pin configuration parameters. | ||
65 | Similarly, a pin subnode that describes a pullup parameter implies no | ||
66 | information about e.g. the mux function. | ||
67 | |||
68 | |||
69 | The following generic properties as defined in pinctrl-bindings.txt are valid | ||
70 | to specify in a pin configuration subnode: | ||
71 | |||
72 | - pins: | ||
73 | Usage: required | ||
74 | Value type: <string-array> | ||
75 | Definition: List of gpio pins affected by the properties specified in | ||
76 | this subnode. Valid pins are: | ||
77 | gpio0-gpio146, | ||
78 | sdc1_clk, | ||
79 | sdc1_cmd, | ||
80 | sdc1_data | ||
81 | sdc2_clk, | ||
82 | sdc2_cmd, | ||
83 | sdc2_data | ||
84 | |||
85 | - function: | ||
86 | Usage: required | ||
87 | Value type: <string> | ||
88 | Definition: Specify the alternative function to be configured for the | ||
89 | specified pins. Functions are only valid for gpio pins. | ||
90 | Valid values are: | ||
91 | adsp_ext, audio_ref, blsp_i2c1, blsp_i2c2, blsp_i2c3, | ||
92 | blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8, | ||
93 | blsp_i2c9, blsp_i2c10, blsp_i2c11, blsp_i2c12, | ||
94 | blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi4, blsp_spi5, | ||
95 | blsp_spi6, blsp_spi7, blsp_spi8, blsp_spi9, blsp_spi10, | ||
96 | blsp_spi11, blsp_spi12, blsp_uart1, blsp_uart2, blsp_uart3, | ||
97 | blsp_uart4, blsp_uart5, blsp_uart6, blsp_uart7, blsp_uart8, | ||
98 | blsp_uart9, blsp_uart10, blsp_uart11, blsp_uart12, | ||
99 | blsp_uim1, blsp_uim2, blsp_uim3, blsp_uim4, blsp_uim5, | ||
100 | blsp_uim6, blsp_uim7, blsp_uim8, blsp_uim9, blsp_uim10, | ||
101 | blsp_uim11, blsp_uim12, cam_mclk0, cam_mclk1, cam_mclk2, | ||
102 | cam_mclk3, cci_async, cci_async_in0, cci_i2c0, cci_i2c1, | ||
103 | cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4, | ||
104 | edp_hpd, gcc_gp1, gcc_gp2, gcc_gp3, gcc_obt, gcc_vtt,i | ||
105 | gp_mn, gp_pdm0, gp_pdm1, gp_pdm2, gp0_clk, gp1_clk, gpio, | ||
106 | hdmi_cec, hdmi_ddc, hdmi_dtest, hdmi_hpd, hdmi_rcv, hsic, | ||
107 | ldo_en, ldo_update, mdp_vsync, pci_e0, pci_e0_n, pci_e0_rst, | ||
108 | pci_e1, pci_e1_rst, pci_e1_rst_n, pci_e1_clkreq_n, pri_mi2s, | ||
109 | qua_mi2s, sata_act, sata_devsleep, sata_devsleep_n, | ||
110 | sd_write, sdc_emmc_mode, sdc3, sdc4, sec_mi2s, slimbus, | ||
111 | spdif_tx, spkr_i2s, spkr_i2s_ws, spss_geni, ter_mi2s, tsif1, | ||
112 | tsif2, uim, uim_batt_alarm | ||
113 | |||
114 | - bias-disable: | ||
115 | Usage: optional | ||
116 | Value type: <none> | ||
117 | Definition: The specified pins should be configued as no pull. | ||
118 | |||
119 | - bias-pull-down: | ||
120 | Usage: optional | ||
121 | Value type: <none> | ||
122 | Definition: The specified pins should be configued as pull down. | ||
123 | |||
124 | - bias-pull-up: | ||
125 | Usage: optional | ||
126 | Value type: <none> | ||
127 | Definition: The specified pins should be configued as pull up. | ||
128 | |||
129 | - output-high: | ||
130 | Usage: optional | ||
131 | Value type: <none> | ||
132 | Definition: The specified pins are configured in output mode, driven | ||
133 | high. | ||
134 | Not valid for sdc pins. | ||
135 | |||
136 | - output-low: | ||
137 | Usage: optional | ||
138 | Value type: <none> | ||
139 | Definition: The specified pins are configured in output mode, driven | ||
140 | low. | ||
141 | Not valid for sdc pins. | ||
142 | |||
143 | - drive-strength: | ||
144 | Usage: optional | ||
145 | Value type: <u32> | ||
146 | Definition: Selects the drive strength for the specified pins, in mA. | ||
147 | Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16 | ||
148 | |||
149 | Example: | ||
150 | |||
151 | tlmm: pinctrl@fd510000 { | ||
152 | compatible = "qcom,apq8084-pinctrl"; | ||
153 | reg = <0xfd510000 0x4000>; | ||
154 | |||
155 | gpio-controller; | ||
156 | #gpio-cells = <2>; | ||
157 | interrupt-controller; | ||
158 | #interrupt-cells = <2>; | ||
159 | interrupts = <0 208 0>; | ||
160 | |||
161 | uart2: uart2-default { | ||
162 | mux { | ||
163 | pins = "gpio4", "gpio5"; | ||
164 | function = "blsp_uart2"; | ||
165 | }; | ||
166 | |||
167 | tx { | ||
168 | pins = "gpio4"; | ||
169 | drive-strength = <4>; | ||
170 | bias-disable; | ||
171 | }; | ||
172 | |||
173 | rx { | ||
174 | pins = "gpio5"; | ||
175 | drive-strength = <2>; | ||
176 | bias-pull-up; | ||
177 | }; | ||
178 | }; | ||
179 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt index 4658b69d4f4d..388b213249fd 100644 --- a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt | |||
@@ -2,8 +2,8 @@ | |||
2 | 2 | ||
3 | The Rockchip Pinmux Controller, enables the IC | 3 | The Rockchip Pinmux Controller, enables the IC |
4 | to share one PAD to several functional blocks. The sharing is done by | 4 | to share one PAD to several functional blocks. The sharing is done by |
5 | multiplexing the PAD input/output signals. For each PAD there are up to | 5 | multiplexing the PAD input/output signals. For each PAD there are several |
6 | 4 muxing options with option 0 being the use as a GPIO. | 6 | muxing options with option 0 being the use as a GPIO. |
7 | 7 | ||
8 | Please refer to pinctrl-bindings.txt in this directory for details of the | 8 | Please refer to pinctrl-bindings.txt in this directory for details of the |
9 | common pinctrl bindings used by client devices, including the meaning of the | 9 | common pinctrl bindings used by client devices, including the meaning of the |
@@ -58,7 +58,7 @@ Deprecated properties for gpio sub nodes: | |||
58 | Required properties for pin configuration node: | 58 | Required properties for pin configuration node: |
59 | - rockchip,pins: 3 integers array, represents a group of pins mux and config | 59 | - rockchip,pins: 3 integers array, represents a group of pins mux and config |
60 | setting. The format is rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>. | 60 | setting. The format is rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>. |
61 | The MUX 0 means gpio and MUX 1 to 3 mean the specific device function. | 61 | The MUX 0 means gpio and MUX 1 to N mean the specific device function. |
62 | The phandle of a node containing the generic pinconfig options | 62 | The phandle of a node containing the generic pinconfig options |
63 | to use, as described in pinctrl-bindings.txt in this directory. | 63 | to use, as described in pinctrl-bindings.txt in this directory. |
64 | 64 | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/ti,omap-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/ti,omap-pinctrl.txt new file mode 100644 index 000000000000..88c80273da91 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/ti,omap-pinctrl.txt | |||
@@ -0,0 +1,13 @@ | |||
1 | OMAP Pinctrl definitions | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be one of: | ||
5 | "ti,omap2420-padconf" - OMAP2420 compatible pinctrl | ||
6 | "ti,omap2430-padconf" - OMAP2430 compatible pinctrl | ||
7 | "ti,omap3-padconf" - OMAP3 compatible pinctrl | ||
8 | "ti,omap4-padconf" - OMAP4 compatible pinctrl | ||
9 | "ti,omap5-padconf" - OMAP5 compatible pinctrl | ||
10 | "ti,dra7-padconf" - DRA7 compatible pinctrl | ||
11 | "ti,am437-padconf" - AM437x compatible pinctrl | ||
12 | |||
13 | See Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt for further details. | ||
diff --git a/Documentation/devicetree/bindings/power/power_domain.txt b/Documentation/devicetree/bindings/power/power_domain.txt new file mode 100644 index 000000000000..98c16672ab5f --- /dev/null +++ b/Documentation/devicetree/bindings/power/power_domain.txt | |||
@@ -0,0 +1,49 @@ | |||
1 | * Generic PM domains | ||
2 | |||
3 | System on chip designs are often divided into multiple PM domains that can be | ||
4 | used for power gating of selected IP blocks for power saving by reduced leakage | ||
5 | current. | ||
6 | |||
7 | This device tree binding can be used to bind PM domain consumer devices with | ||
8 | their PM domains provided by PM domain providers. A PM domain provider can be | ||
9 | represented by any node in the device tree and can provide one or more PM | ||
10 | domains. A consumer node can refer to the provider by a phandle and a set of | ||
11 | phandle arguments (so called PM domain specifiers) of length specified by the | ||
12 | #power-domain-cells property in the PM domain provider node. | ||
13 | |||
14 | ==PM domain providers== | ||
15 | |||
16 | Required properties: | ||
17 | - #power-domain-cells : Number of cells in a PM domain specifier; | ||
18 | Typically 0 for nodes representing a single PM domain and 1 for nodes | ||
19 | providing multiple PM domains (e.g. power controllers), but can be any value | ||
20 | as specified by device tree binding documentation of particular provider. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | power: power-controller@12340000 { | ||
25 | compatible = "foo,power-controller"; | ||
26 | reg = <0x12340000 0x1000>; | ||
27 | #power-domain-cells = <1>; | ||
28 | }; | ||
29 | |||
30 | The node above defines a power controller that is a PM domain provider and | ||
31 | expects one cell as its phandle argument. | ||
32 | |||
33 | ==PM domain consumers== | ||
34 | |||
35 | Required properties: | ||
36 | - power-domains : A phandle and PM domain specifier as defined by bindings of | ||
37 | the power controller specified by phandle. | ||
38 | |||
39 | Example: | ||
40 | |||
41 | leaky-device@12350000 { | ||
42 | compatible = "foo,i-leak-current"; | ||
43 | reg = <0x12350000 0x1000>; | ||
44 | power-domains = <&power 0>; | ||
45 | }; | ||
46 | |||
47 | The node above defines a typical PM domain consumer device, which is located | ||
48 | inside a PM domain with index 0 of a power controller represented by a node | ||
49 | with the label "power". | ||
diff --git a/Documentation/devicetree/bindings/power/reset/ltc2952-poweroff.txt b/Documentation/devicetree/bindings/power/reset/ltc2952-poweroff.txt new file mode 100644 index 000000000000..0c94c637f63b --- /dev/null +++ b/Documentation/devicetree/bindings/power/reset/ltc2952-poweroff.txt | |||
@@ -0,0 +1,26 @@ | |||
1 | Binding for the LTC2952 PowerPath controller | ||
2 | |||
3 | This chip is used to externally trigger a system shut down. Once the trigger has | ||
4 | been sent, the chips' watchdog has to be reset to gracefully shut down. | ||
5 | If the Linux systems decides to shut down it powers off the platform via the | ||
6 | kill signal. | ||
7 | |||
8 | Required properties: | ||
9 | |||
10 | - compatible: Must contain: "lltc,ltc2952" | ||
11 | - trigger-gpios: phandle + gpio-specifier for the GPIO connected to the | ||
12 | chip's trigger line | ||
13 | - watchdog-gpios: phandle + gpio-specifier for the GPIO connected to the | ||
14 | chip's watchdog line | ||
15 | - kill-gpios: phandle + gpio-specifier for the GPIO connected to the | ||
16 | chip's kill line | ||
17 | |||
18 | Example: | ||
19 | |||
20 | ltc2952 { | ||
21 | compatible = "lltc,ltc2952"; | ||
22 | |||
23 | trigger-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; | ||
24 | watchdog-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; | ||
25 | kill-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; | ||
26 | }; | ||
diff --git a/Documentation/devicetree/bindings/power/reset/st-reset.txt b/Documentation/devicetree/bindings/power/reset/st-reset.txt new file mode 100644 index 000000000000..809af54f02f3 --- /dev/null +++ b/Documentation/devicetree/bindings/power/reset/st-reset.txt | |||
@@ -0,0 +1,11 @@ | |||
1 | *Device-Tree bindings for ST SW reset functionality | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "st,<chip>-restart". | ||
5 | - st,syscfg: should be a phandle of the syscfg node. | ||
6 | |||
7 | Example node: | ||
8 | restart { | ||
9 | compatible = "st,stih416-restart"; | ||
10 | st,syscfg = <&syscfg_sbc>; | ||
11 | }; | ||
diff --git a/Documentation/devicetree/bindings/power/reset/syscon-reboot.txt b/Documentation/devicetree/bindings/power/reset/syscon-reboot.txt new file mode 100644 index 000000000000..11906316b43d --- /dev/null +++ b/Documentation/devicetree/bindings/power/reset/syscon-reboot.txt | |||
@@ -0,0 +1,23 @@ | |||
1 | Generic SYSCON mapped register reset driver | ||
2 | |||
3 | This is a generic reset driver using syscon to map the reset register. | ||
4 | The reset is generally performed with a write to the reset register | ||
5 | defined by the register map pointed by syscon reference plus the offset | ||
6 | with the mask defined in the reboot node. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: should contain "syscon-reboot" | ||
10 | - regmap: this is phandle to the register map node | ||
11 | - offset: offset in the register map for the reboot register (in bytes) | ||
12 | - mask: the reset value written to the reboot register (32 bit access) | ||
13 | |||
14 | Default will be little endian mode, 32 bit access only. | ||
15 | |||
16 | Examples: | ||
17 | |||
18 | reboot { | ||
19 | compatible = "syscon-reboot"; | ||
20 | regmap = <®mapnode>; | ||
21 | offset = <0x0>; | ||
22 | mask = <0x1>; | ||
23 | }; | ||
diff --git a/Documentation/devicetree/bindings/power/rockchip-io-domain.txt b/Documentation/devicetree/bindings/power/rockchip-io-domain.txt new file mode 100644 index 000000000000..6fbf6e7ecde6 --- /dev/null +++ b/Documentation/devicetree/bindings/power/rockchip-io-domain.txt | |||
@@ -0,0 +1,83 @@ | |||
1 | Rockchip SRAM for IO Voltage Domains: | ||
2 | ------------------------------------- | ||
3 | |||
4 | IO domain voltages on some Rockchip SoCs are variable but need to be | ||
5 | kept in sync between the regulators and the SoC using a special | ||
6 | register. | ||
7 | |||
8 | A specific example using rk3288: | ||
9 | - If the regulator hooked up to a pin like SDMMC0_VDD is 3.3V then | ||
10 | bit 7 of GRF_IO_VSEL needs to be 0. If the regulator hooked up to | ||
11 | that same pin is 1.8V then bit 7 of GRF_IO_VSEL needs to be 1. | ||
12 | |||
13 | Said another way, this driver simply handles keeping bits in the SoC's | ||
14 | general register file (GRF) in sync with the actual value of a voltage | ||
15 | hooked up to the pins. | ||
16 | |||
17 | Note that this driver specifically doesn't include: | ||
18 | - any logic for deciding what voltage we should set regulators to | ||
19 | - any logic for deciding whether regulators (or internal SoC blocks) | ||
20 | should have power or not have power | ||
21 | |||
22 | If there were some other software that had the smarts of making | ||
23 | decisions about regulators, it would work in conjunction with this | ||
24 | driver. When that other software adjusted a regulator's voltage then | ||
25 | this driver would handle telling the SoC about it. A good example is | ||
26 | vqmmc for SD. In that case the dw_mmc driver simply is told about a | ||
27 | regulator. It changes the regulator between 3.3V and 1.8V at the | ||
28 | right time. This driver notices the change and makes sure that the | ||
29 | SoC is on the same page. | ||
30 | |||
31 | |||
32 | Required properties: | ||
33 | - compatible: should be one of: | ||
34 | - "rockchip,rk3188-io-voltage-domain" for rk3188 | ||
35 | - "rockchip,rk3288-io-voltage-domain" for rk3288 | ||
36 | - rockchip,grf: phandle to the syscon managing the "general register files" | ||
37 | |||
38 | |||
39 | You specify supplies using the standard regulator bindings by including | ||
40 | a phandle the the relevant regulator. All specified supplies must be able | ||
41 | to report their voltage. The IO Voltage Domain for any non-specified | ||
42 | supplies will be not be touched. | ||
43 | |||
44 | Possible supplies for rk3188: | ||
45 | - ap0-supply: The supply connected to AP0_VCC. | ||
46 | - ap1-supply: The supply connected to AP1_VCC. | ||
47 | - cif-supply: The supply connected to CIF_VCC. | ||
48 | - flash-supply: The supply connected to FLASH_VCC. | ||
49 | - lcdc0-supply: The supply connected to LCD0_VCC. | ||
50 | - lcdc1-supply: The supply connected to LCD1_VCC. | ||
51 | - vccio0-supply: The supply connected to VCCIO0. | ||
52 | - vccio1-supply: The supply connected to VCCIO1. | ||
53 | Sometimes also labeled VCCIO1 and VCCIO2. | ||
54 | |||
55 | Possible supplies for rk3288: | ||
56 | - audio-supply: The supply connected to APIO4_VDD. | ||
57 | - bb-supply: The supply connected to APIO5_VDD. | ||
58 | - dvp-supply: The supply connected to DVPIO_VDD. | ||
59 | - flash0-supply: The supply connected to FLASH0_VDD. Typically for eMMC | ||
60 | - flash1-supply: The supply connected to FLASH1_VDD. Also known as SDIO1. | ||
61 | - gpio30-supply: The supply connected to APIO1_VDD. | ||
62 | - gpio1830 The supply connected to APIO2_VDD. | ||
63 | - lcdc-supply: The supply connected to LCDC_VDD. | ||
64 | - sdcard-supply: The supply connected to SDMMC0_VDD. | ||
65 | - wifi-supply: The supply connected to APIO3_VDD. Also known as SDIO0. | ||
66 | |||
67 | |||
68 | Example: | ||
69 | |||
70 | io-domains { | ||
71 | compatible = "rockchip,rk3288-io-voltage-domain"; | ||
72 | rockchip,grf = <&grf>; | ||
73 | |||
74 | audio-supply = <&vcc18_codec>; | ||
75 | bb-supply = <&vcc33_io>; | ||
76 | dvp-supply = <&vcc_18>; | ||
77 | flash0-supply = <&vcc18_flashio>; | ||
78 | gpio1830-supply = <&vcc33_io>; | ||
79 | gpio30-supply = <&vcc33_pmuio>; | ||
80 | lcdc-supply = <&vcc33_lcd>; | ||
81 | sdcard-supply = <&vccio_sd>; | ||
82 | wifi-supply = <&vcc18_wl>; | ||
83 | }; | ||
diff --git a/Documentation/devicetree/bindings/power_supply/charger-manager.txt b/Documentation/devicetree/bindings/power_supply/charger-manager.txt index 2b33750e3db2..ec4fe9de3137 100644 --- a/Documentation/devicetree/bindings/power_supply/charger-manager.txt +++ b/Documentation/devicetree/bindings/power_supply/charger-manager.txt | |||
@@ -24,7 +24,7 @@ Optional properties : | |||
24 | - cm-thermal-zone : name of external thermometer's thermal zone | 24 | - cm-thermal-zone : name of external thermometer's thermal zone |
25 | - cm-battery-* : threshold battery temperature for charging | 25 | - cm-battery-* : threshold battery temperature for charging |
26 | -cold : critical cold temperature of battery for charging | 26 | -cold : critical cold temperature of battery for charging |
27 | -cold-in-minus : flag that cold temerature is in minus degree | 27 | -cold-in-minus : flag that cold temperature is in minus degrees |
28 | -hot : critical hot temperature of battery for charging | 28 | -hot : critical hot temperature of battery for charging |
29 | -temp-diff : temperature difference to allow recharging | 29 | -temp-diff : temperature difference to allow recharging |
30 | - cm-dis/charging-max = limits of charging duration | 30 | - cm-dis/charging-max = limits of charging duration |
diff --git a/Documentation/devicetree/bindings/regmap/regmap.txt b/Documentation/devicetree/bindings/regmap/regmap.txt new file mode 100644 index 000000000000..b494f8b8ef72 --- /dev/null +++ b/Documentation/devicetree/bindings/regmap/regmap.txt | |||
@@ -0,0 +1,47 @@ | |||
1 | Device-Tree binding for regmap | ||
2 | |||
3 | The endianness mode of CPU & Device scenarios: | ||
4 | Index Device Endianness properties | ||
5 | --------------------------------------------------- | ||
6 | 1 BE 'big-endian' | ||
7 | 2 LE 'little-endian' | ||
8 | |||
9 | For one device driver, which will run in different scenarios above | ||
10 | on different SoCs using the devicetree, we need one way to simplify | ||
11 | this. | ||
12 | |||
13 | Required properties: | ||
14 | - {big,little}-endian: these are boolean properties, if absent | ||
15 | meaning that the CPU and the Device are in the same endianness mode, | ||
16 | these properties are for register values and all the buffers only. | ||
17 | |||
18 | Examples: | ||
19 | Scenario 1 : CPU in LE mode & device in LE mode. | ||
20 | dev: dev@40031000 { | ||
21 | compatible = "name"; | ||
22 | reg = <0x40031000 0x1000>; | ||
23 | ... | ||
24 | }; | ||
25 | |||
26 | Scenario 2 : CPU in LE mode & device in BE mode. | ||
27 | dev: dev@40031000 { | ||
28 | compatible = "name"; | ||
29 | reg = <0x40031000 0x1000>; | ||
30 | ... | ||
31 | big-endian; | ||
32 | }; | ||
33 | |||
34 | Scenario 3 : CPU in BE mode & device in BE mode. | ||
35 | dev: dev@40031000 { | ||
36 | compatible = "name"; | ||
37 | reg = <0x40031000 0x1000>; | ||
38 | ... | ||
39 | }; | ||
40 | |||
41 | Scenario 4 : CPU in BE mode & device in LE mode. | ||
42 | dev: dev@40031000 { | ||
43 | compatible = "name"; | ||
44 | reg = <0x40031000 0x1000>; | ||
45 | ... | ||
46 | little-endian; | ||
47 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/da9210.txt b/Documentation/devicetree/bindings/regulator/da9210.txt index f120f229d67d..3297c53cb915 100644 --- a/Documentation/devicetree/bindings/regulator/da9210.txt +++ b/Documentation/devicetree/bindings/regulator/da9210.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | 4 | ||
5 | - compatible: must be "diasemi,da9210" | 5 | - compatible: must be "dlg,da9210" |
6 | - reg: the i2c slave address of the regulator. It should be 0x68. | 6 | - reg: the i2c slave address of the regulator. It should be 0x68. |
7 | 7 | ||
8 | Any standard regulator properties can be used to configure the single da9210 | 8 | Any standard regulator properties can be used to configure the single da9210 |
@@ -11,7 +11,7 @@ DCDC. | |||
11 | Example: | 11 | Example: |
12 | 12 | ||
13 | da9210@68 { | 13 | da9210@68 { |
14 | compatible = "diasemi,da9210"; | 14 | compatible = "dlg,da9210"; |
15 | reg = <0x68>; | 15 | reg = <0x68>; |
16 | 16 | ||
17 | regulator-min-microvolt = <900000>; | 17 | regulator-min-microvolt = <900000>; |
diff --git a/Documentation/devicetree/bindings/regulator/da9211.txt b/Documentation/devicetree/bindings/regulator/da9211.txt new file mode 100644 index 000000000000..240019a82f9a --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/da9211.txt | |||
@@ -0,0 +1,63 @@ | |||
1 | * Dialog Semiconductor DA9211/DA9213 Voltage Regulator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "dlg,da9211" or "dlg,da9213". | ||
5 | - reg: I2C slave address, usually 0x68. | ||
6 | - interrupts: the interrupt outputs of the controller | ||
7 | - regulators: A node that houses a sub-node for each regulator within the | ||
8 | device. Each sub-node is identified using the node's name, with valid | ||
9 | values listed below. The content of each sub-node is defined by the | ||
10 | standard binding for regulators; see regulator.txt. | ||
11 | BUCKA and BUCKB. | ||
12 | |||
13 | Optional properties: | ||
14 | - Any optional property defined in regulator.txt | ||
15 | |||
16 | Example 1) DA9211 | ||
17 | |||
18 | pmic: da9211@68 { | ||
19 | compatible = "dlg,da9211"; | ||
20 | reg = <0x68>; | ||
21 | interrupts = <3 27>; | ||
22 | |||
23 | regulators { | ||
24 | BUCKA { | ||
25 | regulator-name = "VBUCKA"; | ||
26 | regulator-min-microvolt = < 300000>; | ||
27 | regulator-max-microvolt = <1570000>; | ||
28 | regulator-min-microamp = <2000000>; | ||
29 | regulator-max-microamp = <5000000>; | ||
30 | }; | ||
31 | BUCKB { | ||
32 | regulator-name = "VBUCKB"; | ||
33 | regulator-min-microvolt = < 300000>; | ||
34 | regulator-max-microvolt = <1570000>; | ||
35 | regulator-min-microamp = <2000000>; | ||
36 | regulator-max-microamp = <5000000>; | ||
37 | }; | ||
38 | }; | ||
39 | }; | ||
40 | |||
41 | Example 2) DA92113 | ||
42 | pmic: da9213@68 { | ||
43 | compatible = "dlg,da9213"; | ||
44 | reg = <0x68>; | ||
45 | interrupts = <3 27>; | ||
46 | |||
47 | regulators { | ||
48 | BUCKA { | ||
49 | regulator-name = "VBUCKA"; | ||
50 | regulator-min-microvolt = < 300000>; | ||
51 | regulator-max-microvolt = <1570000>; | ||
52 | regulator-min-microamp = <3000000>; | ||
53 | regulator-max-microamp = <6000000>; | ||
54 | }; | ||
55 | BUCKB { | ||
56 | regulator-name = "VBUCKB"; | ||
57 | regulator-min-microvolt = < 300000>; | ||
58 | regulator-max-microvolt = <1570000>; | ||
59 | regulator-min-microamp = <3000000>; | ||
60 | regulator-max-microamp = <6000000>; | ||
61 | }; | ||
62 | }; | ||
63 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/fan53555.txt b/Documentation/devicetree/bindings/regulator/fan53555.txt new file mode 100644 index 000000000000..54a3f2c80e3a --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/fan53555.txt | |||
@@ -0,0 +1,23 @@ | |||
1 | Binding for Fairchild FAN53555 regulators | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: one of "fcs,fan53555", "silergy,syr827", "silergy,syr828" | ||
5 | - reg: I2C address | ||
6 | |||
7 | Optional properties: | ||
8 | - fcs,suspend-voltage-selector: declare which of the two available | ||
9 | voltage selector registers should be used for the suspend | ||
10 | voltage. The other one is used for the runtime voltage setting | ||
11 | Possible values are either <0> or <1> | ||
12 | - vin-supply: regulator supplying the vin pin | ||
13 | |||
14 | Example: | ||
15 | |||
16 | regulator@40 { | ||
17 | compatible = "fcs,fan53555"; | ||
18 | regulator-name = "fan53555"; | ||
19 | regulator-min-microvolt = <1000000>; | ||
20 | regulator-max-microvolt = <1800000>; | ||
21 | vin-supply = <&parent_reg>; | ||
22 | fcs,suspend-voltage-selector = <1>; | ||
23 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/isl9305.txt b/Documentation/devicetree/bindings/regulator/isl9305.txt new file mode 100644 index 000000000000..a626fc1bbf0d --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/isl9305.txt | |||
@@ -0,0 +1,36 @@ | |||
1 | Intersil ISL9305/ISL9305H voltage regulator | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible: "isl,isl9305" or "isl,isl9305h" | ||
6 | - reg: I2C slave address, usually 0x68. | ||
7 | - regulators: A node that houses a sub-node for each regulator within the | ||
8 | device. Each sub-node is identified using the node's name, with valid | ||
9 | values being "dcd1", "dcd2", "ldo1" and "ldo2". The content of each sub-node | ||
10 | is defined by the standard binding for regulators; see regulator.txt. | ||
11 | - VINDCD1-supply: A phandle to a regulator node supplying VINDCD1. | ||
12 | VINDCD2-supply: A phandle to a regulator node supplying VINDCD2. | ||
13 | VINLDO1-supply: A phandle to a regulator node supplying VINLDO1. | ||
14 | VINLDO2-supply: A phandle to a regulator node supplying VINLDO2. | ||
15 | |||
16 | Optional properties: | ||
17 | - Per-regulator optional properties are defined in regulator.txt | ||
18 | |||
19 | Example | ||
20 | |||
21 | pmic: isl9305@68 { | ||
22 | compatible = "isl,isl9305"; | ||
23 | reg = <0x68>; | ||
24 | |||
25 | VINDCD1-supply = <&system_power>; | ||
26 | VINDCD2-supply = <&system_power>; | ||
27 | VINLDO1-supply = <&system_power>; | ||
28 | VINLDO2-supply = <&system_power>; | ||
29 | |||
30 | regulators { | ||
31 | dcd1 { | ||
32 | regulator-name = "VDD_DSP"; | ||
33 | regulator-always-on; | ||
34 | }; | ||
35 | }; | ||
36 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/max1586-regulator.txt b/Documentation/devicetree/bindings/regulator/max1586-regulator.txt new file mode 100644 index 000000000000..c050c1744cb8 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/max1586-regulator.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | Maxim MAX1586 voltage regulator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: must be "maxim,max1586" | ||
5 | - reg: I2C slave address, usually 0x14 | ||
6 | - v3-gain: integer specifying the V3 gain as per datasheet | ||
7 | (1 + R24/R25 + R24/185.5kOhm) | ||
8 | - any required generic properties defined in regulator.txt | ||
9 | |||
10 | Example: | ||
11 | |||
12 | i2c_master { | ||
13 | max1586@14 { | ||
14 | compatible = "maxim,max1586"; | ||
15 | reg = <0x14>; | ||
16 | v3-gain = <1000000>; | ||
17 | |||
18 | regulators { | ||
19 | vcc_core: v3 { | ||
20 | regulator-name = "vcc_core"; | ||
21 | regulator-compatible = "Output_V3"; | ||
22 | regulator-min-microvolt = <1000000>; | ||
23 | regulator-max-microvolt = <1705000>; | ||
24 | regulator-always-on; | ||
25 | }; | ||
26 | }; | ||
27 | }; | ||
28 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/max77802.txt b/Documentation/devicetree/bindings/regulator/max77802.txt new file mode 100644 index 000000000000..5aeaffc0f1f0 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/max77802.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | Binding for Maxim MAX77802 regulators | ||
2 | |||
3 | This is a part of device tree bindings of MAX77802 multi-function device. | ||
4 | More information can be found in bindings/mfd/max77802.txt file. | ||
5 | |||
6 | The MAX77802 PMIC has 10 high-efficiency Buck and 32 Low-dropout (LDO) | ||
7 | regulators that can be controlled over I2C. | ||
8 | |||
9 | Following properties should be present in main device node of the MFD chip. | ||
10 | |||
11 | Optional node: | ||
12 | - regulators : The regulators of max77802 have to be instantiated | ||
13 | under subnode named "regulators" using the following format. | ||
14 | |||
15 | regulator-name { | ||
16 | standard regulator constraints.... | ||
17 | }; | ||
18 | refer Documentation/devicetree/bindings/regulator/regulator.txt | ||
19 | |||
20 | The regulator node name should be initialized with a string to get matched | ||
21 | with their hardware counterparts as follow. The valid names are: | ||
22 | |||
23 | -LDOn : for LDOs, where n can lie in ranges 1-15, 17-21, 23-30 | ||
24 | and 32-35. | ||
25 | example: LDO1, LDO2, LDO35. | ||
26 | -BUCKn : for BUCKs, where n can lie in range 1 to 10. | ||
27 | example: BUCK1, BUCK5, BUCK10. | ||
28 | Example: | ||
29 | |||
30 | max77802@09 { | ||
31 | compatible = "maxim,max77802"; | ||
32 | interrupt-parent = <&wakeup_eint>; | ||
33 | interrupts = <26 0>; | ||
34 | reg = <0x09>; | ||
35 | #address-cells = <1>; | ||
36 | #size-cells = <0>; | ||
37 | |||
38 | regulators { | ||
39 | ldo11_reg: LDO11 { | ||
40 | regulator-name = "vdd_ldo11"; | ||
41 | regulator-min-microvolt = <1900000>; | ||
42 | regulator-max-microvolt = <1900000>; | ||
43 | regulator-always-on; | ||
44 | }; | ||
45 | |||
46 | buck1_reg: BUCK1 { | ||
47 | regulator-name = "vdd_mif"; | ||
48 | regulator-min-microvolt = <950000>; | ||
49 | regulator-max-microvolt = <1300000>; | ||
50 | regulator-always-on; | ||
51 | regulator-boot-on; | ||
52 | }; | ||
53 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/pwm-regulator.txt b/Documentation/devicetree/bindings/regulator/pwm-regulator.txt new file mode 100644 index 000000000000..ce91f61feb12 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/pwm-regulator.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | pwm regulator bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "pwm-regulator" | ||
5 | - pwms: OF device-tree PWM specification (see PWM binding pwm.txt) | ||
6 | - voltage-table: voltage and duty table, include 2 members in each set of | ||
7 | brackets, first one is voltage(unit: uv), the next is duty(unit: percent) | ||
8 | |||
9 | Any property defined as part of the core regulator binding defined in | ||
10 | regulator.txt can also be used. | ||
11 | |||
12 | Example: | ||
13 | pwm_regulator { | ||
14 | compatible = "pwm-regulator; | ||
15 | pwms = <&pwm1 0 8448 0>; | ||
16 | |||
17 | voltage-table = <1114000 0>, | ||
18 | <1095000 10>, | ||
19 | <1076000 20>, | ||
20 | <1056000 30>, | ||
21 | <1036000 40>, | ||
22 | <1016000 50>; | ||
23 | |||
24 | regulator-min-microvolt = <1016000>; | ||
25 | regulator-max-microvolt = <1114000>; | ||
26 | regulator-name = "vdd_logic"; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt new file mode 100644 index 000000000000..882455e9b36d --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt | |||
@@ -0,0 +1,16 @@ | |||
1 | SKY81452 voltage regulator | ||
2 | |||
3 | Required properties: | ||
4 | - any required generic properties defined in regulator.txt | ||
5 | |||
6 | Optional properties: | ||
7 | - any available generic properties defined in regulator.txt | ||
8 | |||
9 | Example: | ||
10 | |||
11 | regulator { | ||
12 | /* generic regulator properties */ | ||
13 | regulator-name = "touch_en"; | ||
14 | regulator-min-microvolt = <4500000>; | ||
15 | regulator-max-microvolt = <8000000>; | ||
16 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/tps65090.txt b/Documentation/devicetree/bindings/regulator/tps65090.txt index 340980239ea9..ca69f5e3040c 100644 --- a/Documentation/devicetree/bindings/regulator/tps65090.txt +++ b/Documentation/devicetree/bindings/regulator/tps65090.txt | |||
@@ -45,8 +45,8 @@ Example: | |||
45 | infet5-supply = <&some_reg>; | 45 | infet5-supply = <&some_reg>; |
46 | infet6-supply = <&some_reg>; | 46 | infet6-supply = <&some_reg>; |
47 | infet7-supply = <&some_reg>; | 47 | infet7-supply = <&some_reg>; |
48 | vsys_l1-supply = <&some_reg>; | 48 | vsys-l1-supply = <&some_reg>; |
49 | vsys_l2-supply = <&some_reg>; | 49 | vsys-l2-supply = <&some_reg>; |
50 | 50 | ||
51 | regulators { | 51 | regulators { |
52 | dcdc1 { | 52 | dcdc1 { |
diff --git a/Documentation/devicetree/bindings/rng/apm,rng.txt b/Documentation/devicetree/bindings/rng/apm,rng.txt new file mode 100644 index 000000000000..4dde4b06cdd9 --- /dev/null +++ b/Documentation/devicetree/bindings/rng/apm,rng.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | APM X-Gene SoC random number generator. | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : should be "apm,xgene-rng" | ||
6 | - reg : specifies base physical address and size of the registers map | ||
7 | - clocks : phandle to clock-controller plus clock-specifier pair | ||
8 | - interrupts : specify the fault interrupt for the RNG device | ||
9 | |||
10 | Example: | ||
11 | |||
12 | rng: rng@10520000 { | ||
13 | compatible = "apm,xgene-rng"; | ||
14 | reg = <0x0 0x10520000 0x0 0x100>; | ||
15 | interrupts = <0x0 0x41 0x4>; | ||
16 | clocks = <&rngpkaclk 0>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/rtc/dallas,ds1339.txt b/Documentation/devicetree/bindings/rtc/dallas,ds1339.txt new file mode 100644 index 000000000000..916f57601a8f --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/dallas,ds1339.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | * Dallas DS1339 I2C Serial Real-Time Clock | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should contain "dallas,ds1339". | ||
5 | - reg: I2C address for chip | ||
6 | |||
7 | Optional properties: | ||
8 | - trickle-resistor-ohms : Selected resistor for trickle charger | ||
9 | Values usable for ds1339 are 250, 2000, 4000 | ||
10 | Should be given if trickle charger should be enabled | ||
11 | - trickle-diode-disable : Do not use internal trickle charger diode | ||
12 | Should be given if internal trickle charger diode should be disabled | ||
13 | Example: | ||
14 | ds1339: rtc@68 { | ||
15 | compatible = "dallas,ds1339"; | ||
16 | trickle-resistor-ohms = <250>; | ||
17 | reg = <0x68>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt index 7ac7259fe9ea..ab757b84daa7 100644 --- a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt +++ b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt | |||
@@ -3,7 +3,10 @@ | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be one of the following. | 4 | - compatible: should be one of the following. |
5 | * "samsung,s3c2410-rtc" - for controllers compatible with s3c2410 rtc. | 5 | * "samsung,s3c2410-rtc" - for controllers compatible with s3c2410 rtc. |
6 | * "samsung,s3c2416-rtc" - for controllers compatible with s3c2416 rtc. | ||
7 | * "samsung,s3c2443-rtc" - for controllers compatible with s3c2443 rtc. | ||
6 | * "samsung,s3c6410-rtc" - for controllers compatible with s3c6410 rtc. | 8 | * "samsung,s3c6410-rtc" - for controllers compatible with s3c6410 rtc. |
9 | * "samsung,exynos3250-rtc" - for controllers compatible with exynos3250 rtc. | ||
7 | - reg: physical base address of the controller and length of memory mapped | 10 | - reg: physical base address of the controller and length of memory mapped |
8 | region. | 11 | region. |
9 | - interrupts: Two interrupt numbers to the cpu should be specified. First | 12 | - interrupts: Two interrupt numbers to the cpu should be specified. First |
diff --git a/Documentation/devicetree/bindings/rtc/sun6i-rtc.txt b/Documentation/devicetree/bindings/rtc/sun6i-rtc.txt new file mode 100644 index 000000000000..f007e428a1ab --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/sun6i-rtc.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | * sun6i Real Time Clock | ||
2 | |||
3 | RTC controller for the Allwinner A31 | ||
4 | |||
5 | Required properties: | ||
6 | - compatible : Should be "allwinner,sun6i-a31-rtc" | ||
7 | - reg : physical base address of the controller and length of | ||
8 | memory mapped region. | ||
9 | - interrupts : IRQ lines for the RTC alarm 0 and alarm 1, in that order. | ||
10 | |||
11 | Example: | ||
12 | |||
13 | rtc: rtc@01f00000 { | ||
14 | compatible = "allwinner,sun6i-a31-rtc"; | ||
15 | reg = <0x01f00000 0x54>; | ||
16 | interrupts = <0 40 4>, <0 41 4>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt b/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt index 12f3cf834deb..caaeb2583579 100644 --- a/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt +++ b/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt | |||
@@ -8,7 +8,8 @@ Required properties: | |||
8 | - syscon: Phandle to SYSCON node, which contain UART control bits. | 8 | - syscon: Phandle to SYSCON node, which contain UART control bits. |
9 | 9 | ||
10 | Optional properties: | 10 | Optional properties: |
11 | - uart-use-ms: Indicate the UART has modem signal (DCD, DSR, CTS). | 11 | - {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD |
12 | line respectively. | ||
12 | 13 | ||
13 | Note: Each UART port should have an alias correctly numbered | 14 | Note: Each UART port should have an alias correctly numbered |
14 | in "aliases" node. | 15 | in "aliases" node. |
@@ -24,5 +25,7 @@ Example: | |||
24 | interrupts = <12 13>; | 25 | interrupts = <12 13>; |
25 | clocks = <&clks 11>; | 26 | clocks = <&clks 11>; |
26 | syscon = <&syscon1>; | 27 | syscon = <&syscon1>; |
27 | uart-use-ms; | 28 | cts-gpios = <&sysgpio 0 GPIO_ACTIVE_LOW>; |
29 | dsr-gpios = <&sysgpio 1 GPIO_ACTIVE_LOW>; | ||
30 | dcd-gpios = <&sysgpio 2 GPIO_ACTIVE_LOW>; | ||
28 | }; | 31 | }; |
diff --git a/Documentation/devicetree/bindings/serial/mtk-uart.txt b/Documentation/devicetree/bindings/serial/mtk-uart.txt new file mode 100644 index 000000000000..48358a33ea7d --- /dev/null +++ b/Documentation/devicetree/bindings/serial/mtk-uart.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | * Mediatek Universal Asynchronous Receiver/Transmitter (UART) | ||
2 | |||
3 | Required properties: | ||
4 | - compatible should contain: | ||
5 | * "mediatek,mt6589-uart" for MT6589 compatible UARTS | ||
6 | * "mediatek,mt6582-uart" for MT6582 compatible UARTS | ||
7 | * "mediatek,mt6577-uart" for all compatible UARTS (MT6589, MT6582, MT6577) | ||
8 | |||
9 | - reg: The base address of the UART register bank. | ||
10 | |||
11 | - interrupts: A single interrupt specifier. | ||
12 | |||
13 | - clocks: Clock driving the hardware. | ||
14 | |||
15 | Example: | ||
16 | |||
17 | uart0: serial@11006000 { | ||
18 | compatible = "mediatek,mt6589-uart", "mediatek,mt6577-uart"; | ||
19 | reg = <0x11006000 0x400>; | ||
20 | interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>; | ||
21 | clocks = <&uart_clk>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/of-serial.txt b/Documentation/devicetree/bindings/serial/of-serial.txt index 77054772a8f4..8c4fd0332028 100644 --- a/Documentation/devicetree/bindings/serial/of-serial.txt +++ b/Documentation/devicetree/bindings/serial/of-serial.txt | |||
@@ -14,6 +14,7 @@ Required properties: | |||
14 | - "altr,16550-FIFO32" | 14 | - "altr,16550-FIFO32" |
15 | - "altr,16550-FIFO64" | 15 | - "altr,16550-FIFO64" |
16 | - "altr,16550-FIFO128" | 16 | - "altr,16550-FIFO128" |
17 | - "fsl,16550-FIFO64" | ||
17 | - "serial" if the port type is unknown. | 18 | - "serial" if the port type is unknown. |
18 | - reg : offset and length of the register set for the device. | 19 | - reg : offset and length of the register set for the device. |
19 | - interrupts : should contain uart interrupt. | 20 | - interrupts : should contain uart interrupt. |
@@ -37,7 +38,6 @@ Optional properties: | |||
37 | - auto-flow-control: one way to enable automatic flow control support. The | 38 | - auto-flow-control: one way to enable automatic flow control support. The |
38 | driver is allowed to detect support for the capability even without this | 39 | driver is allowed to detect support for the capability even without this |
39 | property. | 40 | property. |
40 | - has-hw-flow-control: the hardware has flow control capability. | ||
41 | 41 | ||
42 | Example: | 42 | Example: |
43 | 43 | ||
diff --git a/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt b/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt deleted file mode 100644 index 5feef1ef167d..000000000000 --- a/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | VIA/Wondermedia VT8500 UART Controller | ||
2 | ----------------------------------------------------- | ||
3 | |||
4 | Required properties: | ||
5 | - compatible : "via,vt8500-uart" | ||
6 | - reg : Should contain 1 register ranges(address and length) | ||
7 | - interrupts : UART interrupt | ||
8 | - clocks : phandle to the uart source clock (usually a 24Mhz fixed clock) | ||
9 | |||
10 | Example: | ||
11 | |||
12 | uart@d8210000 { | ||
13 | compatible = "via,vt8500-uart"; | ||
14 | reg = <0xd8210000 0x1040>; | ||
15 | interrupts = <47>; | ||
16 | clocks = <&ref24>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/serial/vt8500-uart.txt b/Documentation/devicetree/bindings/serial/vt8500-uart.txt index 795c393d09c4..2b64e6107fb3 100644 --- a/Documentation/devicetree/bindings/serial/vt8500-uart.txt +++ b/Documentation/devicetree/bindings/serial/vt8500-uart.txt | |||
@@ -1,7 +1,8 @@ | |||
1 | * VIA VT8500 and WonderMedia WM8xxx UART Controller | 1 | * VIA VT8500 and WonderMedia WM8xxx UART Controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "via,vt8500-uart" | 4 | - compatible: should be "via,vt8500-uart" (for VIA/WonderMedia chips up to and |
5 | including WM8850/WM8950), or "wm,wm8880-uart" (for WM8880 and later) | ||
5 | 6 | ||
6 | - reg: base physical address of the controller and length of memory mapped | 7 | - reg: base physical address of the controller and length of memory mapped |
7 | region. | 8 | region. |
diff --git a/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt new file mode 100644 index 000000000000..337c4ea5c57b --- /dev/null +++ b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt | |||
@@ -0,0 +1,111 @@ | |||
1 | Keystone Navigator DMA Controller | ||
2 | |||
3 | This document explains the device tree bindings for the packet dma | ||
4 | on keystone devices. The Keystone Navigator DMA driver sets up the dma | ||
5 | channels and flows for the QMSS(Queue Manager SubSystem) who triggers | ||
6 | the actual data movements across clients using destination queues. Every | ||
7 | client modules like NETCP(Network Coprocessor), SRIO(Serial Rapid IO), | ||
8 | CRYPTO Engines etc has its own instance of dma hardware. QMSS has also | ||
9 | an internal packet DMA module which is used as an infrastructure DMA | ||
10 | with zero copy. | ||
11 | |||
12 | Navigator DMA cloud layout: | ||
13 | ------------------ | ||
14 | | Navigator DMAs | | ||
15 | ------------------ | ||
16 | | | ||
17 | |-> DMA instance #0 | ||
18 | | | ||
19 | |-> DMA instance #1 | ||
20 | . | ||
21 | . | ||
22 | | | ||
23 | |-> DMA instance #n | ||
24 | |||
25 | Navigator DMA properties: | ||
26 | Required properties: | ||
27 | - compatible: Should be "ti,keystone-navigator-dma" | ||
28 | - clocks: phandle to dma instances clocks. The clock handles can be as | ||
29 | many as the dma instances. The order should be maintained as per | ||
30 | the dma instances. | ||
31 | - ti,navigator-cloud-address: Should contain base address for the multi-core | ||
32 | navigator cloud and number of addresses depends on SOC integration | ||
33 | configuration.. Navigator cloud global address needs to be programmed | ||
34 | into DMA and the DMA uses it as the physical addresses to reach queue | ||
35 | managers. Note that these addresses though points to queue managers, | ||
36 | they are relevant only from DMA perspective. The QMSS may not choose to | ||
37 | use them since it has a different address space view to reach all | ||
38 | its components. | ||
39 | |||
40 | DMA instance properties: | ||
41 | Required properties: | ||
42 | - reg: Should contain register location and length of the following dma | ||
43 | register regions. Register regions should be specified in the following | ||
44 | order. | ||
45 | - Global control register region (global). | ||
46 | - Tx DMA channel configuration register region (txchan). | ||
47 | - Rx DMA channel configuration register region (rxchan). | ||
48 | - Tx DMA channel Scheduler configuration register region (txsched). | ||
49 | - Rx DMA flow configuration register region (rxflow). | ||
50 | |||
51 | Optional properties: | ||
52 | - reg-names: Names for the register regions. | ||
53 | - ti,enable-all: Enable all DMA channels vs clients opening specific channels | ||
54 | what they need. This property is useful for the userspace fast path | ||
55 | case where the linux drivers enables the channels used by userland | ||
56 | stack. | ||
57 | - ti,loop-back: To loopback Tx streaming I/F to Rx streaming I/F. Used for | ||
58 | infrastructure transfers. | ||
59 | - ti,rx-retry-timeout: Number of dma cycles to wait before retry on buffer | ||
60 | starvation. | ||
61 | |||
62 | Example: | ||
63 | |||
64 | knav_dmas: knav_dmas@0 { | ||
65 | compatible = "ti,keystone-navigator-dma"; | ||
66 | clocks = <&papllclk>, <&clkxge>; | ||
67 | #address-cells = <1>; | ||
68 | #size-cells = <1>; | ||
69 | ranges; | ||
70 | ti,navigator-cloud-address = <0x23a80000 0x23a90000 | ||
71 | 0x23aa0000 0x23ab0000>; | ||
72 | |||
73 | dma_gbe: dma_gbe@0 { | ||
74 | reg = <0x2004000 0x100>, | ||
75 | <0x2004400 0x120>, | ||
76 | <0x2004800 0x300>, | ||
77 | <0x2004c00 0x120>, | ||
78 | <0x2005000 0x400>; | ||
79 | reg-names = "global", "txchan", "rxchan", | ||
80 | "txsched", "rxflow"; | ||
81 | }; | ||
82 | |||
83 | dma_xgbe: dma_xgbe@0 { | ||
84 | reg = <0x2fa1000 0x100>, | ||
85 | <0x2fa1400 0x200>, | ||
86 | <0x2fa1800 0x200>, | ||
87 | <0x2fa1c00 0x200>, | ||
88 | <0x2fa2000 0x400>; | ||
89 | reg-names = "global", "txchan", "rxchan", | ||
90 | "txsched", "rxflow"; | ||
91 | }; | ||
92 | }; | ||
93 | |||
94 | Navigator DMA client: | ||
95 | Required properties: | ||
96 | - ti,navigator-dmas: List of one or more DMA specifiers, each consisting of | ||
97 | - A phandle pointing to DMA instance node | ||
98 | - A DMA channel number as a phandle arg. | ||
99 | - ti,navigator-dma-names: Contains dma channel name for each DMA specifier in | ||
100 | the 'ti,navigator-dmas' property. | ||
101 | |||
102 | Example: | ||
103 | |||
104 | netcp: netcp@2090000 { | ||
105 | .. | ||
106 | ti,navigator-dmas = <&dma_gbe 22>, | ||
107 | <&dma_gbe 23>, | ||
108 | <&dma_gbe 8>; | ||
109 | ti,navigator-dma-names = "netrx0", "netrx1", "nettx"; | ||
110 | .. | ||
111 | }; | ||
diff --git a/Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt new file mode 100644 index 000000000000..d8e8cdb733f9 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt | |||
@@ -0,0 +1,232 @@ | |||
1 | * Texas Instruments Keystone Navigator Queue Management SubSystem driver | ||
2 | |||
3 | The QMSS (Queue Manager Sub System) found on Keystone SOCs is one of | ||
4 | the main hardware sub system which forms the backbone of the Keystone | ||
5 | multi-core Navigator. QMSS consist of queue managers, packed-data structure | ||
6 | processors(PDSP), linking RAM, descriptor pools and infrastructure | ||
7 | Packet DMA. | ||
8 | The Queue Manager is a hardware module that is responsible for accelerating | ||
9 | management of the packet queues. Packets are queued/de-queued by writing or | ||
10 | reading descriptor address to a particular memory mapped location. The PDSPs | ||
11 | perform QMSS related functions like accumulation, QoS, or event management. | ||
12 | Linking RAM registers are used to link the descriptors which are stored in | ||
13 | descriptor RAM. Descriptor RAM is configurable as internal or external memory. | ||
14 | The QMSS driver manages the PDSP setups, linking RAM regions, | ||
15 | queue pool management (allocation, push, pop and notify) and descriptor | ||
16 | pool management. | ||
17 | |||
18 | |||
19 | Required properties: | ||
20 | - compatible : Must be "ti,keystone-navigator-qmss"; | ||
21 | - clocks : phandle to the reference clock for this device. | ||
22 | - queue-range : <start number> total range of queue numbers for the device. | ||
23 | - linkram0 : <address size> for internal link ram, where size is the total | ||
24 | link ram entries. | ||
25 | - linkram1 : <address size> for external link ram, where size is the total | ||
26 | external link ram entries. If the address is specified as "0" | ||
27 | driver will allocate memory. | ||
28 | - qmgrs : child node describing the individual queue managers on the | ||
29 | SoC. On keystone 1 devices there should be only one node. | ||
30 | On keystone 2 devices there can be more than 1 node. | ||
31 | -- managed-queues : the actual queues managed by each queue manager | ||
32 | instance, specified as <"base queue #" "# of queues">. | ||
33 | -- reg : Address and size of the register set for the device. | ||
34 | Register regions should be specified in the following | ||
35 | order | ||
36 | - Queue Peek region. | ||
37 | - Queue status RAM. | ||
38 | - Queue configuration region. | ||
39 | - Descriptor memory setup region. | ||
40 | - Queue Management/Queue Proxy region for queue Push. | ||
41 | - Queue Management/Queue Proxy region for queue Pop. | ||
42 | - queue-pools : child node classifying the queue ranges into pools. | ||
43 | Queue ranges are grouped into 3 type of pools: | ||
44 | - qpend : pool of qpend(interruptible) queues | ||
45 | - general-purpose : pool of general queues, primarly used | ||
46 | as free descriptor queues or the | ||
47 | transmit DMA queues. | ||
48 | - accumulator : pool of queues on PDSP accumulator channel | ||
49 | Each range can have the following properties: | ||
50 | -- qrange : number of queues to use per queue range, specified as | ||
51 | <"base queue #" "# of queues">. | ||
52 | -- interrupts : Optional property to specify the interrupt mapping | ||
53 | for interruptible queues. The driver additionaly sets | ||
54 | the interrupt affinity hint based on the cpu mask. | ||
55 | -- qalloc-by-id : Optional property to specify that the queues in this | ||
56 | range can only be allocated by queue id. | ||
57 | -- accumulator : Accumulator channel specification. Any of the PDSPs in | ||
58 | QMSS can be loaded with the accumulator firmware. The | ||
59 | accumulator firmware’s job is to poll a select number of | ||
60 | queues looking for descriptors that have been pushed | ||
61 | into them. Descriptors are popped from the queue and | ||
62 | placed in a buffer provided by the host. When the list | ||
63 | becomes full or a programmed time period expires, the | ||
64 | accumulator triggers an interrupt to the host to read | ||
65 | the buffer for descriptor information. This firmware | ||
66 | comes in 16, 32, and 48 channel builds. Each of these | ||
67 | channels can be configured to monitor 32 contiguous | ||
68 | queues. Accumulator channel property is specified as: | ||
69 | <pdsp-id, channel, entries, pacing mode, latency> | ||
70 | pdsp-id : QMSS PDSP running accumulator firmware | ||
71 | on which the channel has to be | ||
72 | configured | ||
73 | channel : Accumulator channel number | ||
74 | entries : Size of the accumulator descriptor list | ||
75 | pacing mode : Interrupt pacing mode | ||
76 | 0 : None, i.e interrupt on list full only | ||
77 | 1 : Time delay since last interrupt | ||
78 | 2 : Time delay since first new packet | ||
79 | 3 : Time delay since last new packet | ||
80 | latency : time to delay the interrupt, specified | ||
81 | in microseconds. | ||
82 | -- multi-queue : Optional property to specify that the channel has to | ||
83 | monitor upto 32 queues starting at the base queue #. | ||
84 | - descriptor-regions : child node describing the memory regions for keystone | ||
85 | navigator packet DMA descriptors. The memory for | ||
86 | descriptors will be allocated by the driver. | ||
87 | -- id : region number in QMSS. | ||
88 | -- region-spec : specifies the number of descriptors in the | ||
89 | region, specified as | ||
90 | <"# of descriptors" "descriptor size">. | ||
91 | -- link-index : start index, i.e. index of the first | ||
92 | descriptor in the region. | ||
93 | |||
94 | Optional properties: | ||
95 | - dma-coherent : Present if DMA operations are coherent. | ||
96 | - pdsps : child node describing the PDSP configuration. | ||
97 | -- firmware : firmware to be loaded on the PDSP. | ||
98 | -- id : the qmss pdsp that will run the firmware. | ||
99 | -- reg : Address and size of the register set for the PDSP. | ||
100 | Register regions should be specified in the following | ||
101 | order | ||
102 | - PDSP internal RAM region. | ||
103 | - PDSP control/status region registers. | ||
104 | - QMSS interrupt distributor registers. | ||
105 | - PDSP command interface region. | ||
106 | |||
107 | Example: | ||
108 | |||
109 | qmss: qmss@2a40000 { | ||
110 | compatible = "ti,keystone-qmss"; | ||
111 | dma-coherent; | ||
112 | #address-cells = <1>; | ||
113 | #size-cells = <1>; | ||
114 | clocks = <&chipclk13>; | ||
115 | ranges; | ||
116 | queue-range = <0 0x4000>; | ||
117 | linkram0 = <0x100000 0x8000>; | ||
118 | linkram1 = <0x0 0x10000>; | ||
119 | |||
120 | qmgrs { | ||
121 | #address-cells = <1>; | ||
122 | #size-cells = <1>; | ||
123 | ranges; | ||
124 | qmgr0 { | ||
125 | managed-queues = <0 0x2000>; | ||
126 | reg = <0x2a40000 0x20000>, | ||
127 | <0x2a06000 0x400>, | ||
128 | <0x2a02000 0x1000>, | ||
129 | <0x2a03000 0x1000>, | ||
130 | <0x23a80000 0x20000>, | ||
131 | <0x2a80000 0x20000>; | ||
132 | }; | ||
133 | |||
134 | qmgr1 { | ||
135 | managed-queues = <0x2000 0x2000>; | ||
136 | reg = <0x2a60000 0x20000>, | ||
137 | <0x2a06400 0x400>, | ||
138 | <0x2a04000 0x1000>, | ||
139 | <0x2a05000 0x1000>, | ||
140 | <0x23aa0000 0x20000>, | ||
141 | <0x2aa0000 0x20000>; | ||
142 | }; | ||
143 | }; | ||
144 | queue-pools { | ||
145 | qpend { | ||
146 | qpend-0 { | ||
147 | qrange = <658 8>; | ||
148 | interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04 | ||
149 | 0 43 0xf04 0 44 0xf04 0 45 0xf04 | ||
150 | 0 46 0xf04 0 47 0xf04>; | ||
151 | }; | ||
152 | qpend-1 { | ||
153 | qrange = <8704 16>; | ||
154 | interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04 | ||
155 | 0 51 0xf04 0 52 0xf04 0 53 0xf04 | ||
156 | 0 54 0xf04 0 55 0xf04 0 56 0xf04 | ||
157 | 0 57 0xf04 0 58 0xf04 0 59 0xf04 | ||
158 | 0 60 0xf04 0 61 0xf04 0 62 0xf04 | ||
159 | 0 63 0xf04>; | ||
160 | qalloc-by-id; | ||
161 | }; | ||
162 | qpend-2 { | ||
163 | qrange = <8720 16>; | ||
164 | interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04 | ||
165 | 0 59 0xf04 0 68 0xf04 0 69 0xf04 | ||
166 | 0 70 0xf04 0 71 0xf04 0 72 0xf04 | ||
167 | 0 73 0xf04 0 74 0xf04 0 75 0xf04 | ||
168 | 0 76 0xf04 0 77 0xf04 0 78 0xf04 | ||
169 | 0 79 0xf04>; | ||
170 | }; | ||
171 | }; | ||
172 | general-purpose { | ||
173 | gp-0 { | ||
174 | qrange = <4000 64>; | ||
175 | }; | ||
176 | netcp-tx { | ||
177 | qrange = <640 9>; | ||
178 | qalloc-by-id; | ||
179 | }; | ||
180 | }; | ||
181 | accumulator { | ||
182 | acc-0 { | ||
183 | qrange = <128 32>; | ||
184 | accumulator = <0 36 16 2 50>; | ||
185 | interrupts = <0 215 0xf01>; | ||
186 | multi-queue; | ||
187 | qalloc-by-id; | ||
188 | }; | ||
189 | acc-1 { | ||
190 | qrange = <160 32>; | ||
191 | accumulator = <0 37 16 2 50>; | ||
192 | interrupts = <0 216 0xf01>; | ||
193 | multi-queue; | ||
194 | }; | ||
195 | acc-2 { | ||
196 | qrange = <192 32>; | ||
197 | accumulator = <0 38 16 2 50>; | ||
198 | interrupts = <0 217 0xf01>; | ||
199 | multi-queue; | ||
200 | }; | ||
201 | acc-3 { | ||
202 | qrange = <224 32>; | ||
203 | accumulator = <0 39 16 2 50>; | ||
204 | interrupts = <0 218 0xf01>; | ||
205 | multi-queue; | ||
206 | }; | ||
207 | }; | ||
208 | }; | ||
209 | descriptor-regions { | ||
210 | #address-cells = <1>; | ||
211 | #size-cells = <1>; | ||
212 | ranges; | ||
213 | region-12 { | ||
214 | id = <12>; | ||
215 | region-spec = <8192 128>; /* num_desc desc_size */ | ||
216 | link-index = <0x4000>; | ||
217 | }; | ||
218 | }; | ||
219 | pdsps { | ||
220 | #address-cells = <1>; | ||
221 | #size-cells = <1>; | ||
222 | ranges; | ||
223 | pdsp0@0x2a10000 { | ||
224 | firmware = "keystone/qmss_pdsp_acc48_k2_le_1_0_0_8.fw"; | ||
225 | reg = <0x2a10000 0x1000>, | ||
226 | <0x2a0f000 0x100>, | ||
227 | <0x2a0c000 0x3c8>, | ||
228 | <0x2a20000 0x4000>; | ||
229 | id = <0>; | ||
230 | }; | ||
231 | }; | ||
232 | }; /* qmss */ | ||
diff --git a/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt index 46f344965313..4eb7997674a0 100644 --- a/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt +++ b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | ADI AXI-SPDIF controller | 1 | ADI AXI-SPDIF controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Must be "adi,axi-spdif-1.00.a" | 4 | - compatible : Must be "adi,axi-spdif-tx-1.00.a" |
5 | - reg : Must contain SPDIF core's registers location and length | 5 | - reg : Must contain SPDIF core's registers location and length |
6 | - clocks : Pairs of phandle and specifier referencing the controller's clocks. | 6 | - clocks : Pairs of phandle and specifier referencing the controller's clocks. |
7 | The controller expects two clocks, the clock used for the AXI interface and | 7 | The controller expects two clocks, the clock used for the AXI interface and |
diff --git a/Documentation/devicetree/bindings/sound/adi,ssm2602.txt b/Documentation/devicetree/bindings/sound/adi,ssm2602.txt new file mode 100644 index 000000000000..3b3302fe399b --- /dev/null +++ b/Documentation/devicetree/bindings/sound/adi,ssm2602.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | Analog Devices SSM2602, SSM2603 and SSM2604 I2S audio CODEC devices | ||
2 | |||
3 | SSM2602 support both I2C and SPI as the configuration interface, | ||
4 | the selection is made by the MODE strap-in pin. | ||
5 | SSM2603 and SSM2604 only support I2C as the configuration interface. | ||
6 | |||
7 | Required properties: | ||
8 | |||
9 | - compatible : One of "adi,ssm2602", "adi,ssm2603" or "adi,ssm2604" | ||
10 | |||
11 | - reg : the I2C address of the device for I2C, the chip select | ||
12 | number for SPI. | ||
13 | |||
14 | Example: | ||
15 | |||
16 | ssm2602: ssm2602@1a { | ||
17 | compatible = "adi,ssm2602"; | ||
18 | reg = <0x1a>; | ||
19 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/cs35l32.txt b/Documentation/devicetree/bindings/sound/cs35l32.txt new file mode 100644 index 000000000000..1417d3f5cc22 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/cs35l32.txt | |||
@@ -0,0 +1,62 @@ | |||
1 | CS35L32 audio CODEC | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : "cirrus,cs35l32" | ||
6 | |||
7 | - reg : the I2C address of the device for I2C. Address is determined by the level | ||
8 | of the AD0 pin. Level 0 is 0x40 while Level 1 is 0x41. | ||
9 | |||
10 | - VA-supply, VP-supply : power supplies for the device, | ||
11 | as covered in Documentation/devicetree/bindings/regulator/regulator.txt. | ||
12 | |||
13 | Optional properties: | ||
14 | |||
15 | - reset-gpios : a GPIO spec for the reset pin. If specified, it will be | ||
16 | deasserted before communication to the codec starts. | ||
17 | |||
18 | - cirrus,boost-manager : Boost voltage control. | ||
19 | 0 = Automatically managed. Boost-converter output voltage is the higher | ||
20 | of the two: Class G or adaptive LED voltage. | ||
21 | 1 = Automatically managed irrespective of audio, adapting for low-power | ||
22 | dissipation when LEDs are ON, and operating in Fixed-Boost Bypass Mode | ||
23 | if LEDs are OFF (VBST = VP). | ||
24 | 2 = (Default) Boost voltage fixed in Bypass Mode (VBST = VP). | ||
25 | 3 = Boost voltage fixed at 5 V. | ||
26 | |||
27 | - cirrus,sdout-datacfg : Data configuration for dual CS35L32 applications only. | ||
28 | Determines the data packed in a two-CS35L32 configuration. | ||
29 | 0 = Left/right channels VMON[11:0], IMON[11:0], VPMON[7:0]. | ||
30 | 1 = Left/right channels VMON[11:0], IMON[11:0], STATUS. | ||
31 | 2 = (Default) left/right channels VMON[15:0], IMON [15:0]. | ||
32 | 3 = Left/right channels VPMON[7:0], STATUS. | ||
33 | |||
34 | - cirrus,sdout-share : SDOUT sharing. Determines whether one or two CS35L32 | ||
35 | devices are on board sharing SDOUT. | ||
36 | 0 = (Default) One IC. | ||
37 | 1 = Two IC's. | ||
38 | |||
39 | - cirrus,battery-recovery : Low battery nominal recovery threshold, rising VP. | ||
40 | 0 = 3.1V | ||
41 | 1 = 3.2V | ||
42 | 2 = 3.3V (Default) | ||
43 | 3 = 3.4V | ||
44 | |||
45 | - cirrus,battery-threshold : Low battery nominal threshold, falling VP. | ||
46 | 0 = 3.1V | ||
47 | 1 = 3.2V | ||
48 | 2 = 3.3V | ||
49 | 3 = 3.4V (Default) | ||
50 | 4 = 3.5V | ||
51 | 5 = 3.6V | ||
52 | |||
53 | Example: | ||
54 | |||
55 | codec: codec@40 { | ||
56 | compatible = "cirrus,cs35l32"; | ||
57 | reg = <0x40>; | ||
58 | reset-gpios = <&gpio 10 0>; | ||
59 | cirrus,boost-manager = <0x03>; | ||
60 | cirrus,sdout-datacfg = <0x02>; | ||
61 | VA-supply = <®_audio>; | ||
62 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/es8328.txt b/Documentation/devicetree/bindings/sound/es8328.txt new file mode 100644 index 000000000000..30ea8a318ae9 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/es8328.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | Everest ES8328 audio CODEC | ||
2 | |||
3 | This device supports both I2C and SPI. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : "everest,es8328" | ||
8 | - DVDD-supply : Regulator providing digital core supply voltage 1.8 - 3.6V | ||
9 | - AVDD-supply : Regulator providing analog supply voltage 3.3V | ||
10 | - PVDD-supply : Regulator providing digital IO supply voltage 1.8 - 3.6V | ||
11 | - IPVDD-supply : Regulator providing analog output voltage 3.3V | ||
12 | - clocks : A 22.5792 or 11.2896 MHz clock | ||
13 | - reg : the I2C address of the device for I2C, the chip select number for SPI | ||
14 | |||
15 | Pins on the device (for linking into audio routes): | ||
16 | |||
17 | * LOUT1 | ||
18 | * LOUT2 | ||
19 | * ROUT1 | ||
20 | * ROUT2 | ||
21 | * LINPUT1 | ||
22 | * RINPUT1 | ||
23 | * LINPUT2 | ||
24 | * RINPUT2 | ||
25 | * Mic Bias | ||
26 | |||
27 | |||
28 | Example: | ||
29 | |||
30 | codec: es8328@11 { | ||
31 | compatible = "everest,es8328"; | ||
32 | DVDD-supply = <®_3p3v>; | ||
33 | AVDD-supply = <®_3p3v>; | ||
34 | PVDD-supply = <®_3p3v>; | ||
35 | HPVDD-supply = <®_3p3v>; | ||
36 | clocks = <&clks 169>; | ||
37 | reg = <0x11>; | ||
38 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt index aeb8c4a0b88d..52f5b6bf3e8e 100644 --- a/Documentation/devicetree/bindings/sound/fsl,esai.txt +++ b/Documentation/devicetree/bindings/sound/fsl,esai.txt | |||
@@ -7,7 +7,8 @@ other DSPs. It has up to six transmitters and four receivers. | |||
7 | 7 | ||
8 | Required properties: | 8 | Required properties: |
9 | 9 | ||
10 | - compatible : Compatible list, must contain "fsl,imx35-esai". | 10 | - compatible : Compatible list, must contain "fsl,imx35-esai" or |
11 | "fsl,vf610-esai" | ||
11 | 12 | ||
12 | - reg : Offset and length of the register set for the device. | 13 | - reg : Offset and length of the register set for the device. |
13 | 14 | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl,ssi.txt b/Documentation/devicetree/bindings/sound/fsl,ssi.txt index 3aa4a8f528f4..5b76be45d18b 100644 --- a/Documentation/devicetree/bindings/sound/fsl,ssi.txt +++ b/Documentation/devicetree/bindings/sound/fsl,ssi.txt | |||
@@ -58,13 +58,7 @@ Optional properties: | |||
58 | Documentation/devicetree/bindings/dma/dma.txt. | 58 | Documentation/devicetree/bindings/dma/dma.txt. |
59 | - dma-names: Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq | 59 | - dma-names: Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq |
60 | is not defined. | 60 | is not defined. |
61 | - fsl,mode: The operating mode for the SSI interface. | 61 | - fsl,mode: The operating mode for the AC97 interface only. |
62 | "i2s-slave" - I2S mode, SSI is clock slave | ||
63 | "i2s-master" - I2S mode, SSI is clock master | ||
64 | "lj-slave" - left-justified mode, SSI is clock slave | ||
65 | "lj-master" - l.j. mode, SSI is clock master | ||
66 | "rj-slave" - right-justified mode, SSI is clock slave | ||
67 | "rj-master" - r.j., SSI is clock master | ||
68 | "ac97-slave" - AC97 mode, SSI is clock slave | 62 | "ac97-slave" - AC97 mode, SSI is clock slave |
69 | "ac97-master" - AC97 mode, SSI is clock master | 63 | "ac97-master" - AC97 mode, SSI is clock master |
70 | 64 | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt b/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt new file mode 100644 index 000000000000..a96774c194c8 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt | |||
@@ -0,0 +1,82 @@ | |||
1 | Freescale Generic ASoC Sound Card with ASRC support | ||
2 | |||
3 | The Freescale Generic ASoC Sound Card can be used, ideally, for all Freescale | ||
4 | SoCs connecting with external CODECs. | ||
5 | |||
6 | The idea of this generic sound card is a bit like ASoC Simple Card. However, | ||
7 | for Freescale SoCs (especially those released in recent years), most of them | ||
8 | have ASRC (Documentation/devicetree/bindings/sound/fsl,asrc.txt) inside. And | ||
9 | this is a specific feature that might be painstakingly controlled and merged | ||
10 | into the Simple Card. | ||
11 | |||
12 | So having this generic sound card allows all Freescale SoC users to benefit | ||
13 | from the simplification of a new card support and the capability of the wide | ||
14 | sample rates support through ASRC. | ||
15 | |||
16 | Note: The card is initially designed for those sound cards who use I2S and | ||
17 | PCM DAI formats. However, it'll be also possible to support those non | ||
18 | I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as long | ||
19 | as the driver has been properly upgraded. | ||
20 | |||
21 | |||
22 | The compatible list for this generic sound card currently: | ||
23 | "fsl,imx-audio-cs42888" | ||
24 | |||
25 | "fsl,imx-audio-wm8962" | ||
26 | (compatible with Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt) | ||
27 | |||
28 | "fsl,imx-audio-sgtl5000" | ||
29 | (compatible with Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt) | ||
30 | |||
31 | Required properties: | ||
32 | |||
33 | - compatible : Contains one of entries in the compatible list. | ||
34 | |||
35 | - model : The user-visible name of this sound complex | ||
36 | |||
37 | - audio-cpu : The phandle of an CPU DAI controller | ||
38 | |||
39 | - audio-codec : The phandle of an audio codec | ||
40 | |||
41 | - audio-routing : A list of the connections between audio components. | ||
42 | Each entry is a pair of strings, the first being the | ||
43 | connection's sink, the second being the connection's | ||
44 | source. There're a few pre-designed board connectors: | ||
45 | * Line Out Jack | ||
46 | * Line In Jack | ||
47 | * Headphone Jack | ||
48 | * Mic Jack | ||
49 | * Ext Spk | ||
50 | * AMIC (stands for Analog Microphone Jack) | ||
51 | * DMIC (stands for Digital Microphone Jack) | ||
52 | |||
53 | Note: The "Mic Jack" and "AMIC" are redundant while | ||
54 | coexsiting in order to support the old bindings | ||
55 | of wm8962 and sgtl5000. | ||
56 | |||
57 | Optional properties: | ||
58 | |||
59 | - audio-asrc : The phandle of ASRC. It can be absent if there's no | ||
60 | need to add ASRC support via DPCM. | ||
61 | |||
62 | Example: | ||
63 | sound-cs42888 { | ||
64 | compatible = "fsl,imx-audio-cs42888"; | ||
65 | model = "cs42888-audio"; | ||
66 | audio-cpu = <&esai>; | ||
67 | audio-asrc = <&asrc>; | ||
68 | audio-codec = <&cs42888>; | ||
69 | audio-routing = | ||
70 | "Line Out Jack", "AOUT1L", | ||
71 | "Line Out Jack", "AOUT1R", | ||
72 | "Line Out Jack", "AOUT2L", | ||
73 | "Line Out Jack", "AOUT2R", | ||
74 | "Line Out Jack", "AOUT3L", | ||
75 | "Line Out Jack", "AOUT3R", | ||
76 | "Line Out Jack", "AOUT4L", | ||
77 | "Line Out Jack", "AOUT4R", | ||
78 | "AIN1L", "Line In Jack", | ||
79 | "AIN1R", "Line In Jack", | ||
80 | "AIN2L", "Line In Jack", | ||
81 | "AIN2R", "Line In Jack"; | ||
82 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl-sai.txt b/Documentation/devicetree/bindings/sound/fsl-sai.txt index 0f4e23828190..4956b14d4b06 100644 --- a/Documentation/devicetree/bindings/sound/fsl-sai.txt +++ b/Documentation/devicetree/bindings/sound/fsl-sai.txt | |||
@@ -18,12 +18,26 @@ Required properties: | |||
18 | - pinctrl-names: Must contain a "default" entry. | 18 | - pinctrl-names: Must contain a "default" entry. |
19 | - pinctrl-NNN: One property must exist for each entry in pinctrl-names. | 19 | - pinctrl-NNN: One property must exist for each entry in pinctrl-names. |
20 | See ../pinctrl/pinctrl-bindings.txt for details of the property values. | 20 | See ../pinctrl/pinctrl-bindings.txt for details of the property values. |
21 | - big-endian-regs: If this property is absent, the little endian mode will | 21 | - big-endian: Boolean property, required if all the FTM_PWM registers |
22 | be in use as default, or the big endian mode will be in use for all the | 22 | are big-endian rather than little-endian. |
23 | device registers. | 23 | - lsb-first: Configures whether the LSB or the MSB is transmitted first for |
24 | - big-endian-data: If this property is absent, the little endian mode will | 24 | the fifo data. If this property is absent, the MSB is transmitted first as |
25 | be in use as default, or the big endian mode will be in use for all the | 25 | default, or the LSB is transmitted first. |
26 | fifo data. | 26 | - fsl,sai-synchronous-rx: This is a boolean property. If present, indicating |
27 | that SAI will work in the synchronous mode (sync Tx with Rx) which means | ||
28 | both the transimitter and receiver will send and receive data by following | ||
29 | receiver's bit clocks and frame sync clocks. | ||
30 | - fsl,sai-asynchronous: This is a boolean property. If present, indicating | ||
31 | that SAI will work in the asynchronous mode, which means both transimitter | ||
32 | and receiver will send and receive data by following their own bit clocks | ||
33 | and frame sync clocks separately. | ||
34 | |||
35 | Note: | ||
36 | - If both fsl,sai-asynchronous and fsl,sai-synchronous-rx are absent, the | ||
37 | default synchronous mode (sync Rx with Tx) will be used, which means both | ||
38 | transimitter and receiver will send and receive data by following clocks | ||
39 | of transimitter. | ||
40 | - fsl,sai-asynchronous and fsl,sai-synchronous-rx are exclusive. | ||
27 | 41 | ||
28 | Example: | 42 | Example: |
29 | sai2: sai@40031000 { | 43 | sai2: sai@40031000 { |
@@ -38,6 +52,6 @@ sai2: sai@40031000 { | |||
38 | dma-names = "tx", "rx"; | 52 | dma-names = "tx", "rx"; |
39 | dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>, | 53 | dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>, |
40 | <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>; | 54 | <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>; |
41 | big-endian-regs; | 55 | big-endian; |
42 | big-endian-data; | 56 | lsb-first; |
43 | }; | 57 | }; |
diff --git a/Documentation/devicetree/bindings/sound/imx-audio-es8328.txt b/Documentation/devicetree/bindings/sound/imx-audio-es8328.txt new file mode 100644 index 000000000000..07b68ab206fb --- /dev/null +++ b/Documentation/devicetree/bindings/sound/imx-audio-es8328.txt | |||
@@ -0,0 +1,60 @@ | |||
1 | Freescale i.MX audio complex with ES8328 codec | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "fsl,imx-audio-es8328" | ||
5 | - model : The user-visible name of this sound complex | ||
6 | - ssi-controller : The phandle of the i.MX SSI controller | ||
7 | - jack-gpio : Optional GPIO for headphone jack | ||
8 | - audio-amp-supply : Power regulator for speaker amps | ||
9 | - audio-codec : The phandle of the ES8328 audio codec | ||
10 | - audio-routing : A list of the connections between audio components. | ||
11 | Each entry is a pair of strings, the first being the | ||
12 | connection's sink, the second being the connection's | ||
13 | source. Valid names could be power supplies, ES8328 | ||
14 | pins, and the jacks on the board: | ||
15 | |||
16 | Power supplies: | ||
17 | * audio-amp | ||
18 | |||
19 | ES8328 pins: | ||
20 | * LOUT1 | ||
21 | * LOUT2 | ||
22 | * ROUT1 | ||
23 | * ROUT2 | ||
24 | * LINPUT1 | ||
25 | * LINPUT2 | ||
26 | * RINPUT1 | ||
27 | * RINPUT2 | ||
28 | * Mic PGA | ||
29 | |||
30 | Board connectors: | ||
31 | * Headphone | ||
32 | * Speaker | ||
33 | * Mic Jack | ||
34 | - mux-int-port : The internal port of the i.MX audio muxer (AUDMUX) | ||
35 | - mux-ext-port : The external port of the i.MX audio muxer (AUDMIX) | ||
36 | |||
37 | Note: The AUDMUX port numbering should start at 1, which is consistent with | ||
38 | hardware manual. | ||
39 | |||
40 | Example: | ||
41 | |||
42 | sound { | ||
43 | compatible = "fsl,imx-audio-es8328"; | ||
44 | model = "imx-audio-es8328"; | ||
45 | ssi-controller = <&ssi1>; | ||
46 | audio-codec = <&codec>; | ||
47 | jack-gpio = <&gpio5 15 0>; | ||
48 | audio-amp-supply = <®_audio_amp>; | ||
49 | audio-routing = | ||
50 | "Speaker", "LOUT2", | ||
51 | "Speaker", "ROUT2", | ||
52 | "Speaker", "audio-amp", | ||
53 | "Headphone", "ROUT1", | ||
54 | "Headphone", "LOUT1", | ||
55 | "LINPUT1", "Mic Jack", | ||
56 | "RINPUT1", "Mic Jack", | ||
57 | "Mic Jack", "Mic Bias"; | ||
58 | mux-int-port = <1>; | ||
59 | mux-ext-port = <3>; | ||
60 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt index 9c7c55c71370..c949abc2992f 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt | |||
@@ -25,6 +25,7 @@ Required properties: | |||
25 | 25 | ||
26 | Optional properties: | 26 | Optional properties: |
27 | - nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in | 27 | - nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in |
28 | - nvidia,mic-det-gpios : The GPIO that detect microphones are plugged in | ||
28 | 29 | ||
29 | Example: | 30 | Example: |
30 | 31 | ||
diff --git a/Documentation/devicetree/bindings/sound/rockchip-i2s.txt b/Documentation/devicetree/bindings/sound/rockchip-i2s.txt index 6c55fcfe5e1d..9b82c20b306b 100644 --- a/Documentation/devicetree/bindings/sound/rockchip-i2s.txt +++ b/Documentation/devicetree/bindings/sound/rockchip-i2s.txt | |||
@@ -31,7 +31,7 @@ i2s@ff890000 { | |||
31 | #address-cells = <1>; | 31 | #address-cells = <1>; |
32 | #size-cells = <0>; | 32 | #size-cells = <0>; |
33 | dmas = <&pdma1 0>, <&pdma1 1>; | 33 | dmas = <&pdma1 0>, <&pdma1 1>; |
34 | dma-names = "rx", "tx"; | 34 | dma-names = "tx", "rx"; |
35 | clock-names = "i2s_hclk", "i2s_clk"; | 35 | clock-names = "i2s_hclk", "i2s_clk"; |
36 | clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; | 36 | clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; |
37 | }; | 37 | }; |
diff --git a/Documentation/devicetree/bindings/sound/rt5677.txt b/Documentation/devicetree/bindings/sound/rt5677.txt new file mode 100644 index 000000000000..0701b834fc73 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/rt5677.txt | |||
@@ -0,0 +1,59 @@ | |||
1 | RT5677 audio CODEC | ||
2 | |||
3 | This device supports I2C only. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : "realtek,rt5677". | ||
8 | |||
9 | - reg : The I2C address of the device. | ||
10 | |||
11 | - interrupts : The CODEC's interrupt output. | ||
12 | |||
13 | - gpio-controller : Indicates this device is a GPIO controller. | ||
14 | |||
15 | - #gpio-cells : Should be two. The first cell is the pin number and the | ||
16 | second cell is used to specify optional parameters (currently unused). | ||
17 | |||
18 | Optional properties: | ||
19 | |||
20 | - realtek,pow-ldo2-gpio : The GPIO that controls the CODEC's POW_LDO2 pin. | ||
21 | |||
22 | - realtek,in1-differential | ||
23 | - realtek,in2-differential | ||
24 | - realtek,lout1-differential | ||
25 | - realtek,lout2-differential | ||
26 | - realtek,lout3-differential | ||
27 | Boolean. Indicate MIC1/2 input and LOUT1/2/3 outputs are differential, | ||
28 | rather than single-ended. | ||
29 | |||
30 | Pins on the device (for linking into audio routes): | ||
31 | |||
32 | * IN1P | ||
33 | * IN1N | ||
34 | * IN2P | ||
35 | * IN2N | ||
36 | * MICBIAS1 | ||
37 | * DMIC1 | ||
38 | * DMIC2 | ||
39 | * DMIC3 | ||
40 | * DMIC4 | ||
41 | * LOUT1 | ||
42 | * LOUT2 | ||
43 | * LOUT3 | ||
44 | |||
45 | Example: | ||
46 | |||
47 | rt5677 { | ||
48 | compatible = "realtek,rt5677"; | ||
49 | reg = <0x2c>; | ||
50 | interrupt-parent = <&gpio>; | ||
51 | interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>; | ||
52 | |||
53 | gpio-controller; | ||
54 | #gpio-cells = <2>; | ||
55 | |||
56 | realtek,pow-ldo2-gpio = | ||
57 | <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>; | ||
58 | realtek,in1-differential = "true"; | ||
59 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/simple-card.txt b/Documentation/devicetree/bindings/sound/simple-card.txt index c2e9841dfce4..c3cba600bf11 100644 --- a/Documentation/devicetree/bindings/sound/simple-card.txt +++ b/Documentation/devicetree/bindings/sound/simple-card.txt | |||
@@ -17,6 +17,10 @@ Optional properties: | |||
17 | source. | 17 | source. |
18 | - simple-audio-card,mclk-fs : Multiplication factor between stream rate and codec | 18 | - simple-audio-card,mclk-fs : Multiplication factor between stream rate and codec |
19 | mclk. | 19 | mclk. |
20 | - simple-audio-card,hp-det-gpio : Reference to GPIO that signals when | ||
21 | headphones are attached. | ||
22 | - simple-audio-card,mic-det-gpio : Reference to GPIO that signals when | ||
23 | a microphone is attached. | ||
20 | 24 | ||
21 | Optional subnodes: | 25 | Optional subnodes: |
22 | 26 | ||
diff --git a/Documentation/devicetree/bindings/sound/ssm4567.txt b/Documentation/devicetree/bindings/sound/ssm4567.txt new file mode 100644 index 000000000000..ec3d9e7004b5 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/ssm4567.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | Analog Devices SSM4567 audio amplifier | ||
2 | |||
3 | This device supports I2C only. | ||
4 | |||
5 | Required properties: | ||
6 | - compatible : Must be "adi,ssm4567" | ||
7 | - reg : the I2C address of the device. This will either be 0x34 (LR_SEL/ADDR connected to AGND), | ||
8 | 0x35 (LR_SEL/ADDR connected to IOVDD) or 0x36 (LR_SEL/ADDR open). | ||
9 | |||
10 | Example: | ||
11 | |||
12 | ssm4567: ssm4567@34 { | ||
13 | compatible = "adi,ssm4567"; | ||
14 | reg = <0x34>; | ||
15 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/st,sta350.txt b/Documentation/devicetree/bindings/sound/st,sta350.txt index b7e71bf5caf4..307398ef2317 100644 --- a/Documentation/devicetree/bindings/sound/st,sta350.txt +++ b/Documentation/devicetree/bindings/sound/st,sta350.txt | |||
@@ -33,7 +33,7 @@ Optional properties: | |||
33 | 0: Channel 1 | 33 | 0: Channel 1 |
34 | 1: Channel 2 | 34 | 1: Channel 2 |
35 | 2: Channel 3 | 35 | 2: Channel 3 |
36 | If parameter is missing, channel 1 is choosen. | 36 | If parameter is missing, channel 1 is chosen. |
37 | This properties have to be specified as '/bits/ 8' values. | 37 | This properties have to be specified as '/bits/ 8' values. |
38 | 38 | ||
39 | - st,thermal-warning-recover: | 39 | - st,thermal-warning-recover: |
diff --git a/Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt b/Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt index 4256a6df9b79..aad527b357a0 100644 --- a/Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt +++ b/Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt | |||
@@ -7,6 +7,9 @@ Required properties: | |||
7 | - interrupts : Should contain CSPI/eCSPI interrupt | 7 | - interrupts : Should contain CSPI/eCSPI interrupt |
8 | - fsl,spi-num-chipselects : Contains the number of the chipselect | 8 | - fsl,spi-num-chipselects : Contains the number of the chipselect |
9 | - cs-gpios : Specifies the gpio pins to be used for chipselects. | 9 | - cs-gpios : Specifies the gpio pins to be used for chipselects. |
10 | - dmas: DMA specifiers for tx and rx dma. See the DMA client binding, | ||
11 | Documentation/devicetree/bindings/dma/dma.txt | ||
12 | - dma-names: DMA request names should include "tx" and "rx" if present. | ||
10 | 13 | ||
11 | Example: | 14 | Example: |
12 | 15 | ||
@@ -19,4 +22,6 @@ ecspi@70010000 { | |||
19 | fsl,spi-num-chipselects = <2>; | 22 | fsl,spi-num-chipselects = <2>; |
20 | cs-gpios = <&gpio3 24 0>, /* GPIO3_24 */ | 23 | cs-gpios = <&gpio3 24 0>, /* GPIO3_24 */ |
21 | <&gpio3 25 0>; /* GPIO3_25 */ | 24 | <&gpio3 25 0>; /* GPIO3_25 */ |
25 | dmas = <&sdma 3 7 1>, <&sdma 4 7 2>; | ||
26 | dma-names = "rx", "tx"; | ||
22 | }; | 27 | }; |
diff --git a/Documentation/devicetree/bindings/spi/sh-msiof.txt b/Documentation/devicetree/bindings/spi/sh-msiof.txt index f24baf3b6cc1..d11c3721e7cd 100644 --- a/Documentation/devicetree/bindings/spi/sh-msiof.txt +++ b/Documentation/devicetree/bindings/spi/sh-msiof.txt | |||
@@ -6,8 +6,17 @@ Required properties: | |||
6 | "renesas,sh-mobile-msiof" for SH Mobile series. | 6 | "renesas,sh-mobile-msiof" for SH Mobile series. |
7 | Examples with soctypes are: | 7 | Examples with soctypes are: |
8 | "renesas,msiof-r8a7790" (R-Car H2) | 8 | "renesas,msiof-r8a7790" (R-Car H2) |
9 | "renesas,msiof-r8a7791" (R-Car M2) | 9 | "renesas,msiof-r8a7791" (R-Car M2-W) |
10 | - reg : Offset and length of the register set for the device | 10 | "renesas,msiof-r8a7792" (R-Car V2H) |
11 | "renesas,msiof-r8a7793" (R-Car M2-N) | ||
12 | "renesas,msiof-r8a7794" (R-Car E2) | ||
13 | - reg : A list of offsets and lengths of the register sets for | ||
14 | the device. | ||
15 | If only one register set is present, it is to be used | ||
16 | by both the CPU and the DMA engine. | ||
17 | If two register sets are present, the first is to be | ||
18 | used by the CPU, and the second is to be used by the | ||
19 | DMA engine. | ||
11 | - interrupt-parent : The phandle for the interrupt controller that | 20 | - interrupt-parent : The phandle for the interrupt controller that |
12 | services interrupts for this device | 21 | services interrupts for this device |
13 | - interrupts : Interrupt specifier | 22 | - interrupts : Interrupt specifier |
@@ -17,12 +26,16 @@ Required properties: | |||
17 | Optional properties: | 26 | Optional properties: |
18 | - clocks : Must contain a reference to the functional clock. | 27 | - clocks : Must contain a reference to the functional clock. |
19 | - num-cs : Total number of chip-selects (default is 1) | 28 | - num-cs : Total number of chip-selects (default is 1) |
29 | - dmas : Must contain a list of two references to DMA | ||
30 | specifiers, one for transmission, and one for | ||
31 | reception. | ||
32 | - dma-names : Must contain a list of two DMA names, "tx" and "rx". | ||
20 | 33 | ||
21 | Optional properties, deprecated for soctype-specific bindings: | 34 | Optional properties, deprecated for soctype-specific bindings: |
22 | - renesas,tx-fifo-size : Overrides the default tx fifo size given in words | 35 | - renesas,tx-fifo-size : Overrides the default tx fifo size given in words |
23 | (default is 64) | 36 | (default is 64) |
24 | - renesas,rx-fifo-size : Overrides the default rx fifo size given in words | 37 | - renesas,rx-fifo-size : Overrides the default rx fifo size given in words |
25 | (default is 64, or 256 on R-Car H2 and M2) | 38 | (default is 64, or 256 on R-Car Gen2) |
26 | 39 | ||
27 | Pinctrl properties might be needed, too. See | 40 | Pinctrl properties might be needed, too. See |
28 | Documentation/devicetree/bindings/pinctrl/renesas,*. | 41 | Documentation/devicetree/bindings/pinctrl/renesas,*. |
@@ -31,9 +44,11 @@ Example: | |||
31 | 44 | ||
32 | msiof0: spi@e6e20000 { | 45 | msiof0: spi@e6e20000 { |
33 | compatible = "renesas,msiof-r8a7791"; | 46 | compatible = "renesas,msiof-r8a7791"; |
34 | reg = <0 0xe6e20000 0 0x0064>; | 47 | reg = <0 0xe6e20000 0 0x0064>, <0 0xe7e20000 0 0x0064>; |
35 | interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>; | 48 | interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>; |
36 | clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; | 49 | clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; |
50 | dmas = <&dmac0 0x51>, <&dmac0 0x52>; | ||
51 | dma-names = "tx", "rx"; | ||
37 | #address-cells = <1>; | 52 | #address-cells = <1>; |
38 | #size-cells = <0>; | 53 | #size-cells = <0>; |
39 | status = "disabled"; | 54 | status = "disabled"; |
diff --git a/Documentation/devicetree/bindings/spi/spi-davinci.txt b/Documentation/devicetree/bindings/spi/spi-davinci.txt index f80887bca0d6..12ecfe9e3599 100644 --- a/Documentation/devicetree/bindings/spi/spi-davinci.txt +++ b/Documentation/devicetree/bindings/spi/spi-davinci.txt | |||
@@ -1,5 +1,10 @@ | |||
1 | Davinci SPI controller device bindings | 1 | Davinci SPI controller device bindings |
2 | 2 | ||
3 | Links on DM: | ||
4 | Keystone 2 - http://www.ti.com/lit/ug/sprugp2a/sprugp2a.pdf | ||
5 | dm644x - http://www.ti.com/lit/ug/sprue32a/sprue32a.pdf | ||
6 | OMAP-L138/da830 - http://www.ti.com/lit/ug/spruh77a/spruh77a.pdf | ||
7 | |||
3 | Required properties: | 8 | Required properties: |
4 | - #address-cells: number of cells required to define a chip select | 9 | - #address-cells: number of cells required to define a chip select |
5 | address on the SPI bus. Should be set to 1. | 10 | address on the SPI bus. Should be set to 1. |
@@ -24,6 +29,30 @@ Optional: | |||
24 | cs-gpios = <0>, <0>, <0>, <&gpio1 30 0>, <&gpio1 31 0>; | 29 | cs-gpios = <0>, <0>, <0>, <&gpio1 30 0>, <&gpio1 31 0>; |
25 | where first three are internal CS and last two are GPIO CS. | 30 | where first three are internal CS and last two are GPIO CS. |
26 | 31 | ||
32 | Optional properties for slave devices: | ||
33 | SPI slave nodes can contain the following properties. | ||
34 | Not all SPI Peripherals from Texas Instruments support this. | ||
35 | Please check SPI peripheral documentation for a device before using these. | ||
36 | |||
37 | - ti,spi-wdelay : delay between transmission of words | ||
38 | (SPIFMTn.WDELAY, SPIDAT1.WDEL) must be specified in number of SPI module | ||
39 | clock periods. | ||
40 | |||
41 | delay = WDELAY * SPI_module_clock_period + 2 * SPI_module_clock_period | ||
42 | |||
43 | Below is timing diagram which shows functional meaning of | ||
44 | "ti,spi-wdelay" parameter. | ||
45 | |||
46 | +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ | ||
47 | SPI_CLK | | | | | | | | | | | | | | | | | ||
48 | +----------+ +-+ +-+ +-+ +-+ +---------------------------+ +-+ +-+ +- | ||
49 | |||
50 | SPI_SOMI/SIMO+-----------------+ +----------- | ||
51 | +----------+ word1 +---------------------------+word2 | ||
52 | +-----------------+ +----------- | ||
53 | WDELAY | ||
54 | <--------------------------> | ||
55 | |||
27 | Example of a NOR flash slave device (n25q032) connected to DaVinci | 56 | Example of a NOR flash slave device (n25q032) connected to DaVinci |
28 | SPI controller device over the SPI bus. | 57 | SPI controller device over the SPI bus. |
29 | 58 | ||
@@ -43,6 +72,7 @@ spi0:spi@20BF0000 { | |||
43 | compatible = "st,m25p32"; | 72 | compatible = "st,m25p32"; |
44 | spi-max-frequency = <25000000>; | 73 | spi-max-frequency = <25000000>; |
45 | reg = <0>; | 74 | reg = <0>; |
75 | ti,spi-wdelay = <8>; | ||
46 | 76 | ||
47 | partition@0 { | 77 | partition@0 { |
48 | label = "u-boot-spl"; | 78 | label = "u-boot-spl"; |
diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt index 5376de40f10b..cbbe16ed3874 100644 --- a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt +++ b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt | |||
@@ -10,7 +10,12 @@ Required properties: | |||
10 | - pinctrl-names: must contain a "default" entry. | 10 | - pinctrl-names: must contain a "default" entry. |
11 | - spi-num-chipselects : the number of the chipselect signals. | 11 | - spi-num-chipselects : the number of the chipselect signals. |
12 | - bus-num : the slave chip chipselect signal number. | 12 | - bus-num : the slave chip chipselect signal number. |
13 | - big-endian : if DSPI modudle is big endian, the bool will be set in node. | 13 | |
14 | Optional property: | ||
15 | - big-endian: If present the dspi device's registers are implemented | ||
16 | in big endian mode, otherwise in native mode(same with CPU), for more | ||
17 | detail please see: Documentation/devicetree/bindings/regmap/regmap.txt. | ||
18 | |||
14 | Example: | 19 | Example: |
15 | 20 | ||
16 | dspi0@4002c000 { | 21 | dspi0@4002c000 { |
diff --git a/Documentation/devicetree/bindings/spi/spi-orion.txt b/Documentation/devicetree/bindings/spi/spi-orion.txt index a3ff50fc76fb..50c3a3de61c1 100644 --- a/Documentation/devicetree/bindings/spi/spi-orion.txt +++ b/Documentation/devicetree/bindings/spi/spi-orion.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | Marvell Orion SPI device | 1 | Marvell Orion SPI device |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : should be "marvell,orion-spi". | 4 | - compatible : should be "marvell,orion-spi" or "marvell,armada-370-spi". |
5 | - reg : offset and length of the register set for the device | 5 | - reg : offset and length of the register set for the device |
6 | - cell-index : Which of multiple SPI controllers is this. | 6 | - cell-index : Which of multiple SPI controllers is this. |
7 | Optional properties: | 7 | Optional properties: |
diff --git a/Documentation/devicetree/bindings/spi/spi-rockchip.txt b/Documentation/devicetree/bindings/spi/spi-rockchip.txt index 7bab35575817..467dec441c62 100644 --- a/Documentation/devicetree/bindings/spi/spi-rockchip.txt +++ b/Documentation/devicetree/bindings/spi/spi-rockchip.txt | |||
@@ -16,11 +16,15 @@ Required Properties: | |||
16 | - clocks: Must contain an entry for each entry in clock-names. | 16 | - clocks: Must contain an entry for each entry in clock-names. |
17 | - clock-names: Shall be "spiclk" for the transfer-clock, and "apb_pclk" for | 17 | - clock-names: Shall be "spiclk" for the transfer-clock, and "apb_pclk" for |
18 | the peripheral clock. | 18 | the peripheral clock. |
19 | - #address-cells: should be 1. | ||
20 | - #size-cells: should be 0. | ||
21 | |||
22 | Optional Properties: | ||
23 | |||
19 | - dmas: DMA specifiers for tx and rx dma. See the DMA client binding, | 24 | - dmas: DMA specifiers for tx and rx dma. See the DMA client binding, |
20 | Documentation/devicetree/bindings/dma/dma.txt | 25 | Documentation/devicetree/bindings/dma/dma.txt |
21 | - dma-names: DMA request names should include "tx" and "rx" if present. | 26 | - dma-names: DMA request names should include "tx" and "rx" if present. |
22 | - #address-cells: should be 1. | 27 | |
23 | - #size-cells: should be 0. | ||
24 | 28 | ||
25 | Example: | 29 | Example: |
26 | 30 | ||
diff --git a/Documentation/devicetree/bindings/spi/spi-rspi.txt b/Documentation/devicetree/bindings/spi/spi-rspi.txt index d57d82a74054..8f4169f63936 100644 --- a/Documentation/devicetree/bindings/spi/spi-rspi.txt +++ b/Documentation/devicetree/bindings/spi/spi-rspi.txt | |||
@@ -11,7 +11,10 @@ Required properties: | |||
11 | - "renesas,rspi-sh7757" (SH) | 11 | - "renesas,rspi-sh7757" (SH) |
12 | - "renesas,rspi-r7s72100" (RZ/A1H) | 12 | - "renesas,rspi-r7s72100" (RZ/A1H) |
13 | - "renesas,qspi-r8a7790" (R-Car H2) | 13 | - "renesas,qspi-r8a7790" (R-Car H2) |
14 | - "renesas,qspi-r8a7791" (R-Car M2) | 14 | - "renesas,qspi-r8a7791" (R-Car M2-W) |
15 | - "renesas,qspi-r8a7792" (R-Car V2H) | ||
16 | - "renesas,qspi-r8a7793" (R-Car M2-N) | ||
17 | - "renesas,qspi-r8a7794" (R-Car E2) | ||
15 | - reg : Address start and address range size of the device | 18 | - reg : Address start and address range size of the device |
16 | - interrupts : A list of interrupt-specifiers, one for each entry in | 19 | - interrupts : A list of interrupt-specifiers, one for each entry in |
17 | interrupt-names. | 20 | interrupt-names. |
@@ -30,6 +33,9 @@ Required properties: | |||
30 | 33 | ||
31 | Optional properties: | 34 | Optional properties: |
32 | - clocks : Must contain a reference to the functional clock. | 35 | - clocks : Must contain a reference to the functional clock. |
36 | - dmas : Must contain a list of two references to DMA specifiers, | ||
37 | one for transmission, and one for reception. | ||
38 | - dma-names : Must contain a list of two DMA names, "tx" and "rx". | ||
33 | 39 | ||
34 | Pinctrl properties might be needed, too. See | 40 | Pinctrl properties might be needed, too. See |
35 | Documentation/devicetree/bindings/pinctrl/renesas,*. | 41 | Documentation/devicetree/bindings/pinctrl/renesas,*. |
@@ -58,4 +64,6 @@ Examples: | |||
58 | num-cs = <1>; | 64 | num-cs = <1>; |
59 | #address-cells = <1>; | 65 | #address-cells = <1>; |
60 | #size-cells = <0>; | 66 | #size-cells = <0>; |
67 | dmas = <&dmac0 0x17>, <&dmac0 0x18>; | ||
68 | dma-names = "tx", "rx"; | ||
61 | }; | 69 | }; |
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt b/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt index 578a1fca366e..443bcb6134d5 100644 --- a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt +++ b/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt | |||
@@ -56,6 +56,9 @@ Required properties: | |||
56 | - fsl,data-width : should be <18> or <24> | 56 | - fsl,data-width : should be <18> or <24> |
57 | - port: A port node with endpoint definitions as defined in | 57 | - port: A port node with endpoint definitions as defined in |
58 | Documentation/devicetree/bindings/media/video-interfaces.txt. | 58 | Documentation/devicetree/bindings/media/video-interfaces.txt. |
59 | On i.MX5, the internal two-input-multiplexer is used. | ||
60 | Due to hardware limitations, only one port (port@[0,1]) | ||
61 | can be used for each channel (lvds-channel@[0,1], respectively) | ||
59 | On i.MX6, there should be four ports (port@[0-3]) that correspond | 62 | On i.MX6, there should be four ports (port@[0-3]) that correspond |
60 | to the four LVDS multiplexer inputs. | 63 | to the four LVDS multiplexer inputs. |
61 | 64 | ||
@@ -78,6 +81,8 @@ ldb: ldb@53fa8008 { | |||
78 | "di0", "di1"; | 81 | "di0", "di1"; |
79 | 82 | ||
80 | lvds-channel@0 { | 83 | lvds-channel@0 { |
84 | #address-cells = <1>; | ||
85 | #size-cells = <0>; | ||
81 | reg = <0>; | 86 | reg = <0>; |
82 | fsl,data-mapping = "spwg"; | 87 | fsl,data-mapping = "spwg"; |
83 | fsl,data-width = <24>; | 88 | fsl,data-width = <24>; |
@@ -86,7 +91,9 @@ ldb: ldb@53fa8008 { | |||
86 | /* ... */ | 91 | /* ... */ |
87 | }; | 92 | }; |
88 | 93 | ||
89 | port { | 94 | port@0 { |
95 | reg = <0>; | ||
96 | |||
90 | lvds0_in: endpoint { | 97 | lvds0_in: endpoint { |
91 | remote-endpoint = <&ipu_di0_lvds0>; | 98 | remote-endpoint = <&ipu_di0_lvds0>; |
92 | }; | 99 | }; |
@@ -94,6 +101,8 @@ ldb: ldb@53fa8008 { | |||
94 | }; | 101 | }; |
95 | 102 | ||
96 | lvds-channel@1 { | 103 | lvds-channel@1 { |
104 | #address-cells = <1>; | ||
105 | #size-cells = <0>; | ||
97 | reg = <1>; | 106 | reg = <1>; |
98 | fsl,data-mapping = "spwg"; | 107 | fsl,data-mapping = "spwg"; |
99 | fsl,data-width = <24>; | 108 | fsl,data-width = <24>; |
@@ -102,7 +111,9 @@ ldb: ldb@53fa8008 { | |||
102 | /* ... */ | 111 | /* ... */ |
103 | }; | 112 | }; |
104 | 113 | ||
105 | port { | 114 | port@1 { |
115 | reg = <1>; | ||
116 | |||
106 | lvds1_in: endpoint { | 117 | lvds1_in: endpoint { |
107 | remote-endpoint = <&ipu_di1_lvds1>; | 118 | remote-endpoint = <&ipu_di1_lvds1>; |
108 | }; | 119 | }; |
diff --git a/Documentation/devicetree/bindings/timer/amlogic,meson6-timer.txt b/Documentation/devicetree/bindings/timer/amlogic,meson6-timer.txt new file mode 100644 index 000000000000..a092053f7902 --- /dev/null +++ b/Documentation/devicetree/bindings/timer/amlogic,meson6-timer.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | Amlogic Meson6 SoCs Timer Controller | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : should be "amlogic,meson6-timer" | ||
6 | - reg : Specifies base physical address and size of the registers. | ||
7 | - interrupts : The interrupt of the first timer | ||
8 | |||
9 | Example: | ||
10 | |||
11 | timer@c1109940 { | ||
12 | compatible = "amlogic,meson6-timer"; | ||
13 | reg = <0xc1109940 0x14>; | ||
14 | interrupts = <0 10 1>; | ||
15 | }; | ||
diff --git a/Documentation/devicetree/bindings/timer/renesas,cmt.txt b/Documentation/devicetree/bindings/timer/renesas,cmt.txt index a17418b0ece3..1a05c1b243c1 100644 --- a/Documentation/devicetree/bindings/timer/renesas,cmt.txt +++ b/Documentation/devicetree/bindings/timer/renesas,cmt.txt | |||
@@ -11,15 +11,47 @@ datasheets. | |||
11 | 11 | ||
12 | Required Properties: | 12 | Required Properties: |
13 | 13 | ||
14 | - compatible: must contain one of the following. | 14 | - compatible: must contain one or more of the following: |
15 | - "renesas,cmt-32" for the 32-bit CMT | 15 | - "renesas,cmt-32-r8a7740" for the r8a7740 32-bit CMT |
16 | (CMT0) | ||
17 | - "renesas,cmt-32-sh7372" for the sh7372 32-bit CMT | ||
18 | (CMT0) | ||
19 | - "renesas,cmt-32-sh73a0" for the sh73a0 32-bit CMT | ||
20 | (CMT0) | ||
21 | - "renesas,cmt-32" for all 32-bit CMT without fast clock support | ||
16 | (CMT0 on sh7372, sh73a0 and r8a7740) | 22 | (CMT0 on sh7372, sh73a0 and r8a7740) |
17 | - "renesas,cmt-32-fast" for the 32-bit CMT with fast clock support | 23 | This is a fallback for the above renesas,cmt-32-* entries. |
24 | |||
25 | - "renesas,cmt-32-fast-r8a7740" for the r8a7740 32-bit CMT with fast | ||
26 | clock support (CMT[234]) | ||
27 | - "renesas,cmt-32-fast-sh7372" for the sh7372 32-bit CMT with fast | ||
28 | clock support (CMT[234]) | ||
29 | - "renesas,cmt-32-fast-sh73a0" for the sh73A0 32-bit CMT with fast | ||
30 | clock support (CMT[234]) | ||
31 | - "renesas,cmt-32-fast" for all 32-bit CMT with fast clock support | ||
18 | (CMT[234] on sh7372, sh73a0 and r8a7740) | 32 | (CMT[234] on sh7372, sh73a0 and r8a7740) |
19 | - "renesas,cmt-48" for the 48-bit CMT | 33 | This is a fallback for the above renesas,cmt-32-fast-* entries. |
34 | |||
35 | - "renesas,cmt-48-sh7372" for the sh7372 48-bit CMT | ||
36 | (CMT1) | ||
37 | - "renesas,cmt-48-sh73a0" for the sh73A0 48-bit CMT | ||
38 | (CMT1) | ||
39 | - "renesas,cmt-48-r8a7740" for the r8a7740 48-bit CMT | ||
40 | (CMT1) | ||
41 | - "renesas,cmt-48" for all non-second generation 48-bit CMT | ||
20 | (CMT1 on sh7372, sh73a0 and r8a7740) | 42 | (CMT1 on sh7372, sh73a0 and r8a7740) |
21 | - "renesas,cmt-48-gen2" for the second generation 48-bit CMT | 43 | This is a fallback for the above renesas,cmt-48-* entries. |
44 | |||
45 | - "renesas,cmt-48-r8a73a4" for the r8a73a4 48-bit CMT | ||
46 | (CMT[01]) | ||
47 | - "renesas,cmt-48-r8a7790" for the r8a7790 48-bit CMT | ||
48 | (CMT[01]) | ||
49 | - "renesas,cmt-48-r8a7791" for the r8a7791 48-bit CMT | ||
50 | (CMT[01]) | ||
51 | - "renesas,cmt-48-gen2" for all second generation 48-bit CMT | ||
22 | (CMT[01] on r8a73a4, r8a7790 and r8a7791) | 52 | (CMT[01] on r8a73a4, r8a7790 and r8a7791) |
53 | This is a fallback for the renesas,cmt-48-r8a73a4, | ||
54 | renesas,cmt-48-r8a7790 and renesas,cmt-48-r8a7791 entries. | ||
23 | 55 | ||
24 | - reg: base address and length of the registers block for the timer module. | 56 | - reg: base address and length of the registers block for the timer module. |
25 | - interrupts: interrupt-specifier for the timer, one per channel. | 57 | - interrupts: interrupt-specifier for the timer, one per channel. |
@@ -36,7 +68,7 @@ Example: R8A7790 (R-Car H2) CMT0 node | |||
36 | them channels 0 and 1 in the documentation. | 68 | them channels 0 and 1 in the documentation. |
37 | 69 | ||
38 | cmt0: timer@ffca0000 { | 70 | cmt0: timer@ffca0000 { |
39 | compatible = "renesas,cmt-48-gen2"; | 71 | compatible = "renesas,cmt-48-r8a7790", "renesas,cmt-48-gen2"; |
40 | reg = <0 0xffca0000 0 0x1004>; | 72 | reg = <0 0xffca0000 0 0x1004>; |
41 | interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>, | 73 | interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>, |
42 | <0 142 IRQ_TYPE_LEVEL_HIGH>; | 74 | <0 142 IRQ_TYPE_LEVEL_HIGH>; |
diff --git a/Documentation/devicetree/bindings/timer/renesas,mtu2.txt b/Documentation/devicetree/bindings/timer/renesas,mtu2.txt index 917453f826bc..d9a8d5af1a21 100644 --- a/Documentation/devicetree/bindings/timer/renesas,mtu2.txt +++ b/Documentation/devicetree/bindings/timer/renesas,mtu2.txt | |||
@@ -8,7 +8,10 @@ are independent. The MTU2 hardware supports five channels indexed from 0 to 4. | |||
8 | 8 | ||
9 | Required Properties: | 9 | Required Properties: |
10 | 10 | ||
11 | - compatible: must contain "renesas,mtu2" | 11 | - compatible: must be one or more of the following: |
12 | - "renesas,mtu2-r7s72100" for the r7s72100 MTU2 | ||
13 | - "renesas,mtu2" for any MTU2 | ||
14 | This is a fallback for the above renesas,mtu2-* entries | ||
12 | 15 | ||
13 | - reg: base address and length of the registers block for the timer module. | 16 | - reg: base address and length of the registers block for the timer module. |
14 | 17 | ||
@@ -26,7 +29,7 @@ Required Properties: | |||
26 | Example: R7S72100 (RZ/A1H) MTU2 node | 29 | Example: R7S72100 (RZ/A1H) MTU2 node |
27 | 30 | ||
28 | mtu2: timer@fcff0000 { | 31 | mtu2: timer@fcff0000 { |
29 | compatible = "renesas,mtu2"; | 32 | compatible = "renesas,mtu2-r7s72100", "renesas,mtu2"; |
30 | reg = <0xfcff0000 0x400>; | 33 | reg = <0xfcff0000 0x400>; |
31 | interrupts = <0 139 IRQ_TYPE_LEVEL_HIGH>, | 34 | interrupts = <0 139 IRQ_TYPE_LEVEL_HIGH>, |
32 | <0 146 IRQ_TYPE_LEVEL_HIGH>, | 35 | <0 146 IRQ_TYPE_LEVEL_HIGH>, |
diff --git a/Documentation/devicetree/bindings/timer/renesas,tmu.txt b/Documentation/devicetree/bindings/timer/renesas,tmu.txt index 425d0c5f4aee..7db89fb25444 100644 --- a/Documentation/devicetree/bindings/timer/renesas,tmu.txt +++ b/Documentation/devicetree/bindings/timer/renesas,tmu.txt | |||
@@ -8,7 +8,10 @@ are independent. The TMU hardware supports up to three channels. | |||
8 | 8 | ||
9 | Required Properties: | 9 | Required Properties: |
10 | 10 | ||
11 | - compatible: must contain "renesas,tmu" | 11 | - compatible: must contain one or more of the following: |
12 | - "renesas,tmu-r8a7779" for the r8a7779 TMU | ||
13 | - "renesas,tmu" for any TMU. | ||
14 | This is a fallback for the above renesas,tmu-* entries | ||
12 | 15 | ||
13 | - reg: base address and length of the registers block for the timer module. | 16 | - reg: base address and length of the registers block for the timer module. |
14 | 17 | ||
@@ -27,7 +30,7 @@ Optional Properties: | |||
27 | Example: R8A7779 (R-Car H1) TMU0 node | 30 | Example: R8A7779 (R-Car H1) TMU0 node |
28 | 31 | ||
29 | tmu0: timer@ffd80000 { | 32 | tmu0: timer@ffd80000 { |
30 | compatible = "renesas,tmu"; | 33 | compatible = "renesas,tmu-r8a7779", "renesas,tmu"; |
31 | reg = <0xffd80000 0x30>; | 34 | reg = <0xffd80000 0x30>; |
32 | interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>, | 35 | interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>, |
33 | <0 33 IRQ_TYPE_LEVEL_HIGH>, | 36 | <0 33 IRQ_TYPE_LEVEL_HIGH>, |
diff --git a/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt b/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt index 20468b2a7516..53579197eca2 100644 --- a/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt +++ b/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt | |||
@@ -8,9 +8,50 @@ Required properties: | |||
8 | - interrupts : <interrupt mapping for UFS host controller IRQ> | 8 | - interrupts : <interrupt mapping for UFS host controller IRQ> |
9 | - reg : <registers mapping> | 9 | - reg : <registers mapping> |
10 | 10 | ||
11 | Optional properties: | ||
12 | - vdd-hba-supply : phandle to UFS host controller supply regulator node | ||
13 | - vcc-supply : phandle to VCC supply regulator node | ||
14 | - vccq-supply : phandle to VCCQ supply regulator node | ||
15 | - vccq2-supply : phandle to VCCQ2 supply regulator node | ||
16 | - vcc-supply-1p8 : For embedded UFS devices, valid VCC range is 1.7-1.95V | ||
17 | or 2.7-3.6V. This boolean property when set, specifies | ||
18 | to use low voltage range of 1.7-1.95V. Note for external | ||
19 | UFS cards this property is invalid and valid VCC range is | ||
20 | always 2.7-3.6V. | ||
21 | - vcc-max-microamp : specifies max. load that can be drawn from vcc supply | ||
22 | - vccq-max-microamp : specifies max. load that can be drawn from vccq supply | ||
23 | - vccq2-max-microamp : specifies max. load that can be drawn from vccq2 supply | ||
24 | - <name>-fixed-regulator : boolean property specifying that <name>-supply is a fixed regulator | ||
25 | |||
26 | - clocks : List of phandle and clock specifier pairs | ||
27 | - clock-names : List of clock input name strings sorted in the same | ||
28 | order as the clocks property. | ||
29 | - freq-table-hz : Array of <min max> operating frequencies stored in the same | ||
30 | order as the clocks property. If this property is not | ||
31 | defined or a value in the array is "0" then it is assumed | ||
32 | that the frequency is set by the parent clock or a | ||
33 | fixed rate clock source. | ||
34 | |||
35 | Note: If above properties are not defined it can be assumed that the supply | ||
36 | regulators or clocks are always on. | ||
37 | |||
11 | Example: | 38 | Example: |
12 | ufshc@0xfc598000 { | 39 | ufshc@0xfc598000 { |
13 | compatible = "jedec,ufs-1.1"; | 40 | compatible = "jedec,ufs-1.1"; |
14 | reg = <0xfc598000 0x800>; | 41 | reg = <0xfc598000 0x800>; |
15 | interrupts = <0 28 0>; | 42 | interrupts = <0 28 0>; |
43 | |||
44 | vdd-hba-supply = <&xxx_reg0>; | ||
45 | vdd-hba-fixed-regulator; | ||
46 | vcc-supply = <&xxx_reg1>; | ||
47 | vcc-supply-1p8; | ||
48 | vccq-supply = <&xxx_reg2>; | ||
49 | vccq2-supply = <&xxx_reg3>; | ||
50 | vcc-max-microamp = 500000; | ||
51 | vccq-max-microamp = 200000; | ||
52 | vccq2-max-microamp = 200000; | ||
53 | |||
54 | clocks = <&core 0>, <&ref 0>, <&iface 0>; | ||
55 | clock-names = "core_clk", "ref_clk", "iface_clk"; | ||
56 | freq-table-hz = <100000000 200000000>, <0 0>, <0 0>; | ||
16 | }; | 57 | }; |
diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt index 1bae71e9ad47..38a548001e3a 100644 --- a/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt | |||
@@ -19,6 +19,7 @@ Optional properties: | |||
19 | - disable-over-current: disable over current detect | 19 | - disable-over-current: disable over current detect |
20 | - external-vbus-divider: enables off-chip resistor divider for Vbus | 20 | - external-vbus-divider: enables off-chip resistor divider for Vbus |
21 | - maximum-speed: limit the maximum connection speed to "full-speed". | 21 | - maximum-speed: limit the maximum connection speed to "full-speed". |
22 | - tpl-support: TPL (Targeted Peripheral List) feature for targeted hosts | ||
22 | 23 | ||
23 | Examples: | 24 | Examples: |
24 | usb@02184000 { /* USB OTG */ | 25 | usb@02184000 { /* USB OTG */ |
@@ -30,4 +31,5 @@ usb@02184000 { /* USB OTG */ | |||
30 | disable-over-current; | 31 | disable-over-current; |
31 | external-vbus-divider; | 32 | external-vbus-divider; |
32 | maximum-speed = "full-speed"; | 33 | maximum-speed = "full-speed"; |
34 | tpl-support; | ||
33 | }; | 35 | }; |
diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt index 467ddd15d40c..482f815363ef 100644 --- a/Documentation/devicetree/bindings/usb/dwc2.txt +++ b/Documentation/devicetree/bindings/usb/dwc2.txt | |||
@@ -4,6 +4,9 @@ Platform DesignWare HS OTG USB 2.0 controller | |||
4 | Required properties: | 4 | Required properties: |
5 | - compatible : One of: | 5 | - compatible : One of: |
6 | - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC. | 6 | - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC. |
7 | - rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc; | ||
8 | - "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc; | ||
9 | - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc; | ||
7 | - snps,dwc2: A generic DWC2 USB controller with default parameters. | 10 | - snps,dwc2: A generic DWC2 USB controller with default parameters. |
8 | - reg : Should contain 1 register range (address and length) | 11 | - reg : Should contain 1 register range (address and length) |
9 | - interrupts : Should contain 1 interrupt | 12 | - interrupts : Should contain 1 interrupt |
@@ -15,6 +18,8 @@ Optional properties: | |||
15 | - phys: phy provider specifier | 18 | - phys: phy provider specifier |
16 | - phy-names: shall be "usb2-phy" | 19 | - phy-names: shall be "usb2-phy" |
17 | Refer to phy/phy-bindings.txt for generic phy consumer properties | 20 | Refer to phy/phy-bindings.txt for generic phy consumer properties |
21 | - dr_mode: shall be one of "host", "peripheral" and "otg" | ||
22 | Refer to usb/generic.txt | ||
18 | 23 | ||
19 | Example: | 24 | Example: |
20 | 25 | ||
diff --git a/Documentation/devicetree/bindings/usb/dwc3-st.txt b/Documentation/devicetree/bindings/usb/dwc3-st.txt new file mode 100644 index 000000000000..f9d70252bbb2 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/dwc3-st.txt | |||
@@ -0,0 +1,68 @@ | |||
1 | ST DWC3 glue logic | ||
2 | |||
3 | This file documents the parameters for the dwc3-st driver. | ||
4 | This driver controls the glue logic used to configure the dwc3 core on | ||
5 | STiH407 based platforms. | ||
6 | |||
7 | Required properties: | ||
8 | - compatible : must be "st,stih407-dwc3" | ||
9 | - reg : glue logic base address and USB syscfg ctrl register offset | ||
10 | - reg-names : should be "reg-glue" and "syscfg-reg" | ||
11 | - st,syscon : should be phandle to system configuration node which | ||
12 | encompasses the glue registers | ||
13 | - resets : list of phandle and reset specifier pairs. There should be two entries, one | ||
14 | for the powerdown and softreset lines of the usb3 IP | ||
15 | - reset-names : list of reset signal names. Names should be "powerdown" and "softreset" | ||
16 | See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt | ||
17 | See: Documentation/devicetree/bindings/reset/reset.txt | ||
18 | |||
19 | - #address-cells, #size-cells : should be '1' if the device has sub-nodes | ||
20 | with 'reg' property | ||
21 | |||
22 | - pinctl-names : A pinctrl state named "default" must be defined | ||
23 | See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt | ||
24 | |||
25 | - pinctrl-0 : Pin control group | ||
26 | See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt | ||
27 | |||
28 | - ranges : allows valid 1:1 translation between child's address space and | ||
29 | parent's address space | ||
30 | |||
31 | Sub-nodes: | ||
32 | The dwc3 core should be added as subnode to ST DWC3 glue as shown in the | ||
33 | example below. The DT binding details of dwc3 can be found in: | ||
34 | Documentation/devicetree/bindings/usb/dwc3.txt | ||
35 | |||
36 | NB: The dr_mode property described in [1] is NOT optional for this driver, as the default value | ||
37 | is "otg", which isn't supported by this SoC. Valid dr_mode values for dwc3-st are either "host" | ||
38 | or "device". | ||
39 | |||
40 | [1] Documentation/devicetree/bindings/usb/generic.txt | ||
41 | |||
42 | Example: | ||
43 | |||
44 | st_dwc3: dwc3@8f94000 { | ||
45 | status = "disabled"; | ||
46 | compatible = "st,stih407-dwc3"; | ||
47 | reg = <0x08f94000 0x1000>, <0x110 0x4>; | ||
48 | reg-names = "reg-glue", "syscfg-reg"; | ||
49 | st,syscfg = <&syscfg_core>; | ||
50 | resets = <&powerdown STIH407_USB3_POWERDOWN>, | ||
51 | <&softreset STIH407_MIPHY2_SOFTRESET>; | ||
52 | reset-names = "powerdown", | ||
53 | "softreset"; | ||
54 | #address-cells = <1>; | ||
55 | #size-cells = <1>; | ||
56 | pinctrl-names = "default"; | ||
57 | pinctrl-0 = <&pinctrl_usb3>; | ||
58 | ranges; | ||
59 | |||
60 | dwc3: dwc3@9900000 { | ||
61 | compatible = "snps,dwc3"; | ||
62 | reg = <0x09900000 0x100000>; | ||
63 | interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>; | ||
64 | dr_mode = "host"; | ||
65 | phys-names = "usb2-phy", "usb3-phy"; | ||
66 | phys = <&usb2_picophy2>, <&phy_port2 MIPHY_TYPE_USB>; | ||
67 | }; | ||
68 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/ehci-st.txt b/Documentation/devicetree/bindings/usb/ehci-st.txt new file mode 100644 index 000000000000..fb45fa5770bb --- /dev/null +++ b/Documentation/devicetree/bindings/usb/ehci-st.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | ST USB EHCI controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : must be "st,st-ehci-300x" | ||
5 | - reg : physical base addresses of the controller and length of memory mapped | ||
6 | region | ||
7 | - interrupts : one EHCI interrupt should be described here | ||
8 | - pinctrl-names : a pinctrl state named "default" must be defined | ||
9 | - pinctrl-0 : phandle referencing pin configuration of the USB controller | ||
10 | See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt | ||
11 | - clocks : phandle list of usb clocks | ||
12 | - clock-names : should be "ic" for interconnect clock and "clk48" | ||
13 | See: Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
14 | |||
15 | - phys : phandle for the PHY device | ||
16 | - phy-names : should be "usb" | ||
17 | - resets : phandle + reset specifier pairs to the powerdown and softreset lines | ||
18 | of the USB IP | ||
19 | - reset-names : should be "power" and "softreset" | ||
20 | See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt | ||
21 | See: Documentation/devicetree/bindings/reset/reset.txt | ||
22 | |||
23 | Example: | ||
24 | |||
25 | ehci1: usb@0xfe203e00 { | ||
26 | compatible = "st,st-ehci-300x"; | ||
27 | reg = <0xfe203e00 0x100>; | ||
28 | interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>; | ||
29 | pinctrl-names = "default"; | ||
30 | pinctrl-0 = <&pinctrl_usb1>; | ||
31 | clocks = <&clk_s_a1_ls 0>; | ||
32 | phys = <&usb2_phy>; | ||
33 | phy-names = "usb"; | ||
34 | status = "okay"; | ||
35 | |||
36 | resets = <&powerdown STIH416_USB1_POWERDOWN>, | ||
37 | <&softreset STIH416_USB1_SOFTRESET>; | ||
38 | reset-names = "power", "softreset"; | ||
39 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/mxs-phy.txt b/Documentation/devicetree/bindings/usb/mxs-phy.txt index cef181a9d8bd..379b84a567cc 100644 --- a/Documentation/devicetree/bindings/usb/mxs-phy.txt +++ b/Documentation/devicetree/bindings/usb/mxs-phy.txt | |||
@@ -5,6 +5,8 @@ Required properties: | |||
5 | * "fsl,imx23-usbphy" for imx23 and imx28 | 5 | * "fsl,imx23-usbphy" for imx23 and imx28 |
6 | * "fsl,imx6q-usbphy" for imx6dq and imx6dl | 6 | * "fsl,imx6q-usbphy" for imx6dq and imx6dl |
7 | * "fsl,imx6sl-usbphy" for imx6sl | 7 | * "fsl,imx6sl-usbphy" for imx6sl |
8 | * "fsl,vf610-usbphy" for Vybrid vf610 | ||
9 | * "fsl,imx6sx-usbphy" for imx6sx | ||
8 | "fsl,imx23-usbphy" is still a fallback for other strings | 10 | "fsl,imx23-usbphy" is still a fallback for other strings |
9 | - reg: Should contain registers location and length | 11 | - reg: Should contain registers location and length |
10 | - interrupts: Should contain phy interrupt | 12 | - interrupts: Should contain phy interrupt |
diff --git a/Documentation/devicetree/bindings/usb/ohci-st.txt b/Documentation/devicetree/bindings/usb/ohci-st.txt new file mode 100644 index 000000000000..6d8393748da2 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/ohci-st.txt | |||
@@ -0,0 +1,37 @@ | |||
1 | ST USB OHCI controller | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : must be "st,st-ohci-300x" | ||
6 | - reg : physical base addresses of the controller and length of memory mapped | ||
7 | region | ||
8 | - interrupts : one OHCI controller interrupt should be described here | ||
9 | - clocks : phandle list of usb clocks | ||
10 | - clock-names : should be "ic" for interconnect clock and "clk48" | ||
11 | See: Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
12 | |||
13 | - phys : phandle for the PHY device | ||
14 | - phy-names : should be "usb" | ||
15 | |||
16 | - resets : phandle to the powerdown and reset controller for the USB IP | ||
17 | - reset-names : should be "power" and "softreset". | ||
18 | See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt | ||
19 | See: Documentation/devicetree/bindings/reset/reset.txt | ||
20 | |||
21 | Example: | ||
22 | |||
23 | ohci0: usb@0xfe1ffc00 { | ||
24 | compatible = "st,st-ohci-300x"; | ||
25 | reg = <0xfe1ffc00 0x100>; | ||
26 | interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>; | ||
27 | clocks = <&clk_s_a1_ls 0>, | ||
28 | <&clockgen_b0 0>; | ||
29 | clock-names = "ic", "clk48"; | ||
30 | phys = <&usb2_phy>; | ||
31 | phy-names = "usb"; | ||
32 | status = "okay"; | ||
33 | |||
34 | resets = <&powerdown STIH416_USB0_POWERDOWN>, | ||
35 | <&softreset STIH416_USB0_SOFTRESET>; | ||
36 | reset-names = "power", "softreset"; | ||
37 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.txt b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt new file mode 100644 index 000000000000..ca164e71dd50 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt | |||
@@ -0,0 +1,66 @@ | |||
1 | Qualcomm SuperSpeed DWC3 USB SoC controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should contain "qcom,dwc3" | ||
5 | - clocks: A list of phandle + clock-specifier pairs for the | ||
6 | clocks listed in clock-names | ||
7 | - clock-names: Should contain the following: | ||
8 | "core" Master/Core clock, have to be >= 125 MHz for SS | ||
9 | operation and >= 60MHz for HS operation | ||
10 | |||
11 | Optional clocks: | ||
12 | "iface" System bus AXI clock. Not present on all platforms | ||
13 | "sleep" Sleep clock, used when USB3 core goes into low | ||
14 | power mode (U3). | ||
15 | |||
16 | Required child node: | ||
17 | A child node must exist to represent the core DWC3 IP block. The name of | ||
18 | the node is not important. The content of the node is defined in dwc3.txt. | ||
19 | |||
20 | Phy documentation is provided in the following places: | ||
21 | Documentation/devicetree/bindings/phy/qcom,dwc3-usb-phy.txt | ||
22 | |||
23 | Example device nodes: | ||
24 | |||
25 | hs_phy: phy@100f8800 { | ||
26 | compatible = "qcom,dwc3-hs-usb-phy"; | ||
27 | reg = <0x100f8800 0x30>; | ||
28 | clocks = <&gcc USB30_0_UTMI_CLK>; | ||
29 | clock-names = "ref"; | ||
30 | #phy-cells = <0>; | ||
31 | |||
32 | status = "ok"; | ||
33 | }; | ||
34 | |||
35 | ss_phy: phy@100f8830 { | ||
36 | compatible = "qcom,dwc3-ss-usb-phy"; | ||
37 | reg = <0x100f8830 0x30>; | ||
38 | clocks = <&gcc USB30_0_MASTER_CLK>; | ||
39 | clock-names = "ref"; | ||
40 | #phy-cells = <0>; | ||
41 | |||
42 | status = "ok"; | ||
43 | }; | ||
44 | |||
45 | usb3_0: usb30@0 { | ||
46 | compatible = "qcom,dwc3"; | ||
47 | #address-cells = <1>; | ||
48 | #size-cells = <1>; | ||
49 | clocks = <&gcc USB30_0_MASTER_CLK>; | ||
50 | clock-names = "core"; | ||
51 | |||
52 | ranges; | ||
53 | |||
54 | status = "ok"; | ||
55 | |||
56 | dwc3@10000000 { | ||
57 | compatible = "snps,dwc3"; | ||
58 | reg = <0x10000000 0xcd00>; | ||
59 | interrupts = <0 205 0x4>; | ||
60 | phys = <&hs_phy>, <&ss_phy>; | ||
61 | phy-names = "usb2-phy", "usb3-phy"; | ||
62 | tx-fifo-resize; | ||
63 | dr_mode = "host"; | ||
64 | }; | ||
65 | }; | ||
66 | |||
diff --git a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt new file mode 100644 index 000000000000..b08c903f8668 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | Renesas Electronics USBHS driver | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Must contain one of the following: | ||
5 | - "renesas,usbhs-r8a7790" | ||
6 | - "renesas,usbhs-r8a7791" | ||
7 | - reg: Base address and length of the register for the USBHS | ||
8 | - interrupts: Interrupt specifier for the USBHS | ||
9 | - clocks: A list of phandle + clock specifier pairs | ||
10 | |||
11 | Optional properties: | ||
12 | - renesas,buswait: Integer to use BUSWAIT register | ||
13 | - renesas,enable-gpio: A gpio specifier to check GPIO determining if USB | ||
14 | function should be enabled | ||
15 | - phys: phandle + phy specifier pair | ||
16 | - phy-names: must be "usb" | ||
17 | |||
18 | Example: | ||
19 | usbhs: usb@e6590000 { | ||
20 | compatible = "renesas,usbhs-r8a7790"; | ||
21 | reg = <0 0xe6590000 0 0x100>; | ||
22 | interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; | ||
23 | clocks = <&mstp7_clks R8A7790_CLK_HSUSB>; | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/udc-xilinx.txt b/Documentation/devicetree/bindings/usb/udc-xilinx.txt new file mode 100644 index 000000000000..47b4e397a08d --- /dev/null +++ b/Documentation/devicetree/bindings/usb/udc-xilinx.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | Xilinx USB2 device controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "xlnx,usb2-device-4.00.a" | ||
5 | - reg : Physical base address and size of the USB2 | ||
6 | device registers map. | ||
7 | - interrupts : Should contain single irq line of USB2 device | ||
8 | controller | ||
9 | - xlnx,has-builtin-dma : if DMA is included | ||
10 | |||
11 | Example: | ||
12 | axi-usb2-device@42e00000 { | ||
13 | compatible = "xlnx,usb2-device-4.00.a"; | ||
14 | interrupts = <0x0 0x39 0x1>; | ||
15 | reg = <0x42e00000 0x10000>; | ||
16 | xlnx,has-builtin-dma; | ||
17 | }; | ||
18 | |||
diff --git a/Documentation/devicetree/bindings/usb/usb3503.txt b/Documentation/devicetree/bindings/usb/usb3503.txt index 221ac0dbc678..52493b1480e2 100644 --- a/Documentation/devicetree/bindings/usb/usb3503.txt +++ b/Documentation/devicetree/bindings/usb/usb3503.txt | |||
@@ -8,8 +8,8 @@ Optional properties: | |||
8 | if I2C is used. | 8 | if I2C is used. |
9 | - connect-gpios: Should specify GPIO for connect. | 9 | - connect-gpios: Should specify GPIO for connect. |
10 | - disabled-ports: Should specify the ports unused. | 10 | - disabled-ports: Should specify the ports unused. |
11 | '1' or '2' or '3' are availe for this property to describe the port | 11 | '1' or '2' or '3' are available for this property to describe the port |
12 | number. 1~3 property values are possible to be desribed. | 12 | number. 1~3 property values are possible to be described. |
13 | Do not describe this property if all ports have to be enabled. | 13 | Do not describe this property if all ports have to be enabled. |
14 | - intn-gpios: Should specify GPIO for interrupt. | 14 | - intn-gpios: Should specify GPIO for interrupt. |
15 | - reset-gpios: Should specify GPIO for reset. | 15 | - reset-gpios: Should specify GPIO for reset. |
diff --git a/Documentation/devicetree/bindings/usb/usbmisc-imx.txt b/Documentation/devicetree/bindings/usb/usbmisc-imx.txt index 97ce94e1a6cc..c101a4b17131 100644 --- a/Documentation/devicetree/bindings/usb/usbmisc-imx.txt +++ b/Documentation/devicetree/bindings/usb/usbmisc-imx.txt | |||
@@ -4,6 +4,7 @@ Required properties: | |||
4 | - #index-cells: Cells used to descibe usb controller index. Should be <1> | 4 | - #index-cells: Cells used to descibe usb controller index. Should be <1> |
5 | - compatible: Should be one of below: | 5 | - compatible: Should be one of below: |
6 | "fsl,imx6q-usbmisc" for imx6q | 6 | "fsl,imx6q-usbmisc" for imx6q |
7 | "fsl,vf610-usbmisc" for Vybrid vf610 | ||
7 | - reg: Should contain registers location and length | 8 | - reg: Should contain registers location and length |
8 | 9 | ||
9 | Examples: | 10 | Examples: |
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index d3a45796d249..723999d73744 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -14,6 +14,7 @@ allwinner Allwinner Technology Co., Ltd. | |||
14 | altr Altera Corp. | 14 | altr Altera Corp. |
15 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) | 15 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) |
16 | amd Advanced Micro Devices (AMD), Inc. | 16 | amd Advanced Micro Devices (AMD), Inc. |
17 | amlogic Amlogic, Inc. | ||
17 | ams AMS AG | 18 | ams AMS AG |
18 | amstaos AMS-Taos Inc. | 19 | amstaos AMS-Taos Inc. |
19 | apm Applied Micro Circuits Corporation (APM) | 20 | apm Applied Micro Circuits Corporation (APM) |
@@ -29,6 +30,7 @@ calxeda Calxeda | |||
29 | capella Capella Microsystems, Inc | 30 | capella Capella Microsystems, Inc |
30 | cavium Cavium, Inc. | 31 | cavium Cavium, Inc. |
31 | cdns Cadence Design Systems Inc. | 32 | cdns Cadence Design Systems Inc. |
33 | chipidea Chipidea, Inc | ||
32 | chrp Common Hardware Reference Platform | 34 | chrp Common Hardware Reference Platform |
33 | chunghwa Chunghwa Picture Tubes Ltd. | 35 | chunghwa Chunghwa Picture Tubes Ltd. |
34 | cirrus Cirrus Logic, Inc. | 36 | cirrus Cirrus Logic, Inc. |
@@ -38,24 +40,30 @@ dallas Maxim Integrated Products (formerly Dallas Semiconductor) | |||
38 | davicom DAVICOM Semiconductor, Inc. | 40 | davicom DAVICOM Semiconductor, Inc. |
39 | denx Denx Software Engineering | 41 | denx Denx Software Engineering |
40 | digi Digi International Inc. | 42 | digi Digi International Inc. |
43 | dlg Dialog Semiconductor | ||
41 | dlink D-Link Corporation | 44 | dlink D-Link Corporation |
42 | dmo Data Modul AG | 45 | dmo Data Modul AG |
43 | ebv EBV Elektronik | 46 | ebv EBV Elektronik |
44 | edt Emerging Display Technologies | 47 | edt Emerging Display Technologies |
45 | emmicro EM Microelectronic | 48 | emmicro EM Microelectronic |
49 | energymicro Silicon Laboratories (formerly Energy Micro AS) | ||
46 | epcos EPCOS AG | 50 | epcos EPCOS AG |
47 | epfl Ecole Polytechnique Fédérale de Lausanne | 51 | epfl Ecole Polytechnique Fédérale de Lausanne |
48 | epson Seiko Epson Corp. | 52 | epson Seiko Epson Corp. |
49 | est ESTeem Wireless Modems | 53 | est ESTeem Wireless Modems |
50 | eukrea Eukréa Electromatique | 54 | eukrea Eukréa Electromatique |
55 | everest Everest Semiconductor Co. Ltd. | ||
51 | excito Excito | 56 | excito Excito |
57 | fcs Fairchild Semiconductor | ||
52 | fsl Freescale Semiconductor | 58 | fsl Freescale Semiconductor |
53 | GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. | 59 | GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. |
54 | gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. | 60 | gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. |
61 | geniatech Geniatech, Inc. | ||
55 | globalscale Globalscale Technologies, Inc. | 62 | globalscale Globalscale Technologies, Inc. |
56 | gmt Global Mixed-mode Technology, Inc. | 63 | gmt Global Mixed-mode Technology, Inc. |
57 | google Google, Inc. | 64 | google Google, Inc. |
58 | gumstix Gumstix, Inc. | 65 | gumstix Gumstix, Inc. |
66 | gw Gateworks Corporation | ||
59 | haoyu Haoyu Microelectronic Co. Ltd. | 67 | haoyu Haoyu Microelectronic Co. Ltd. |
60 | hisilicon Hisilicon Limited. | 68 | hisilicon Hisilicon Limited. |
61 | honeywell Honeywell | 69 | honeywell Honeywell |
@@ -65,6 +73,7 @@ ibm International Business Machines (IBM) | |||
65 | idt Integrated Device Technologies, Inc. | 73 | idt Integrated Device Technologies, Inc. |
66 | iom Iomega Corporation | 74 | iom Iomega Corporation |
67 | img Imagination Technologies Ltd. | 75 | img Imagination Technologies Ltd. |
76 | innolux Innolux Corporation | ||
68 | intel Intel Corporation | 77 | intel Intel Corporation |
69 | intercontrol Inter Control Group | 78 | intercontrol Inter Control Group |
70 | isee ISEE 2007 S.L. | 79 | isee ISEE 2007 S.L. |
@@ -83,6 +92,7 @@ maxim Maxim Integrated Products | |||
83 | mediatek MediaTek Inc. | 92 | mediatek MediaTek Inc. |
84 | micrel Micrel Inc. | 93 | micrel Micrel Inc. |
85 | microchip Microchip Technology Inc. | 94 | microchip Microchip Technology Inc. |
95 | mitsubishi Mitsubishi Electric Corporation | ||
86 | mosaixtech Mosaix Technologies, Inc. | 96 | mosaixtech Mosaix Technologies, Inc. |
87 | moxa Moxa | 97 | moxa Moxa |
88 | mpl MPL AG | 98 | mpl MPL AG |
@@ -124,7 +134,9 @@ sil Silicon Image | |||
124 | silabs Silicon Laboratories | 134 | silabs Silicon Laboratories |
125 | simtek | 135 | simtek |
126 | sii Seiko Instruments, Inc. | 136 | sii Seiko Instruments, Inc. |
137 | silergy Silergy Corp. | ||
127 | sirf SiRF Technology, Inc. | 138 | sirf SiRF Technology, Inc. |
139 | sitronix Sitronix Technology Corporation | ||
128 | smsc Standard Microsystems Corporation | 140 | smsc Standard Microsystems Corporation |
129 | snps Synopsys, Inc. | 141 | snps Synopsys, Inc. |
130 | solidrun SolidRun | 142 | solidrun SolidRun |
@@ -134,12 +146,13 @@ st STMicroelectronics | |||
134 | ste ST-Ericsson | 146 | ste ST-Ericsson |
135 | stericsson ST-Ericsson | 147 | stericsson ST-Ericsson |
136 | synology Synology, Inc. | 148 | synology Synology, Inc. |
149 | thine THine Electronics, Inc. | ||
137 | ti Texas Instruments | 150 | ti Texas Instruments |
138 | tlm Trusted Logic Mobility | 151 | tlm Trusted Logic Mobility |
139 | toradex Toradex AG | 152 | toradex Toradex AG |
140 | toshiba Toshiba Corporation | 153 | toshiba Toshiba Corporation |
141 | toumaz Toumaz | 154 | toumaz Toumaz |
142 | usi Universal Scientifc Industrial Co., Ltd. | 155 | usi Universal Scientific Industrial Co., Ltd. |
143 | v3 V3 Semiconductor | 156 | v3 V3 Semiconductor |
144 | variscite Variscite Ltd. | 157 | variscite Variscite Ltd. |
145 | via VIA Technologies, Inc. | 158 | via VIA Technologies, Inc. |
@@ -148,6 +161,7 @@ winbond Winbond Electronics corp. | |||
148 | wlf Wolfson Microelectronics | 161 | wlf Wolfson Microelectronics |
149 | wm Wondermedia Technologies, Inc. | 162 | wm Wondermedia Technologies, Inc. |
150 | xes Extreme Engineering Solutions (X-ES) | 163 | xes Extreme Engineering Solutions (X-ES) |
164 | xillybus Xillybus Ltd. | ||
151 | xlnx Xilinx | 165 | xlnx Xilinx |
152 | zyxel ZyXEL Communications Corp. | 166 | zyxel ZyXEL Communications Corp. |
153 | zarlink Zarlink Semiconductor | 167 | zarlink Zarlink Semiconductor |
diff --git a/Documentation/devicetree/bindings/video/adi,adv7123.txt b/Documentation/devicetree/bindings/video/adi,adv7123.txt new file mode 100644 index 000000000000..a6b2b2b8f3d9 --- /dev/null +++ b/Documentation/devicetree/bindings/video/adi,adv7123.txt | |||
@@ -0,0 +1,50 @@ | |||
1 | Analog Device ADV7123 Video DAC | ||
2 | ------------------------------- | ||
3 | |||
4 | The ADV7123 is a digital-to-analog converter that outputs VGA signals from a | ||
5 | parallel video input. | ||
6 | |||
7 | Required properties: | ||
8 | |||
9 | - compatible: Should be "adi,adv7123" | ||
10 | |||
11 | Optional properties: | ||
12 | |||
13 | - psave-gpios: Power save control GPIO | ||
14 | |||
15 | Required nodes: | ||
16 | |||
17 | The ADV7123 has two video ports. Their connections are modeled using the OF | ||
18 | graph bindings specified in Documentation/devicetree/bindings/graph.txt. | ||
19 | |||
20 | - Video port 0 for DPI input | ||
21 | - Video port 1 for VGA output | ||
22 | |||
23 | |||
24 | Example | ||
25 | ------- | ||
26 | |||
27 | adv7123: encoder@0 { | ||
28 | compatible = "adi,adv7123"; | ||
29 | |||
30 | ports { | ||
31 | #address-cells = <1>; | ||
32 | #size-cells = <0>; | ||
33 | |||
34 | port@0 { | ||
35 | reg = <0>; | ||
36 | |||
37 | adv7123_in: endpoint@0 { | ||
38 | remote-endpoint = <&dpi_out>; | ||
39 | }; | ||
40 | }; | ||
41 | |||
42 | port@1 { | ||
43 | reg = <1>; | ||
44 | |||
45 | adv7123_out: endpoint@0 { | ||
46 | remote-endpoint = <&vga_connector_in>; | ||
47 | }; | ||
48 | }; | ||
49 | }; | ||
50 | }; | ||
diff --git a/Documentation/devicetree/bindings/video/analog-tv-connector.txt b/Documentation/devicetree/bindings/video/analog-tv-connector.txt index 0218fcdc1299..0c0970c210ab 100644 --- a/Documentation/devicetree/bindings/video/analog-tv-connector.txt +++ b/Documentation/devicetree/bindings/video/analog-tv-connector.txt | |||
@@ -2,7 +2,7 @@ Analog TV Connector | |||
2 | =================== | 2 | =================== |
3 | 3 | ||
4 | Required properties: | 4 | Required properties: |
5 | - compatible: "composite-connector" or "svideo-connector" | 5 | - compatible: "composite-video-connector" or "svideo-connector" |
6 | 6 | ||
7 | Optional properties: | 7 | Optional properties: |
8 | - label: a symbolic name for the connector | 8 | - label: a symbolic name for the connector |
@@ -14,7 +14,7 @@ Example | |||
14 | ------- | 14 | ------- |
15 | 15 | ||
16 | tv: connector { | 16 | tv: connector { |
17 | compatible = "composite-connector"; | 17 | compatible = "composite-video-connector"; |
18 | label = "tv"; | 18 | label = "tv"; |
19 | 19 | ||
20 | port { | 20 | port { |
diff --git a/Documentation/devicetree/bindings/video/atmel,lcdc.txt b/Documentation/devicetree/bindings/video/atmel,lcdc.txt index b75af94a5e52..7d0c4a1ab811 100644 --- a/Documentation/devicetree/bindings/video/atmel,lcdc.txt +++ b/Documentation/devicetree/bindings/video/atmel,lcdc.txt | |||
@@ -39,8 +39,8 @@ Atmel LCDC Display | |||
39 | ----------------------------------------------------- | 39 | ----------------------------------------------------- |
40 | Required properties (as per of_videomode_helper): | 40 | Required properties (as per of_videomode_helper): |
41 | 41 | ||
42 | - atmel,dmacon: dma controler configuration | 42 | - atmel,dmacon: dma controller configuration |
43 | - atmel,lcdcon2: lcd controler configuration | 43 | - atmel,lcdcon2: lcd controller configuration |
44 | - atmel,guard-time: lcd guard time (Delay in frame periods) | 44 | - atmel,guard-time: lcd guard time (Delay in frame periods) |
45 | - bits-per-pixel: lcd panel bit-depth. | 45 | - bits-per-pixel: lcd panel bit-depth. |
46 | 46 | ||
diff --git a/Documentation/devicetree/bindings/video/exynos_dsim.txt b/Documentation/devicetree/bindings/video/exynos_dsim.txt index 31036c667d54..e74243b4b317 100644 --- a/Documentation/devicetree/bindings/video/exynos_dsim.txt +++ b/Documentation/devicetree/bindings/video/exynos_dsim.txt | |||
@@ -2,6 +2,7 @@ Exynos MIPI DSI Master | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: value should be one of the following | 4 | - compatible: value should be one of the following |
5 | "samsung,exynos3250-mipi-dsi" /* for Exynos3250/3472 SoCs */ | ||
5 | "samsung,exynos4210-mipi-dsi" /* for Exynos4 SoCs */ | 6 | "samsung,exynos4210-mipi-dsi" /* for Exynos4 SoCs */ |
6 | "samsung,exynos5410-mipi-dsi" /* for Exynos5410/5420/5440 SoCs */ | 7 | "samsung,exynos5410-mipi-dsi" /* for Exynos5410/5420/5440 SoCs */ |
7 | - reg: physical base address and length of the registers set for the device | 8 | - reg: physical base address and length of the registers set for the device |
diff --git a/Documentation/devicetree/bindings/video/fsl,imx-fb.txt b/Documentation/devicetree/bindings/video/fsl,imx-fb.txt index 0329f60d431e..8c8c2f4e4c3f 100644 --- a/Documentation/devicetree/bindings/video/fsl,imx-fb.txt +++ b/Documentation/devicetree/bindings/video/fsl,imx-fb.txt | |||
@@ -20,7 +20,7 @@ Optional properties: | |||
20 | register is not modified as recommended by the datasheet. | 20 | register is not modified as recommended by the datasheet. |
21 | - fsl,lpccr: Contrast Control Register value. This property provides the | 21 | - fsl,lpccr: Contrast Control Register value. This property provides the |
22 | default value for the contrast control register. | 22 | default value for the contrast control register. |
23 | If that property is ommited, the register is zeroed. | 23 | If that property is omitted, the register is zeroed. |
24 | - fsl,lscr1: LCDC Sharp Configuration Register value. | 24 | - fsl,lscr1: LCDC Sharp Configuration Register value. |
25 | 25 | ||
26 | Example: | 26 | Example: |
diff --git a/Documentation/devicetree/bindings/video/renesas,du.txt b/Documentation/devicetree/bindings/video/renesas,du.txt new file mode 100644 index 000000000000..5102830f2760 --- /dev/null +++ b/Documentation/devicetree/bindings/video/renesas,du.txt | |||
@@ -0,0 +1,84 @@ | |||
1 | * Renesas R-Car Display Unit (DU) | ||
2 | |||
3 | Required Properties: | ||
4 | |||
5 | - compatible: must be one of the following. | ||
6 | - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU | ||
7 | - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU | ||
8 | - "renesas,du-r8a7791" for R8A7791 (R-Car M2) compatible DU | ||
9 | |||
10 | - reg: A list of base address and length of each memory resource, one for | ||
11 | each entry in the reg-names property. | ||
12 | - reg-names: Name of the memory resources. The DU requires one memory | ||
13 | resource for the DU core (named "du") and one memory resource for each | ||
14 | LVDS encoder (named "lvds.x" with "x" being the LVDS controller numerical | ||
15 | index). | ||
16 | |||
17 | - interrupt-parent: phandle of the parent interrupt controller. | ||
18 | - interrupts: Interrupt specifiers for the DU interrupts. | ||
19 | |||
20 | - clocks: A list of phandles + clock-specifier pairs, one for each entry in | ||
21 | the clock-names property. | ||
22 | - clock-names: Name of the clocks. This property is model-dependent. | ||
23 | - R8A7779 uses a single functional clock. The clock doesn't need to be | ||
24 | named. | ||
25 | - R8A7790 and R8A7791 use one functional clock per channel and one clock | ||
26 | per LVDS encoder. The functional clocks must be named "du.x" with "x" | ||
27 | being the channel numerical index. The LVDS clocks must be named | ||
28 | "lvds.x" with "x" being the LVDS encoder numerical index. | ||
29 | |||
30 | Required nodes: | ||
31 | |||
32 | The connections to the DU output video ports are modeled using the OF graph | ||
33 | bindings specified in Documentation/devicetree/bindings/graph.txt. | ||
34 | |||
35 | The following table lists for each supported model the port number | ||
36 | corresponding to each DU output. | ||
37 | |||
38 | Port 0 Port1 Port2 | ||
39 | ----------------------------------------------------------------------------- | ||
40 | R8A7779 (H1) DPAD 0 DPAD 1 - | ||
41 | R8A7790 (H2) DPAD LVDS 0 LVDS 1 | ||
42 | R8A7791 (M2) DPAD LVDS 0 - | ||
43 | |||
44 | |||
45 | Example: R8A7790 (R-Car H2) DU | ||
46 | |||
47 | du: du@feb00000 { | ||
48 | compatible = "renesas,du-r8a7790"; | ||
49 | reg = <0 0xfeb00000 0 0x70000>, | ||
50 | <0 0xfeb90000 0 0x1c>, | ||
51 | <0 0xfeb94000 0 0x1c>; | ||
52 | reg-names = "du", "lvds.0", "lvds.1"; | ||
53 | interrupt-parent = <&gic>; | ||
54 | interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>, | ||
55 | <0 268 IRQ_TYPE_LEVEL_HIGH>, | ||
56 | <0 269 IRQ_TYPE_LEVEL_HIGH>; | ||
57 | clocks = <&mstp7_clks R8A7790_CLK_DU0>, | ||
58 | <&mstp7_clks R8A7790_CLK_DU1>, | ||
59 | <&mstp7_clks R8A7790_CLK_DU2>, | ||
60 | <&mstp7_clks R8A7790_CLK_LVDS0>, | ||
61 | <&mstp7_clks R8A7790_CLK_LVDS1>; | ||
62 | clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1"; | ||
63 | |||
64 | ports { | ||
65 | #address-cells = <1>; | ||
66 | #size-cells = <0>; | ||
67 | |||
68 | port@0 { | ||
69 | reg = <0>; | ||
70 | du_out_rgb: endpoint { | ||
71 | }; | ||
72 | }; | ||
73 | port@1 { | ||
74 | reg = <1>; | ||
75 | du_out_lvds0: endpoint { | ||
76 | }; | ||
77 | }; | ||
78 | port@2 { | ||
79 | reg = <2>; | ||
80 | du_out_lvds1: endpoint { | ||
81 | }; | ||
82 | }; | ||
83 | }; | ||
84 | }; | ||
diff --git a/Documentation/devicetree/bindings/video/samsung-fimd.txt b/Documentation/devicetree/bindings/video/samsung-fimd.txt index ecc899b9817b..4e6c77c85546 100644 --- a/Documentation/devicetree/bindings/video/samsung-fimd.txt +++ b/Documentation/devicetree/bindings/video/samsung-fimd.txt | |||
@@ -9,6 +9,7 @@ Required properties: | |||
9 | "samsung,s3c2443-fimd"; /* for S3C24XX SoCs */ | 9 | "samsung,s3c2443-fimd"; /* for S3C24XX SoCs */ |
10 | "samsung,s3c6400-fimd"; /* for S3C64XX SoCs */ | 10 | "samsung,s3c6400-fimd"; /* for S3C64XX SoCs */ |
11 | "samsung,s5pv210-fimd"; /* for S5PV210 SoC */ | 11 | "samsung,s5pv210-fimd"; /* for S5PV210 SoC */ |
12 | "samsung,exynos3250-fimd"; /* for Exynos3250/3472 SoCs */ | ||
12 | "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */ | 13 | "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */ |
13 | "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */ | 14 | "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */ |
14 | 15 | ||
diff --git a/Documentation/devicetree/bindings/video/thine,thc63lvdm83d b/Documentation/devicetree/bindings/video/thine,thc63lvdm83d new file mode 100644 index 000000000000..527e236e9a2a --- /dev/null +++ b/Documentation/devicetree/bindings/video/thine,thc63lvdm83d | |||
@@ -0,0 +1,50 @@ | |||
1 | THine Electronics THC63LVDM83D LVDS serializer | ||
2 | ---------------------------------------------- | ||
3 | |||
4 | The THC63LVDM83D is an LVDS serializer designed to support pixel data | ||
5 | transmission between a host and a flat panel. | ||
6 | |||
7 | Required properties: | ||
8 | |||
9 | - compatible: Should be "thine,thc63lvdm83d" | ||
10 | |||
11 | Optional properties: | ||
12 | |||
13 | - pwdn-gpios: Power down control GPIO | ||
14 | |||
15 | Required nodes: | ||
16 | |||
17 | The THC63LVDM83D has two video ports. Their connections are modeled using the | ||
18 | OFgraph bindings specified in Documentation/devicetree/bindings/graph.txt. | ||
19 | |||
20 | - Video port 0 for CMOS/TTL input | ||
21 | - Video port 1 for LVDS output | ||
22 | |||
23 | |||
24 | Example | ||
25 | ------- | ||
26 | |||
27 | lvds_enc: encoder@0 { | ||
28 | compatible = "thine,thc63lvdm83d"; | ||
29 | |||
30 | ports { | ||
31 | #address-cells = <1>; | ||
32 | #size-cells = <0>; | ||
33 | |||
34 | port@0 { | ||
35 | reg = <0>; | ||
36 | |||
37 | lvds_enc_in: endpoint@0 { | ||
38 | remote-endpoint = <&rgb_out>; | ||
39 | }; | ||
40 | }; | ||
41 | |||
42 | port@1 { | ||
43 | reg = <1>; | ||
44 | |||
45 | lvds_enc_out: endpoint@0 { | ||
46 | remote-endpoint = <&panel_in>; | ||
47 | }; | ||
48 | }; | ||
49 | }; | ||
50 | }; | ||
diff --git a/Documentation/devicetree/bindings/video/vga-connector.txt b/Documentation/devicetree/bindings/video/vga-connector.txt new file mode 100644 index 000000000000..c727f298e7ad --- /dev/null +++ b/Documentation/devicetree/bindings/video/vga-connector.txt | |||
@@ -0,0 +1,36 @@ | |||
1 | VGA Connector | ||
2 | ============= | ||
3 | |||
4 | Required properties: | ||
5 | |||
6 | - compatible: "vga-connector" | ||
7 | |||
8 | Optional properties: | ||
9 | |||
10 | - label: a symbolic name for the connector corresponding to a hardware label | ||
11 | - ddc-i2c-bus: phandle to the I2C bus that is connected to VGA DDC | ||
12 | |||
13 | Required nodes: | ||
14 | |||
15 | The VGA connector internal connections are modeled using the OF graph bindings | ||
16 | specified in Documentation/devicetree/bindings/graph.txt. | ||
17 | |||
18 | The VGA connector has a single port that must be connected to a video source | ||
19 | port. | ||
20 | |||
21 | |||
22 | Example | ||
23 | ------- | ||
24 | |||
25 | vga0: connector@0 { | ||
26 | compatible = "vga-connector"; | ||
27 | label = "vga"; | ||
28 | |||
29 | ddc-i2c-bus = <&i2c3>; | ||
30 | |||
31 | port { | ||
32 | vga_connector_in: endpoint { | ||
33 | remote-endpoint = <&adv7123_out>; | ||
34 | }; | ||
35 | }; | ||
36 | }; | ||
diff --git a/Documentation/devicetree/bindings/staging/xillybus.txt b/Documentation/devicetree/bindings/xillybus/xillybus.txt index 9e316dc2e40f..9e316dc2e40f 100644 --- a/Documentation/devicetree/bindings/staging/xillybus.txt +++ b/Documentation/devicetree/bindings/xillybus/xillybus.txt | |||
diff --git a/Documentation/devicetree/booting-without-of.txt b/Documentation/devicetree/booting-without-of.txt index 1f013bd0d320..77685185cf3b 100644 --- a/Documentation/devicetree/booting-without-of.txt +++ b/Documentation/devicetree/booting-without-of.txt | |||
@@ -51,6 +51,8 @@ Table of Contents | |||
51 | 51 | ||
52 | VIII - Specifying device power management information (sleep property) | 52 | VIII - Specifying device power management information (sleep property) |
53 | 53 | ||
54 | IX - Specifying dma bus information | ||
55 | |||
54 | Appendix A - Sample SOC node for MPC8540 | 56 | Appendix A - Sample SOC node for MPC8540 |
55 | 57 | ||
56 | 58 | ||
@@ -1332,6 +1334,57 @@ reasonably grouped in this manner, then create a virtual sleep controller | |||
1332 | (similar to an interrupt nexus, except that defining a standardized | 1334 | (similar to an interrupt nexus, except that defining a standardized |
1333 | sleep-map should wait until its necessity is demonstrated). | 1335 | sleep-map should wait until its necessity is demonstrated). |
1334 | 1336 | ||
1337 | IX - Specifying dma bus information | ||
1338 | |||
1339 | Some devices may have DMA memory range shifted relatively to the beginning of | ||
1340 | RAM, or even placed outside of kernel RAM. For example, the Keystone 2 SoC | ||
1341 | worked in LPAE mode with 4G memory has: | ||
1342 | - RAM range: [0x8 0000 0000, 0x8 FFFF FFFF] | ||
1343 | - DMA range: [ 0x8000 0000, 0xFFFF FFFF] | ||
1344 | and DMA range is aliased into first 2G of RAM in HW. | ||
1345 | |||
1346 | In such cases, DMA addresses translation should be performed between CPU phys | ||
1347 | and DMA addresses. The "dma-ranges" property is intended to be used | ||
1348 | for describing the configuration of such system in DT. | ||
1349 | |||
1350 | In addition, each DMA master device on the DMA bus may or may not support | ||
1351 | coherent DMA operations. The "dma-coherent" property is intended to be used | ||
1352 | for identifying devices supported coherent DMA operations in DT. | ||
1353 | |||
1354 | * DMA Bus master | ||
1355 | Optional property: | ||
1356 | - dma-ranges: <prop-encoded-array> encoded as arbitrary number of triplets of | ||
1357 | (child-bus-address, parent-bus-address, length). Each triplet specified | ||
1358 | describes a contiguous DMA address range. | ||
1359 | The dma-ranges property is used to describe the direct memory access (DMA) | ||
1360 | structure of a memory-mapped bus whose device tree parent can be accessed | ||
1361 | from DMA operations originating from the bus. It provides a means of | ||
1362 | defining a mapping or translation between the physical address space of | ||
1363 | the bus and the physical address space of the parent of the bus. | ||
1364 | (for more information see ePAPR specification) | ||
1365 | |||
1366 | * DMA Bus child | ||
1367 | Optional property: | ||
1368 | - dma-ranges: <empty> value. if present - It means that DMA addresses | ||
1369 | translation has to be enabled for this device. | ||
1370 | - dma-coherent: Present if dma operations are coherent | ||
1371 | |||
1372 | Example: | ||
1373 | soc { | ||
1374 | compatible = "ti,keystone","simple-bus"; | ||
1375 | ranges = <0x0 0x0 0x0 0xc0000000>; | ||
1376 | dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>; | ||
1377 | |||
1378 | [...] | ||
1379 | |||
1380 | usb: usb@2680000 { | ||
1381 | compatible = "ti,keystone-dwc3"; | ||
1382 | |||
1383 | [...] | ||
1384 | dma-coherent; | ||
1385 | }; | ||
1386 | }; | ||
1387 | |||
1335 | Appendix A - Sample SOC node for MPC8540 | 1388 | Appendix A - Sample SOC node for MPC8540 |
1336 | ======================================== | 1389 | ======================================== |
1337 | 1390 | ||
diff --git a/Documentation/devicetree/dynamic-resolution-notes.txt b/Documentation/devicetree/dynamic-resolution-notes.txt new file mode 100644 index 000000000000..083d23262abe --- /dev/null +++ b/Documentation/devicetree/dynamic-resolution-notes.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | Device Tree Dynamic Resolver Notes | ||
2 | ---------------------------------- | ||
3 | |||
4 | This document describes the implementation of the in-kernel | ||
5 | Device Tree resolver, residing in drivers/of/resolver.c and is a | ||
6 | companion document to Documentation/devicetree/dt-object-internal.txt[1] | ||
7 | |||
8 | How the resolver works | ||
9 | ---------------------- | ||
10 | |||
11 | The resolver is given as an input an arbitrary tree compiled with the | ||
12 | proper dtc option and having a /plugin/ tag. This generates the | ||
13 | appropriate __fixups__ & __local_fixups__ nodes as described in [1]. | ||
14 | |||
15 | In sequence the resolver works by the following steps: | ||
16 | |||
17 | 1. Get the maximum device tree phandle value from the live tree + 1. | ||
18 | 2. Adjust all the local phandles of the tree to resolve by that amount. | ||
19 | 3. Using the __local__fixups__ node information adjust all local references | ||
20 | by the same amount. | ||
21 | 4. For each property in the __fixups__ node locate the node it references | ||
22 | in the live tree. This is the label used to tag the node. | ||
23 | 5. Retrieve the phandle of the target of the fixup. | ||
24 | 6. For each fixup in the property locate the node:property:offset location | ||
25 | and replace it with the phandle value. | ||
diff --git a/Documentation/devicetree/of_selftest.txt b/Documentation/devicetree/of_selftest.txt new file mode 100644 index 000000000000..1e3d5c92b5e3 --- /dev/null +++ b/Documentation/devicetree/of_selftest.txt | |||
@@ -0,0 +1,211 @@ | |||
1 | Open Firmware Device Tree Selftest | ||
2 | ---------------------------------- | ||
3 | |||
4 | Author: Gaurav Minocha <gaurav.minocha.os@gmail.com> | ||
5 | |||
6 | 1. Introduction | ||
7 | |||
8 | This document explains how the test data required for executing OF selftest | ||
9 | is attached to the live tree dynamically, independent of the machine's | ||
10 | architecture. | ||
11 | |||
12 | It is recommended to read the following documents before moving ahead. | ||
13 | |||
14 | [1] Documentation/devicetree/usage-model.txt | ||
15 | [2] http://www.devicetree.org/Device_Tree_Usage | ||
16 | |||
17 | OF Selftest has been designed to test the interface (include/linux/of.h) | ||
18 | provided to device driver developers to fetch the device information..etc. | ||
19 | from the unflattened device tree data structure. This interface is used by | ||
20 | most of the device drivers in various use cases. | ||
21 | |||
22 | |||
23 | 2. Test-data | ||
24 | |||
25 | The Device Tree Source file (drivers/of/testcase-data/testcases.dts) contains | ||
26 | the test data required for executing the unit tests automated in | ||
27 | drivers/of/selftests.c. Currently, following Device Tree Source Include files | ||
28 | (.dtsi) are included in testcase.dts: | ||
29 | |||
30 | drivers/of/testcase-data/tests-interrupts.dtsi | ||
31 | drivers/of/testcase-data/tests-platform.dtsi | ||
32 | drivers/of/testcase-data/tests-phandle.dtsi | ||
33 | drivers/of/testcase-data/tests-match.dtsi | ||
34 | |||
35 | When the kernel is build with OF_SELFTEST enabled, then the following make rule | ||
36 | |||
37 | $(obj)/%.dtb: $(src)/%.dts FORCE | ||
38 | $(call if_changed_dep, dtc) | ||
39 | |||
40 | is used to compile the DT source file (testcase.dts) into a binary blob | ||
41 | (testcase.dtb), also referred as flattened DT. | ||
42 | |||
43 | After that, using the following rule the binary blob above is wrapped as an | ||
44 | assembly file (testcase.dtb.S). | ||
45 | |||
46 | $(obj)/%.dtb.S: $(obj)/%.dtb | ||
47 | $(call cmd, dt_S_dtb) | ||
48 | |||
49 | The assembly file is compiled into an object file (testcase.dtb.o), and is | ||
50 | linked into the kernel image. | ||
51 | |||
52 | |||
53 | 2.1. Adding the test data | ||
54 | |||
55 | Un-flattened device tree structure: | ||
56 | |||
57 | Un-flattened device tree consists of connected device_node(s) in form of a tree | ||
58 | structure described below. | ||
59 | |||
60 | // following struct members are used to construct the tree | ||
61 | struct device_node { | ||
62 | ... | ||
63 | struct device_node *parent; | ||
64 | struct device_node *child; | ||
65 | struct device_node *sibling; | ||
66 | struct device_node *allnext; /* next in list of all nodes */ | ||
67 | ... | ||
68 | }; | ||
69 | |||
70 | Figure 1, describes a generic structure of machine's un-flattened device tree | ||
71 | considering only child and sibling pointers. There exists another pointer, | ||
72 | *parent, that is used to traverse the tree in the reverse direction. So, at | ||
73 | a particular level the child node and all the sibling nodes will have a parent | ||
74 | pointer pointing to a common node (e.g. child1, sibling2, sibling3, sibling4's | ||
75 | parent points to root node) | ||
76 | |||
77 | root ('/') | ||
78 | | | ||
79 | child1 -> sibling2 -> sibling3 -> sibling4 -> null | ||
80 | | | | | | ||
81 | | | | null | ||
82 | | | | | ||
83 | | | child31 -> sibling32 -> null | ||
84 | | | | | | ||
85 | | | null null | ||
86 | | | | ||
87 | | child21 -> sibling22 -> sibling23 -> null | ||
88 | | | | | | ||
89 | | null null null | ||
90 | | | ||
91 | child11 -> sibling12 -> sibling13 -> sibling14 -> null | ||
92 | | | | | | ||
93 | | | | null | ||
94 | | | | | ||
95 | null null child131 -> null | ||
96 | | | ||
97 | null | ||
98 | |||
99 | Figure 1: Generic structure of un-flattened device tree | ||
100 | |||
101 | |||
102 | *allnext: it is used to link all the nodes of DT into a list. So, for the | ||
103 | above tree the list would be as follows: | ||
104 | |||
105 | root->child1->child11->sibling12->sibling13->child131->sibling14->sibling2-> | ||
106 | child21->sibling22->sibling23->sibling3->child31->sibling32->sibling4->null | ||
107 | |||
108 | Before executing OF selftest, it is required to attach the test data to | ||
109 | machine's device tree (if present). So, when selftest_data_add() is called, | ||
110 | at first it reads the flattened device tree data linked into the kernel image | ||
111 | via the following kernel symbols: | ||
112 | |||
113 | __dtb_testcases_begin - address marking the start of test data blob | ||
114 | __dtb_testcases_end - address marking the end of test data blob | ||
115 | |||
116 | Secondly, it calls of_fdt_unflatten_tree() to unflatten the flattened | ||
117 | blob. And finally, if the machine's device tree (i.e live tree) is present, | ||
118 | then it attaches the unflattened test data tree to the live tree, else it | ||
119 | attaches itself as a live device tree. | ||
120 | |||
121 | attach_node_and_children() uses of_attach_node() to attach the nodes into the | ||
122 | live tree as explained below. To explain the same, the test data tree described | ||
123 | in Figure 2 is attached to the live tree described in Figure 1. | ||
124 | |||
125 | root ('/') | ||
126 | | | ||
127 | testcase-data | ||
128 | | | ||
129 | test-child0 -> test-sibling1 -> test-sibling2 -> test-sibling3 -> null | ||
130 | | | | | | ||
131 | test-child01 null null null | ||
132 | |||
133 | |||
134 | allnext list: | ||
135 | |||
136 | root->testcase-data->test-child0->test-child01->test-sibling1->test-sibling2 | ||
137 | ->test-sibling3->null | ||
138 | |||
139 | Figure 2: Example test data tree to be attached to live tree. | ||
140 | |||
141 | According to the scenario above, the live tree is already present so it isn't | ||
142 | required to attach the root('/') node. All other nodes are attached by calling | ||
143 | of_attach_node() on each node. | ||
144 | |||
145 | In the function of_attach_node(), the new node is attached as the child of the | ||
146 | given parent in live tree. But, if parent already has a child then the new node | ||
147 | replaces the current child and turns it into its sibling. So, when the testcase | ||
148 | data node is attached to the live tree above (Figure 1), the final structure is | ||
149 | as shown in Figure 3. | ||
150 | |||
151 | root ('/') | ||
152 | | | ||
153 | testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null | ||
154 | | | | | | | ||
155 | (...) | | | null | ||
156 | | | child31 -> sibling32 -> null | ||
157 | | | | | | ||
158 | | | null null | ||
159 | | | | ||
160 | | child21 -> sibling22 -> sibling23 -> null | ||
161 | | | | | | ||
162 | | null null null | ||
163 | | | ||
164 | child11 -> sibling12 -> sibling13 -> sibling14 -> null | ||
165 | | | | | | ||
166 | null null | null | ||
167 | | | ||
168 | child131 -> null | ||
169 | | | ||
170 | null | ||
171 | ----------------------------------------------------------------------- | ||
172 | |||
173 | root ('/') | ||
174 | | | ||
175 | testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null | ||
176 | | | | | | | ||
177 | | (...) (...) (...) null | ||
178 | | | ||
179 | test-sibling3 -> test-sibling2 -> test-sibling1 -> test-child0 -> null | ||
180 | | | | | | ||
181 | null null null test-child01 | ||
182 | |||
183 | |||
184 | Figure 3: Live device tree structure after attaching the testcase-data. | ||
185 | |||
186 | |||
187 | Astute readers would have noticed that test-child0 node becomes the last | ||
188 | sibling compared to the earlier structure (Figure 2). After attaching first | ||
189 | test-child0 the test-sibling1 is attached that pushes the child node | ||
190 | (i.e. test-child0) to become a sibling and makes itself a child node, | ||
191 | as mentioned above. | ||
192 | |||
193 | If a duplicate node is found (i.e. if a node with same full_name property is | ||
194 | already present in the live tree), then the node isn't attached rather its | ||
195 | properties are updated to the live tree's node by calling the function | ||
196 | update_node_properties(). | ||
197 | |||
198 | |||
199 | 2.2. Removing the test data | ||
200 | |||
201 | Once the test case execution is complete, selftest_data_remove is called in | ||
202 | order to remove the device nodes attached initially (first the leaf nodes are | ||
203 | detached and then moving up the parent nodes are removed, and eventually the | ||
204 | whole tree). selftest_data_remove() calls detach_node_and_children() that uses | ||
205 | of_detach_node() to detach the nodes from the live device tree. | ||
206 | |||
207 | To detach a node, of_detach_node() first updates all_next linked list, by | ||
208 | attaching the previous node's allnext to current node's allnext pointer. And | ||
209 | then, it either updates the child pointer of given node's parent to its | ||
210 | sibling or attaches the previous sibling to the given node's sibling, as | ||
211 | appropriate. That is it :) | ||