1b1a8de7eSMichael Kurz/* 2b1a8de7eSMichael Kurz * Copyright 2016 - Michael Kurz <michi.kurz@gmail.com> 3fd198ee1SVikas Manocha * Copyright 2016 - Vikas MANOCHA <vikas.manocha@st.com> 4b1a8de7eSMichael Kurz * 5b1a8de7eSMichael Kurz * Based on: 6b1a8de7eSMichael Kurz * stm32f429.dtsi from Linux 7b1a8de7eSMichael Kurz * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com> 8b1a8de7eSMichael Kurz * 9b1a8de7eSMichael Kurz * This file is dual-licensed: you can use it either under the terms 10b1a8de7eSMichael Kurz * of the GPL or the X11 license, at your option. Note that this dual 11b1a8de7eSMichael Kurz * licensing only applies to this file, and not this project as a 12b1a8de7eSMichael Kurz * whole. 13b1a8de7eSMichael Kurz * 14b1a8de7eSMichael Kurz * a) This file is free software; you can redistribute it and/or 15b1a8de7eSMichael Kurz * modify it under the terms of the GNU General Public License as 16b1a8de7eSMichael Kurz * published by the Free Software Foundation; either version 2 of the 17b1a8de7eSMichael Kurz * License, or (at your option) any later version. 18b1a8de7eSMichael Kurz * 19b1a8de7eSMichael Kurz * This file is distributed in the hope that it will be useful, 20b1a8de7eSMichael Kurz * but WITHOUT ANY WARRANTY; without even the implied warranty of 21b1a8de7eSMichael Kurz * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22b1a8de7eSMichael Kurz * GNU General Public License for more details. 23b1a8de7eSMichael Kurz * 24b1a8de7eSMichael Kurz * Or, alternatively, 25b1a8de7eSMichael Kurz * 26b1a8de7eSMichael Kurz * b) Permission is hereby granted, free of charge, to any person 27b1a8de7eSMichael Kurz * obtaining a copy of this software and associated documentation 28b1a8de7eSMichael Kurz * files (the "Software"), to deal in the Software without 29b1a8de7eSMichael Kurz * restriction, including without limitation the rights to use, 30b1a8de7eSMichael Kurz * copy, modify, merge, publish, distribute, sublicense, and/or 31b1a8de7eSMichael Kurz * sell copies of the Software, and to permit persons to whom the 32b1a8de7eSMichael Kurz * Software is furnished to do so, subject to the following 33b1a8de7eSMichael Kurz * conditions: 34b1a8de7eSMichael Kurz * 35b1a8de7eSMichael Kurz * The above copyright notice and this permission notice shall be 36b1a8de7eSMichael Kurz * included in all copies or substantial portions of the Software. 37b1a8de7eSMichael Kurz * 38b1a8de7eSMichael Kurz * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 39b1a8de7eSMichael Kurz * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40b1a8de7eSMichael Kurz * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41b1a8de7eSMichael Kurz * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42b1a8de7eSMichael Kurz * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 43b1a8de7eSMichael Kurz * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44b1a8de7eSMichael Kurz * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45b1a8de7eSMichael Kurz * OTHER DEALINGS IN THE SOFTWARE. 46b1a8de7eSMichael Kurz */ 47b1a8de7eSMichael Kurz 48b1a8de7eSMichael Kurz#include "armv7-m.dtsi" 49b1a8de7eSMichael Kurz#include <dt-bindings/pinctrl/stm32f746-pinfunc.h> 50b1a8de7eSMichael Kurz 51b1a8de7eSMichael Kurz/ { 5284bfdc17SVikas Manocha clocks { 5384bfdc17SVikas Manocha clk_hse: clk-hse { 5484bfdc17SVikas Manocha #clock-cells = <0>; 5584bfdc17SVikas Manocha compatible = "fixed-clock"; 5684bfdc17SVikas Manocha clock-frequency = <0>; 5784bfdc17SVikas Manocha }; 5884bfdc17SVikas Manocha}; 5984bfdc17SVikas Manocha 60b1a8de7eSMichael Kurz soc { 6184bfdc17SVikas Manocha u-boot,dm-pre-reloc; 62b1a8de7eSMichael Kurz mac: ethernet@40028000 { 63b1a8de7eSMichael Kurz compatible = "st,stm32-dwmac"; 64b1a8de7eSMichael Kurz reg = <0x40028000 0x8000>; 65b1a8de7eSMichael Kurz reg-names = "stmmaceth"; 66b1a8de7eSMichael Kurz interrupts = <61>, <62>; 67b1a8de7eSMichael Kurz interrupt-names = "macirq", "eth_wake_irq"; 68b1a8de7eSMichael Kurz snps,pbl = <8>; 69b1a8de7eSMichael Kurz snps,mixed-burst; 70b1a8de7eSMichael Kurz dma-ranges; 71b1a8de7eSMichael Kurz status = "disabled"; 72b1a8de7eSMichael Kurz }; 73b1a8de7eSMichael Kurz 74fd198ee1SVikas Manocha fmc: fmc@A0000000 { 75fd198ee1SVikas Manocha compatible = "st,stm32-fmc"; 76fd198ee1SVikas Manocha reg = <0xA0000000 0x1000>; 77d0b24c1aSVikas Manocha clocks = <&rcc 0 64>; 78fd198ee1SVikas Manocha u-boot,dm-pre-reloc; 79fd198ee1SVikas Manocha }; 80fd198ee1SVikas Manocha 81b1a8de7eSMichael Kurz qspi: quadspi@A0001000 { 82b1a8de7eSMichael Kurz compatible = "st,stm32-qspi"; 83b1a8de7eSMichael Kurz #address-cells = <1>; 84b1a8de7eSMichael Kurz #size-cells = <0>; 85b1a8de7eSMichael Kurz reg = <0xA0001000 0x1000>, <0x90000000 0x10000000>; 86b1a8de7eSMichael Kurz reg-names = "QuadSPI", "QuadSPI-memory"; 87b1a8de7eSMichael Kurz interrupts = <92>; 88b1a8de7eSMichael Kurz spi-max-frequency = <108000000>; 89890bafd7SVikas Manocha clocks = <&rcc 0 65>; 90b1a8de7eSMichael Kurz status = "disabled"; 91b1a8de7eSMichael Kurz }; 9284bfdc17SVikas Manocha usart1: serial@40011000 { 9384bfdc17SVikas Manocha compatible = "st,stm32-usart", "st,stm32-uart"; 9484bfdc17SVikas Manocha reg = <0x40011000 0x400>; 9584bfdc17SVikas Manocha interrupts = <37>; 9684bfdc17SVikas Manocha clocks = <&rcc 0 164>; 9784bfdc17SVikas Manocha status = "disabled"; 9884bfdc17SVikas Manocha u-boot,dm-pre-reloc; 9984bfdc17SVikas Manocha }; 10084bfdc17SVikas Manocha rcc: rcc@40023810 { 10184bfdc17SVikas Manocha #reset-cells = <1>; 10284bfdc17SVikas Manocha #clock-cells = <2>; 10384bfdc17SVikas Manocha compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; 10484bfdc17SVikas Manocha reg = <0x40023800 0x400>; 10584bfdc17SVikas Manocha clocks = <&clk_hse>; 10684bfdc17SVikas Manocha u-boot,dm-pre-reloc; 10784bfdc17SVikas Manocha }; 10884bfdc17SVikas Manocha 109da4e17f2SVikas Manocha pinctrl: pin-controller { 110da4e17f2SVikas Manocha #address-cells = <1>; 111da4e17f2SVikas Manocha #size-cells = <1>; 112da4e17f2SVikas Manocha compatible = "st,stm32f746-pinctrl"; 113da4e17f2SVikas Manocha ranges = <0 0x40020000 0x3000>; 114da4e17f2SVikas Manocha u-boot,dm-pre-reloc; 115da4e17f2SVikas Manocha pins-are-numbered; 116e34e19feSVikas Manocha 117*d33a6a2fSVikas Manocha gpioa: gpio@40020000 { 118*d33a6a2fSVikas Manocha gpio-controller; 119*d33a6a2fSVikas Manocha #gpio-cells = <2>; 120*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 121*d33a6a2fSVikas Manocha reg = <0x0 0x400>; 122*d33a6a2fSVikas Manocha clocks = <&rcc 0 0>; 123*d33a6a2fSVikas Manocha st,bank-name = "GPIOA"; 124*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 125*d33a6a2fSVikas Manocha }; 126*d33a6a2fSVikas Manocha 127*d33a6a2fSVikas Manocha gpiob: gpio@40020400 { 128*d33a6a2fSVikas Manocha gpio-controller; 129*d33a6a2fSVikas Manocha #gpio-cells = <2>; 130*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 131*d33a6a2fSVikas Manocha reg = <0x400 0x400>; 132*d33a6a2fSVikas Manocha clocks = <&rcc 0 1>; 133*d33a6a2fSVikas Manocha st,bank-name = "GPIOB"; 134*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 135*d33a6a2fSVikas Manocha }; 136*d33a6a2fSVikas Manocha 137*d33a6a2fSVikas Manocha 138*d33a6a2fSVikas Manocha gpioc: gpio@40020800 { 139*d33a6a2fSVikas Manocha gpio-controller; 140*d33a6a2fSVikas Manocha #gpio-cells = <2>; 141*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 142*d33a6a2fSVikas Manocha reg = <0x800 0x400>; 143*d33a6a2fSVikas Manocha clocks = <&rcc 0 2>; 144*d33a6a2fSVikas Manocha st,bank-name = "GPIOC"; 145*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 146*d33a6a2fSVikas Manocha }; 147*d33a6a2fSVikas Manocha 148*d33a6a2fSVikas Manocha gpiod: gpio@40020c00 { 149*d33a6a2fSVikas Manocha gpio-controller; 150*d33a6a2fSVikas Manocha #gpio-cells = <2>; 151*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 152*d33a6a2fSVikas Manocha reg = <0xc00 0x400>; 153*d33a6a2fSVikas Manocha clocks = <&rcc 0 3>; 154*d33a6a2fSVikas Manocha st,bank-name = "GPIOD"; 155*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 156*d33a6a2fSVikas Manocha }; 157*d33a6a2fSVikas Manocha 158*d33a6a2fSVikas Manocha gpioe: gpio@40021000 { 159*d33a6a2fSVikas Manocha gpio-controller; 160*d33a6a2fSVikas Manocha #gpio-cells = <2>; 161*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 162*d33a6a2fSVikas Manocha reg = <0x1000 0x400>; 163*d33a6a2fSVikas Manocha clocks = <&rcc 0 4>; 164*d33a6a2fSVikas Manocha st,bank-name = "GPIOE"; 165*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 166*d33a6a2fSVikas Manocha }; 167*d33a6a2fSVikas Manocha 168*d33a6a2fSVikas Manocha gpiof: gpio@40021400 { 169*d33a6a2fSVikas Manocha gpio-controller; 170*d33a6a2fSVikas Manocha #gpio-cells = <2>; 171*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 172*d33a6a2fSVikas Manocha reg = <0x1400 0x400>; 173*d33a6a2fSVikas Manocha clocks = <&rcc 0 5>; 174*d33a6a2fSVikas Manocha st,bank-name = "GPIOF"; 175*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 176*d33a6a2fSVikas Manocha }; 177*d33a6a2fSVikas Manocha 178*d33a6a2fSVikas Manocha gpiog: gpio@40021800 { 179*d33a6a2fSVikas Manocha gpio-controller; 180*d33a6a2fSVikas Manocha #gpio-cells = <2>; 181*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 182*d33a6a2fSVikas Manocha reg = <0x1800 0x400>; 183*d33a6a2fSVikas Manocha clocks = <&rcc 0 6>; 184*d33a6a2fSVikas Manocha st,bank-name = "GPIOG"; 185*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 186*d33a6a2fSVikas Manocha }; 187*d33a6a2fSVikas Manocha 188*d33a6a2fSVikas Manocha gpioh: gpio@40021c00 { 189*d33a6a2fSVikas Manocha gpio-controller; 190*d33a6a2fSVikas Manocha #gpio-cells = <2>; 191*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 192*d33a6a2fSVikas Manocha reg = <0x1c00 0x400>; 193*d33a6a2fSVikas Manocha clocks = <&rcc 0 7>; 194*d33a6a2fSVikas Manocha st,bank-name = "GPIOH"; 195*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 196*d33a6a2fSVikas Manocha }; 197*d33a6a2fSVikas Manocha 198*d33a6a2fSVikas Manocha gpioi: gpio@40022000 { 199*d33a6a2fSVikas Manocha gpio-controller; 200*d33a6a2fSVikas Manocha #gpio-cells = <2>; 201*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 202*d33a6a2fSVikas Manocha reg = <0x2000 0x400>; 203*d33a6a2fSVikas Manocha clocks = <&rcc 0 8>; 204*d33a6a2fSVikas Manocha st,bank-name = "GPIOI"; 205*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 206*d33a6a2fSVikas Manocha }; 207*d33a6a2fSVikas Manocha 208*d33a6a2fSVikas Manocha gpioj: gpio@40022400 { 209*d33a6a2fSVikas Manocha gpio-controller; 210*d33a6a2fSVikas Manocha #gpio-cells = <2>; 211*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 212*d33a6a2fSVikas Manocha reg = <0x2400 0x400>; 213*d33a6a2fSVikas Manocha clocks = <&rcc 0 9>; 214*d33a6a2fSVikas Manocha st,bank-name = "GPIOJ"; 215*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 216*d33a6a2fSVikas Manocha }; 217*d33a6a2fSVikas Manocha 218*d33a6a2fSVikas Manocha gpiok: gpio@40022800 { 219*d33a6a2fSVikas Manocha gpio-controller; 220*d33a6a2fSVikas Manocha #gpio-cells = <2>; 221*d33a6a2fSVikas Manocha compatible = "st,stm32-gpio"; 222*d33a6a2fSVikas Manocha reg = <0x2800 0x400>; 223*d33a6a2fSVikas Manocha clocks = <&rcc 0 10>; 224*d33a6a2fSVikas Manocha st,bank-name = "GPIOK"; 225*d33a6a2fSVikas Manocha u-boot,dm-pre-reloc; 226*d33a6a2fSVikas Manocha }; 227*d33a6a2fSVikas Manocha 228e34e19feSVikas Manocha usart1_pins_a: usart1@0 { 229e34e19feSVikas Manocha pins1 { 230e34e19feSVikas Manocha pinmux = <STM32F746_PA9_FUNC_USART1_TX>; 231e34e19feSVikas Manocha bias-disable; 232e34e19feSVikas Manocha drive-push-pull; 233e34e19feSVikas Manocha slew-rate = <2>; 234e34e19feSVikas Manocha }; 235e34e19feSVikas Manocha pins2 { 236e34e19feSVikas Manocha pinmux = <STM32F746_PB7_FUNC_USART1_RX>; 237e34e19feSVikas Manocha bias-disable; 238e34e19feSVikas Manocha }; 239e34e19feSVikas Manocha }; 240c428a958SVikas Manocha ethernet_mii: mii@0 { 241c428a958SVikas Manocha pins { 242c428a958SVikas Manocha pinmux = <STM32F746_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0>, 243c428a958SVikas Manocha <STM32F746_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1>, 244c428a958SVikas Manocha <STM32F746_PG11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN>, 245c428a958SVikas Manocha <STM32F746_PA2_FUNC_ETH_MDIO>, 246c428a958SVikas Manocha <STM32F746_PC1_FUNC_ETH_MDC>, 247c428a958SVikas Manocha <STM32F746_PA1_FUNC_ETH_MII_RX_CLK_ETH_RMII_REF_CLK>, 248c428a958SVikas Manocha <STM32F746_PA7_FUNC_ETH_MII_RX_DV_ETH_RMII_CRS_DV>, 249c428a958SVikas Manocha <STM32F746_PC4_FUNC_ETH_MII_RXD0_ETH_RMII_RXD0>, 250c428a958SVikas Manocha <STM32F746_PC5_FUNC_ETH_MII_RXD1_ETH_RMII_RXD1>; 251c428a958SVikas Manocha slew-rate = <2>; 252c428a958SVikas Manocha }; 253c428a958SVikas Manocha }; 254e245f1a5SVikas Manocha qspi_pins: qspi@0{ 255e245f1a5SVikas Manocha pins { 256e245f1a5SVikas Manocha pinmux = <STM32F746_PB2_FUNC_QUADSPI_CLK>, 257e245f1a5SVikas Manocha <STM32F746_PB6_FUNC_QUADSPI_BK1_NCS>, 258e245f1a5SVikas Manocha <STM32F746_PD11_FUNC_QUADSPI_BK1_IO0>, 259e245f1a5SVikas Manocha <STM32F746_PD12_FUNC_QUADSPI_BK1_IO1>, 260e245f1a5SVikas Manocha <STM32F746_PD13_FUNC_QUADSPI_BK1_IO3>, 261e245f1a5SVikas Manocha <STM32F746_PE2_FUNC_QUADSPI_BK1_IO2>; 262e245f1a5SVikas Manocha slew-rate = <2>; 263e245f1a5SVikas Manocha }; 264e245f1a5SVikas Manocha }; 265fd198ee1SVikas Manocha 266fd198ee1SVikas Manocha fmc_pins: fmc@0 { 267fd198ee1SVikas Manocha pins { 268fd198ee1SVikas Manocha pinmux = <STM32F746_PD10_FUNC_FMC_D15>, 269fd198ee1SVikas Manocha <STM32F746_PD9_FUNC_FMC_D14>, 270fd198ee1SVikas Manocha <STM32F746_PD8_FUNC_FMC_D13>, 271fd198ee1SVikas Manocha <STM32F746_PE15_FUNC_FMC_D12>, 272fd198ee1SVikas Manocha <STM32F746_PE14_FUNC_FMC_D11>, 273fd198ee1SVikas Manocha <STM32F746_PE13_FUNC_FMC_D10>, 274fd198ee1SVikas Manocha <STM32F746_PE12_FUNC_FMC_D9>, 275fd198ee1SVikas Manocha <STM32F746_PE11_FUNC_FMC_D8>, 276fd198ee1SVikas Manocha <STM32F746_PE10_FUNC_FMC_D7>, 277fd198ee1SVikas Manocha <STM32F746_PE9_FUNC_FMC_D6>, 278fd198ee1SVikas Manocha <STM32F746_PE8_FUNC_FMC_D5>, 279fd198ee1SVikas Manocha <STM32F746_PE7_FUNC_FMC_D4>, 280fd198ee1SVikas Manocha <STM32F746_PD1_FUNC_FMC_D3>, 281fd198ee1SVikas Manocha <STM32F746_PD0_FUNC_FMC_D2>, 282fd198ee1SVikas Manocha <STM32F746_PD15_FUNC_FMC_D1>, 283fd198ee1SVikas Manocha <STM32F746_PD14_FUNC_FMC_D0>, 284fd198ee1SVikas Manocha 285fd198ee1SVikas Manocha <STM32F746_PE1_FUNC_FMC_NBL1>, 286fd198ee1SVikas Manocha <STM32F746_PE0_FUNC_FMC_NBL0>, 287fd198ee1SVikas Manocha 288fd198ee1SVikas Manocha <STM32F746_PG5_FUNC_FMC_A15_FMC_BA1>, 289fd198ee1SVikas Manocha <STM32F746_PG4_FUNC_FMC_A14_FMC_BA0>, 290fd198ee1SVikas Manocha 291fd198ee1SVikas Manocha <STM32F746_PG1_FUNC_FMC_A11>, 292fd198ee1SVikas Manocha <STM32F746_PG0_FUNC_FMC_A10>, 293fd198ee1SVikas Manocha <STM32F746_PF15_FUNC_FMC_A9>, 294fd198ee1SVikas Manocha <STM32F746_PF14_FUNC_FMC_A8>, 295fd198ee1SVikas Manocha <STM32F746_PF13_FUNC_FMC_A7>, 296fd198ee1SVikas Manocha <STM32F746_PF12_FUNC_FMC_A6>, 297fd198ee1SVikas Manocha <STM32F746_PF5_FUNC_FMC_A5>, 298fd198ee1SVikas Manocha <STM32F746_PF4_FUNC_FMC_A4>, 299fd198ee1SVikas Manocha <STM32F746_PF3_FUNC_FMC_A3>, 300fd198ee1SVikas Manocha <STM32F746_PF2_FUNC_FMC_A2>, 301fd198ee1SVikas Manocha <STM32F746_PF1_FUNC_FMC_A1>, 302fd198ee1SVikas Manocha <STM32F746_PF0_FUNC_FMC_A0>, 303fd198ee1SVikas Manocha 304fd198ee1SVikas Manocha <STM32F746_PH3_FUNC_FMC_SDNE0>, 305fd198ee1SVikas Manocha <STM32F746_PH5_FUNC_FMC_SDNWE>, 306fd198ee1SVikas Manocha <STM32F746_PF11_FUNC_FMC_SDNRAS>, 307fd198ee1SVikas Manocha <STM32F746_PG15_FUNC_FMC_SDNCAS>, 308fd198ee1SVikas Manocha <STM32F746_PC3_FUNC_FMC_SDCKE0>, 309fd198ee1SVikas Manocha <STM32F746_PG8_FUNC_FMC_SDCLK>; 310fd198ee1SVikas Manocha slew-rate = <2>; 311fd198ee1SVikas Manocha }; 312fd198ee1SVikas Manocha }; 313fd198ee1SVikas Manocha 314da4e17f2SVikas Manocha }; 315b1a8de7eSMichael Kurz }; 316b1a8de7eSMichael Kurz}; 317b1a8de7eSMichael Kurz 318b1a8de7eSMichael Kurz&systick { 319b1a8de7eSMichael Kurz status = "okay"; 320b1a8de7eSMichael Kurz}; 321