Home | History | Annotate | Download | only in dts
      1 /*
      2  * Copyright 2017 - Alexandre Torgue <alexandre.torgue (at) st.com>
      3  *
      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
      6  * licensing only applies to this file, and not this project as a
      7  * whole.
      8  *
      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
     11  *     published by the Free Software Foundation; either version 2 of the
     12  *     License, or (at your option) any later version.
     13  *
     14  *     This file is distributed in the hope that it will be useful,
     15  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
     16  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17  *     GNU General Public License for more details.
     18  *
     19  * Or, alternatively,
     20  *
     21  *  b) Permission is hereby granted, free of charge, to any person
     22  *     obtaining a copy of this software and associated documentation
     23  *     files (the "Software"), to deal in the Software without
     24  *     restriction, including without limitation the rights to use,
     25  *     copy, modify, merge, publish, distribute, sublicense, and/or
     26  *     sell copies of the Software, and to permit persons to whom the
     27  *     Software is furnished to do so, subject to the following
     28  *     conditions:
     29  *
     30  *     The above copyright notice and this permission notice shall be
     31  *     included in all copies or substantial portions of the Software.
     32  *
     33  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     34  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
     35  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     36  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
     37  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
     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
     40  *     OTHER DEALINGS IN THE SOFTWARE.
     41  */
     42 
     43 #include <dt-bindings/pinctrl/stm32h7-pinfunc.h>
     44 
     45 / {
     46 	soc {
     47 		pin-controller {
     48 			#address-cells = <1>;
     49 			#size-cells = <1>;
     50 			compatible = "st,stm32h743-pinctrl";
     51 			ranges = <0 0x58020000 0x3000>;
     52 			pins-are-numbered;
     53 
     54 			gpioa: gpio@58020000 {
     55 				gpio-controller;
     56 				#gpio-cells = <2>;
     57 				compatible = "st,stm32-gpio";
     58 				reg = <0x0 0x400>;
     59 				clocks = <&rcc GPIOA_CK>;
     60 				st,bank-name = "GPIOA";
     61 			};
     62 
     63 			gpiob: gpio@58020400 {
     64 				gpio-controller;
     65 				#gpio-cells = <2>;
     66 				compatible = "st,stm32-gpio";
     67 				reg = <0x400 0x400>;
     68 				clocks = <&rcc GPIOB_CK>;
     69 				st,bank-name = "GPIOB";
     70 			};
     71 
     72 			gpioc: gpio@58020800 {
     73 				gpio-controller;
     74 				#gpio-cells = <2>;
     75 				compatible = "st,stm32-gpio";
     76 				reg = <0x800 0x400>;
     77 				clocks = <&rcc GPIOC_CK>;
     78 				st,bank-name = "GPIOC";
     79 			};
     80 
     81 			gpiod: gpio@58020c00 {
     82 				gpio-controller;
     83 				#gpio-cells = <2>;
     84 				compatible = "st,stm32-gpio";
     85 				reg = <0xc00 0x400>;
     86 				clocks = <&rcc GPIOD_CK>;
     87 				st,bank-name = "GPIOD";
     88 			};
     89 
     90 			gpioe: gpio@58021000 {
     91 				gpio-controller;
     92 				#gpio-cells = <2>;
     93 				compatible = "st,stm32-gpio";
     94 				reg = <0x1000 0x400>;
     95 				clocks = <&rcc GPIOE_CK>;
     96 				st,bank-name = "GPIOE";
     97 			};
     98 
     99 			gpiof: gpio@58021400 {
    100 				gpio-controller;
    101 				#gpio-cells = <2>;
    102 				compatible = "st,stm32-gpio";
    103 				reg = <0x1400 0x400>;
    104 				clocks = <&rcc GPIOF_CK>;
    105 				st,bank-name = "GPIOF";
    106 			};
    107 
    108 			gpiog: gpio@58021800 {
    109 				gpio-controller;
    110 				#gpio-cells = <2>;
    111 				compatible = "st,stm32-gpio";
    112 				reg = <0x1800 0x400>;
    113 				clocks = <&rcc GPIOG_CK>;
    114 				st,bank-name = "GPIOG";
    115 			};
    116 
    117 			gpioh: gpio@58021c00 {
    118 				gpio-controller;
    119 				#gpio-cells = <2>;
    120 				compatible = "st,stm32-gpio";
    121 				reg = <0x1c00 0x400>;
    122 				clocks = <&rcc GPIOH_CK>;
    123 				st,bank-name = "GPIOH";
    124 			};
    125 
    126 			gpioi: gpio@58022000 {
    127 				gpio-controller;
    128 				#gpio-cells = <2>;
    129 				compatible = "st,stm32-gpio";
    130 				reg = <0x2000 0x400>;
    131 				clocks = <&rcc GPIOI_CK>;
    132 				st,bank-name = "GPIOI";
    133 			};
    134 
    135 			gpioj: gpio@58022400 {
    136 				gpio-controller;
    137 				#gpio-cells = <2>;
    138 				compatible = "st,stm32-gpio";
    139 				reg = <0x2400 0x400>;
    140 				clocks = <&rcc GPIOJ_CK>;
    141 				st,bank-name = "GPIOJ";
    142 			};
    143 
    144 			gpiok: gpio@58022800 {
    145 				gpio-controller;
    146 				#gpio-cells = <2>;
    147 				compatible = "st,stm32-gpio";
    148 				reg = <0x2800 0x400>;
    149 				clocks = <&rcc GPIOK_CK>;
    150 				st,bank-name = "GPIOK";
    151 			};
    152 
    153 			usart1_pins: usart1@0 {
    154 				pins1 {
    155 					pinmux = <STM32H7_PB14_FUNC_USART1_TX>;
    156 					bias-disable;
    157 					drive-push-pull;
    158 					slew-rate = <0>;
    159 				};
    160 				pins2 {
    161 					pinmux = <STM32H7_PB15_FUNC_USART1_RX>;
    162 					bias-disable;
    163 				};
    164 			};
    165 
    166 			usart2_pins: usart2@0 {
    167 				pins1 {
    168 					pinmux = <STM32H7_PD5_FUNC_USART2_TX>;
    169 					bias-disable;
    170 					drive-push-pull;
    171 					slew-rate = <0>;
    172 				};
    173 				pins2 {
    174 					pinmux = <STM32H7_PD6_FUNC_USART2_RX>;
    175 					bias-disable;
    176 				};
    177 			};
    178 
    179 			fmc_pins: fmc@0 {
    180 				  pins {
    181 					  pinmux = <STM32H7_PD0_FUNC_FMC_D2_FMC_DA2>,
    182 						  <STM32H7_PD1_FUNC_FMC_D3_FMC_DA3>,
    183 						  <STM32H7_PD8_FUNC_FMC_D13_FMC_DA13>,
    184 						  <STM32H7_PD9_FUNC_FMC_D14_FMC_DA14>,
    185 						  <STM32H7_PD10_FUNC_FMC_D15_FMC_DA15>,
    186 						  <STM32H7_PD14_FUNC_FMC_D0_FMC_DA0>,
    187 						  <STM32H7_PD15_FUNC_FMC_D1_FMC_DA1>,
    188 
    189 						  <STM32H7_PE0_FUNC_FMC_NBL0>,
    190 						  <STM32H7_PE1_FUNC_FMC_NBL1>,
    191 						  <STM32H7_PE7_FUNC_FMC_D4_FMC_DA4>,
    192 						  <STM32H7_PE8_FUNC_FMC_D5_FMC_DA5>,
    193 						  <STM32H7_PE9_FUNC_FMC_D6_FMC_DA6>,
    194 						  <STM32H7_PE10_FUNC_FMC_D7_FMC_DA7>,
    195 						  <STM32H7_PE11_FUNC_FMC_D8_FMC_DA8>,
    196 						  <STM32H7_PE12_FUNC_FMC_D9_FMC_DA9>,
    197 						  <STM32H7_PE13_FUNC_FMC_D10_FMC_DA10>,
    198 						  <STM32H7_PE14_FUNC_FMC_D11_FMC_DA11>,
    199 						  <STM32H7_PE15_FUNC_FMC_D12_FMC_DA12>,
    200 
    201 						  <STM32H7_PF0_FUNC_FMC_A0>,
    202 						  <STM32H7_PF1_FUNC_FMC_A1>,
    203 						  <STM32H7_PF2_FUNC_FMC_A2>,
    204 						  <STM32H7_PF3_FUNC_FMC_A3>,
    205 						  <STM32H7_PF4_FUNC_FMC_A4>,
    206 						  <STM32H7_PF5_FUNC_FMC_A5>,
    207 						  <STM32H7_PF11_FUNC_FMC_SDNRAS>,
    208 						  <STM32H7_PF12_FUNC_FMC_A6>,
    209 						  <STM32H7_PF13_FUNC_FMC_A7>,
    210 						  <STM32H7_PF14_FUNC_FMC_A8>,
    211 						  <STM32H7_PF15_FUNC_FMC_A9>,
    212 
    213 						  <STM32H7_PG0_FUNC_FMC_A10>,
    214 						  <STM32H7_PG1_FUNC_FMC_A11>,
    215 						  <STM32H7_PG2_FUNC_FMC_A12>,
    216 						  <STM32H7_PG4_FUNC_FMC_A14_FMC_BA0>,
    217 						  <STM32H7_PG5_FUNC_FMC_A15_FMC_BA1>,
    218 						  <STM32H7_PG8_FUNC_FMC_SDCLK>,
    219 						  <STM32H7_PG15_FUNC_FMC_SDNCAS>,
    220 
    221 						  <STM32H7_PH5_FUNC_FMC_SDNWE>,
    222 						  <STM32H7_PH6_FUNC_FMC_SDNE1>,
    223 						  <STM32H7_PH7_FUNC_FMC_SDCKE1>,
    224 						  <STM32H7_PH8_FUNC_FMC_D16>,
    225 						  <STM32H7_PH9_FUNC_FMC_D17>,
    226 						  <STM32H7_PH10_FUNC_FMC_D18>,
    227 						  <STM32H7_PH11_FUNC_FMC_D19>,
    228 						  <STM32H7_PH12_FUNC_FMC_D20>,
    229 						  <STM32H7_PH13_FUNC_FMC_D21>,
    230 						  <STM32H7_PH14_FUNC_FMC_D22>,
    231 						  <STM32H7_PH15_FUNC_FMC_D23>,
    232 
    233 						  <STM32H7_PI0_FUNC_FMC_D24>,
    234 						  <STM32H7_PI1_FUNC_FMC_D25>,
    235 						  <STM32H7_PI2_FUNC_FMC_D26>,
    236 						  <STM32H7_PI3_FUNC_FMC_D27>,
    237 						  <STM32H7_PI4_FUNC_FMC_NBL2>,
    238 						  <STM32H7_PI5_FUNC_FMC_NBL3>,
    239 						  <STM32H7_PI6_FUNC_FMC_D28>,
    240 						  <STM32H7_PI7_FUNC_FMC_D29>,
    241 						  <STM32H7_PI9_FUNC_FMC_D30>,
    242 						  <STM32H7_PI10_FUNC_FMC_D31>;
    243 
    244 					  slew-rate = <3>;
    245 				};
    246 			};
    247 
    248 			sdmmc1_pins: sdmmc@0 {
    249 				pins {
    250 					pinmux = <STM32H7_PC8_FUNC_SDMMC1_D0>,
    251 						 <STM32H7_PC9_FUNC_SDMMC1_D1>,
    252 						 <STM32H7_PC10_FUNC_SDMMC1_D2>,
    253 						 <STM32H7_PC11_FUNC_SDMMC1_D3>,
    254 						 <STM32H7_PC12_FUNC_SDMMC1_CK>,
    255 						 <STM32H7_PD2_FUNC_SDMMC1_CMD>;
    256 
    257 					slew-rate = <3>;
    258 					drive-push-pull;
    259 					bias-disable;
    260 				};
    261 			};
    262 
    263 			pinctrl_sdmmc1_level_shifter: sdmmc0_ls@0 {
    264 				pins {
    265 					pinmux = <STM32H7_PB8_FUNC_SDMMC1_CKIN>,
    266 						 <STM32H7_PB9_FUNC_SDMMC1_CDIR>,
    267 						 <STM32H7_PC6_FUNC_SDMMC1_D0DIR>,
    268 						 <STM32H7_PC7_FUNC_SDMMC1_D123DIR>;
    269 					drive-push-pull;
    270 					slew-rate = <3>;
    271 				};
    272 			};
    273 		};
    274 	};
    275 };
    276