Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'stm32-dt-for-v4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into next/dt

Pull "STM32 DT updates for v4.11, round 2" from Alexandre Torgue:

Highlights:
----------

- ADD Timers support on STM32F429 MCU
- Enable PWM1 & PWM3 on STM32F469 Disco board
- Fix STM32F4_X_CLOCK macro
- Use STM32F4_X_CLOCK macro in STM32 device tree
- Add I2C1 support for STM32F429 MCU
- Enable I2C1 on STM32F429 eval board

* tag 'stm32-dt-for-v4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
ARM: dts: stm32: Add I2C1 support for STM32429 eval board
ARM: dts: stm32: Add I2C1 support for STM32F429 SoC
ARM: dts: stm32: Use clock DT binding definition on stm32f429 family
dt-bindings: mfd: stm32f4: Add missing binding definition
dt-bindings: mfd: stm32f4: Fix STM32F4_X_CLOCK() macro
ARM: dts: stm32: Enable pwm1 and pwm3 for stm32f469-disco
ARM: dts: stm32: add Timers driver for stm32f429 MCU

+388 -43
+7 -1
arch/arm/boot/dts/stm32429i-eval.dts
··· 121 121 usbotg_hs_phy: usbphy { 122 122 #phy-cells = <0>; 123 123 compatible = "usb-nop-xceiv"; 124 - clocks = <&rcc 0 30>; 124 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHSULPI)>; 125 125 clock-names = "main_clk"; 126 126 }; 127 127 }; ··· 139 139 140 140 &clk_hse { 141 141 clock-frequency = <25000000>; 142 + }; 143 + 144 + &i2c1 { 145 + pinctrl-0 = <&i2c1_pins>; 146 + pinctrl-names = "default"; 147 + status = "okay"; 142 148 }; 143 149 144 150 &mac {
+336 -35
arch/arm/boot/dts/stm32f429.dtsi
··· 49 49 #include "armv7-m.dtsi" 50 50 #include <dt-bindings/pinctrl/stm32f429-pinfunc.h> 51 51 #include <dt-bindings/clock/stm32fx-clock.h> 52 + #include <dt-bindings/mfd/stm32f4-rcc.h> 52 53 53 54 / { 54 55 clocks { ··· 83 82 compatible = "st,stm32-timer"; 84 83 reg = <0x40000000 0x400>; 85 84 interrupts = <28>; 86 - clocks = <&rcc 0 128>; 85 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>; 87 86 status = "disabled"; 87 + }; 88 + 89 + timers2: timers@40000000 { 90 + #address-cells = <1>; 91 + #size-cells = <0>; 92 + compatible = "st,stm32-timers"; 93 + reg = <0x40000000 0x400>; 94 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>; 95 + clock-names = "int"; 96 + status = "disabled"; 97 + 98 + pwm { 99 + compatible = "st,stm32-pwm"; 100 + status = "disabled"; 101 + }; 102 + 103 + timer@1 { 104 + compatible = "st,stm32-timer-trigger"; 105 + reg = <1>; 106 + status = "disabled"; 107 + }; 88 108 }; 89 109 90 110 timer3: timer@40000400 { 91 111 compatible = "st,stm32-timer"; 92 112 reg = <0x40000400 0x400>; 93 113 interrupts = <29>; 94 - clocks = <&rcc 0 129>; 114 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>; 95 115 status = "disabled"; 116 + }; 117 + 118 + timers3: timers@40000400 { 119 + #address-cells = <1>; 120 + #size-cells = <0>; 121 + compatible = "st,stm32-timers"; 122 + reg = <0x40000400 0x400>; 123 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>; 124 + clock-names = "int"; 125 + status = "disabled"; 126 + 127 + pwm { 128 + compatible = "st,stm32-pwm"; 129 + status = "disabled"; 130 + }; 131 + 132 + timer@2 { 133 + compatible = "st,stm32-timer-trigger"; 134 + reg = <2>; 135 + status = "disabled"; 136 + }; 96 137 }; 97 138 98 139 timer4: timer@40000800 { 99 140 compatible = "st,stm32-timer"; 100 141 reg = <0x40000800 0x400>; 101 142 interrupts = <30>; 102 - clocks = <&rcc 0 130>; 143 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>; 103 144 status = "disabled"; 145 + }; 146 + 147 + timers4: timers@40000800 { 148 + #address-cells = <1>; 149 + #size-cells = <0>; 150 + compatible = "st,stm32-timers"; 151 + reg = <0x40000800 0x400>; 152 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>; 153 + clock-names = "int"; 154 + status = "disabled"; 155 + 156 + pwm { 157 + compatible = "st,stm32-pwm"; 158 + status = "disabled"; 159 + }; 160 + 161 + timer@3 { 162 + compatible = "st,stm32-timer-trigger"; 163 + reg = <3>; 164 + status = "disabled"; 165 + }; 104 166 }; 105 167 106 168 timer5: timer@40000c00 { 107 169 compatible = "st,stm32-timer"; 108 170 reg = <0x40000c00 0x400>; 109 171 interrupts = <50>; 110 - clocks = <&rcc 0 131>; 172 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>; 173 + }; 174 + 175 + timers5: timers@40000c00 { 176 + #address-cells = <1>; 177 + #size-cells = <0>; 178 + compatible = "st,stm32-timers"; 179 + reg = <0x40000C00 0x400>; 180 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>; 181 + clock-names = "int"; 182 + status = "disabled"; 183 + 184 + pwm { 185 + compatible = "st,stm32-pwm"; 186 + status = "disabled"; 187 + }; 188 + 189 + timer@4 { 190 + compatible = "st,stm32-timer-trigger"; 191 + reg = <4>; 192 + status = "disabled"; 193 + }; 111 194 }; 112 195 113 196 timer6: timer@40001000 { 114 197 compatible = "st,stm32-timer"; 115 198 reg = <0x40001000 0x400>; 116 199 interrupts = <54>; 117 - clocks = <&rcc 0 132>; 200 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>; 118 201 status = "disabled"; 202 + }; 203 + 204 + timers6: timers@40001000 { 205 + #address-cells = <1>; 206 + #size-cells = <0>; 207 + compatible = "st,stm32-timers"; 208 + reg = <0x40001000 0x400>; 209 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>; 210 + clock-names = "int"; 211 + status = "disabled"; 212 + 213 + timer@5 { 214 + compatible = "st,stm32-timer-trigger"; 215 + reg = <5>; 216 + status = "disabled"; 217 + }; 119 218 }; 120 219 121 220 timer7: timer@40001400 { 122 221 compatible = "st,stm32-timer"; 123 222 reg = <0x40001400 0x400>; 124 223 interrupts = <55>; 125 - clocks = <&rcc 0 133>; 224 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>; 126 225 status = "disabled"; 226 + }; 227 + 228 + timers7: timers@40001400 { 229 + #address-cells = <1>; 230 + #size-cells = <0>; 231 + compatible = "st,stm32-timers"; 232 + reg = <0x40001400 0x400>; 233 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>; 234 + clock-names = "int"; 235 + status = "disabled"; 236 + 237 + timer@6 { 238 + compatible = "st,stm32-timer-trigger"; 239 + reg = <6>; 240 + status = "disabled"; 241 + }; 242 + }; 243 + 244 + timers12: timers@40001800 { 245 + #address-cells = <1>; 246 + #size-cells = <0>; 247 + compatible = "st,stm32-timers"; 248 + reg = <0x40001800 0x400>; 249 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM12)>; 250 + clock-names = "int"; 251 + status = "disabled"; 252 + 253 + pwm { 254 + compatible = "st,stm32-pwm"; 255 + status = "disabled"; 256 + }; 257 + 258 + timer@11 { 259 + compatible = "st,stm32-timer-trigger"; 260 + reg = <11>; 261 + status = "disabled"; 262 + }; 263 + }; 264 + 265 + timers13: timers@40001c00 { 266 + #address-cells = <1>; 267 + #size-cells = <0>; 268 + compatible = "st,stm32-timers"; 269 + reg = <0x40001C00 0x400>; 270 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>; 271 + clock-names = "int"; 272 + status = "disabled"; 273 + 274 + pwm { 275 + compatible = "st,stm32-pwm"; 276 + status = "disabled"; 277 + }; 278 + }; 279 + 280 + timers14: timers@40002000 { 281 + #address-cells = <1>; 282 + #size-cells = <0>; 283 + compatible = "st,stm32-timers"; 284 + reg = <0x40002000 0x400>; 285 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>; 286 + clock-names = "int"; 287 + status = "disabled"; 288 + 289 + pwm { 290 + compatible = "st,stm32-pwm"; 291 + status = "disabled"; 292 + }; 127 293 }; 128 294 129 295 rtc: rtc@40002800 { ··· 311 143 compatible = "st,stm32-usart", "st,stm32-uart"; 312 144 reg = <0x40004400 0x400>; 313 145 interrupts = <38>; 314 - clocks = <&rcc 0 145>; 146 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART2)>; 315 147 status = "disabled"; 316 148 }; 317 149 ··· 319 151 compatible = "st,stm32-usart", "st,stm32-uart"; 320 152 reg = <0x40004800 0x400>; 321 153 interrupts = <39>; 322 - clocks = <&rcc 0 146>; 154 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART3)>; 323 155 status = "disabled"; 324 156 dmas = <&dma1 1 4 0x400 0x0>, 325 157 <&dma1 3 4 0x400 0x0>; ··· 330 162 compatible = "st,stm32-uart"; 331 163 reg = <0x40004c00 0x400>; 332 164 interrupts = <52>; 333 - clocks = <&rcc 0 147>; 165 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART4)>; 334 166 status = "disabled"; 335 167 }; 336 168 ··· 338 170 compatible = "st,stm32-uart"; 339 171 reg = <0x40005000 0x400>; 340 172 interrupts = <53>; 341 - clocks = <&rcc 0 148>; 173 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART5)>; 174 + status = "disabled"; 175 + }; 176 + 177 + i2c1: i2c@40005400 { 178 + compatible = "st,stm32f4-i2c"; 179 + reg = <0x40005400 0x400>; 180 + interrupts = <31>, 181 + <32>; 182 + resets = <&rcc STM32F4_APB1_RESET(I2C1)>; 183 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C1)>; 184 + #address-cells = <1>; 185 + #size-cells = <0>; 342 186 status = "disabled"; 343 187 }; 344 188 ··· 358 178 compatible = "st,stm32-usart", "st,stm32-uart"; 359 179 reg = <0x40007800 0x400>; 360 180 interrupts = <82>; 361 - clocks = <&rcc 0 158>; 181 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART7)>; 362 182 status = "disabled"; 363 183 }; 364 184 ··· 366 186 compatible = "st,stm32-usart", "st,stm32-uart"; 367 187 reg = <0x40007c00 0x400>; 368 188 interrupts = <83>; 369 - clocks = <&rcc 0 159>; 189 + clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART8)>; 370 190 status = "disabled"; 191 + }; 192 + 193 + timers1: timers@40010000 { 194 + #address-cells = <1>; 195 + #size-cells = <0>; 196 + compatible = "st,stm32-timers"; 197 + reg = <0x40010000 0x400>; 198 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM1)>; 199 + clock-names = "int"; 200 + status = "disabled"; 201 + 202 + pwm { 203 + compatible = "st,stm32-pwm"; 204 + status = "disabled"; 205 + }; 206 + 207 + timer@0 { 208 + compatible = "st,stm32-timer-trigger"; 209 + reg = <0>; 210 + status = "disabled"; 211 + }; 212 + }; 213 + 214 + timers8: timers@40010400 { 215 + #address-cells = <1>; 216 + #size-cells = <0>; 217 + compatible = "st,stm32-timers"; 218 + reg = <0x40010400 0x400>; 219 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM8)>; 220 + clock-names = "int"; 221 + status = "disabled"; 222 + 223 + pwm { 224 + compatible = "st,stm32-pwm"; 225 + status = "disabled"; 226 + }; 227 + 228 + timer@7 { 229 + compatible = "st,stm32-timer-trigger"; 230 + reg = <7>; 231 + status = "disabled"; 232 + }; 371 233 }; 372 234 373 235 usart1: serial@40011000 { 374 236 compatible = "st,stm32-usart", "st,stm32-uart"; 375 237 reg = <0x40011000 0x400>; 376 238 interrupts = <37>; 377 - clocks = <&rcc 0 164>; 239 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART1)>; 378 240 status = "disabled"; 379 241 dmas = <&dma2 2 4 0x400 0x0>, 380 242 <&dma2 7 4 0x400 0x0>; ··· 427 205 compatible = "st,stm32-usart", "st,stm32-uart"; 428 206 reg = <0x40011400 0x400>; 429 207 interrupts = <71>; 430 - clocks = <&rcc 0 165>; 208 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART6)>; 431 209 status = "disabled"; 432 210 }; 433 211 ··· 435 213 compatible = "st,stm32f4-adc-core"; 436 214 reg = <0x40012000 0x400>; 437 215 interrupts = <18>; 438 - clocks = <&rcc 0 168>; 216 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; 439 217 clock-names = "adc"; 440 218 interrupt-controller; 441 219 #interrupt-cells = <1>; ··· 447 225 compatible = "st,stm32f4-adc"; 448 226 #io-channel-cells = <1>; 449 227 reg = <0x0>; 450 - clocks = <&rcc 0 168>; 228 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; 451 229 interrupt-parent = <&adc>; 452 230 interrupts = <0>; 453 231 status = "disabled"; ··· 457 235 compatible = "st,stm32f4-adc"; 458 236 #io-channel-cells = <1>; 459 237 reg = <0x100>; 460 - clocks = <&rcc 0 169>; 238 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>; 461 239 interrupt-parent = <&adc>; 462 240 interrupts = <1>; 463 241 status = "disabled"; ··· 467 245 compatible = "st,stm32f4-adc"; 468 246 #io-channel-cells = <1>; 469 247 reg = <0x200>; 470 - clocks = <&rcc 0 170>; 248 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>; 471 249 interrupt-parent = <&adc>; 472 250 interrupts = <2>; 473 251 status = "disabled"; ··· 485 263 #interrupt-cells = <2>; 486 264 reg = <0x40013C00 0x400>; 487 265 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; 266 + }; 267 + 268 + timers9: timers@40014000 { 269 + #address-cells = <1>; 270 + #size-cells = <0>; 271 + compatible = "st,stm32-timers"; 272 + reg = <0x40014000 0x400>; 273 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM9)>; 274 + clock-names = "int"; 275 + status = "disabled"; 276 + 277 + pwm { 278 + compatible = "st,stm32-pwm"; 279 + status = "disabled"; 280 + }; 281 + 282 + timer@8 { 283 + compatible = "st,stm32-timer-trigger"; 284 + reg = <8>; 285 + status = "disabled"; 286 + }; 287 + }; 288 + 289 + timers10: timers@40014400 { 290 + #address-cells = <1>; 291 + #size-cells = <0>; 292 + compatible = "st,stm32-timers"; 293 + reg = <0x40014400 0x400>; 294 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>; 295 + clock-names = "int"; 296 + status = "disabled"; 297 + 298 + pwm { 299 + compatible = "st,stm32-pwm"; 300 + status = "disabled"; 301 + }; 302 + }; 303 + 304 + timers11: timers@40014800 { 305 + #address-cells = <1>; 306 + #size-cells = <0>; 307 + compatible = "st,stm32-timers"; 308 + reg = <0x40014800 0x400>; 309 + clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>; 310 + clock-names = "int"; 311 + status = "disabled"; 312 + 313 + pwm { 314 + compatible = "st,stm32-pwm"; 315 + status = "disabled"; 316 + }; 488 317 }; 489 318 490 319 pwrcfg: power-config@40007000 { ··· 556 283 gpio-controller; 557 284 #gpio-cells = <2>; 558 285 reg = <0x0 0x400>; 559 - clocks = <&rcc 0 0>; 286 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>; 560 287 st,bank-name = "GPIOA"; 561 288 }; 562 289 ··· 564 291 gpio-controller; 565 292 #gpio-cells = <2>; 566 293 reg = <0x400 0x400>; 567 - clocks = <&rcc 0 1>; 294 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOB)>; 568 295 st,bank-name = "GPIOB"; 569 296 }; 570 297 ··· 572 299 gpio-controller; 573 300 #gpio-cells = <2>; 574 301 reg = <0x800 0x400>; 575 - clocks = <&rcc 0 2>; 302 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOC)>; 576 303 st,bank-name = "GPIOC"; 577 304 }; 578 305 ··· 580 307 gpio-controller; 581 308 #gpio-cells = <2>; 582 309 reg = <0xc00 0x400>; 583 - clocks = <&rcc 0 3>; 310 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOD)>; 584 311 st,bank-name = "GPIOD"; 585 312 }; 586 313 ··· 588 315 gpio-controller; 589 316 #gpio-cells = <2>; 590 317 reg = <0x1000 0x400>; 591 - clocks = <&rcc 0 4>; 318 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOE)>; 592 319 st,bank-name = "GPIOE"; 593 320 }; 594 321 ··· 596 323 gpio-controller; 597 324 #gpio-cells = <2>; 598 325 reg = <0x1400 0x400>; 599 - clocks = <&rcc 0 5>; 326 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOF)>; 600 327 st,bank-name = "GPIOF"; 601 328 }; 602 329 ··· 604 331 gpio-controller; 605 332 #gpio-cells = <2>; 606 333 reg = <0x1800 0x400>; 607 - clocks = <&rcc 0 6>; 334 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOG)>; 608 335 st,bank-name = "GPIOG"; 609 336 }; 610 337 ··· 612 339 gpio-controller; 613 340 #gpio-cells = <2>; 614 341 reg = <0x1c00 0x400>; 615 - clocks = <&rcc 0 7>; 342 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOH)>; 616 343 st,bank-name = "GPIOH"; 617 344 }; 618 345 ··· 620 347 gpio-controller; 621 348 #gpio-cells = <2>; 622 349 reg = <0x2000 0x400>; 623 - clocks = <&rcc 0 8>; 350 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOI)>; 624 351 st,bank-name = "GPIOI"; 625 352 }; 626 353 ··· 628 355 gpio-controller; 629 356 #gpio-cells = <2>; 630 357 reg = <0x2400 0x400>; 631 - clocks = <&rcc 0 9>; 358 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOJ)>; 632 359 st,bank-name = "GPIOJ"; 633 360 }; 634 361 ··· 636 363 gpio-controller; 637 364 #gpio-cells = <2>; 638 365 reg = <0x2800 0x400>; 639 - clocks = <&rcc 0 10>; 366 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOK)>; 640 367 st,bank-name = "GPIOK"; 641 368 }; 642 369 ··· 711 438 pinmux = <STM32F429_PF10_FUNC_ANALOG>; 712 439 }; 713 440 }; 441 + 442 + pwm1_pins: pwm@1 { 443 + pins { 444 + pinmux = <STM32F429_PA8_FUNC_TIM1_CH1>, 445 + <STM32F429_PB13_FUNC_TIM1_CH1N>, 446 + <STM32F429_PB12_FUNC_TIM1_BKIN>; 447 + }; 448 + }; 449 + 450 + pwm3_pins: pwm@3 { 451 + pins { 452 + pinmux = <STM32F429_PB4_FUNC_TIM3_CH1>, 453 + <STM32F429_PB5_FUNC_TIM3_CH2>; 454 + }; 455 + }; 456 + 457 + i2c1_pins: i2c1@0 { 458 + pins { 459 + pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>, 460 + <STM32F429_PB6_FUNC_I2C1_SCL>; 461 + bias-disable; 462 + drive-open-drain; 463 + slew-rate = <3>; 464 + }; 465 + }; 714 466 }; 715 467 716 468 rcc: rcc@40023810 { ··· 760 462 <16>, 761 463 <17>, 762 464 <47>; 763 - clocks = <&rcc 0 21>; 465 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA1)>; 764 466 #dma-cells = <4>; 765 467 }; 766 468 ··· 775 477 <68>, 776 478 <69>, 777 479 <70>; 778 - clocks = <&rcc 0 22>; 480 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2)>; 779 481 #dma-cells = <4>; 780 482 st,mem2mem; 781 483 }; ··· 787 489 interrupts = <61>; 788 490 interrupt-names = "macirq"; 789 491 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 790 - clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>; 492 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(ETHMAC)>, 493 + <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACTX)>, 494 + <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACRX)>; 791 495 st,syscon = <&syscfg 0x4>; 792 496 snps,pbl = <8>; 793 497 snps,mixed-burst; ··· 800 500 compatible = "snps,dwc2"; 801 501 reg = <0x40040000 0x40000>; 802 502 interrupts = <77>; 803 - clocks = <&rcc 0 29>; 503 + clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHS)>; 804 504 clock-names = "otg"; 805 505 status = "disabled"; 806 506 }; ··· 809 509 compatible = "st,stm32-rng"; 810 510 reg = <0x50060800 0x400>; 811 511 interrupts = <80>; 812 - clocks = <&rcc 0 38>; 512 + clocks = <&rcc 0 STM32F4_AHB2_CLOCK(RNG)>; 513 + 813 514 }; 814 515 }; 815 516 }; 816 517 817 518 &systick { 818 - clocks = <&rcc 1 0>; 519 + clocks = <&rcc 1 SYSTICK>; 819 520 status = "okay"; 820 521 };
+28
arch/arm/boot/dts/stm32f469-disco.dts
··· 82 82 status = "okay"; 83 83 }; 84 84 85 + &timers1 { 86 + status = "okay"; 87 + 88 + pwm { 89 + pinctrl-0 = <&pwm1_pins>; 90 + pinctrl-names = "default"; 91 + status = "okay"; 92 + }; 93 + 94 + timer@0 { 95 + status = "okay"; 96 + }; 97 + }; 98 + 99 + &timers3 { 100 + status = "okay"; 101 + 102 + pwm { 103 + pinctrl-0 = <&pwm3_pins>; 104 + pinctrl-names = "default"; 105 + status = "okay"; 106 + }; 107 + 108 + timer@2 { 109 + status = "okay"; 110 + }; 111 + }; 112 + 85 113 &usart3 { 86 114 pinctrl-0 = <&usart3_pins_a>; 87 115 pinctrl-names = "default";
+17 -7
include/dt-bindings/mfd/stm32f4-rcc.h
··· 18 18 #define STM32F4_RCC_AHB1_GPIOJ 9 19 19 #define STM32F4_RCC_AHB1_GPIOK 10 20 20 #define STM32F4_RCC_AHB1_CRC 12 21 + #define STM32F4_RCC_AHB1_BKPSRAM 18 22 + #define STM32F4_RCC_AHB1_CCMDATARAM 20 21 23 #define STM32F4_RCC_AHB1_DMA1 21 22 24 #define STM32F4_RCC_AHB1_DMA2 22 23 25 #define STM32F4_RCC_AHB1_DMA2D 23 24 26 #define STM32F4_RCC_AHB1_ETHMAC 25 25 - #define STM32F4_RCC_AHB1_OTGHS 29 27 + #define STM32F4_RCC_AHB1_ETHMACTX 26 28 + #define STM32F4_RCC_AHB1_ETHMACRX 27 29 + #define STM32F4_RCC_AHB1_ETHMACPTP 28 30 + #define STM32F4_RCC_AHB1_OTGHS 29 31 + #define STM32F4_RCC_AHB1_OTGHSULPI 30 26 32 27 33 #define STM32F4_AHB1_RESET(bit) (STM32F4_RCC_AHB1_##bit + (0x10 * 8)) 28 - #define STM32F4_AHB1_CLOCK(bit) (STM32F4_RCC_AHB1_##bit + (0x30 * 8)) 34 + #define STM32F4_AHB1_CLOCK(bit) (STM32F4_RCC_AHB1_##bit) 29 35 30 36 31 37 /* AHB2 */ ··· 42 36 #define STM32F4_RCC_AHB2_OTGFS 7 43 37 44 38 #define STM32F4_AHB2_RESET(bit) (STM32F4_RCC_AHB2_##bit + (0x14 * 8)) 45 - #define STM32F4_AHB2_CLOCK(bit) (STM32F4_RCC_AHB2_##bit + (0x34 * 8)) 39 + #define STM32F4_AHB2_CLOCK(bit) (STM32F4_RCC_AHB2_##bit + 0x20) 46 40 47 41 /* AHB3 */ 48 42 #define STM32F4_RCC_AHB3_FMC 0 43 + #define STM32F4_RCC_AHB3_QSPI 1 49 44 50 45 #define STM32F4_AHB3_RESET(bit) (STM32F4_RCC_AHB3_##bit + (0x18 * 8)) 51 - #define STM32F4_AHB3_CLOCK(bit) (STM32F4_RCC_AHB3_##bit + (0x38 * 8)) 46 + #define STM32F4_AHB3_CLOCK(bit) (STM32F4_RCC_AHB3_##bit + 0x40) 52 47 53 48 /* APB1 */ 54 49 #define STM32F4_RCC_APB1_TIM2 0 ··· 79 72 #define STM32F4_RCC_APB1_UART8 31 80 73 81 74 #define STM32F4_APB1_RESET(bit) (STM32F4_RCC_APB1_##bit + (0x20 * 8)) 82 - #define STM32F4_APB1_CLOCK(bit) (STM32F4_RCC_APB1_##bit + (0x40 * 8)) 75 + #define STM32F4_APB1_CLOCK(bit) (STM32F4_RCC_APB1_##bit + 0x80) 83 76 84 77 /* APB2 */ 85 78 #define STM32F4_RCC_APB2_TIM1 0 86 79 #define STM32F4_RCC_APB2_TIM8 1 87 80 #define STM32F4_RCC_APB2_USART1 4 88 81 #define STM32F4_RCC_APB2_USART6 5 89 - #define STM32F4_RCC_APB2_ADC 8 82 + #define STM32F4_RCC_APB2_ADC1 8 83 + #define STM32F4_RCC_APB2_ADC2 9 84 + #define STM32F4_RCC_APB2_ADC3 10 90 85 #define STM32F4_RCC_APB2_SDIO 11 91 86 #define STM32F4_RCC_APB2_SPI1 12 92 87 #define STM32F4_RCC_APB2_SPI4 13 ··· 100 91 #define STM32F4_RCC_APB2_SPI6 21 101 92 #define STM32F4_RCC_APB2_SAI1 22 102 93 #define STM32F4_RCC_APB2_LTDC 26 94 + #define STM32F4_RCC_APB2_DSI 27 103 95 104 96 #define STM32F4_APB2_RESET(bit) (STM32F4_RCC_APB2_##bit + (0x24 * 8)) 105 - #define STM32F4_APB2_CLOCK(bit) (STM32F4_RCC_APB2_##bit + (0x44 * 8)) 97 + #define STM32F4_APB2_CLOCK(bit) (STM32F4_RCC_APB2_##bit + 0xA0) 106 98 107 99 #endif /* _DT_BINDINGS_MFD_STM32F4_RCC_H */