1 /* 1 /* 2 * Copyright 2015 - Maxime Coquelin <mcoquelin. 2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com> 3 * 3 * 4 * This file is dual-licensed: you can use it 4 * This file is dual-licensed: you can use it either under the terms 5 * of the GPL or the X11 license, at your opti 5 * of the GPL or the X11 license, at your option. Note that this dual 6 * licensing only applies to this file, and no 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 red 9 * a) This file is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU Ge 10 * modify it under the terms of the GNU General Public License as 11 * published by the Free Software Foundati 11 * published by the Free Software Foundation; either version 2 of the 12 * License, or (at your option) any later 12 * License, or (at your option) any later version. 13 * 13 * 14 * This file is distributed in the hope th 14 * This file is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTIC 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more det 17 * GNU General Public License for more details. 18 * 18 * 19 * You should have received a copy of the 19 * You should have received a copy of the GNU General Public 20 * License along with this file; if not, w 20 * License along with this file; if not, write to the Free 21 * Software Foundation, Inc., 51 Franklin 21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, 22 * MA 02110-1301 USA 22 * MA 02110-1301 USA 23 * 23 * 24 * Or, alternatively, 24 * Or, alternatively, 25 * 25 * 26 * b) Permission is hereby granted, free of c 26 * b) Permission is hereby granted, free of charge, to any person 27 * obtaining a copy of this software and a 27 * obtaining a copy of this software and associated documentation 28 * files (the "Software"), to deal in the 28 * files (the "Software"), to deal in the Software without 29 * restriction, including without limitati 29 * restriction, including without limitation the rights to use, 30 * copy, modify, merge, publish, distribut 30 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * sell copies of the Software, and to per 31 * sell copies of the Software, and to permit persons to whom the 32 * Software is furnished to do so, subject 32 * Software is furnished to do so, subject to the following 33 * conditions: 33 * conditions: 34 * 34 * 35 * The above copyright notice and this per 35 * The above copyright notice and this permission notice shall be 36 * included in all copies or substantial p 36 * included in all copies or substantial portions of the Software. 37 * 37 * 38 * THE SOFTWARE IS PROVIDED "AS IS", WITHO 38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT L 39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * OF MERCHANTABILITY, FITNESS FOR A PARTI 40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * NONINFRINGEMENT. IN NO EVENT SHALL THE 41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGE 42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 43 * WHETHER IN AN ACTION OF CONTRACT, TORT 43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * FROM, OUT OF OR IN CONNECTION WITH THE 44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * OTHER DEALINGS IN THE SOFTWARE. 45 * OTHER DEALINGS IN THE SOFTWARE. 46 */ 46 */ 47 47 48 #include "../armv7-m.dtsi" 48 #include "../armv7-m.dtsi" 49 #include <dt-bindings/clock/stm32fx-clock.h> 49 #include <dt-bindings/clock/stm32fx-clock.h> 50 #include <dt-bindings/mfd/stm32f4-rcc.h> 50 #include <dt-bindings/mfd/stm32f4-rcc.h> 51 51 52 / { 52 / { 53 #address-cells = <1>; 53 #address-cells = <1>; 54 #size-cells = <1>; 54 #size-cells = <1>; 55 55 56 clocks { 56 clocks { 57 clk_hse: clk-hse { 57 clk_hse: clk-hse { 58 #clock-cells = <0>; 58 #clock-cells = <0>; 59 compatible = "fixed-cl 59 compatible = "fixed-clock"; 60 clock-frequency = <0>; 60 clock-frequency = <0>; 61 }; 61 }; 62 62 63 clk_lse: clk-lse { 63 clk_lse: clk-lse { 64 #clock-cells = <0>; 64 #clock-cells = <0>; 65 compatible = "fixed-cl 65 compatible = "fixed-clock"; 66 clock-frequency = <327 66 clock-frequency = <32768>; 67 }; 67 }; 68 68 69 clk_lsi: clk-lsi { 69 clk_lsi: clk-lsi { 70 #clock-cells = <0>; 70 #clock-cells = <0>; 71 compatible = "fixed-cl 71 compatible = "fixed-clock"; 72 clock-frequency = <320 72 clock-frequency = <32000>; 73 }; 73 }; 74 74 75 clk_i2s_ckin: i2s-ckin { 75 clk_i2s_ckin: i2s-ckin { 76 #clock-cells = <0>; 76 #clock-cells = <0>; 77 compatible = "fixed-cl 77 compatible = "fixed-clock"; 78 clock-frequency = <0>; 78 clock-frequency = <0>; 79 }; 79 }; 80 }; 80 }; 81 81 82 soc { 82 soc { 83 romem: efuse@1fff7800 { 83 romem: efuse@1fff7800 { 84 compatible = "st,stm32 84 compatible = "st,stm32f4-otp"; 85 reg = <0x1fff7800 0x40 85 reg = <0x1fff7800 0x400>; 86 #address-cells = <1>; 86 #address-cells = <1>; 87 #size-cells = <1>; 87 #size-cells = <1>; 88 ts_cal1: calib@22c { 88 ts_cal1: calib@22c { 89 reg = <0x22c 0 89 reg = <0x22c 0x2>; 90 }; 90 }; 91 ts_cal2: calib@22e { 91 ts_cal2: calib@22e { 92 reg = <0x22e 0 92 reg = <0x22e 0x2>; 93 }; 93 }; 94 }; 94 }; 95 95 96 timers2: timers@40000000 { 96 timers2: timers@40000000 { 97 #address-cells = <1>; 97 #address-cells = <1>; 98 #size-cells = <0>; 98 #size-cells = <0>; 99 compatible = "st,stm32 99 compatible = "st,stm32-timers"; 100 reg = <0x40000000 0x40 100 reg = <0x40000000 0x400>; 101 clocks = <&rcc 0 STM32 101 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>; 102 clock-names = "int"; 102 clock-names = "int"; 103 status = "disabled"; 103 status = "disabled"; 104 104 105 pwm { 105 pwm { 106 compatible = " 106 compatible = "st,stm32-pwm"; 107 #pwm-cells = < 107 #pwm-cells = <3>; 108 status = "disa 108 status = "disabled"; 109 }; 109 }; 110 110 111 timer@1 { 111 timer@1 { 112 compatible = " 112 compatible = "st,stm32-timer-trigger"; 113 reg = <1>; 113 reg = <1>; 114 status = "disa 114 status = "disabled"; 115 }; 115 }; 116 }; 116 }; 117 117 118 timers3: timers@40000400 { 118 timers3: timers@40000400 { 119 #address-cells = <1>; 119 #address-cells = <1>; 120 #size-cells = <0>; 120 #size-cells = <0>; 121 compatible = "st,stm32 121 compatible = "st,stm32-timers"; 122 reg = <0x40000400 0x40 122 reg = <0x40000400 0x400>; 123 clocks = <&rcc 0 STM32 123 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>; 124 clock-names = "int"; 124 clock-names = "int"; 125 status = "disabled"; 125 status = "disabled"; 126 126 127 pwm { 127 pwm { 128 compatible = " 128 compatible = "st,stm32-pwm"; 129 #pwm-cells = < 129 #pwm-cells = <3>; 130 status = "disa 130 status = "disabled"; 131 }; 131 }; 132 132 133 timer@2 { 133 timer@2 { 134 compatible = " 134 compatible = "st,stm32-timer-trigger"; 135 reg = <2>; 135 reg = <2>; 136 status = "disa 136 status = "disabled"; 137 }; 137 }; 138 }; 138 }; 139 139 140 timers4: timers@40000800 { 140 timers4: timers@40000800 { 141 #address-cells = <1>; 141 #address-cells = <1>; 142 #size-cells = <0>; 142 #size-cells = <0>; 143 compatible = "st,stm32 143 compatible = "st,stm32-timers"; 144 reg = <0x40000800 0x40 144 reg = <0x40000800 0x400>; 145 clocks = <&rcc 0 STM32 145 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>; 146 clock-names = "int"; 146 clock-names = "int"; 147 status = "disabled"; 147 status = "disabled"; 148 148 149 pwm { 149 pwm { 150 compatible = " 150 compatible = "st,stm32-pwm"; 151 #pwm-cells = < 151 #pwm-cells = <3>; 152 status = "disa 152 status = "disabled"; 153 }; 153 }; 154 154 155 timer@3 { 155 timer@3 { 156 compatible = " 156 compatible = "st,stm32-timer-trigger"; 157 reg = <3>; 157 reg = <3>; 158 status = "disa 158 status = "disabled"; 159 }; 159 }; 160 }; 160 }; 161 161 162 timers5: timers@40000c00 { 162 timers5: timers@40000c00 { 163 #address-cells = <1>; 163 #address-cells = <1>; 164 #size-cells = <0>; 164 #size-cells = <0>; 165 compatible = "st,stm32 165 compatible = "st,stm32-timers"; 166 reg = <0x40000C00 0x40 166 reg = <0x40000C00 0x400>; 167 clocks = <&rcc 0 STM32 167 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>; 168 clock-names = "int"; 168 clock-names = "int"; 169 status = "disabled"; 169 status = "disabled"; 170 170 171 pwm { 171 pwm { 172 compatible = " 172 compatible = "st,stm32-pwm"; 173 #pwm-cells = < 173 #pwm-cells = <3>; 174 status = "disa 174 status = "disabled"; 175 }; 175 }; 176 176 177 timer@4 { 177 timer@4 { 178 compatible = " 178 compatible = "st,stm32-timer-trigger"; 179 reg = <4>; 179 reg = <4>; 180 status = "disa 180 status = "disabled"; 181 }; 181 }; 182 }; 182 }; 183 183 184 timers6: timers@40001000 { 184 timers6: timers@40001000 { 185 #address-cells = <1>; 185 #address-cells = <1>; 186 #size-cells = <0>; 186 #size-cells = <0>; 187 compatible = "st,stm32 187 compatible = "st,stm32-timers"; 188 reg = <0x40001000 0x40 188 reg = <0x40001000 0x400>; 189 clocks = <&rcc 0 STM32 189 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>; 190 clock-names = "int"; 190 clock-names = "int"; 191 status = "disabled"; 191 status = "disabled"; 192 192 193 timer@5 { 193 timer@5 { 194 compatible = " 194 compatible = "st,stm32-timer-trigger"; 195 reg = <5>; 195 reg = <5>; 196 status = "disa 196 status = "disabled"; 197 }; 197 }; 198 }; 198 }; 199 199 200 timers7: timers@40001400 { 200 timers7: timers@40001400 { 201 #address-cells = <1>; 201 #address-cells = <1>; 202 #size-cells = <0>; 202 #size-cells = <0>; 203 compatible = "st,stm32 203 compatible = "st,stm32-timers"; 204 reg = <0x40001400 0x40 204 reg = <0x40001400 0x400>; 205 clocks = <&rcc 0 STM32 205 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>; 206 clock-names = "int"; 206 clock-names = "int"; 207 status = "disabled"; 207 status = "disabled"; 208 208 209 timer@6 { 209 timer@6 { 210 compatible = " 210 compatible = "st,stm32-timer-trigger"; 211 reg = <6>; 211 reg = <6>; 212 status = "disa 212 status = "disabled"; 213 }; 213 }; 214 }; 214 }; 215 215 216 timers12: timers@40001800 { 216 timers12: timers@40001800 { 217 #address-cells = <1>; 217 #address-cells = <1>; 218 #size-cells = <0>; 218 #size-cells = <0>; 219 compatible = "st,stm32 219 compatible = "st,stm32-timers"; 220 reg = <0x40001800 0x40 220 reg = <0x40001800 0x400>; 221 clocks = <&rcc 0 STM32 221 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM12)>; 222 clock-names = "int"; 222 clock-names = "int"; 223 status = "disabled"; 223 status = "disabled"; 224 224 225 pwm { 225 pwm { 226 compatible = " 226 compatible = "st,stm32-pwm"; 227 #pwm-cells = < 227 #pwm-cells = <3>; 228 status = "disa 228 status = "disabled"; 229 }; 229 }; 230 230 231 timer@11 { 231 timer@11 { 232 compatible = " 232 compatible = "st,stm32-timer-trigger"; 233 reg = <11>; 233 reg = <11>; 234 status = "disa 234 status = "disabled"; 235 }; 235 }; 236 }; 236 }; 237 237 238 timers13: timers@40001c00 { 238 timers13: timers@40001c00 { 239 compatible = "st,stm32 239 compatible = "st,stm32-timers"; 240 reg = <0x40001C00 0x40 240 reg = <0x40001C00 0x400>; 241 clocks = <&rcc 0 STM32 241 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>; 242 clock-names = "int"; 242 clock-names = "int"; 243 status = "disabled"; 243 status = "disabled"; 244 244 245 pwm { 245 pwm { 246 compatible = " 246 compatible = "st,stm32-pwm"; 247 #pwm-cells = < 247 #pwm-cells = <3>; 248 status = "disa 248 status = "disabled"; 249 }; 249 }; 250 }; 250 }; 251 251 252 timers14: timers@40002000 { 252 timers14: timers@40002000 { 253 compatible = "st,stm32 253 compatible = "st,stm32-timers"; 254 reg = <0x40002000 0x40 254 reg = <0x40002000 0x400>; 255 clocks = <&rcc 0 STM32 255 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>; 256 clock-names = "int"; 256 clock-names = "int"; 257 status = "disabled"; 257 status = "disabled"; 258 258 259 pwm { 259 pwm { 260 compatible = " 260 compatible = "st,stm32-pwm"; 261 #pwm-cells = < 261 #pwm-cells = <3>; 262 status = "disa 262 status = "disabled"; 263 }; 263 }; 264 }; 264 }; 265 265 266 rtc: rtc@40002800 { 266 rtc: rtc@40002800 { 267 compatible = "st,stm32 267 compatible = "st,stm32-rtc"; 268 reg = <0x40002800 0x40 268 reg = <0x40002800 0x400>; 269 clocks = <&rcc 1 CLK_R 269 clocks = <&rcc 1 CLK_RTC>; 270 assigned-clocks = <&rc 270 assigned-clocks = <&rcc 1 CLK_RTC>; 271 assigned-clock-parents 271 assigned-clock-parents = <&rcc 1 CLK_LSE>; 272 interrupt-parent = <&e 272 interrupt-parent = <&exti>; 273 interrupts = <17 1>; 273 interrupts = <17 1>; 274 st,syscfg = <&pwrcfg 0 274 st,syscfg = <&pwrcfg 0x00 0x100>; 275 status = "disabled"; 275 status = "disabled"; 276 }; 276 }; 277 277 278 iwdg: watchdog@40003000 { 278 iwdg: watchdog@40003000 { 279 compatible = "st,stm32 279 compatible = "st,stm32-iwdg"; 280 reg = <0x40003000 0x40 280 reg = <0x40003000 0x400>; 281 clocks = <&clk_lsi>; 281 clocks = <&clk_lsi>; 282 clock-names = "lsi"; 282 clock-names = "lsi"; 283 status = "disabled"; 283 status = "disabled"; 284 }; 284 }; 285 285 286 spi2: spi@40003800 { 286 spi2: spi@40003800 { 287 #address-cells = <1>; 287 #address-cells = <1>; 288 #size-cells = <0>; 288 #size-cells = <0>; 289 compatible = "st,stm32 289 compatible = "st,stm32f4-spi"; 290 reg = <0x40003800 0x40 290 reg = <0x40003800 0x400>; 291 interrupts = <36>; 291 interrupts = <36>; 292 clocks = <&rcc 0 STM32 292 clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI2)>; 293 status = "disabled"; 293 status = "disabled"; 294 }; 294 }; 295 295 296 spi3: spi@40003c00 { 296 spi3: spi@40003c00 { 297 #address-cells = <1>; 297 #address-cells = <1>; 298 #size-cells = <0>; 298 #size-cells = <0>; 299 compatible = "st,stm32 299 compatible = "st,stm32f4-spi"; 300 reg = <0x40003c00 0x40 300 reg = <0x40003c00 0x400>; 301 interrupts = <51>; 301 interrupts = <51>; 302 clocks = <&rcc 0 STM32 302 clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI3)>; 303 status = "disabled"; 303 status = "disabled"; 304 }; 304 }; 305 305 306 usart2: serial@40004400 { 306 usart2: serial@40004400 { 307 compatible = "st,stm32 307 compatible = "st,stm32-uart"; 308 reg = <0x40004400 0x40 308 reg = <0x40004400 0x400>; 309 interrupts = <38>; 309 interrupts = <38>; 310 clocks = <&rcc 0 STM32 310 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART2)>; 311 status = "disabled"; 311 status = "disabled"; 312 }; 312 }; 313 313 314 usart3: serial@40004800 { 314 usart3: serial@40004800 { 315 compatible = "st,stm32 315 compatible = "st,stm32-uart"; 316 reg = <0x40004800 0x40 316 reg = <0x40004800 0x400>; 317 interrupts = <39>; 317 interrupts = <39>; 318 clocks = <&rcc 0 STM32 318 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART3)>; 319 status = "disabled"; 319 status = "disabled"; 320 dmas = <&dma1 1 4 0x40 320 dmas = <&dma1 1 4 0x400 0x0>, 321 <&dma1 3 4 0x40 321 <&dma1 3 4 0x400 0x0>; 322 dma-names = "rx", "tx" 322 dma-names = "rx", "tx"; 323 }; 323 }; 324 324 325 usart4: serial@40004c00 { 325 usart4: serial@40004c00 { 326 compatible = "st,stm32 326 compatible = "st,stm32-uart"; 327 reg = <0x40004c00 0x40 327 reg = <0x40004c00 0x400>; 328 interrupts = <52>; 328 interrupts = <52>; 329 clocks = <&rcc 0 STM32 329 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART4)>; 330 status = "disabled"; 330 status = "disabled"; 331 }; 331 }; 332 332 333 usart5: serial@40005000 { 333 usart5: serial@40005000 { 334 compatible = "st,stm32 334 compatible = "st,stm32-uart"; 335 reg = <0x40005000 0x40 335 reg = <0x40005000 0x400>; 336 interrupts = <53>; 336 interrupts = <53>; 337 clocks = <&rcc 0 STM32 337 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART5)>; 338 status = "disabled"; 338 status = "disabled"; 339 }; 339 }; 340 340 341 i2c1: i2c@40005400 { 341 i2c1: i2c@40005400 { 342 compatible = "st,stm32 342 compatible = "st,stm32f4-i2c"; 343 reg = <0x40005400 0x40 343 reg = <0x40005400 0x400>; 344 interrupts = <31>, 344 interrupts = <31>, 345 <32>; 345 <32>; 346 resets = <&rcc STM32F4 346 resets = <&rcc STM32F4_APB1_RESET(I2C1)>; 347 clocks = <&rcc 0 STM32 347 clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C1)>; 348 #address-cells = <1>; 348 #address-cells = <1>; 349 #size-cells = <0>; 349 #size-cells = <0>; 350 status = "disabled"; 350 status = "disabled"; 351 }; 351 }; 352 352 353 i2c3: i2c@40005c00 { 353 i2c3: i2c@40005c00 { 354 compatible = "st,stm32 354 compatible = "st,stm32f4-i2c"; 355 reg = <0x40005c00 0x40 355 reg = <0x40005c00 0x400>; 356 interrupts = <72>, 356 interrupts = <72>, 357 <73>; 357 <73>; 358 resets = <&rcc STM32F4 358 resets = <&rcc STM32F4_APB1_RESET(I2C3)>; 359 clocks = <&rcc 0 STM32 359 clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C3)>; 360 #address-cells = <1>; 360 #address-cells = <1>; 361 #size-cells = <0>; 361 #size-cells = <0>; 362 status = "disabled"; 362 status = "disabled"; 363 }; 363 }; 364 364 365 can1: can@40006400 { 365 can1: can@40006400 { 366 compatible = "st,stm32 366 compatible = "st,stm32f4-bxcan"; 367 reg = <0x40006400 0x20 367 reg = <0x40006400 0x200>; 368 interrupts = <19>, <20 368 interrupts = <19>, <20>, <21>, <22>; 369 interrupt-names = "tx" 369 interrupt-names = "tx", "rx0", "rx1", "sce"; 370 resets = <&rcc STM32F4 370 resets = <&rcc STM32F4_APB1_RESET(CAN1)>; 371 clocks = <&rcc 0 STM32 371 clocks = <&rcc 0 STM32F4_APB1_CLOCK(CAN1)>; 372 st,can-primary; 372 st,can-primary; 373 st,gcan = <&gcan>; 373 st,gcan = <&gcan>; 374 status = "disabled"; 374 status = "disabled"; 375 }; 375 }; 376 376 377 gcan: gcan@40006600 { 377 gcan: gcan@40006600 { 378 compatible = "st,stm32 378 compatible = "st,stm32f4-gcan", "syscon"; 379 reg = <0x40006600 0x20 379 reg = <0x40006600 0x200>; 380 clocks = <&rcc 0 STM32 380 clocks = <&rcc 0 STM32F4_APB1_CLOCK(CAN1)>; 381 }; 381 }; 382 382 383 can2: can@40006800 { 383 can2: can@40006800 { 384 compatible = "st,stm32 384 compatible = "st,stm32f4-bxcan"; 385 reg = <0x40006800 0x20 385 reg = <0x40006800 0x200>; 386 interrupts = <63>, <64 386 interrupts = <63>, <64>, <65>, <66>; 387 interrupt-names = "tx" 387 interrupt-names = "tx", "rx0", "rx1", "sce"; 388 resets = <&rcc STM32F4 388 resets = <&rcc STM32F4_APB1_RESET(CAN2)>; 389 clocks = <&rcc 0 STM32 389 clocks = <&rcc 0 STM32F4_APB1_CLOCK(CAN2)>; 390 st,can-secondary; 390 st,can-secondary; 391 st,gcan = <&gcan>; 391 st,gcan = <&gcan>; 392 status = "disabled"; 392 status = "disabled"; 393 }; 393 }; 394 394 395 dac: dac@40007400 { 395 dac: dac@40007400 { 396 compatible = "st,stm32 396 compatible = "st,stm32f4-dac-core"; 397 reg = <0x40007400 0x40 397 reg = <0x40007400 0x400>; 398 resets = <&rcc STM32F4 398 resets = <&rcc STM32F4_APB1_RESET(DAC)>; 399 clocks = <&rcc 0 STM32 399 clocks = <&rcc 0 STM32F4_APB1_CLOCK(DAC)>; 400 clock-names = "pclk"; 400 clock-names = "pclk"; 401 #address-cells = <1>; 401 #address-cells = <1>; 402 #size-cells = <0>; 402 #size-cells = <0>; 403 status = "disabled"; 403 status = "disabled"; 404 404 405 dac1: dac@1 { 405 dac1: dac@1 { 406 compatible = " 406 compatible = "st,stm32-dac"; 407 #io-channel-ce 407 #io-channel-cells = <1>; 408 reg = <1>; 408 reg = <1>; 409 status = "disa 409 status = "disabled"; 410 }; 410 }; 411 411 412 dac2: dac@2 { 412 dac2: dac@2 { 413 compatible = " 413 compatible = "st,stm32-dac"; 414 #io-channel-ce 414 #io-channel-cells = <1>; 415 reg = <2>; 415 reg = <2>; 416 status = "disa 416 status = "disabled"; 417 }; 417 }; 418 }; 418 }; 419 419 420 usart7: serial@40007800 { 420 usart7: serial@40007800 { 421 compatible = "st,stm32 421 compatible = "st,stm32-uart"; 422 reg = <0x40007800 0x40 422 reg = <0x40007800 0x400>; 423 interrupts = <82>; 423 interrupts = <82>; 424 clocks = <&rcc 0 STM32 424 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART7)>; 425 status = "disabled"; 425 status = "disabled"; 426 }; 426 }; 427 427 428 usart8: serial@40007c00 { 428 usart8: serial@40007c00 { 429 compatible = "st,stm32 429 compatible = "st,stm32-uart"; 430 reg = <0x40007c00 0x40 430 reg = <0x40007c00 0x400>; 431 interrupts = <83>; 431 interrupts = <83>; 432 clocks = <&rcc 0 STM32 432 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART8)>; 433 status = "disabled"; 433 status = "disabled"; 434 }; 434 }; 435 435 436 timers1: timers@40010000 { 436 timers1: timers@40010000 { 437 #address-cells = <1>; 437 #address-cells = <1>; 438 #size-cells = <0>; 438 #size-cells = <0>; 439 compatible = "st,stm32 439 compatible = "st,stm32-timers"; 440 reg = <0x40010000 0x40 440 reg = <0x40010000 0x400>; 441 clocks = <&rcc 0 STM32 441 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM1)>; 442 clock-names = "int"; 442 clock-names = "int"; 443 status = "disabled"; 443 status = "disabled"; 444 444 445 pwm { 445 pwm { 446 compatible = " 446 compatible = "st,stm32-pwm"; 447 #pwm-cells = < 447 #pwm-cells = <3>; 448 status = "disa 448 status = "disabled"; 449 }; 449 }; 450 450 451 timer@0 { 451 timer@0 { 452 compatible = " 452 compatible = "st,stm32-timer-trigger"; 453 reg = <0>; 453 reg = <0>; 454 status = "disa 454 status = "disabled"; 455 }; 455 }; 456 }; 456 }; 457 457 458 timers8: timers@40010400 { 458 timers8: timers@40010400 { 459 #address-cells = <1>; 459 #address-cells = <1>; 460 #size-cells = <0>; 460 #size-cells = <0>; 461 compatible = "st,stm32 461 compatible = "st,stm32-timers"; 462 reg = <0x40010400 0x40 462 reg = <0x40010400 0x400>; 463 clocks = <&rcc 0 STM32 463 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM8)>; 464 clock-names = "int"; 464 clock-names = "int"; 465 status = "disabled"; 465 status = "disabled"; 466 466 467 pwm { 467 pwm { 468 compatible = " 468 compatible = "st,stm32-pwm"; 469 #pwm-cells = < 469 #pwm-cells = <3>; 470 status = "disa 470 status = "disabled"; 471 }; 471 }; 472 472 473 timer@7 { 473 timer@7 { 474 compatible = " 474 compatible = "st,stm32-timer-trigger"; 475 reg = <7>; 475 reg = <7>; 476 status = "disa 476 status = "disabled"; 477 }; 477 }; 478 }; 478 }; 479 479 480 usart1: serial@40011000 { 480 usart1: serial@40011000 { 481 compatible = "st,stm32 481 compatible = "st,stm32-uart"; 482 reg = <0x40011000 0x40 482 reg = <0x40011000 0x400>; 483 interrupts = <37>; 483 interrupts = <37>; 484 clocks = <&rcc 0 STM32 484 clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART1)>; 485 status = "disabled"; 485 status = "disabled"; 486 dmas = <&dma2 2 4 0x40 486 dmas = <&dma2 2 4 0x400 0x0>, 487 <&dma2 7 4 0x40 487 <&dma2 7 4 0x400 0x0>; 488 dma-names = "rx", "tx" 488 dma-names = "rx", "tx"; 489 }; 489 }; 490 490 491 usart6: serial@40011400 { 491 usart6: serial@40011400 { 492 compatible = "st,stm32 492 compatible = "st,stm32-uart"; 493 reg = <0x40011400 0x40 493 reg = <0x40011400 0x400>; 494 interrupts = <71>; 494 interrupts = <71>; 495 clocks = <&rcc 0 STM32 495 clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART6)>; 496 status = "disabled"; 496 status = "disabled"; 497 }; 497 }; 498 498 499 adc: adc@40012000 { 499 adc: adc@40012000 { 500 compatible = "st,stm32 500 compatible = "st,stm32f4-adc-core"; 501 reg = <0x40012000 0x40 501 reg = <0x40012000 0x400>; 502 interrupts = <18>; 502 interrupts = <18>; 503 clocks = <&rcc 0 STM32 503 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; 504 clock-names = "adc"; 504 clock-names = "adc"; 505 interrupt-controller; 505 interrupt-controller; 506 #interrupt-cells = <1> 506 #interrupt-cells = <1>; 507 #address-cells = <1>; 507 #address-cells = <1>; 508 #size-cells = <0>; 508 #size-cells = <0>; 509 status = "disabled"; 509 status = "disabled"; 510 510 511 adc1: adc@0 { 511 adc1: adc@0 { 512 compatible = " 512 compatible = "st,stm32f4-adc"; 513 #io-channel-ce 513 #io-channel-cells = <1>; 514 reg = <0x0>; 514 reg = <0x0>; 515 clocks = <&rcc 515 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; 516 interrupt-pare 516 interrupt-parent = <&adc>; 517 interrupts = < 517 interrupts = <0>; 518 dmas = <&dma2 518 dmas = <&dma2 0 0 0x400 0x0>; 519 dma-names = "r 519 dma-names = "rx"; 520 status = "disa 520 status = "disabled"; 521 }; 521 }; 522 522 523 adc2: adc@100 { 523 adc2: adc@100 { 524 compatible = " 524 compatible = "st,stm32f4-adc"; 525 #io-channel-ce 525 #io-channel-cells = <1>; 526 reg = <0x100>; 526 reg = <0x100>; 527 clocks = <&rcc 527 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>; 528 interrupt-pare 528 interrupt-parent = <&adc>; 529 interrupts = < 529 interrupts = <1>; 530 dmas = <&dma2 530 dmas = <&dma2 3 1 0x400 0x0>; 531 dma-names = "r 531 dma-names = "rx"; 532 status = "disa 532 status = "disabled"; 533 }; 533 }; 534 534 535 adc3: adc@200 { 535 adc3: adc@200 { 536 compatible = " 536 compatible = "st,stm32f4-adc"; 537 #io-channel-ce 537 #io-channel-cells = <1>; 538 reg = <0x200>; 538 reg = <0x200>; 539 clocks = <&rcc 539 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>; 540 interrupt-pare 540 interrupt-parent = <&adc>; 541 interrupts = < 541 interrupts = <2>; 542 dmas = <&dma2 542 dmas = <&dma2 1 2 0x400 0x0>; 543 dma-names = "r 543 dma-names = "rx"; 544 status = "disa 544 status = "disabled"; 545 }; 545 }; 546 }; 546 }; 547 547 548 sdio: mmc@40012c00 { 548 sdio: mmc@40012c00 { 549 compatible = "arm,pl18 549 compatible = "arm,pl180", "arm,primecell"; 550 arm,primecell-periphid 550 arm,primecell-periphid = <0x00880180>; 551 reg = <0x40012c00 0x40 551 reg = <0x40012c00 0x400>; 552 clocks = <&rcc 0 STM32 552 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SDIO)>; 553 clock-names = "apb_pcl 553 clock-names = "apb_pclk"; 554 interrupts = <49>; 554 interrupts = <49>; 555 max-frequency = <48000 555 max-frequency = <48000000>; 556 status = "disabled"; 556 status = "disabled"; 557 }; 557 }; 558 558 559 spi1: spi@40013000 { 559 spi1: spi@40013000 { 560 #address-cells = <1>; 560 #address-cells = <1>; 561 #size-cells = <0>; 561 #size-cells = <0>; 562 compatible = "st,stm32 562 compatible = "st,stm32f4-spi"; 563 reg = <0x40013000 0x40 563 reg = <0x40013000 0x400>; 564 interrupts = <35>; 564 interrupts = <35>; 565 clocks = <&rcc 0 STM32 565 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI1)>; 566 status = "disabled"; 566 status = "disabled"; 567 }; 567 }; 568 568 569 spi4: spi@40013400 { 569 spi4: spi@40013400 { 570 #address-cells = <1>; 570 #address-cells = <1>; 571 #size-cells = <0>; 571 #size-cells = <0>; 572 compatible = "st,stm32 572 compatible = "st,stm32f4-spi"; 573 reg = <0x40013400 0x40 573 reg = <0x40013400 0x400>; 574 interrupts = <84>; 574 interrupts = <84>; 575 clocks = <&rcc 0 STM32 575 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI4)>; 576 status = "disabled"; 576 status = "disabled"; 577 }; 577 }; 578 578 579 syscfg: syscon@40013800 { 579 syscfg: syscon@40013800 { 580 compatible = "st,stm32 580 compatible = "st,stm32-syscfg", "syscon"; 581 reg = <0x40013800 0x40 581 reg = <0x40013800 0x400>; 582 clocks = <&rcc 0 STM32 582 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SYSCFG)>; 583 }; 583 }; 584 584 585 exti: interrupt-controller@400 585 exti: interrupt-controller@40013c00 { 586 compatible = "st,stm32 586 compatible = "st,stm32-exti"; 587 interrupt-controller; 587 interrupt-controller; 588 #interrupt-cells = <2> 588 #interrupt-cells = <2>; 589 reg = <0x40013C00 0x40 589 reg = <0x40013C00 0x400>; 590 interrupts = <1>, <2>, 590 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; 591 }; 591 }; 592 592 593 timers9: timers@40014000 { 593 timers9: timers@40014000 { 594 #address-cells = <1>; 594 #address-cells = <1>; 595 #size-cells = <0>; 595 #size-cells = <0>; 596 compatible = "st,stm32 596 compatible = "st,stm32-timers"; 597 reg = <0x40014000 0x40 597 reg = <0x40014000 0x400>; 598 clocks = <&rcc 0 STM32 598 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM9)>; 599 clock-names = "int"; 599 clock-names = "int"; 600 status = "disabled"; 600 status = "disabled"; 601 601 602 pwm { 602 pwm { 603 compatible = " 603 compatible = "st,stm32-pwm"; 604 #pwm-cells = < 604 #pwm-cells = <3>; 605 status = "disa 605 status = "disabled"; 606 }; 606 }; 607 607 608 timer@8 { 608 timer@8 { 609 compatible = " 609 compatible = "st,stm32-timer-trigger"; 610 reg = <8>; 610 reg = <8>; 611 status = "disa 611 status = "disabled"; 612 }; 612 }; 613 }; 613 }; 614 614 615 timers10: timers@40014400 { 615 timers10: timers@40014400 { 616 compatible = "st,stm32 616 compatible = "st,stm32-timers"; 617 reg = <0x40014400 0x40 617 reg = <0x40014400 0x400>; 618 clocks = <&rcc 0 STM32 618 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>; 619 clock-names = "int"; 619 clock-names = "int"; 620 status = "disabled"; 620 status = "disabled"; 621 621 622 pwm { 622 pwm { 623 compatible = " 623 compatible = "st,stm32-pwm"; 624 #pwm-cells = < 624 #pwm-cells = <3>; 625 status = "disa 625 status = "disabled"; 626 }; 626 }; 627 }; 627 }; 628 628 629 timers11: timers@40014800 { 629 timers11: timers@40014800 { 630 compatible = "st,stm32 630 compatible = "st,stm32-timers"; 631 reg = <0x40014800 0x40 631 reg = <0x40014800 0x400>; 632 clocks = <&rcc 0 STM32 632 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>; 633 clock-names = "int"; 633 clock-names = "int"; 634 status = "disabled"; 634 status = "disabled"; 635 635 636 pwm { 636 pwm { 637 compatible = " 637 compatible = "st,stm32-pwm"; 638 #pwm-cells = < 638 #pwm-cells = <3>; 639 status = "disa 639 status = "disabled"; 640 }; 640 }; 641 }; 641 }; 642 642 643 spi5: spi@40015000 { 643 spi5: spi@40015000 { 644 #address-cells = <1>; 644 #address-cells = <1>; 645 #size-cells = <0>; 645 #size-cells = <0>; 646 compatible = "st,stm32 646 compatible = "st,stm32f4-spi"; 647 reg = <0x40015000 0x40 647 reg = <0x40015000 0x400>; 648 interrupts = <85>; 648 interrupts = <85>; 649 clocks = <&rcc 0 STM32 649 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI5)>; 650 dmas = <&dma2 3 2 0x40 650 dmas = <&dma2 3 2 0x400 0x0>, 651 <&dma2 4 2 0x4 651 <&dma2 4 2 0x400 0x0>; 652 dma-names = "rx", "tx" 652 dma-names = "rx", "tx"; 653 status = "disabled"; 653 status = "disabled"; 654 }; 654 }; 655 655 656 spi6: spi@40015400 { 656 spi6: spi@40015400 { 657 #address-cells = <1>; 657 #address-cells = <1>; 658 #size-cells = <0>; 658 #size-cells = <0>; 659 compatible = "st,stm32 659 compatible = "st,stm32f4-spi"; 660 reg = <0x40015400 0x40 660 reg = <0x40015400 0x400>; 661 interrupts = <86>; 661 interrupts = <86>; 662 clocks = <&rcc 0 STM32 662 clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI6)>; 663 status = "disabled"; 663 status = "disabled"; 664 }; 664 }; 665 665 666 pwrcfg: power-config@40007000 666 pwrcfg: power-config@40007000 { 667 compatible = "st,stm32 667 compatible = "st,stm32-power-config", "syscon"; 668 reg = <0x40007000 0x40 668 reg = <0x40007000 0x400>; 669 }; 669 }; 670 670 671 ltdc: display-controller@40016 671 ltdc: display-controller@40016800 { 672 compatible = "st,stm32 672 compatible = "st,stm32-ltdc"; 673 reg = <0x40016800 0x20 673 reg = <0x40016800 0x200>; 674 interrupts = <88>, <89 674 interrupts = <88>, <89>; 675 resets = <&rcc STM32F4 675 resets = <&rcc STM32F4_APB2_RESET(LTDC)>; 676 clocks = <&rcc 1 CLK_L 676 clocks = <&rcc 1 CLK_LCD>; 677 clock-names = "lcd"; 677 clock-names = "lcd"; 678 status = "disabled"; 678 status = "disabled"; 679 }; 679 }; 680 680 681 crc: crc@40023000 { 681 crc: crc@40023000 { 682 compatible = "st,stm32 682 compatible = "st,stm32f4-crc"; 683 reg = <0x40023000 0x40 683 reg = <0x40023000 0x400>; 684 clocks = <&rcc 0 STM32 684 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(CRC)>; 685 status = "disabled"; 685 status = "disabled"; 686 }; 686 }; 687 687 688 rcc: rcc@40023800 { 688 rcc: rcc@40023800 { 689 #reset-cells = <1>; 689 #reset-cells = <1>; 690 #clock-cells = <2>; 690 #clock-cells = <2>; 691 compatible = "st,stm32 691 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; 692 reg = <0x40023800 0x40 692 reg = <0x40023800 0x400>; 693 clocks = <&clk_hse>, < 693 clocks = <&clk_hse>, <&clk_i2s_ckin>; 694 st,syscfg = <&pwrcfg>; 694 st,syscfg = <&pwrcfg>; 695 assigned-clocks = <&rc 695 assigned-clocks = <&rcc 1 CLK_HSE_RTC>; 696 assigned-clock-rates = 696 assigned-clock-rates = <1000000>; 697 }; 697 }; 698 698 699 dma1: dma-controller@40026000 699 dma1: dma-controller@40026000 { 700 compatible = "st,stm32 700 compatible = "st,stm32-dma"; 701 reg = <0x40026000 0x40 701 reg = <0x40026000 0x400>; 702 interrupts = <11>, 702 interrupts = <11>, 703 <12>, 703 <12>, 704 <13>, 704 <13>, 705 <14>, 705 <14>, 706 <15>, 706 <15>, 707 <16>, 707 <16>, 708 <17>, 708 <17>, 709 <47>; 709 <47>; 710 clocks = <&rcc 0 STM32 710 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA1)>; 711 #dma-cells = <4>; 711 #dma-cells = <4>; 712 }; 712 }; 713 713 714 dma2: dma-controller@40026400 714 dma2: dma-controller@40026400 { 715 compatible = "st,stm32 715 compatible = "st,stm32-dma"; 716 reg = <0x40026400 0x40 716 reg = <0x40026400 0x400>; 717 interrupts = <56>, 717 interrupts = <56>, 718 <57>, 718 <57>, 719 <58>, 719 <58>, 720 <59>, 720 <59>, 721 <60>, 721 <60>, 722 <68>, 722 <68>, 723 <69>, 723 <69>, 724 <70>; 724 <70>; 725 clocks = <&rcc 0 STM32 725 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2)>; 726 #dma-cells = <4>; 726 #dma-cells = <4>; 727 st,mem2mem; 727 st,mem2mem; 728 }; 728 }; 729 729 730 mac: ethernet@40028000 { 730 mac: ethernet@40028000 { 731 compatible = "st,stm32 731 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; 732 reg = <0x40028000 0x80 732 reg = <0x40028000 0x8000>; 733 reg-names = "stmmaceth 733 reg-names = "stmmaceth"; 734 interrupts = <61>; 734 interrupts = <61>; 735 interrupt-names = "mac 735 interrupt-names = "macirq"; 736 clock-names = "stmmace 736 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 737 clocks = <&rcc 0 STM32 737 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(ETHMAC)>, 738 <&rcc 738 <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACTX)>, 739 <&rcc 739 <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACRX)>; 740 st,syscon = <&syscfg 0 740 st,syscon = <&syscfg 0x4>; 741 snps,pbl = <8>; 741 snps,pbl = <8>; 742 snps,mixed-burst; 742 snps,mixed-burst; 743 status = "disabled"; 743 status = "disabled"; 744 }; 744 }; 745 745 746 dma2d: dma2d@4002b000 { 746 dma2d: dma2d@4002b000 { 747 compatible = "st,stm32 747 compatible = "st,stm32-dma2d"; 748 reg = <0x4002b000 0xc0 748 reg = <0x4002b000 0xc00>; 749 interrupts = <90>; 749 interrupts = <90>; 750 resets = <&rcc STM32F4 750 resets = <&rcc STM32F4_AHB1_RESET(DMA2D)>; 751 clocks = <&rcc 0 STM32 751 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2D)>; 752 clock-names = "dma2d"; 752 clock-names = "dma2d"; 753 status = "disabled"; 753 status = "disabled"; 754 }; 754 }; 755 755 756 usbotg_hs: usb@40040000 { 756 usbotg_hs: usb@40040000 { 757 compatible = "snps,dwc 757 compatible = "snps,dwc2"; 758 reg = <0x40040000 0x40 758 reg = <0x40040000 0x40000>; 759 interrupts = <77>; 759 interrupts = <77>; 760 clocks = <&rcc 0 STM32 760 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHS)>; 761 clock-names = "otg"; 761 clock-names = "otg"; 762 status = "disabled"; 762 status = "disabled"; 763 }; 763 }; 764 764 765 usbotg_fs: usb@50000000 { 765 usbotg_fs: usb@50000000 { 766 compatible = "st,stm32 766 compatible = "st,stm32f4x9-fsotg"; 767 reg = <0x50000000 0x40 767 reg = <0x50000000 0x40000>; 768 interrupts = <67>; 768 interrupts = <67>; 769 clocks = <&rcc 0 39>; 769 clocks = <&rcc 0 39>; 770 clock-names = "otg"; 770 clock-names = "otg"; 771 status = "disabled"; 771 status = "disabled"; 772 }; 772 }; 773 773 774 dcmi: dcmi@50050000 { 774 dcmi: dcmi@50050000 { 775 compatible = "st,stm32 775 compatible = "st,stm32-dcmi"; 776 reg = <0x50050000 0x40 776 reg = <0x50050000 0x400>; 777 interrupts = <78>; 777 interrupts = <78>; 778 resets = <&rcc STM32F4 778 resets = <&rcc STM32F4_AHB2_RESET(DCMI)>; 779 clocks = <&rcc 0 STM32 779 clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>; 780 clock-names = "mclk"; 780 clock-names = "mclk"; 781 pinctrl-names = "defau 781 pinctrl-names = "default"; 782 pinctrl-0 = <&dcmi_pin 782 pinctrl-0 = <&dcmi_pins>; 783 dmas = <&dma2 1 1 0x41 783 dmas = <&dma2 1 1 0x414 0x3>; 784 dma-names = "tx"; 784 dma-names = "tx"; 785 status = "disabled"; 785 status = "disabled"; 786 }; 786 }; 787 787 788 rng: rng@50060800 { 788 rng: rng@50060800 { 789 compatible = "st,stm32 789 compatible = "st,stm32-rng"; 790 reg = <0x50060800 0x40 790 reg = <0x50060800 0x400>; 791 clocks = <&rcc 0 STM32 791 clocks = <&rcc 0 STM32F4_AHB2_CLOCK(RNG)>; 792 792 793 }; 793 }; 794 }; 794 }; 795 }; 795 }; 796 796 797 &systick { 797 &systick { 798 clocks = <&rcc 1 SYSTICK>; 798 clocks = <&rcc 1 SYSTICK>; 799 status = "okay"; 799 status = "okay"; 800 }; 800 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.