Commit 45be08822fc15d34b93e6bcf69614c69dbed35b1
Committed by
Tom Rini
1 parent
c0cdd5adc8
Exists in
smarc_8mq_lf_v2020.04
and in
17 other branches
ARM: DTS: stm32: add SDIO controller support for stm32f469-disco
STM32F469 SoC uses an arm_pl180_mmci SDIO controller. Signed-off-by: Andrea Merello <andrea.merello@gmail.com> Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Showing 3 changed files with 59 additions and 0 deletions Inline Diff
arch/arm/dts/stm32f4-pinctrl.dtsi
1 | /* | 1 | /* |
2 | * Copyright (C) 2017, STMicroelectronics - All Rights Reserved | 2 | * Copyright (C) 2017, STMicroelectronics - All Rights Reserved |
3 | * Author(s): Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | 3 | * Author(s): Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. |
4 | * | 4 | * |
5 | * This file is dual-licensed: you can use it either under the terms | 5 | * This file is dual-licensed: you can use it either under the terms |
6 | * of the GPL or the X11 license, at your option. Note that this dual | 6 | * of the GPL or the X11 license, at your option. Note that this dual |
7 | * licensing only applies to this file, and not this project as a | 7 | * licensing only applies to this file, and not this project as a |
8 | * whole. | 8 | * whole. |
9 | * | 9 | * |
10 | * a) This file is free software; you can redistribute it and/or | 10 | * a) This file is free software; you can redistribute it and/or |
11 | * modify it under the terms of the GNU General Public License as | 11 | * modify it under the terms of the GNU General Public License as |
12 | * published by the Free Software Foundation; either version 2 of the | 12 | * published by the Free Software Foundation; either version 2 of the |
13 | * License, or (at your option) any later version. | 13 | * License, or (at your option) any later version. |
14 | * | 14 | * |
15 | * This file is distributed in the hope that it will be useful, | 15 | * This file is distributed in the hope that it will be useful, |
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
18 | * GNU General Public License for more details. | 18 | * GNU General Public License for more details. |
19 | * | 19 | * |
20 | * Or, alternatively, | 20 | * Or, alternatively, |
21 | * | 21 | * |
22 | * b) Permission is hereby granted, free of charge, to any person | 22 | * b) Permission is hereby granted, free of charge, to any person |
23 | * obtaining a copy of this software and associated documentation | 23 | * obtaining a copy of this software and associated documentation |
24 | * files (the "Software"), to deal in the Software without | 24 | * files (the "Software"), to deal in the Software without |
25 | * restriction, including without limitation the rights to use, | 25 | * restriction, including without limitation the rights to use, |
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | 26 | * copy, modify, merge, publish, distribute, sublicense, and/or |
27 | * sell copies of the Software, and to permit persons to whom the | 27 | * sell copies of the Software, and to permit persons to whom the |
28 | * Software is furnished to do so, subject to the following | 28 | * Software is furnished to do so, subject to the following |
29 | * conditions: | 29 | * conditions: |
30 | * | 30 | * |
31 | * The above copyright notice and this permission notice shall be | 31 | * The above copyright notice and this permission notice shall be |
32 | * included in all copies or substantial portions of the Software. | 32 | * included in all copies or substantial portions of the Software. |
33 | * | 33 | * |
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | 35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | 37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | 38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | 39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | 40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
41 | * OTHER DEALINGS IN THE SOFTWARE. | 41 | * OTHER DEALINGS IN THE SOFTWARE. |
42 | */ | 42 | */ |
43 | 43 | ||
44 | #include <dt-bindings/pinctrl/stm32-pinfunc.h> | 44 | #include <dt-bindings/pinctrl/stm32-pinfunc.h> |
45 | #include <dt-bindings/mfd/stm32f4-rcc.h> | 45 | #include <dt-bindings/mfd/stm32f4-rcc.h> |
46 | 46 | ||
47 | / { | 47 | / { |
48 | soc { | 48 | soc { |
49 | pinctrl: pin-controller { | 49 | pinctrl: pin-controller { |
50 | #address-cells = <1>; | 50 | #address-cells = <1>; |
51 | #size-cells = <1>; | 51 | #size-cells = <1>; |
52 | ranges = <0 0x40020000 0x3000>; | 52 | ranges = <0 0x40020000 0x3000>; |
53 | interrupt-parent = <&exti>; | 53 | interrupt-parent = <&exti>; |
54 | st,syscfg = <&syscfg 0x8>; | 54 | st,syscfg = <&syscfg 0x8>; |
55 | pins-are-numbered; | 55 | pins-are-numbered; |
56 | 56 | ||
57 | gpioa: gpio@40020000 { | 57 | gpioa: gpio@40020000 { |
58 | gpio-controller; | 58 | gpio-controller; |
59 | #gpio-cells = <2>; | 59 | #gpio-cells = <2>; |
60 | interrupt-controller; | 60 | interrupt-controller; |
61 | #interrupt-cells = <2>; | 61 | #interrupt-cells = <2>; |
62 | reg = <0x0 0x400>; | 62 | reg = <0x0 0x400>; |
63 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>; | 63 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>; |
64 | st,bank-name = "GPIOA"; | 64 | st,bank-name = "GPIOA"; |
65 | }; | 65 | }; |
66 | 66 | ||
67 | gpiob: gpio@40020400 { | 67 | gpiob: gpio@40020400 { |
68 | gpio-controller; | 68 | gpio-controller; |
69 | #gpio-cells = <2>; | 69 | #gpio-cells = <2>; |
70 | interrupt-controller; | 70 | interrupt-controller; |
71 | #interrupt-cells = <2>; | 71 | #interrupt-cells = <2>; |
72 | reg = <0x400 0x400>; | 72 | reg = <0x400 0x400>; |
73 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOB)>; | 73 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOB)>; |
74 | st,bank-name = "GPIOB"; | 74 | st,bank-name = "GPIOB"; |
75 | }; | 75 | }; |
76 | 76 | ||
77 | gpioc: gpio@40020800 { | 77 | gpioc: gpio@40020800 { |
78 | gpio-controller; | 78 | gpio-controller; |
79 | #gpio-cells = <2>; | 79 | #gpio-cells = <2>; |
80 | interrupt-controller; | 80 | interrupt-controller; |
81 | #interrupt-cells = <2>; | 81 | #interrupt-cells = <2>; |
82 | reg = <0x800 0x400>; | 82 | reg = <0x800 0x400>; |
83 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOC)>; | 83 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOC)>; |
84 | st,bank-name = "GPIOC"; | 84 | st,bank-name = "GPIOC"; |
85 | }; | 85 | }; |
86 | 86 | ||
87 | gpiod: gpio@40020c00 { | 87 | gpiod: gpio@40020c00 { |
88 | gpio-controller; | 88 | gpio-controller; |
89 | #gpio-cells = <2>; | 89 | #gpio-cells = <2>; |
90 | interrupt-controller; | 90 | interrupt-controller; |
91 | #interrupt-cells = <2>; | 91 | #interrupt-cells = <2>; |
92 | reg = <0xc00 0x400>; | 92 | reg = <0xc00 0x400>; |
93 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOD)>; | 93 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOD)>; |
94 | st,bank-name = "GPIOD"; | 94 | st,bank-name = "GPIOD"; |
95 | }; | 95 | }; |
96 | 96 | ||
97 | gpioe: gpio@40021000 { | 97 | gpioe: gpio@40021000 { |
98 | gpio-controller; | 98 | gpio-controller; |
99 | #gpio-cells = <2>; | 99 | #gpio-cells = <2>; |
100 | interrupt-controller; | 100 | interrupt-controller; |
101 | #interrupt-cells = <2>; | 101 | #interrupt-cells = <2>; |
102 | reg = <0x1000 0x400>; | 102 | reg = <0x1000 0x400>; |
103 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOE)>; | 103 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOE)>; |
104 | st,bank-name = "GPIOE"; | 104 | st,bank-name = "GPIOE"; |
105 | }; | 105 | }; |
106 | 106 | ||
107 | gpiof: gpio@40021400 { | 107 | gpiof: gpio@40021400 { |
108 | gpio-controller; | 108 | gpio-controller; |
109 | #gpio-cells = <2>; | 109 | #gpio-cells = <2>; |
110 | interrupt-controller; | 110 | interrupt-controller; |
111 | #interrupt-cells = <2>; | 111 | #interrupt-cells = <2>; |
112 | reg = <0x1400 0x400>; | 112 | reg = <0x1400 0x400>; |
113 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOF)>; | 113 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOF)>; |
114 | st,bank-name = "GPIOF"; | 114 | st,bank-name = "GPIOF"; |
115 | }; | 115 | }; |
116 | 116 | ||
117 | gpiog: gpio@40021800 { | 117 | gpiog: gpio@40021800 { |
118 | gpio-controller; | 118 | gpio-controller; |
119 | #gpio-cells = <2>; | 119 | #gpio-cells = <2>; |
120 | interrupt-controller; | 120 | interrupt-controller; |
121 | #interrupt-cells = <2>; | 121 | #interrupt-cells = <2>; |
122 | reg = <0x1800 0x400>; | 122 | reg = <0x1800 0x400>; |
123 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOG)>; | 123 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOG)>; |
124 | st,bank-name = "GPIOG"; | 124 | st,bank-name = "GPIOG"; |
125 | }; | 125 | }; |
126 | 126 | ||
127 | gpioh: gpio@40021c00 { | 127 | gpioh: gpio@40021c00 { |
128 | gpio-controller; | 128 | gpio-controller; |
129 | #gpio-cells = <2>; | 129 | #gpio-cells = <2>; |
130 | interrupt-controller; | 130 | interrupt-controller; |
131 | #interrupt-cells = <2>; | 131 | #interrupt-cells = <2>; |
132 | reg = <0x1c00 0x400>; | 132 | reg = <0x1c00 0x400>; |
133 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOH)>; | 133 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOH)>; |
134 | st,bank-name = "GPIOH"; | 134 | st,bank-name = "GPIOH"; |
135 | }; | 135 | }; |
136 | 136 | ||
137 | gpioi: gpio@40022000 { | 137 | gpioi: gpio@40022000 { |
138 | gpio-controller; | 138 | gpio-controller; |
139 | #gpio-cells = <2>; | 139 | #gpio-cells = <2>; |
140 | interrupt-controller; | 140 | interrupt-controller; |
141 | #interrupt-cells = <2>; | 141 | #interrupt-cells = <2>; |
142 | reg = <0x2000 0x400>; | 142 | reg = <0x2000 0x400>; |
143 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOI)>; | 143 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOI)>; |
144 | st,bank-name = "GPIOI"; | 144 | st,bank-name = "GPIOI"; |
145 | }; | 145 | }; |
146 | 146 | ||
147 | gpioj: gpio@40022400 { | 147 | gpioj: gpio@40022400 { |
148 | gpio-controller; | 148 | gpio-controller; |
149 | #gpio-cells = <2>; | 149 | #gpio-cells = <2>; |
150 | interrupt-controller; | 150 | interrupt-controller; |
151 | #interrupt-cells = <2>; | 151 | #interrupt-cells = <2>; |
152 | reg = <0x2400 0x400>; | 152 | reg = <0x2400 0x400>; |
153 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOJ)>; | 153 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOJ)>; |
154 | st,bank-name = "GPIOJ"; | 154 | st,bank-name = "GPIOJ"; |
155 | }; | 155 | }; |
156 | 156 | ||
157 | gpiok: gpio@40022800 { | 157 | gpiok: gpio@40022800 { |
158 | gpio-controller; | 158 | gpio-controller; |
159 | #gpio-cells = <2>; | 159 | #gpio-cells = <2>; |
160 | interrupt-controller; | 160 | interrupt-controller; |
161 | #interrupt-cells = <2>; | 161 | #interrupt-cells = <2>; |
162 | reg = <0x2800 0x400>; | 162 | reg = <0x2800 0x400>; |
163 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOK)>; | 163 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOK)>; |
164 | st,bank-name = "GPIOK"; | 164 | st,bank-name = "GPIOK"; |
165 | }; | 165 | }; |
166 | 166 | ||
167 | usart1_pins_a: usart1@0 { | 167 | usart1_pins_a: usart1@0 { |
168 | pins1 { | 168 | pins1 { |
169 | pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */ | 169 | pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */ |
170 | bias-disable; | 170 | bias-disable; |
171 | drive-push-pull; | 171 | drive-push-pull; |
172 | slew-rate = <0>; | 172 | slew-rate = <0>; |
173 | }; | 173 | }; |
174 | pins2 { | 174 | pins2 { |
175 | pinmux = <STM32_PINMUX('A', 10, AF7)>; /* USART1_RX */ | 175 | pinmux = <STM32_PINMUX('A', 10, AF7)>; /* USART1_RX */ |
176 | bias-disable; | 176 | bias-disable; |
177 | }; | 177 | }; |
178 | }; | 178 | }; |
179 | 179 | ||
180 | usart3_pins_a: usart3@0 { | 180 | usart3_pins_a: usart3@0 { |
181 | pins1 { | 181 | pins1 { |
182 | pinmux = <STM32_PINMUX('B', 10, AF7)>; /* USART3_TX */ | 182 | pinmux = <STM32_PINMUX('B', 10, AF7)>; /* USART3_TX */ |
183 | bias-disable; | 183 | bias-disable; |
184 | drive-push-pull; | 184 | drive-push-pull; |
185 | slew-rate = <0>; | 185 | slew-rate = <0>; |
186 | }; | 186 | }; |
187 | pins2 { | 187 | pins2 { |
188 | pinmux = <STM32_PINMUX('B', 11, AF7)>; /* USART3_RX */ | 188 | pinmux = <STM32_PINMUX('B', 11, AF7)>; /* USART3_RX */ |
189 | bias-disable; | 189 | bias-disable; |
190 | }; | 190 | }; |
191 | }; | 191 | }; |
192 | 192 | ||
193 | usbotg_fs_pins_a: usbotg_fs@0 { | 193 | usbotg_fs_pins_a: usbotg_fs@0 { |
194 | pins { | 194 | pins { |
195 | pinmux = <STM32_PINMUX('A', 10, AF10)>, /* OTG_FS_ID */ | 195 | pinmux = <STM32_PINMUX('A', 10, AF10)>, /* OTG_FS_ID */ |
196 | <STM32_PINMUX('A', 11, AF10)>, /* OTG_FS_DM */ | 196 | <STM32_PINMUX('A', 11, AF10)>, /* OTG_FS_DM */ |
197 | <STM32_PINMUX('A', 12, AF10)>; /* OTG_FS_DP */ | 197 | <STM32_PINMUX('A', 12, AF10)>; /* OTG_FS_DP */ |
198 | bias-disable; | 198 | bias-disable; |
199 | drive-push-pull; | 199 | drive-push-pull; |
200 | slew-rate = <2>; | 200 | slew-rate = <2>; |
201 | }; | 201 | }; |
202 | }; | 202 | }; |
203 | 203 | ||
204 | usbotg_fs_pins_b: usbotg_fs@1 { | 204 | usbotg_fs_pins_b: usbotg_fs@1 { |
205 | pins { | 205 | pins { |
206 | pinmux = <STM32_PINMUX('B', 12, AF12)>, /* OTG_HS_ID */ | 206 | pinmux = <STM32_PINMUX('B', 12, AF12)>, /* OTG_HS_ID */ |
207 | <STM32_PINMUX('B', 14, AF12)>, /* OTG_HS_DM */ | 207 | <STM32_PINMUX('B', 14, AF12)>, /* OTG_HS_DM */ |
208 | <STM32_PINMUX('B', 15, AF12)>; /* OTG_HS_DP */ | 208 | <STM32_PINMUX('B', 15, AF12)>; /* OTG_HS_DP */ |
209 | bias-disable; | 209 | bias-disable; |
210 | drive-push-pull; | 210 | drive-push-pull; |
211 | slew-rate = <2>; | 211 | slew-rate = <2>; |
212 | }; | 212 | }; |
213 | }; | 213 | }; |
214 | 214 | ||
215 | usbotg_hs_pins_a: usbotg_hs@0 { | 215 | usbotg_hs_pins_a: usbotg_hs@0 { |
216 | pins { | 216 | pins { |
217 | pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT*/ | 217 | pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT*/ |
218 | <STM32_PINMUX('I', 11, AF10)>, /* OTG_HS_ULPI_DIR */ | 218 | <STM32_PINMUX('I', 11, AF10)>, /* OTG_HS_ULPI_DIR */ |
219 | <STM32_PINMUX('C', 0, AF10)>, /* OTG_HS_ULPI_STP */ | 219 | <STM32_PINMUX('C', 0, AF10)>, /* OTG_HS_ULPI_STP */ |
220 | <STM32_PINMUX('A', 5, AF10)>, /* OTG_HS_ULPI_CK */ | 220 | <STM32_PINMUX('A', 5, AF10)>, /* OTG_HS_ULPI_CK */ |
221 | <STM32_PINMUX('A', 3, AF10)>, /* OTG_HS_ULPI_D0 */ | 221 | <STM32_PINMUX('A', 3, AF10)>, /* OTG_HS_ULPI_D0 */ |
222 | <STM32_PINMUX('B', 0, AF10)>, /* OTG_HS_ULPI_D1 */ | 222 | <STM32_PINMUX('B', 0, AF10)>, /* OTG_HS_ULPI_D1 */ |
223 | <STM32_PINMUX('B', 1, AF10)>, /* OTG_HS_ULPI_D2 */ | 223 | <STM32_PINMUX('B', 1, AF10)>, /* OTG_HS_ULPI_D2 */ |
224 | <STM32_PINMUX('B', 10, AF10)>, /* OTG_HS_ULPI_D3 */ | 224 | <STM32_PINMUX('B', 10, AF10)>, /* OTG_HS_ULPI_D3 */ |
225 | <STM32_PINMUX('B', 11, AF10)>, /* OTG_HS_ULPI_D4 */ | 225 | <STM32_PINMUX('B', 11, AF10)>, /* OTG_HS_ULPI_D4 */ |
226 | <STM32_PINMUX('B', 12, AF10)>, /* OTG_HS_ULPI_D5 */ | 226 | <STM32_PINMUX('B', 12, AF10)>, /* OTG_HS_ULPI_D5 */ |
227 | <STM32_PINMUX('B', 13, AF10)>, /* OTG_HS_ULPI_D6 */ | 227 | <STM32_PINMUX('B', 13, AF10)>, /* OTG_HS_ULPI_D6 */ |
228 | <STM32_PINMUX('B', 5, AF10)>; /* OTG_HS_ULPI_D7 */ | 228 | <STM32_PINMUX('B', 5, AF10)>; /* OTG_HS_ULPI_D7 */ |
229 | bias-disable; | 229 | bias-disable; |
230 | drive-push-pull; | 230 | drive-push-pull; |
231 | slew-rate = <2>; | 231 | slew-rate = <2>; |
232 | }; | 232 | }; |
233 | }; | 233 | }; |
234 | 234 | ||
235 | ethernet_mii: mii@0 { | 235 | ethernet_mii: mii@0 { |
236 | pins { | 236 | pins { |
237 | pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_MII_TXD0_ETH_RMII_TXD0 */ | 237 | pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_MII_TXD0_ETH_RMII_TXD0 */ |
238 | <STM32_PINMUX('G', 14, AF11)>, /* ETH_MII_TXD1_ETH_RMII_TXD1 */ | 238 | <STM32_PINMUX('G', 14, AF11)>, /* ETH_MII_TXD1_ETH_RMII_TXD1 */ |
239 | <STM32_PINMUX('C', 2, AF11)>, /* ETH_MII_TXD2 */ | 239 | <STM32_PINMUX('C', 2, AF11)>, /* ETH_MII_TXD2 */ |
240 | <STM32_PINMUX('B', 8, AF11)>, /* ETH_MII_TXD3 */ | 240 | <STM32_PINMUX('B', 8, AF11)>, /* ETH_MII_TXD3 */ |
241 | <STM32_PINMUX('C', 3, AF11)>, /* ETH_MII_TX_CLK */ | 241 | <STM32_PINMUX('C', 3, AF11)>, /* ETH_MII_TX_CLK */ |
242 | <STM32_PINMUX('G', 11,AF11)>, /* ETH_MII_TX_EN_ETH_RMII_TX_EN */ | 242 | <STM32_PINMUX('G', 11,AF11)>, /* ETH_MII_TX_EN_ETH_RMII_TX_EN */ |
243 | <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */ | 243 | <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */ |
244 | <STM32_PINMUX('C', 1, AF11)>, /* ETH_MDC */ | 244 | <STM32_PINMUX('C', 1, AF11)>, /* ETH_MDC */ |
245 | <STM32_PINMUX('A', 1, AF11)>, /* ETH_MII_RX_CLK_ETH_RMII_REF_CLK */ | 245 | <STM32_PINMUX('A', 1, AF11)>, /* ETH_MII_RX_CLK_ETH_RMII_REF_CLK */ |
246 | <STM32_PINMUX('A', 7, AF11)>, /* ETH_MII_RX_DV_ETH_RMII_CRS_DV */ | 246 | <STM32_PINMUX('A', 7, AF11)>, /* ETH_MII_RX_DV_ETH_RMII_CRS_DV */ |
247 | <STM32_PINMUX('C', 4, AF11)>, /* ETH_MII_RXD0_ETH_RMII_RXD0 */ | 247 | <STM32_PINMUX('C', 4, AF11)>, /* ETH_MII_RXD0_ETH_RMII_RXD0 */ |
248 | <STM32_PINMUX('C', 5, AF11)>, /* ETH_MII_RXD1_ETH_RMII_RXD1 */ | 248 | <STM32_PINMUX('C', 5, AF11)>, /* ETH_MII_RXD1_ETH_RMII_RXD1 */ |
249 | <STM32_PINMUX('H', 6, AF11)>, /* ETH_MII_RXD2 */ | 249 | <STM32_PINMUX('H', 6, AF11)>, /* ETH_MII_RXD2 */ |
250 | <STM32_PINMUX('H', 7, AF11)>; /* ETH_MII_RXD3 */ | 250 | <STM32_PINMUX('H', 7, AF11)>; /* ETH_MII_RXD3 */ |
251 | slew-rate = <2>; | 251 | slew-rate = <2>; |
252 | }; | 252 | }; |
253 | }; | 253 | }; |
254 | 254 | ||
255 | adc3_in8_pin: adc@200 { | 255 | adc3_in8_pin: adc@200 { |
256 | pins { | 256 | pins { |
257 | pinmux = <STM32_PINMUX('F', 10, ANALOG)>; | 257 | pinmux = <STM32_PINMUX('F', 10, ANALOG)>; |
258 | }; | 258 | }; |
259 | }; | 259 | }; |
260 | 260 | ||
261 | pwm1_pins: pwm@1 { | 261 | pwm1_pins: pwm@1 { |
262 | pins { | 262 | pins { |
263 | pinmux = <STM32_PINMUX('A', 8, AF1)>, /* TIM1_CH1 */ | 263 | pinmux = <STM32_PINMUX('A', 8, AF1)>, /* TIM1_CH1 */ |
264 | <STM32_PINMUX('B', 13, AF1)>, /* TIM1_CH1N */ | 264 | <STM32_PINMUX('B', 13, AF1)>, /* TIM1_CH1N */ |
265 | <STM32_PINMUX('B', 12, AF1)>; /* TIM1_BKIN */ | 265 | <STM32_PINMUX('B', 12, AF1)>; /* TIM1_BKIN */ |
266 | }; | 266 | }; |
267 | }; | 267 | }; |
268 | 268 | ||
269 | pwm3_pins: pwm@3 { | 269 | pwm3_pins: pwm@3 { |
270 | pins { | 270 | pins { |
271 | pinmux = <STM32_PINMUX('B', 4, AF2)>, /* TIM3_CH1 */ | 271 | pinmux = <STM32_PINMUX('B', 4, AF2)>, /* TIM3_CH1 */ |
272 | <STM32_PINMUX('B', 5, AF2)>; /* TIM3_CH2 */ | 272 | <STM32_PINMUX('B', 5, AF2)>; /* TIM3_CH2 */ |
273 | }; | 273 | }; |
274 | }; | 274 | }; |
275 | 275 | ||
276 | i2c1_pins: i2c1@0 { | 276 | i2c1_pins: i2c1@0 { |
277 | pins { | 277 | pins { |
278 | pinmux = <STM32_PINMUX('B', 9, AF4)>, /* I2C1_SDA */ | 278 | pinmux = <STM32_PINMUX('B', 9, AF4)>, /* I2C1_SDA */ |
279 | <STM32_PINMUX('B', 6, AF4)>; /* I2C1_SCL */ | 279 | <STM32_PINMUX('B', 6, AF4)>; /* I2C1_SCL */ |
280 | bias-disable; | 280 | bias-disable; |
281 | drive-open-drain; | 281 | drive-open-drain; |
282 | slew-rate = <3>; | 282 | slew-rate = <3>; |
283 | }; | 283 | }; |
284 | }; | 284 | }; |
285 | 285 | ||
286 | ltdc_pins: ltdc@0 { | 286 | ltdc_pins: ltdc@0 { |
287 | pins { | 287 | pins { |
288 | pinmux = <STM32_PINMUX('I', 12, AF14)>, /* LCD_HSYNC */ | 288 | pinmux = <STM32_PINMUX('I', 12, AF14)>, /* LCD_HSYNC */ |
289 | <STM32_PINMUX('I', 13, AF14)>, /* LCD_VSYNC */ | 289 | <STM32_PINMUX('I', 13, AF14)>, /* LCD_VSYNC */ |
290 | <STM32_PINMUX('I', 14, AF14)>, /* LCD_CLK */ | 290 | <STM32_PINMUX('I', 14, AF14)>, /* LCD_CLK */ |
291 | <STM32_PINMUX('I', 15, AF14)>, /* LCD_R0 */ | 291 | <STM32_PINMUX('I', 15, AF14)>, /* LCD_R0 */ |
292 | <STM32_PINMUX('J', 0, AF14)>, /* LCD_R1 */ | 292 | <STM32_PINMUX('J', 0, AF14)>, /* LCD_R1 */ |
293 | <STM32_PINMUX('J', 1, AF14)>, /* LCD_R2 */ | 293 | <STM32_PINMUX('J', 1, AF14)>, /* LCD_R2 */ |
294 | <STM32_PINMUX('J', 2, AF14)>, /* LCD_R3 */ | 294 | <STM32_PINMUX('J', 2, AF14)>, /* LCD_R3 */ |
295 | <STM32_PINMUX('J', 3, AF14)>, /* LCD_R4 */ | 295 | <STM32_PINMUX('J', 3, AF14)>, /* LCD_R4 */ |
296 | <STM32_PINMUX('J', 4, AF14)>, /* LCD_R5 */ | 296 | <STM32_PINMUX('J', 4, AF14)>, /* LCD_R5 */ |
297 | <STM32_PINMUX('J', 5, AF14)>, /* LCD_R6*/ | 297 | <STM32_PINMUX('J', 5, AF14)>, /* LCD_R6*/ |
298 | <STM32_PINMUX('J', 6, AF14)>, /* LCD_R7 */ | 298 | <STM32_PINMUX('J', 6, AF14)>, /* LCD_R7 */ |
299 | <STM32_PINMUX('J', 7, AF14)>, /* LCD_G0 */ | 299 | <STM32_PINMUX('J', 7, AF14)>, /* LCD_G0 */ |
300 | <STM32_PINMUX('J', 8, AF14)>, /* LCD_G1 */ | 300 | <STM32_PINMUX('J', 8, AF14)>, /* LCD_G1 */ |
301 | <STM32_PINMUX('J', 9, AF14)>, /* LCD_G2 */ | 301 | <STM32_PINMUX('J', 9, AF14)>, /* LCD_G2 */ |
302 | <STM32_PINMUX('J', 10, AF14)>, /* LCD_G3 */ | 302 | <STM32_PINMUX('J', 10, AF14)>, /* LCD_G3 */ |
303 | <STM32_PINMUX('J', 11, AF14)>, /* LCD_G4 */ | 303 | <STM32_PINMUX('J', 11, AF14)>, /* LCD_G4 */ |
304 | <STM32_PINMUX('J', 12, AF14)>, /* LCD_B0 */ | 304 | <STM32_PINMUX('J', 12, AF14)>, /* LCD_B0 */ |
305 | <STM32_PINMUX('J', 13, AF14)>, /* LCD_B1 */ | 305 | <STM32_PINMUX('J', 13, AF14)>, /* LCD_B1 */ |
306 | <STM32_PINMUX('J', 14, AF14)>, /* LCD_B2 */ | 306 | <STM32_PINMUX('J', 14, AF14)>, /* LCD_B2 */ |
307 | <STM32_PINMUX('J', 15, AF14)>, /* LCD_B3*/ | 307 | <STM32_PINMUX('J', 15, AF14)>, /* LCD_B3*/ |
308 | <STM32_PINMUX('K', 0, AF14)>, /* LCD_G5 */ | 308 | <STM32_PINMUX('K', 0, AF14)>, /* LCD_G5 */ |
309 | <STM32_PINMUX('K', 1, AF14)>, /* LCD_G6 */ | 309 | <STM32_PINMUX('K', 1, AF14)>, /* LCD_G6 */ |
310 | <STM32_PINMUX('K', 2, AF14)>, /* LCD_G7 */ | 310 | <STM32_PINMUX('K', 2, AF14)>, /* LCD_G7 */ |
311 | <STM32_PINMUX('K', 3, AF14)>, /* LCD_B4 */ | 311 | <STM32_PINMUX('K', 3, AF14)>, /* LCD_B4 */ |
312 | <STM32_PINMUX('K', 4, AF14)>, /* LCD_B5 */ | 312 | <STM32_PINMUX('K', 4, AF14)>, /* LCD_B5 */ |
313 | <STM32_PINMUX('K', 5, AF14)>, /* LCD_B6 */ | 313 | <STM32_PINMUX('K', 5, AF14)>, /* LCD_B6 */ |
314 | <STM32_PINMUX('K', 6, AF14)>, /* LCD_B7 */ | 314 | <STM32_PINMUX('K', 6, AF14)>, /* LCD_B7 */ |
315 | <STM32_PINMUX('K', 7, AF14)>; /* LCD_DE */ | 315 | <STM32_PINMUX('K', 7, AF14)>; /* LCD_DE */ |
316 | slew-rate = <2>; | 316 | slew-rate = <2>; |
317 | }; | 317 | }; |
318 | }; | 318 | }; |
319 | 319 | ||
320 | dcmi_pins: dcmi@0 { | 320 | dcmi_pins: dcmi@0 { |
321 | pins { | 321 | pins { |
322 | pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */ | 322 | pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */ |
323 | <STM32_PINMUX('B', 7, AF13)>, /* DCMI_VSYNC */ | 323 | <STM32_PINMUX('B', 7, AF13)>, /* DCMI_VSYNC */ |
324 | <STM32_PINMUX('A', 6, AF13)>, /* DCMI_PIXCLK */ | 324 | <STM32_PINMUX('A', 6, AF13)>, /* DCMI_PIXCLK */ |
325 | <STM32_PINMUX('C', 6, AF13)>, /* DCMI_D0 */ | 325 | <STM32_PINMUX('C', 6, AF13)>, /* DCMI_D0 */ |
326 | <STM32_PINMUX('C', 7, AF13)>, /* DCMI_D1 */ | 326 | <STM32_PINMUX('C', 7, AF13)>, /* DCMI_D1 */ |
327 | <STM32_PINMUX('C', 8, AF13)>, /* DCMI_D2 */ | 327 | <STM32_PINMUX('C', 8, AF13)>, /* DCMI_D2 */ |
328 | <STM32_PINMUX('C', 9, AF13)>, /* DCMI_D3 */ | 328 | <STM32_PINMUX('C', 9, AF13)>, /* DCMI_D3 */ |
329 | <STM32_PINMUX('C', 11, AF13)>, /*DCMI_D4 */ | 329 | <STM32_PINMUX('C', 11, AF13)>, /*DCMI_D4 */ |
330 | <STM32_PINMUX('D', 3, AF13)>, /* DCMI_D5 */ | 330 | <STM32_PINMUX('D', 3, AF13)>, /* DCMI_D5 */ |
331 | <STM32_PINMUX('B', 8, AF13)>, /* DCMI_D6 */ | 331 | <STM32_PINMUX('B', 8, AF13)>, /* DCMI_D6 */ |
332 | <STM32_PINMUX('E', 6, AF13)>, /* DCMI_D7 */ | 332 | <STM32_PINMUX('E', 6, AF13)>, /* DCMI_D7 */ |
333 | <STM32_PINMUX('C', 10, AF13)>, /* DCMI_D8 */ | 333 | <STM32_PINMUX('C', 10, AF13)>, /* DCMI_D8 */ |
334 | <STM32_PINMUX('C', 12, AF13)>, /* DCMI_D9 */ | 334 | <STM32_PINMUX('C', 12, AF13)>, /* DCMI_D9 */ |
335 | <STM32_PINMUX('D', 6, AF13)>, /* DCMI_D10 */ | 335 | <STM32_PINMUX('D', 6, AF13)>, /* DCMI_D10 */ |
336 | <STM32_PINMUX('D', 2, AF13)>; /* DCMI_D11 */ | 336 | <STM32_PINMUX('D', 2, AF13)>; /* DCMI_D11 */ |
337 | bias-disable; | 337 | bias-disable; |
338 | drive-push-pull; | 338 | drive-push-pull; |
339 | slew-rate = <3>; | 339 | slew-rate = <3>; |
340 | }; | 340 | }; |
341 | }; | 341 | }; |
342 | |||
343 | sdio_pins: sdio_pins@0 { | ||
344 | pins { | ||
345 | pinmux = <STM32_PINMUX('C', 8, AF12)>, | ||
346 | <STM32_PINMUX('C', 9, AF12)>, | ||
347 | <STM32_PINMUX('C', 10, AF12)>, | ||
348 | <STM32_PINMUX('c', 11, AF12)>, | ||
349 | <STM32_PINMUX('C', 12, AF12)>, | ||
350 | <STM32_PINMUX('D', 2, AF12)>; | ||
351 | drive-push-pull; | ||
352 | slew-rate = <2>; | ||
353 | }; | ||
354 | }; | ||
355 | |||
356 | sdio_pins_od: sdio_pins_od@0 { | ||
357 | pins1 { | ||
358 | pinmux = <STM32_PINMUX('C', 8, AF12)>, | ||
359 | <STM32_PINMUX('C', 9, AF12)>, | ||
360 | <STM32_PINMUX('C', 10, AF12)>, | ||
361 | <STM32_PINMUX('C', 11, AF12)>, | ||
362 | <STM32_PINMUX('C', 12, AF12)>; | ||
363 | drive-push-pull; | ||
364 | slew-rate = <2>; | ||
365 | }; | ||
366 | |||
367 | pins2 { | ||
368 | pinmux = <STM32_PINMUX('D', 2, AF12)>; | ||
369 | drive-open-drain; | ||
370 | slew-rate = <2>; | ||
371 | }; | ||
372 | }; | ||
342 | }; | 373 | }; |
343 | }; | 374 | }; |
344 | }; | 375 | }; |
345 | 376 |
arch/arm/dts/stm32f429.dtsi
1 | /* | 1 | /* |
2 | * Copyright (C) 2015, STMicroelectronics - All Rights Reserved | 2 | * Copyright (C) 2015, STMicroelectronics - All Rights Reserved |
3 | * Author(s): Maxime Coquelin <mcoquelin.stm32@gmail.com> for STMicroelectronics. | 3 | * Author(s): Maxime Coquelin <mcoquelin.stm32@gmail.com> for STMicroelectronics. |
4 | * | 4 | * |
5 | * This file is dual-licensed: you can use it either under the terms | 5 | * This file is dual-licensed: you can use it either under the terms |
6 | * of the GPL or the X11 license, at your option. Note that this dual | 6 | * of the GPL or the X11 license, at your option. Note that this dual |
7 | * licensing only applies to this file, and not this project as a | 7 | * licensing only applies to this file, and not this project as a |
8 | * whole. | 8 | * whole. |
9 | * | 9 | * |
10 | * a) This file is free software; you can redistribute it and/or | 10 | * a) This file is free software; you can redistribute it and/or |
11 | * modify it under the terms of the GNU General Public License as | 11 | * modify it under the terms of the GNU General Public License as |
12 | * published by the Free Software Foundation; either version 2 of the | 12 | * published by the Free Software Foundation; either version 2 of the |
13 | * License, or (at your option) any later version. | 13 | * License, or (at your option) any later version. |
14 | * | 14 | * |
15 | * This file is distributed in the hope that it will be useful, | 15 | * This file is distributed in the hope that it will be useful, |
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
18 | * GNU General Public License for more details. | 18 | * GNU General Public License for more details. |
19 | * | 19 | * |
20 | * Or, alternatively, | 20 | * Or, alternatively, |
21 | * | 21 | * |
22 | * b) Permission is hereby granted, free of charge, to any person | 22 | * b) Permission is hereby granted, free of charge, to any person |
23 | * obtaining a copy of this software and associated documentation | 23 | * obtaining a copy of this software and associated documentation |
24 | * files (the "Software"), to deal in the Software without | 24 | * files (the "Software"), to deal in the Software without |
25 | * restriction, including without limitation the rights to use, | 25 | * restriction, including without limitation the rights to use, |
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | 26 | * copy, modify, merge, publish, distribute, sublicense, and/or |
27 | * sell copies of the Software, and to permit persons to whom the | 27 | * sell copies of the Software, and to permit persons to whom the |
28 | * Software is furnished to do so, subject to the following | 28 | * Software is furnished to do so, subject to the following |
29 | * conditions: | 29 | * conditions: |
30 | * | 30 | * |
31 | * The above copyright notice and this permission notice shall be | 31 | * The above copyright notice and this permission notice shall be |
32 | * included in all copies or substantial portions of the Software. | 32 | * included in all copies or substantial portions of the Software. |
33 | * | 33 | * |
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | 35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | 37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | 38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | 39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | 40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
41 | * OTHER DEALINGS IN THE SOFTWARE. | 41 | * OTHER DEALINGS IN THE SOFTWARE. |
42 | */ | 42 | */ |
43 | 43 | ||
44 | #include "skeleton.dtsi" | 44 | #include "skeleton.dtsi" |
45 | #include "armv7-m.dtsi" | 45 | #include "armv7-m.dtsi" |
46 | #include <dt-bindings/clock/stm32fx-clock.h> | 46 | #include <dt-bindings/clock/stm32fx-clock.h> |
47 | #include <dt-bindings/mfd/stm32f4-rcc.h> | 47 | #include <dt-bindings/mfd/stm32f4-rcc.h> |
48 | 48 | ||
49 | / { | 49 | / { |
50 | clocks { | 50 | clocks { |
51 | clk_hse: clk-hse { | 51 | clk_hse: clk-hse { |
52 | #clock-cells = <0>; | 52 | #clock-cells = <0>; |
53 | compatible = "fixed-clock"; | 53 | compatible = "fixed-clock"; |
54 | clock-frequency = <0>; | 54 | clock-frequency = <0>; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | clk_lse: clk-lse { | 57 | clk_lse: clk-lse { |
58 | #clock-cells = <0>; | 58 | #clock-cells = <0>; |
59 | compatible = "fixed-clock"; | 59 | compatible = "fixed-clock"; |
60 | clock-frequency = <32768>; | 60 | clock-frequency = <32768>; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | clk_lsi: clk-lsi { | 63 | clk_lsi: clk-lsi { |
64 | #clock-cells = <0>; | 64 | #clock-cells = <0>; |
65 | compatible = "fixed-clock"; | 65 | compatible = "fixed-clock"; |
66 | clock-frequency = <32000>; | 66 | clock-frequency = <32000>; |
67 | }; | 67 | }; |
68 | 68 | ||
69 | clk_i2s_ckin: i2s-ckin { | 69 | clk_i2s_ckin: i2s-ckin { |
70 | #clock-cells = <0>; | 70 | #clock-cells = <0>; |
71 | compatible = "fixed-clock"; | 71 | compatible = "fixed-clock"; |
72 | clock-frequency = <0>; | 72 | clock-frequency = <0>; |
73 | }; | 73 | }; |
74 | }; | 74 | }; |
75 | 75 | ||
76 | soc { | 76 | soc { |
77 | timer2: timer@40000000 { | 77 | timer2: timer@40000000 { |
78 | compatible = "st,stm32-timer"; | 78 | compatible = "st,stm32-timer"; |
79 | reg = <0x40000000 0x400>; | 79 | reg = <0x40000000 0x400>; |
80 | interrupts = <28>; | 80 | interrupts = <28>; |
81 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>; | 81 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>; |
82 | status = "disabled"; | 82 | status = "disabled"; |
83 | }; | 83 | }; |
84 | 84 | ||
85 | timers2: timers@40000000 { | 85 | timers2: timers@40000000 { |
86 | #address-cells = <1>; | 86 | #address-cells = <1>; |
87 | #size-cells = <0>; | 87 | #size-cells = <0>; |
88 | compatible = "st,stm32-timers"; | 88 | compatible = "st,stm32-timers"; |
89 | reg = <0x40000000 0x400>; | 89 | reg = <0x40000000 0x400>; |
90 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>; | 90 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>; |
91 | clock-names = "int"; | 91 | clock-names = "int"; |
92 | status = "disabled"; | 92 | status = "disabled"; |
93 | 93 | ||
94 | pwm { | 94 | pwm { |
95 | compatible = "st,stm32-pwm"; | 95 | compatible = "st,stm32-pwm"; |
96 | status = "disabled"; | 96 | status = "disabled"; |
97 | }; | 97 | }; |
98 | 98 | ||
99 | timer@1 { | 99 | timer@1 { |
100 | compatible = "st,stm32-timer-trigger"; | 100 | compatible = "st,stm32-timer-trigger"; |
101 | reg = <1>; | 101 | reg = <1>; |
102 | status = "disabled"; | 102 | status = "disabled"; |
103 | }; | 103 | }; |
104 | }; | 104 | }; |
105 | 105 | ||
106 | timer3: timer@40000400 { | 106 | timer3: timer@40000400 { |
107 | compatible = "st,stm32-timer"; | 107 | compatible = "st,stm32-timer"; |
108 | reg = <0x40000400 0x400>; | 108 | reg = <0x40000400 0x400>; |
109 | interrupts = <29>; | 109 | interrupts = <29>; |
110 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>; | 110 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>; |
111 | status = "disabled"; | 111 | status = "disabled"; |
112 | }; | 112 | }; |
113 | 113 | ||
114 | timers3: timers@40000400 { | 114 | timers3: timers@40000400 { |
115 | #address-cells = <1>; | 115 | #address-cells = <1>; |
116 | #size-cells = <0>; | 116 | #size-cells = <0>; |
117 | compatible = "st,stm32-timers"; | 117 | compatible = "st,stm32-timers"; |
118 | reg = <0x40000400 0x400>; | 118 | reg = <0x40000400 0x400>; |
119 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>; | 119 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>; |
120 | clock-names = "int"; | 120 | clock-names = "int"; |
121 | status = "disabled"; | 121 | status = "disabled"; |
122 | 122 | ||
123 | pwm { | 123 | pwm { |
124 | compatible = "st,stm32-pwm"; | 124 | compatible = "st,stm32-pwm"; |
125 | status = "disabled"; | 125 | status = "disabled"; |
126 | }; | 126 | }; |
127 | 127 | ||
128 | timer@2 { | 128 | timer@2 { |
129 | compatible = "st,stm32-timer-trigger"; | 129 | compatible = "st,stm32-timer-trigger"; |
130 | reg = <2>; | 130 | reg = <2>; |
131 | status = "disabled"; | 131 | status = "disabled"; |
132 | }; | 132 | }; |
133 | }; | 133 | }; |
134 | 134 | ||
135 | timer4: timer@40000800 { | 135 | timer4: timer@40000800 { |
136 | compatible = "st,stm32-timer"; | 136 | compatible = "st,stm32-timer"; |
137 | reg = <0x40000800 0x400>; | 137 | reg = <0x40000800 0x400>; |
138 | interrupts = <30>; | 138 | interrupts = <30>; |
139 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>; | 139 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>; |
140 | status = "disabled"; | 140 | status = "disabled"; |
141 | }; | 141 | }; |
142 | 142 | ||
143 | timers4: timers@40000800 { | 143 | timers4: timers@40000800 { |
144 | #address-cells = <1>; | 144 | #address-cells = <1>; |
145 | #size-cells = <0>; | 145 | #size-cells = <0>; |
146 | compatible = "st,stm32-timers"; | 146 | compatible = "st,stm32-timers"; |
147 | reg = <0x40000800 0x400>; | 147 | reg = <0x40000800 0x400>; |
148 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>; | 148 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>; |
149 | clock-names = "int"; | 149 | clock-names = "int"; |
150 | status = "disabled"; | 150 | status = "disabled"; |
151 | 151 | ||
152 | pwm { | 152 | pwm { |
153 | compatible = "st,stm32-pwm"; | 153 | compatible = "st,stm32-pwm"; |
154 | status = "disabled"; | 154 | status = "disabled"; |
155 | }; | 155 | }; |
156 | 156 | ||
157 | timer@3 { | 157 | timer@3 { |
158 | compatible = "st,stm32-timer-trigger"; | 158 | compatible = "st,stm32-timer-trigger"; |
159 | reg = <3>; | 159 | reg = <3>; |
160 | status = "disabled"; | 160 | status = "disabled"; |
161 | }; | 161 | }; |
162 | }; | 162 | }; |
163 | 163 | ||
164 | timer5: timer@40000c00 { | 164 | timer5: timer@40000c00 { |
165 | compatible = "st,stm32-timer"; | 165 | compatible = "st,stm32-timer"; |
166 | reg = <0x40000c00 0x400>; | 166 | reg = <0x40000c00 0x400>; |
167 | interrupts = <50>; | 167 | interrupts = <50>; |
168 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>; | 168 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>; |
169 | }; | 169 | }; |
170 | 170 | ||
171 | timers5: timers@40000c00 { | 171 | timers5: timers@40000c00 { |
172 | #address-cells = <1>; | 172 | #address-cells = <1>; |
173 | #size-cells = <0>; | 173 | #size-cells = <0>; |
174 | compatible = "st,stm32-timers"; | 174 | compatible = "st,stm32-timers"; |
175 | reg = <0x40000C00 0x400>; | 175 | reg = <0x40000C00 0x400>; |
176 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>; | 176 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>; |
177 | clock-names = "int"; | 177 | clock-names = "int"; |
178 | status = "disabled"; | 178 | status = "disabled"; |
179 | 179 | ||
180 | pwm { | 180 | pwm { |
181 | compatible = "st,stm32-pwm"; | 181 | compatible = "st,stm32-pwm"; |
182 | status = "disabled"; | 182 | status = "disabled"; |
183 | }; | 183 | }; |
184 | 184 | ||
185 | timer@4 { | 185 | timer@4 { |
186 | compatible = "st,stm32-timer-trigger"; | 186 | compatible = "st,stm32-timer-trigger"; |
187 | reg = <4>; | 187 | reg = <4>; |
188 | status = "disabled"; | 188 | status = "disabled"; |
189 | }; | 189 | }; |
190 | }; | 190 | }; |
191 | 191 | ||
192 | timer6: timer@40001000 { | 192 | timer6: timer@40001000 { |
193 | compatible = "st,stm32-timer"; | 193 | compatible = "st,stm32-timer"; |
194 | reg = <0x40001000 0x400>; | 194 | reg = <0x40001000 0x400>; |
195 | interrupts = <54>; | 195 | interrupts = <54>; |
196 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>; | 196 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>; |
197 | status = "disabled"; | 197 | status = "disabled"; |
198 | }; | 198 | }; |
199 | 199 | ||
200 | timers6: timers@40001000 { | 200 | timers6: timers@40001000 { |
201 | #address-cells = <1>; | 201 | #address-cells = <1>; |
202 | #size-cells = <0>; | 202 | #size-cells = <0>; |
203 | compatible = "st,stm32-timers"; | 203 | compatible = "st,stm32-timers"; |
204 | reg = <0x40001000 0x400>; | 204 | reg = <0x40001000 0x400>; |
205 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>; | 205 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>; |
206 | clock-names = "int"; | 206 | clock-names = "int"; |
207 | status = "disabled"; | 207 | status = "disabled"; |
208 | 208 | ||
209 | timer@5 { | 209 | timer@5 { |
210 | compatible = "st,stm32-timer-trigger"; | 210 | compatible = "st,stm32-timer-trigger"; |
211 | reg = <5>; | 211 | reg = <5>; |
212 | status = "disabled"; | 212 | status = "disabled"; |
213 | }; | 213 | }; |
214 | }; | 214 | }; |
215 | 215 | ||
216 | timer7: timer@40001400 { | 216 | timer7: timer@40001400 { |
217 | compatible = "st,stm32-timer"; | 217 | compatible = "st,stm32-timer"; |
218 | reg = <0x40001400 0x400>; | 218 | reg = <0x40001400 0x400>; |
219 | interrupts = <55>; | 219 | interrupts = <55>; |
220 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>; | 220 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>; |
221 | status = "disabled"; | 221 | status = "disabled"; |
222 | }; | 222 | }; |
223 | 223 | ||
224 | timers7: timers@40001400 { | 224 | timers7: timers@40001400 { |
225 | #address-cells = <1>; | 225 | #address-cells = <1>; |
226 | #size-cells = <0>; | 226 | #size-cells = <0>; |
227 | compatible = "st,stm32-timers"; | 227 | compatible = "st,stm32-timers"; |
228 | reg = <0x40001400 0x400>; | 228 | reg = <0x40001400 0x400>; |
229 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>; | 229 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>; |
230 | clock-names = "int"; | 230 | clock-names = "int"; |
231 | status = "disabled"; | 231 | status = "disabled"; |
232 | 232 | ||
233 | timer@6 { | 233 | timer@6 { |
234 | compatible = "st,stm32-timer-trigger"; | 234 | compatible = "st,stm32-timer-trigger"; |
235 | reg = <6>; | 235 | reg = <6>; |
236 | status = "disabled"; | 236 | status = "disabled"; |
237 | }; | 237 | }; |
238 | }; | 238 | }; |
239 | 239 | ||
240 | timers12: timers@40001800 { | 240 | timers12: timers@40001800 { |
241 | #address-cells = <1>; | 241 | #address-cells = <1>; |
242 | #size-cells = <0>; | 242 | #size-cells = <0>; |
243 | compatible = "st,stm32-timers"; | 243 | compatible = "st,stm32-timers"; |
244 | reg = <0x40001800 0x400>; | 244 | reg = <0x40001800 0x400>; |
245 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM12)>; | 245 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM12)>; |
246 | clock-names = "int"; | 246 | clock-names = "int"; |
247 | status = "disabled"; | 247 | status = "disabled"; |
248 | 248 | ||
249 | pwm { | 249 | pwm { |
250 | compatible = "st,stm32-pwm"; | 250 | compatible = "st,stm32-pwm"; |
251 | status = "disabled"; | 251 | status = "disabled"; |
252 | }; | 252 | }; |
253 | 253 | ||
254 | timer@11 { | 254 | timer@11 { |
255 | compatible = "st,stm32-timer-trigger"; | 255 | compatible = "st,stm32-timer-trigger"; |
256 | reg = <11>; | 256 | reg = <11>; |
257 | status = "disabled"; | 257 | status = "disabled"; |
258 | }; | 258 | }; |
259 | }; | 259 | }; |
260 | 260 | ||
261 | timers13: timers@40001c00 { | 261 | timers13: timers@40001c00 { |
262 | #address-cells = <1>; | 262 | #address-cells = <1>; |
263 | #size-cells = <0>; | 263 | #size-cells = <0>; |
264 | compatible = "st,stm32-timers"; | 264 | compatible = "st,stm32-timers"; |
265 | reg = <0x40001C00 0x400>; | 265 | reg = <0x40001C00 0x400>; |
266 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>; | 266 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>; |
267 | clock-names = "int"; | 267 | clock-names = "int"; |
268 | status = "disabled"; | 268 | status = "disabled"; |
269 | 269 | ||
270 | pwm { | 270 | pwm { |
271 | compatible = "st,stm32-pwm"; | 271 | compatible = "st,stm32-pwm"; |
272 | status = "disabled"; | 272 | status = "disabled"; |
273 | }; | 273 | }; |
274 | }; | 274 | }; |
275 | 275 | ||
276 | timers14: timers@40002000 { | 276 | timers14: timers@40002000 { |
277 | #address-cells = <1>; | 277 | #address-cells = <1>; |
278 | #size-cells = <0>; | 278 | #size-cells = <0>; |
279 | compatible = "st,stm32-timers"; | 279 | compatible = "st,stm32-timers"; |
280 | reg = <0x40002000 0x400>; | 280 | reg = <0x40002000 0x400>; |
281 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>; | 281 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>; |
282 | clock-names = "int"; | 282 | clock-names = "int"; |
283 | status = "disabled"; | 283 | status = "disabled"; |
284 | 284 | ||
285 | pwm { | 285 | pwm { |
286 | compatible = "st,stm32-pwm"; | 286 | compatible = "st,stm32-pwm"; |
287 | status = "disabled"; | 287 | status = "disabled"; |
288 | }; | 288 | }; |
289 | }; | 289 | }; |
290 | 290 | ||
291 | rtc: rtc@40002800 { | 291 | rtc: rtc@40002800 { |
292 | compatible = "st,stm32-rtc"; | 292 | compatible = "st,stm32-rtc"; |
293 | reg = <0x40002800 0x400>; | 293 | reg = <0x40002800 0x400>; |
294 | clocks = <&rcc 1 CLK_RTC>; | 294 | clocks = <&rcc 1 CLK_RTC>; |
295 | clock-names = "ck_rtc"; | 295 | clock-names = "ck_rtc"; |
296 | assigned-clocks = <&rcc 1 CLK_RTC>; | 296 | assigned-clocks = <&rcc 1 CLK_RTC>; |
297 | assigned-clock-parents = <&rcc 1 CLK_LSE>; | 297 | assigned-clock-parents = <&rcc 1 CLK_LSE>; |
298 | interrupt-parent = <&exti>; | 298 | interrupt-parent = <&exti>; |
299 | interrupts = <17 1>; | 299 | interrupts = <17 1>; |
300 | interrupt-names = "alarm"; | 300 | interrupt-names = "alarm"; |
301 | st,syscfg = <&pwrcfg>; | 301 | st,syscfg = <&pwrcfg>; |
302 | status = "disabled"; | 302 | status = "disabled"; |
303 | }; | 303 | }; |
304 | 304 | ||
305 | iwdg: watchdog@40003000 { | 305 | iwdg: watchdog@40003000 { |
306 | compatible = "st,stm32-iwdg"; | 306 | compatible = "st,stm32-iwdg"; |
307 | reg = <0x40003000 0x400>; | 307 | reg = <0x40003000 0x400>; |
308 | clocks = <&clk_lsi>; | 308 | clocks = <&clk_lsi>; |
309 | status = "disabled"; | 309 | status = "disabled"; |
310 | }; | 310 | }; |
311 | 311 | ||
312 | usart2: serial@40004400 { | 312 | usart2: serial@40004400 { |
313 | compatible = "st,stm32-uart"; | 313 | compatible = "st,stm32-uart"; |
314 | reg = <0x40004400 0x400>; | 314 | reg = <0x40004400 0x400>; |
315 | interrupts = <38>; | 315 | interrupts = <38>; |
316 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART2)>; | 316 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART2)>; |
317 | status = "disabled"; | 317 | status = "disabled"; |
318 | }; | 318 | }; |
319 | 319 | ||
320 | usart3: serial@40004800 { | 320 | usart3: serial@40004800 { |
321 | compatible = "st,stm32-uart"; | 321 | compatible = "st,stm32-uart"; |
322 | reg = <0x40004800 0x400>; | 322 | reg = <0x40004800 0x400>; |
323 | interrupts = <39>; | 323 | interrupts = <39>; |
324 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART3)>; | 324 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART3)>; |
325 | status = "disabled"; | 325 | status = "disabled"; |
326 | dmas = <&dma1 1 4 0x400 0x0>, | 326 | dmas = <&dma1 1 4 0x400 0x0>, |
327 | <&dma1 3 4 0x400 0x0>; | 327 | <&dma1 3 4 0x400 0x0>; |
328 | dma-names = "rx", "tx"; | 328 | dma-names = "rx", "tx"; |
329 | }; | 329 | }; |
330 | 330 | ||
331 | usart4: serial@40004c00 { | 331 | usart4: serial@40004c00 { |
332 | compatible = "st,stm32-uart"; | 332 | compatible = "st,stm32-uart"; |
333 | reg = <0x40004c00 0x400>; | 333 | reg = <0x40004c00 0x400>; |
334 | interrupts = <52>; | 334 | interrupts = <52>; |
335 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART4)>; | 335 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART4)>; |
336 | status = "disabled"; | 336 | status = "disabled"; |
337 | }; | 337 | }; |
338 | 338 | ||
339 | usart5: serial@40005000 { | 339 | usart5: serial@40005000 { |
340 | compatible = "st,stm32-uart"; | 340 | compatible = "st,stm32-uart"; |
341 | reg = <0x40005000 0x400>; | 341 | reg = <0x40005000 0x400>; |
342 | interrupts = <53>; | 342 | interrupts = <53>; |
343 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART5)>; | 343 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART5)>; |
344 | status = "disabled"; | 344 | status = "disabled"; |
345 | }; | 345 | }; |
346 | 346 | ||
347 | i2c1: i2c@40005400 { | 347 | i2c1: i2c@40005400 { |
348 | compatible = "st,stm32f4-i2c"; | 348 | compatible = "st,stm32f4-i2c"; |
349 | reg = <0x40005400 0x400>; | 349 | reg = <0x40005400 0x400>; |
350 | interrupts = <31>, | 350 | interrupts = <31>, |
351 | <32>; | 351 | <32>; |
352 | resets = <&rcc STM32F4_APB1_RESET(I2C1)>; | 352 | resets = <&rcc STM32F4_APB1_RESET(I2C1)>; |
353 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C1)>; | 353 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C1)>; |
354 | #address-cells = <1>; | 354 | #address-cells = <1>; |
355 | #size-cells = <0>; | 355 | #size-cells = <0>; |
356 | status = "disabled"; | 356 | status = "disabled"; |
357 | }; | 357 | }; |
358 | 358 | ||
359 | dac: dac@40007400 { | 359 | dac: dac@40007400 { |
360 | compatible = "st,stm32f4-dac-core"; | 360 | compatible = "st,stm32f4-dac-core"; |
361 | reg = <0x40007400 0x400>; | 361 | reg = <0x40007400 0x400>; |
362 | resets = <&rcc STM32F4_APB1_RESET(DAC)>; | 362 | resets = <&rcc STM32F4_APB1_RESET(DAC)>; |
363 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(DAC)>; | 363 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(DAC)>; |
364 | clock-names = "pclk"; | 364 | clock-names = "pclk"; |
365 | #address-cells = <1>; | 365 | #address-cells = <1>; |
366 | #size-cells = <0>; | 366 | #size-cells = <0>; |
367 | status = "disabled"; | 367 | status = "disabled"; |
368 | 368 | ||
369 | dac1: dac@1 { | 369 | dac1: dac@1 { |
370 | compatible = "st,stm32-dac"; | 370 | compatible = "st,stm32-dac"; |
371 | #io-channels-cells = <1>; | 371 | #io-channels-cells = <1>; |
372 | reg = <1>; | 372 | reg = <1>; |
373 | status = "disabled"; | 373 | status = "disabled"; |
374 | }; | 374 | }; |
375 | 375 | ||
376 | dac2: dac@2 { | 376 | dac2: dac@2 { |
377 | compatible = "st,stm32-dac"; | 377 | compatible = "st,stm32-dac"; |
378 | #io-channels-cells = <1>; | 378 | #io-channels-cells = <1>; |
379 | reg = <2>; | 379 | reg = <2>; |
380 | status = "disabled"; | 380 | status = "disabled"; |
381 | }; | 381 | }; |
382 | }; | 382 | }; |
383 | 383 | ||
384 | usart7: serial@40007800 { | 384 | usart7: serial@40007800 { |
385 | compatible = "st,stm32-uart"; | 385 | compatible = "st,stm32-uart"; |
386 | reg = <0x40007800 0x400>; | 386 | reg = <0x40007800 0x400>; |
387 | interrupts = <82>; | 387 | interrupts = <82>; |
388 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART7)>; | 388 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART7)>; |
389 | status = "disabled"; | 389 | status = "disabled"; |
390 | }; | 390 | }; |
391 | 391 | ||
392 | usart8: serial@40007c00 { | 392 | usart8: serial@40007c00 { |
393 | compatible = "st,stm32-uart"; | 393 | compatible = "st,stm32-uart"; |
394 | reg = <0x40007c00 0x400>; | 394 | reg = <0x40007c00 0x400>; |
395 | interrupts = <83>; | 395 | interrupts = <83>; |
396 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART8)>; | 396 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART8)>; |
397 | status = "disabled"; | 397 | status = "disabled"; |
398 | }; | 398 | }; |
399 | 399 | ||
400 | timers1: timers@40010000 { | 400 | timers1: timers@40010000 { |
401 | #address-cells = <1>; | 401 | #address-cells = <1>; |
402 | #size-cells = <0>; | 402 | #size-cells = <0>; |
403 | compatible = "st,stm32-timers"; | 403 | compatible = "st,stm32-timers"; |
404 | reg = <0x40010000 0x400>; | 404 | reg = <0x40010000 0x400>; |
405 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM1)>; | 405 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM1)>; |
406 | clock-names = "int"; | 406 | clock-names = "int"; |
407 | status = "disabled"; | 407 | status = "disabled"; |
408 | 408 | ||
409 | pwm { | 409 | pwm { |
410 | compatible = "st,stm32-pwm"; | 410 | compatible = "st,stm32-pwm"; |
411 | status = "disabled"; | 411 | status = "disabled"; |
412 | }; | 412 | }; |
413 | 413 | ||
414 | timer@0 { | 414 | timer@0 { |
415 | compatible = "st,stm32-timer-trigger"; | 415 | compatible = "st,stm32-timer-trigger"; |
416 | reg = <0>; | 416 | reg = <0>; |
417 | status = "disabled"; | 417 | status = "disabled"; |
418 | }; | 418 | }; |
419 | }; | 419 | }; |
420 | 420 | ||
421 | timers8: timers@40010400 { | 421 | timers8: timers@40010400 { |
422 | #address-cells = <1>; | 422 | #address-cells = <1>; |
423 | #size-cells = <0>; | 423 | #size-cells = <0>; |
424 | compatible = "st,stm32-timers"; | 424 | compatible = "st,stm32-timers"; |
425 | reg = <0x40010400 0x400>; | 425 | reg = <0x40010400 0x400>; |
426 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM8)>; | 426 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM8)>; |
427 | clock-names = "int"; | 427 | clock-names = "int"; |
428 | status = "disabled"; | 428 | status = "disabled"; |
429 | 429 | ||
430 | pwm { | 430 | pwm { |
431 | compatible = "st,stm32-pwm"; | 431 | compatible = "st,stm32-pwm"; |
432 | status = "disabled"; | 432 | status = "disabled"; |
433 | }; | 433 | }; |
434 | 434 | ||
435 | timer@7 { | 435 | timer@7 { |
436 | compatible = "st,stm32-timer-trigger"; | 436 | compatible = "st,stm32-timer-trigger"; |
437 | reg = <7>; | 437 | reg = <7>; |
438 | status = "disabled"; | 438 | status = "disabled"; |
439 | }; | 439 | }; |
440 | }; | 440 | }; |
441 | 441 | ||
442 | usart1: serial@40011000 { | 442 | usart1: serial@40011000 { |
443 | compatible = "st,stm32-uart"; | 443 | compatible = "st,stm32-uart"; |
444 | reg = <0x40011000 0x400>; | 444 | reg = <0x40011000 0x400>; |
445 | interrupts = <37>; | 445 | interrupts = <37>; |
446 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART1)>; | 446 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART1)>; |
447 | status = "disabled"; | 447 | status = "disabled"; |
448 | dmas = <&dma2 2 4 0x400 0x0>, | 448 | dmas = <&dma2 2 4 0x400 0x0>, |
449 | <&dma2 7 4 0x400 0x0>; | 449 | <&dma2 7 4 0x400 0x0>; |
450 | dma-names = "rx", "tx"; | 450 | dma-names = "rx", "tx"; |
451 | }; | 451 | }; |
452 | 452 | ||
453 | usart6: serial@40011400 { | 453 | usart6: serial@40011400 { |
454 | compatible = "st,stm32-uart"; | 454 | compatible = "st,stm32-uart"; |
455 | reg = <0x40011400 0x400>; | 455 | reg = <0x40011400 0x400>; |
456 | interrupts = <71>; | 456 | interrupts = <71>; |
457 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART6)>; | 457 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART6)>; |
458 | status = "disabled"; | 458 | status = "disabled"; |
459 | }; | 459 | }; |
460 | 460 | ||
461 | adc: adc@40012000 { | 461 | adc: adc@40012000 { |
462 | compatible = "st,stm32f4-adc-core"; | 462 | compatible = "st,stm32f4-adc-core"; |
463 | reg = <0x40012000 0x400>; | 463 | reg = <0x40012000 0x400>; |
464 | interrupts = <18>; | 464 | interrupts = <18>; |
465 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; | 465 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; |
466 | clock-names = "adc"; | 466 | clock-names = "adc"; |
467 | interrupt-controller; | 467 | interrupt-controller; |
468 | #interrupt-cells = <1>; | 468 | #interrupt-cells = <1>; |
469 | #address-cells = <1>; | 469 | #address-cells = <1>; |
470 | #size-cells = <0>; | 470 | #size-cells = <0>; |
471 | status = "disabled"; | 471 | status = "disabled"; |
472 | 472 | ||
473 | adc1: adc@0 { | 473 | adc1: adc@0 { |
474 | compatible = "st,stm32f4-adc"; | 474 | compatible = "st,stm32f4-adc"; |
475 | #io-channel-cells = <1>; | 475 | #io-channel-cells = <1>; |
476 | reg = <0x0>; | 476 | reg = <0x0>; |
477 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; | 477 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; |
478 | interrupt-parent = <&adc>; | 478 | interrupt-parent = <&adc>; |
479 | interrupts = <0>; | 479 | interrupts = <0>; |
480 | dmas = <&dma2 0 0 0x400 0x0>; | 480 | dmas = <&dma2 0 0 0x400 0x0>; |
481 | dma-names = "rx"; | 481 | dma-names = "rx"; |
482 | status = "disabled"; | 482 | status = "disabled"; |
483 | }; | 483 | }; |
484 | 484 | ||
485 | adc2: adc@100 { | 485 | adc2: adc@100 { |
486 | compatible = "st,stm32f4-adc"; | 486 | compatible = "st,stm32f4-adc"; |
487 | #io-channel-cells = <1>; | 487 | #io-channel-cells = <1>; |
488 | reg = <0x100>; | 488 | reg = <0x100>; |
489 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>; | 489 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>; |
490 | interrupt-parent = <&adc>; | 490 | interrupt-parent = <&adc>; |
491 | interrupts = <1>; | 491 | interrupts = <1>; |
492 | dmas = <&dma2 3 1 0x400 0x0>; | 492 | dmas = <&dma2 3 1 0x400 0x0>; |
493 | dma-names = "rx"; | 493 | dma-names = "rx"; |
494 | status = "disabled"; | 494 | status = "disabled"; |
495 | }; | 495 | }; |
496 | 496 | ||
497 | adc3: adc@200 { | 497 | adc3: adc@200 { |
498 | compatible = "st,stm32f4-adc"; | 498 | compatible = "st,stm32f4-adc"; |
499 | #io-channel-cells = <1>; | 499 | #io-channel-cells = <1>; |
500 | reg = <0x200>; | 500 | reg = <0x200>; |
501 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>; | 501 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>; |
502 | interrupt-parent = <&adc>; | 502 | interrupt-parent = <&adc>; |
503 | interrupts = <2>; | 503 | interrupts = <2>; |
504 | dmas = <&dma2 1 2 0x400 0x0>; | 504 | dmas = <&dma2 1 2 0x400 0x0>; |
505 | dma-names = "rx"; | 505 | dma-names = "rx"; |
506 | status = "disabled"; | 506 | status = "disabled"; |
507 | }; | 507 | }; |
508 | }; | 508 | }; |
509 | 509 | ||
510 | syscfg: system-config@40013800 { | 510 | syscfg: system-config@40013800 { |
511 | compatible = "syscon"; | 511 | compatible = "syscon"; |
512 | reg = <0x40013800 0x400>; | 512 | reg = <0x40013800 0x400>; |
513 | }; | 513 | }; |
514 | 514 | ||
515 | exti: interrupt-controller@40013c00 { | 515 | exti: interrupt-controller@40013c00 { |
516 | compatible = "st,stm32-exti"; | 516 | compatible = "st,stm32-exti"; |
517 | interrupt-controller; | 517 | interrupt-controller; |
518 | #interrupt-cells = <2>; | 518 | #interrupt-cells = <2>; |
519 | reg = <0x40013C00 0x400>; | 519 | reg = <0x40013C00 0x400>; |
520 | interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; | 520 | interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; |
521 | }; | 521 | }; |
522 | 522 | ||
523 | timers9: timers@40014000 { | 523 | timers9: timers@40014000 { |
524 | #address-cells = <1>; | 524 | #address-cells = <1>; |
525 | #size-cells = <0>; | 525 | #size-cells = <0>; |
526 | compatible = "st,stm32-timers"; | 526 | compatible = "st,stm32-timers"; |
527 | reg = <0x40014000 0x400>; | 527 | reg = <0x40014000 0x400>; |
528 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM9)>; | 528 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM9)>; |
529 | clock-names = "int"; | 529 | clock-names = "int"; |
530 | status = "disabled"; | 530 | status = "disabled"; |
531 | 531 | ||
532 | pwm { | 532 | pwm { |
533 | compatible = "st,stm32-pwm"; | 533 | compatible = "st,stm32-pwm"; |
534 | status = "disabled"; | 534 | status = "disabled"; |
535 | }; | 535 | }; |
536 | 536 | ||
537 | timer@8 { | 537 | timer@8 { |
538 | compatible = "st,stm32-timer-trigger"; | 538 | compatible = "st,stm32-timer-trigger"; |
539 | reg = <8>; | 539 | reg = <8>; |
540 | status = "disabled"; | 540 | status = "disabled"; |
541 | }; | 541 | }; |
542 | }; | 542 | }; |
543 | 543 | ||
544 | timers10: timers@40014400 { | 544 | timers10: timers@40014400 { |
545 | #address-cells = <1>; | 545 | #address-cells = <1>; |
546 | #size-cells = <0>; | 546 | #size-cells = <0>; |
547 | compatible = "st,stm32-timers"; | 547 | compatible = "st,stm32-timers"; |
548 | reg = <0x40014400 0x400>; | 548 | reg = <0x40014400 0x400>; |
549 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>; | 549 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>; |
550 | clock-names = "int"; | 550 | clock-names = "int"; |
551 | status = "disabled"; | 551 | status = "disabled"; |
552 | 552 | ||
553 | pwm { | 553 | pwm { |
554 | compatible = "st,stm32-pwm"; | 554 | compatible = "st,stm32-pwm"; |
555 | status = "disabled"; | 555 | status = "disabled"; |
556 | }; | 556 | }; |
557 | }; | 557 | }; |
558 | 558 | ||
559 | timers11: timers@40014800 { | 559 | timers11: timers@40014800 { |
560 | #address-cells = <1>; | 560 | #address-cells = <1>; |
561 | #size-cells = <0>; | 561 | #size-cells = <0>; |
562 | compatible = "st,stm32-timers"; | 562 | compatible = "st,stm32-timers"; |
563 | reg = <0x40014800 0x400>; | 563 | reg = <0x40014800 0x400>; |
564 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>; | 564 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>; |
565 | clock-names = "int"; | 565 | clock-names = "int"; |
566 | status = "disabled"; | 566 | status = "disabled"; |
567 | 567 | ||
568 | pwm { | 568 | pwm { |
569 | compatible = "st,stm32-pwm"; | 569 | compatible = "st,stm32-pwm"; |
570 | status = "disabled"; | 570 | status = "disabled"; |
571 | }; | 571 | }; |
572 | }; | 572 | }; |
573 | 573 | ||
574 | pwrcfg: power-config@40007000 { | 574 | pwrcfg: power-config@40007000 { |
575 | compatible = "syscon"; | 575 | compatible = "syscon"; |
576 | reg = <0x40007000 0x400>; | 576 | reg = <0x40007000 0x400>; |
577 | }; | 577 | }; |
578 | 578 | ||
579 | sdio: sdio@40012c00 { | ||
580 | compatible = "st,stm32f4xx-sdio"; | ||
581 | reg = <0x40012c00 0x400>; | ||
582 | clocks = <&rcc 0 171>; | ||
583 | interrupts = <49>; | ||
584 | status = "disabled"; | ||
585 | pinctrl-0 = <&sdio_pins>; | ||
586 | pinctrl-1 = <&sdio_pins_od>; | ||
587 | pinctrl-names = "default", "opendrain"; | ||
588 | max-frequency = <48000000>; | ||
589 | }; | ||
590 | |||
579 | ltdc: display-controller@40016800 { | 591 | ltdc: display-controller@40016800 { |
580 | compatible = "st,stm32-ltdc"; | 592 | compatible = "st,stm32-ltdc"; |
581 | reg = <0x40016800 0x200>; | 593 | reg = <0x40016800 0x200>; |
582 | interrupts = <88>, <89>; | 594 | interrupts = <88>, <89>; |
583 | resets = <&rcc STM32F4_APB2_RESET(LTDC)>; | 595 | resets = <&rcc STM32F4_APB2_RESET(LTDC)>; |
584 | clocks = <&rcc 1 CLK_LCD>; | 596 | clocks = <&rcc 1 CLK_LCD>; |
585 | clock-names = "lcd"; | 597 | clock-names = "lcd"; |
586 | status = "disabled"; | 598 | status = "disabled"; |
587 | }; | 599 | }; |
588 | 600 | ||
589 | crc: crc@40023000 { | 601 | crc: crc@40023000 { |
590 | compatible = "st,stm32f4-crc"; | 602 | compatible = "st,stm32f4-crc"; |
591 | reg = <0x40023000 0x400>; | 603 | reg = <0x40023000 0x400>; |
592 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(CRC)>; | 604 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(CRC)>; |
593 | status = "disabled"; | 605 | status = "disabled"; |
594 | }; | 606 | }; |
595 | 607 | ||
596 | rcc: rcc@40023810 { | 608 | rcc: rcc@40023810 { |
597 | #reset-cells = <1>; | 609 | #reset-cells = <1>; |
598 | #clock-cells = <2>; | 610 | #clock-cells = <2>; |
599 | compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; | 611 | compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; |
600 | reg = <0x40023800 0x400>; | 612 | reg = <0x40023800 0x400>; |
601 | clocks = <&clk_hse>, <&clk_i2s_ckin>; | 613 | clocks = <&clk_hse>, <&clk_i2s_ckin>; |
602 | st,syscfg = <&pwrcfg>; | 614 | st,syscfg = <&pwrcfg>; |
603 | assigned-clocks = <&rcc 1 CLK_HSE_RTC>; | 615 | assigned-clocks = <&rcc 1 CLK_HSE_RTC>; |
604 | assigned-clock-rates = <1000000>; | 616 | assigned-clock-rates = <1000000>; |
605 | }; | 617 | }; |
606 | 618 | ||
607 | dma1: dma-controller@40026000 { | 619 | dma1: dma-controller@40026000 { |
608 | compatible = "st,stm32-dma"; | 620 | compatible = "st,stm32-dma"; |
609 | reg = <0x40026000 0x400>; | 621 | reg = <0x40026000 0x400>; |
610 | interrupts = <11>, | 622 | interrupts = <11>, |
611 | <12>, | 623 | <12>, |
612 | <13>, | 624 | <13>, |
613 | <14>, | 625 | <14>, |
614 | <15>, | 626 | <15>, |
615 | <16>, | 627 | <16>, |
616 | <17>, | 628 | <17>, |
617 | <47>; | 629 | <47>; |
618 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA1)>; | 630 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA1)>; |
619 | #dma-cells = <4>; | 631 | #dma-cells = <4>; |
620 | }; | 632 | }; |
621 | 633 | ||
622 | dma2: dma-controller@40026400 { | 634 | dma2: dma-controller@40026400 { |
623 | compatible = "st,stm32-dma"; | 635 | compatible = "st,stm32-dma"; |
624 | reg = <0x40026400 0x400>; | 636 | reg = <0x40026400 0x400>; |
625 | interrupts = <56>, | 637 | interrupts = <56>, |
626 | <57>, | 638 | <57>, |
627 | <58>, | 639 | <58>, |
628 | <59>, | 640 | <59>, |
629 | <60>, | 641 | <60>, |
630 | <68>, | 642 | <68>, |
631 | <69>, | 643 | <69>, |
632 | <70>; | 644 | <70>; |
633 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2)>; | 645 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2)>; |
634 | #dma-cells = <4>; | 646 | #dma-cells = <4>; |
635 | st,mem2mem; | 647 | st,mem2mem; |
636 | }; | 648 | }; |
637 | 649 | ||
638 | mac: ethernet@40028000 { | 650 | mac: ethernet@40028000 { |
639 | compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; | 651 | compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; |
640 | reg = <0x40028000 0x8000>; | 652 | reg = <0x40028000 0x8000>; |
641 | reg-names = "stmmaceth"; | 653 | reg-names = "stmmaceth"; |
642 | interrupts = <61>; | 654 | interrupts = <61>; |
643 | interrupt-names = "macirq"; | 655 | interrupt-names = "macirq"; |
644 | clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; | 656 | clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; |
645 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(ETHMAC)>, | 657 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(ETHMAC)>, |
646 | <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACTX)>, | 658 | <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACTX)>, |
647 | <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACRX)>; | 659 | <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACRX)>; |
648 | st,syscon = <&syscfg 0x4>; | 660 | st,syscon = <&syscfg 0x4>; |
649 | snps,pbl = <8>; | 661 | snps,pbl = <8>; |
650 | snps,mixed-burst; | 662 | snps,mixed-burst; |
651 | status = "disabled"; | 663 | status = "disabled"; |
652 | }; | 664 | }; |
653 | 665 | ||
654 | usbotg_hs: usb@40040000 { | 666 | usbotg_hs: usb@40040000 { |
655 | compatible = "snps,dwc2"; | 667 | compatible = "snps,dwc2"; |
656 | reg = <0x40040000 0x40000>; | 668 | reg = <0x40040000 0x40000>; |
657 | interrupts = <77>; | 669 | interrupts = <77>; |
658 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHS)>; | 670 | clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHS)>; |
659 | clock-names = "otg"; | 671 | clock-names = "otg"; |
660 | status = "disabled"; | 672 | status = "disabled"; |
661 | }; | 673 | }; |
662 | 674 | ||
663 | usbotg_fs: usb@50000000 { | 675 | usbotg_fs: usb@50000000 { |
664 | compatible = "st,stm32f4x9-fsotg"; | 676 | compatible = "st,stm32f4x9-fsotg"; |
665 | reg = <0x50000000 0x40000>; | 677 | reg = <0x50000000 0x40000>; |
666 | interrupts = <67>; | 678 | interrupts = <67>; |
667 | clocks = <&rcc 0 39>; | 679 | clocks = <&rcc 0 39>; |
668 | clock-names = "otg"; | 680 | clock-names = "otg"; |
669 | status = "disabled"; | 681 | status = "disabled"; |
670 | }; | 682 | }; |
671 | 683 | ||
672 | dcmi: dcmi@50050000 { | 684 | dcmi: dcmi@50050000 { |
673 | compatible = "st,stm32-dcmi"; | 685 | compatible = "st,stm32-dcmi"; |
674 | reg = <0x50050000 0x400>; | 686 | reg = <0x50050000 0x400>; |
675 | interrupts = <78>; | 687 | interrupts = <78>; |
676 | resets = <&rcc STM32F4_AHB2_RESET(DCMI)>; | 688 | resets = <&rcc STM32F4_AHB2_RESET(DCMI)>; |
677 | clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>; | 689 | clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>; |
678 | clock-names = "mclk"; | 690 | clock-names = "mclk"; |
679 | pinctrl-names = "default"; | 691 | pinctrl-names = "default"; |
680 | pinctrl-0 = <&dcmi_pins>; | 692 | pinctrl-0 = <&dcmi_pins>; |
681 | dmas = <&dma2 1 1 0x414 0x3>; | 693 | dmas = <&dma2 1 1 0x414 0x3>; |
682 | dma-names = "tx"; | 694 | dma-names = "tx"; |
683 | status = "disabled"; | 695 | status = "disabled"; |
684 | }; | 696 | }; |
685 | 697 | ||
686 | rng: rng@50060800 { | 698 | rng: rng@50060800 { |
687 | compatible = "st,stm32-rng"; | 699 | compatible = "st,stm32-rng"; |
688 | reg = <0x50060800 0x400>; | 700 | reg = <0x50060800 0x400>; |
689 | interrupts = <80>; | 701 | interrupts = <80>; |
690 | clocks = <&rcc 0 STM32F4_AHB2_CLOCK(RNG)>; | 702 | clocks = <&rcc 0 STM32F4_AHB2_CLOCK(RNG)>; |
691 | 703 | ||
692 | }; | 704 | }; |
693 | }; | 705 | }; |
694 | }; | 706 | }; |
695 | 707 | ||
696 | &systick { | 708 | &systick { |
697 | clocks = <&rcc 1 SYSTICK>; | 709 | clocks = <&rcc 1 SYSTICK>; |
698 | status = "okay"; | 710 | status = "okay"; |
699 | }; | 711 | }; |
700 | 712 |
arch/arm/dts/stm32f469-disco.dts
1 | /* | 1 | /* |
2 | * Copyright 2016 - Lee Jones <lee.jones@linaro.org> | 2 | * Copyright 2016 - Lee Jones <lee.jones@linaro.org> |
3 | * | 3 | * |
4 | * This file is dual-licensed: you can use it either under the terms | 4 | * This file is dual-licensed: you can use it either under the terms |
5 | * of the GPL or the X11 license, at your option. Note that this dual | 5 | * of the GPL or the X11 license, at your option. Note that this dual |
6 | * licensing only applies to this file, and not this project as a | 6 | * licensing only applies to this file, and not this project as a |
7 | * whole. | 7 | * whole. |
8 | * | 8 | * |
9 | * a) This file is free software; you can redistribute it and/or | 9 | * a) This file is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License as | 10 | * modify it under the terms of the GNU General Public License as |
11 | * published by the Free Software Foundation; either version 2 of the | 11 | * published by the Free Software Foundation; either version 2 of the |
12 | * License, or (at your option) any later version. | 12 | * License, or (at your option) any later version. |
13 | * | 13 | * |
14 | * This file is distributed in the hope that it will be useful, | 14 | * This file is distributed in the hope that it will be useful, |
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 | * GNU General Public License for more details. | 17 | * GNU General Public License for more details. |
18 | * | 18 | * |
19 | * Or, alternatively, | 19 | * Or, alternatively, |
20 | * | 20 | * |
21 | * b) Permission is hereby granted, free of charge, to any person | 21 | * b) Permission is hereby granted, free of charge, to any person |
22 | * obtaining a copy of this software and associated documentation | 22 | * obtaining a copy of this software and associated documentation |
23 | * files (the "Software"), to deal in the Software without | 23 | * files (the "Software"), to deal in the Software without |
24 | * restriction, including without limitation the rights to use, | 24 | * restriction, including without limitation the rights to use, |
25 | * copy, modify, merge, publish, distribute, sublicense, and/or | 25 | * copy, modify, merge, publish, distribute, sublicense, and/or |
26 | * sell copies of the Software, and to permit persons to whom the | 26 | * sell copies of the Software, and to permit persons to whom the |
27 | * Software is furnished to do so, subject to the following | 27 | * Software is furnished to do so, subject to the following |
28 | * conditions: | 28 | * conditions: |
29 | * | 29 | * |
30 | * The above copyright notice and this permission notice shall be | 30 | * The above copyright notice and this permission notice shall be |
31 | * included in all copies or substantial portions of the Software. | 31 | * included in all copies or substantial portions of the Software. |
32 | * | 32 | * |
33 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 33 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
34 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | 34 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
35 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 35 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
36 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | 36 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
37 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | 37 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
38 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | 38 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
39 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | 39 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
40 | * OTHER DEALINGS IN THE SOFTWARE. | 40 | * OTHER DEALINGS IN THE SOFTWARE. |
41 | */ | 41 | */ |
42 | 42 | ||
43 | /dts-v1/; | 43 | /dts-v1/; |
44 | #include "stm32f429.dtsi" | 44 | #include "stm32f429.dtsi" |
45 | #include "stm32f469-pinctrl.dtsi" | 45 | #include "stm32f469-pinctrl.dtsi" |
46 | 46 | ||
47 | / { | 47 | / { |
48 | model = "STMicroelectronics STM32F469i-DISCO board"; | 48 | model = "STMicroelectronics STM32F469i-DISCO board"; |
49 | compatible = "st,stm32f469i-disco", "st,stm32f469"; | 49 | compatible = "st,stm32f469i-disco", "st,stm32f469"; |
50 | 50 | ||
51 | chosen { | 51 | chosen { |
52 | bootargs = "root=/dev/ram"; | 52 | bootargs = "root=/dev/ram"; |
53 | stdout-path = "serial0:115200n8"; | 53 | stdout-path = "serial0:115200n8"; |
54 | }; | 54 | }; |
55 | 55 | ||
56 | memory { | 56 | memory { |
57 | reg = <0x00000000 0x1000000>; | 57 | reg = <0x00000000 0x1000000>; |
58 | }; | 58 | }; |
59 | 59 | ||
60 | aliases { | 60 | aliases { |
61 | serial0 = &usart3; | 61 | serial0 = &usart3; |
62 | }; | 62 | }; |
63 | 63 | ||
64 | mmc_vcard: mmc_vcard { | ||
65 | compatible = "regulator-fixed"; | ||
66 | regulator-name = "mmc_vcard"; | ||
67 | regulator-min-microvolt = <3300000>; | ||
68 | regulator-max-microvolt = <3300000>; | ||
69 | }; | ||
70 | |||
64 | soc { | 71 | soc { |
65 | dma-ranges = <0xc0000000 0x0 0x10000000>; | 72 | dma-ranges = <0xc0000000 0x0 0x10000000>; |
66 | }; | 73 | }; |
67 | 74 | ||
68 | /* This turns on vbus for otg for host mode (dwc2) */ | 75 | /* This turns on vbus for otg for host mode (dwc2) */ |
69 | vcc5v_otg: vcc5v-otg-regulator { | 76 | vcc5v_otg: vcc5v-otg-regulator { |
70 | compatible = "regulator-fixed"; | 77 | compatible = "regulator-fixed"; |
71 | enable-active-high; | 78 | enable-active-high; |
72 | gpio = <&gpiob 2 0>; | 79 | gpio = <&gpiob 2 0>; |
73 | regulator-name = "vcc5_host1"; | 80 | regulator-name = "vcc5_host1"; |
74 | regulator-always-on; | 81 | regulator-always-on; |
75 | }; | 82 | }; |
76 | }; | 83 | }; |
77 | 84 | ||
78 | &rcc { | 85 | &rcc { |
79 | compatible = "st,stm32f469-rcc", "st,stm32f42xx-rcc", "st,stm32-rcc"; | 86 | compatible = "st,stm32f469-rcc", "st,stm32f42xx-rcc", "st,stm32-rcc"; |
80 | }; | 87 | }; |
81 | 88 | ||
82 | &clk_hse { | 89 | &clk_hse { |
83 | clock-frequency = <8000000>; | 90 | clock-frequency = <8000000>; |
84 | }; | 91 | }; |
85 | 92 | ||
86 | &rtc { | 93 | &rtc { |
87 | status = "okay"; | 94 | status = "okay"; |
88 | }; | 95 | }; |
89 | 96 | ||
90 | &timers1 { | 97 | &timers1 { |
91 | status = "okay"; | 98 | status = "okay"; |
92 | 99 | ||
93 | pwm { | 100 | pwm { |
94 | pinctrl-0 = <&pwm1_pins>; | 101 | pinctrl-0 = <&pwm1_pins>; |
95 | pinctrl-names = "default"; | 102 | pinctrl-names = "default"; |
96 | status = "okay"; | 103 | status = "okay"; |
97 | }; | 104 | }; |
98 | 105 | ||
99 | timer@0 { | 106 | timer@0 { |
100 | status = "okay"; | 107 | status = "okay"; |
101 | }; | 108 | }; |
102 | }; | 109 | }; |
103 | 110 | ||
104 | &timers3 { | 111 | &timers3 { |
105 | status = "okay"; | 112 | status = "okay"; |
106 | 113 | ||
107 | pwm { | 114 | pwm { |
108 | pinctrl-0 = <&pwm3_pins>; | 115 | pinctrl-0 = <&pwm3_pins>; |
109 | pinctrl-names = "default"; | 116 | pinctrl-names = "default"; |
110 | status = "okay"; | 117 | status = "okay"; |
111 | }; | 118 | }; |
112 | 119 | ||
113 | timer@2 { | 120 | timer@2 { |
114 | status = "okay"; | 121 | status = "okay"; |
115 | }; | 122 | }; |
123 | }; | ||
124 | |||
125 | &sdio { | ||
126 | status = "okay"; | ||
127 | vmmc-supply = <&mmc_vcard>; | ||
128 | pinctrl-names = "default", "opendrain"; | ||
129 | pinctrl-0 = <&sdio_pins>; | ||
130 | pinctrl-1 = <&sdio_pins_od>; | ||
131 | bus-width = <4>; | ||
116 | }; | 132 | }; |
117 | 133 | ||
118 | &usart3 { | 134 | &usart3 { |
119 | pinctrl-0 = <&usart3_pins_a>; | 135 | pinctrl-0 = <&usart3_pins_a>; |
120 | pinctrl-names = "default"; | 136 | pinctrl-names = "default"; |
121 | status = "okay"; | 137 | status = "okay"; |
122 | }; | 138 | }; |
123 | 139 | ||
124 | &usbotg_fs { | 140 | &usbotg_fs { |
125 | dr_mode = "host"; | 141 | dr_mode = "host"; |
126 | pinctrl-0 = <&usbotg_fs_pins_a>; | 142 | pinctrl-0 = <&usbotg_fs_pins_a>; |
127 | pinctrl-names = "default"; | 143 | pinctrl-names = "default"; |
128 | status = "okay"; | 144 | status = "okay"; |
129 | }; | 145 | }; |
130 | 146 |