1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2 /* 3 * Copyright (C) Protonic Holland 4 * Author: David Jander <david (a] protonic.nl> 5 */ 6 7 #include "stm32mp15xc.dtsi" 8 #include "stm32mp15-pinctrl.dtsi" 9 #include "stm32mp15xxaa-pinctrl.dtsi" 10 #include <dt-bindings/gpio/gpio.h> 11 #include <dt-bindings/input/input.h> 12 13 / { 14 chosen { 15 stdout-path = "serial0:1500000n8"; 16 }; 17 18 aliases { 19 serial0 = &uart4; 20 ethernet0 = ðernet0; 21 spi1 = &spi1; 22 spi2 = &spi2; 23 spi3 = &spi3; 24 spi4 = &spi4; 25 spi5 = &spi5; 26 spi6 = &spi6; 27 }; 28 29 memory@c0000000 { 30 device_type = "memory"; 31 reg = <0xC0000000 0x10000000>; 32 }; 33 34 reserved-memory { 35 #address-cells = <1>; 36 #size-cells = <1>; 37 ranges; 38 39 mcuram2: mcuram2@10000000 { 40 compatible = "shared-dma-pool"; 41 reg = <0x10000000 0x40000>; 42 no-map; 43 }; 44 45 vdev0vring0: vdev0vring0@10040000 { 46 compatible = "shared-dma-pool"; 47 reg = <0x10040000 0x1000>; 48 no-map; 49 }; 50 51 vdev0vring1: vdev0vring1@10041000 { 52 compatible = "shared-dma-pool"; 53 reg = <0x10041000 0x1000>; 54 no-map; 55 }; 56 57 vdev0buffer: vdev0buffer@10042000 { 58 compatible = "shared-dma-pool"; 59 reg = <0x10042000 0x4000>; 60 no-map; 61 }; 62 63 mcuram: mcuram@30000000 { 64 compatible = "shared-dma-pool"; 65 reg = <0x30000000 0x40000>; 66 no-map; 67 }; 68 69 retram: retram@38000000 { 70 compatible = "shared-dma-pool"; 71 reg = <0x38000000 0x10000>; 72 no-map; 73 }; 74 }; 75 76 v3v3: regulator-v3v3 { 77 compatible = "regulator-fixed"; 78 regulator-name = "v3v3"; 79 regulator-min-microvolt = <3300000>; 80 regulator-max-microvolt = <3300000>; 81 }; 82 83 v5v: regulator-v5v { 84 compatible = "regulator-fixed"; 85 regulator-name = "v5v"; 86 regulator-min-microvolt = <5000000>; 87 regulator-max-microvolt = <5000000>; 88 regulator-always-on; 89 }; 90 }; 91 92 &adc { 93 /* ANA0, ANA1 are dedicated pins and don't need pinctrl. */ 94 pinctrl-0 = <&adc12_pins_mecsbc>; 95 pinctrl-names = "default"; 96 vdd-supply = <&v3v3>; 97 vdda-supply = <&v3v3>; 98 vref-supply = <&vrefbuf>; 99 status = "okay"; 100 }; 101 102 &adc1 { 103 status = "okay"; 104 105 channel@2 { 106 reg = <2>; 107 st,min-sample-time-ns = <20000>; 108 label = "ain0"; 109 }; 110 111 channel@6 { 112 reg = <6>; 113 st,min-sample-time-ns = <20000>; 114 label = "ain1"; 115 }; 116 117 channel@10 { 118 reg = <10>; 119 st,min-sample-time-ns = <200000>; 120 label = "phint0_ain"; 121 }; 122 123 channel@16 { 124 reg = <16>; 125 st,min-sample-time-ns = <20000>; 126 label = "lsin"; 127 }; 128 129 channel@19 { 130 reg = <19>; 131 st,min-sample-time-ns = <20000>; 132 label = "hpdcm1_i1"; 133 }; 134 }; 135 136 &adc2 { 137 status = "okay"; 138 139 channel@2 { 140 reg = <2>; 141 st,min-sample-time-ns = <20000>; 142 label = "ain2"; 143 }; 144 145 channel@6 { 146 reg = <6>; 147 st,min-sample-time-ns = <20000>; 148 label = "ain3"; 149 }; 150 }; 151 152 ðernet0 { 153 status = "okay"; 154 pinctrl-0 = <ðernet0_rgmii_pins_x>; 155 pinctrl-1 = <ðernet0_rgmii_sleep_pins_x>; 156 pinctrl-names = "default", "sleep"; 157 phy-mode = "rgmii-id"; 158 max-speed = <1000>; 159 phy-handle = <&phy0>; 160 st,eth-clk-sel; 161 162 mdio { 163 #address-cells = <1>; 164 #size-cells = <0>; 165 compatible = "snps,dwmac-mdio"; 166 phy0: ethernet-phy@8 { 167 reg = <8>; 168 interrupts-extended = <&gpiog 7 IRQ_TYPE_LEVEL_LOW>; 169 reset-gpios = <&gpiog 10 GPIO_ACTIVE_LOW>; 170 reset-assert-us = <10>; 171 reset-deassert-us = <35>; 172 }; 173 }; 174 }; 175 176 &i2c2 { 177 pinctrl-names = "default"; 178 pinctrl-0 = <&i2c2_pins_a>; 179 pinctrl-1 = <&i2c2_sleep_pins_a>; 180 status = "okay"; 181 182 gpio0: gpio@20 { 183 compatible = "ti,tca6416"; 184 reg = <0x20>; 185 gpio-controller; 186 #gpio-cells = <2>; 187 }; 188 189 gpio1: gpio@21 { 190 compatible = "ti,tca6416"; 191 reg = <0x21>; 192 gpio-controller; 193 #gpio-cells = <2>; 194 }; 195 }; 196 197 &qspi { 198 pinctrl-names = "default", "sleep"; 199 pinctrl-0 = <&qspi_clk_pins_a 200 &qspi_bk1_pins_a 201 &qspi_cs1_pins_a>; 202 pinctrl-1 = <&qspi_clk_sleep_pins_a 203 &qspi_bk1_sleep_pins_a 204 &qspi_cs1_sleep_pins_a>; 205 status = "okay"; 206 207 flash@0 { 208 compatible = "jedec,spi-nor"; 209 reg = <0>; 210 spi-rx-bus-width = <4>; 211 spi-max-frequency = <104000000>; 212 #address-cells = <1>; 213 #size-cells = <1>; 214 }; 215 }; 216 217 &{qspi_bk1_pins_a/pins} { 218 pinmux = <STM32_PINMUX('F', 8, AF10)>, /* QSPI_BK1_IO0 */ 219 <STM32_PINMUX('F', 9, AF10)>, /* QSPI_BK1_IO1 */ 220 <STM32_PINMUX('F', 7, AF9)>, /* QSPI_BK1_IO2 */ 221 <STM32_PINMUX('F', 6, AF9)>; /* QSPI_BK1_IO3 */ 222 /delete-property/ bias-disable; 223 bias-pull-up; 224 }; 225 226 &timers1 { 227 /delete-property/dmas; 228 /delete-property/dma-names; 229 status = "okay"; 230 231 hpdcm0_pwm: pwm { 232 pinctrl-names = "default", "sleep"; 233 pinctrl-0 = <&pwm1_pins_mecio1>; 234 pinctrl-1 = <&pwm1_sleep_pins_mecio1>; 235 status = "okay"; 236 }; 237 }; 238 239 &timers8 { 240 /delete-property/dmas; 241 /delete-property/dma-names; 242 status = "okay"; 243 244 hpdcm1_pwm: pwm { 245 pinctrl-names = "default", "sleep"; 246 pinctrl-0 = <&pwm8_pins_mecio1>; 247 pinctrl-1 = <&pwm8_sleep_pins_mecio1>; 248 status = "okay"; 249 }; 250 }; 251 252 &uart4 { 253 pinctrl-names = "default", "sleep", "idle"; 254 pinctrl-0 = <&uart4_pins_a>; 255 pinctrl-1 = <&uart4_sleep_pins_a>; 256 pinctrl-2 = <&uart4_idle_pins_a>; 257 /delete-property/dmas; 258 /delete-property/dma-names; 259 status = "okay"; 260 }; 261 262 &{uart4_pins_a/pins1} { 263 pinmux = <STM32_PINMUX('B', 9, AF8)>; /* UART4_TX */ 264 }; 265 266 &{uart4_pins_a/pins2} { 267 pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */ 268 /delete-property/ bias-disable; 269 bias-pull-up; 270 }; 271 272 &usbotg_hs { 273 dr_mode = "host"; 274 pinctrl-0 = <&usbotg_hs_pins_a>; 275 pinctrl-names = "default"; 276 phys = <&usbphyc_port1 0>; 277 phy-names = "usb2-phy"; 278 vbus-supply = <&v5v>; 279 status = "okay"; 280 }; 281 282 &usbphyc { 283 status = "okay"; 284 }; 285 286 &usbphyc_port0 { 287 phy-supply = <&v3v3>; 288 }; 289 290 &usbphyc_port1 { 291 phy-supply = <&v3v3>; 292 }; 293 294 &vrefbuf { 295 regulator-min-microvolt = <2500000>; 296 regulator-max-microvolt = <2500000>; 297 vdda-supply = <&v3v3>; 298 status = "okay"; 299 }; 300 301 &pinctrl { 302 adc12_pins_mecsbc: adc12-ain-mecsbc-0 { 303 pins { 304 pinmux = <STM32_PINMUX('F', 11, ANALOG)>, /* ADC1_INP2 */ 305 <STM32_PINMUX('F', 12, ANALOG)>, /* ADC1_INP6 */ 306 <STM32_PINMUX('F', 13, ANALOG)>, /* ADC2_INP2 */ 307 <STM32_PINMUX('F', 14, ANALOG)>, /* ADC2_INP6 */ 308 <STM32_PINMUX('A', 0, ANALOG)>, /* ADC1_INP16 */ 309 <STM32_PINMUX('A', 3, ANALOG)>, /* ADC1_INP15 */ 310 <STM32_PINMUX('A', 4, ANALOG)>, /* ADC1_INP18 */ 311 <STM32_PINMUX('A', 5, ANALOG)>, /* ADC1_INP19 */ 312 <STM32_PINMUX('A', 6, ANALOG)>, /* ADC1_INP3 */ 313 <STM32_PINMUX('B', 0, ANALOG)>, /* ADC1_INP9 */ 314 <STM32_PINMUX('B', 1, ANALOG)>, /* ADC1_INP5 */ 315 <STM32_PINMUX('C', 0, ANALOG)>, /* ADC1_INP10 */ 316 <STM32_PINMUX('C', 3, ANALOG)>; /* ADC1_INP13 */ 317 }; 318 }; 319 320 pinctrl_hog_d_mecsbc: hog-d-0 { 321 pins { 322 pinmux = <STM32_PINMUX('D', 12, GPIO)>; /* STP_RESETn */ 323 bias-pull-up; 324 drive-push-pull; 325 slew-rate = <0>; 326 }; 327 }; 328 329 pwm1_pins_mecio1: pwm1-mecio1-0 { 330 pins { 331 pinmux = <STM32_PINMUX('A', 8, AF1)>, /* TIM1_CH1 */ 332 <STM32_PINMUX('A', 8, AF1)>; /* TIM1_CH2 */ 333 bias-pull-down; 334 drive-push-pull; 335 slew-rate = <0>; 336 }; 337 }; 338 339 pwm1_sleep_pins_mecio1: pwm1-sleep-mecio1-0 { 340 pins { 341 pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* TIM1_CH1 */ 342 <STM32_PINMUX('A', 8, ANALOG)>; /* TIM1_CH2 */ 343 }; 344 }; 345 346 pwm8_pins_mecio1: pwm8-mecio1-0 { 347 pins { 348 pinmux = <STM32_PINMUX('I', 5, AF3)>, /* TIM8_CH1 */ 349 <STM32_PINMUX('I', 6, AF3)>; /* TIM8_CH2 */ 350 bias-pull-down; 351 drive-push-pull; 352 slew-rate = <0>; 353 }; 354 }; 355 356 pwm8_sleep_pins_mecio1: pwm8-sleep-mecio1-0 { 357 pins { 358 pinmux = <STM32_PINMUX('I', 5, ANALOG)>, /* TIM8_CH1 */ 359 <STM32_PINMUX('I', 6, ANALOG)>; /* TIM8_CH2 */ 360 }; 361 }; 362 363 ethernet0_rgmii_pins_x: rgmii-0 { 364 pins1 { 365 pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */ 366 <STM32_PINMUX('G', 4, AF11)>, /* ETH_RGMII_GTX_CLK */ 367 <STM32_PINMUX('B', 12, AF11)>, /* ETH_RGMII_TXD0 */ 368 <STM32_PINMUX('B', 13, AF11)>, /* ETH_RGMII_TXD1 */ 369 <STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */ 370 <STM32_PINMUX('B', 8, AF11)>, /* ETH_RGMII_TXD3 */ 371 <STM32_PINMUX('B', 11, AF11)>, /* ETH_RGMII_TX_CTL */ 372 <STM32_PINMUX('C', 1, AF11)>; /* ETH_MDC */ 373 bias-disable; 374 drive-push-pull; 375 slew-rate = <3>; 376 }; 377 pins2 { 378 pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH_MDIO */ 379 bias-disable; 380 drive-push-pull; 381 slew-rate = <0>; 382 }; 383 pins3 { 384 pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RGMII_RXD0 */ 385 <STM32_PINMUX('C', 5, AF11)>, /* ETH_RGMII_RXD1 */ 386 <STM32_PINMUX('H', 6, AF11)>, /* ETH_RGMII_RXD2 */ 387 <STM32_PINMUX('H', 7, AF11)>, /* ETH_RGMII_RXD3 */ 388 <STM32_PINMUX('A', 1, AF11)>, /* ETH_RGMII_RX_CLK */ 389 <STM32_PINMUX('A', 7, AF11)>; /* ETH_RGMII_RX_CTL */ 390 bias-disable; 391 }; 392 }; 393 394 ethernet0_rgmii_sleep_pins_x: rgmii-sleep-0 { 395 pins1 { 396 pinmux = <STM32_PINMUX('G', 5, ANALOG)>, /* ETH_RGMII_CLK125 */ 397 <STM32_PINMUX('G', 4, ANALOG)>, /* ETH_RGMII_GTX_CLK */ 398 <STM32_PINMUX('B', 12, ANALOG)>, /* ETH_RGMII_TXD0 */ 399 <STM32_PINMUX('B', 13, ANALOG)>, /* ETH_RGMII_TXD1 */ 400 <STM32_PINMUX('C', 2, ANALOG)>, /* ETH_RGMII_TXD2 */ 401 <STM32_PINMUX('B', 8, ANALOG)>, /* ETH_RGMII_TXD3 */ 402 <STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RGMII_TX_CTL */ 403 <STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */ 404 <STM32_PINMUX('C', 1, ANALOG)>, /* ETH_MDC */ 405 <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_RXD0 */ 406 <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RGMII_RXD1 */ 407 <STM32_PINMUX('H', 6, ANALOG)>, /* ETH_RGMII_RXD2 */ 408 <STM32_PINMUX('H', 7, ANALOG)>, /* ETH_RGMII_RXD3 */ 409 <STM32_PINMUX('A', 1, ANALOG)>, /* ETH_RGMII_RX_CLK */ 410 <STM32_PINMUX('A', 7, ANALOG)>; /* ETH_RGMII_RX_CTL */ 411 }; 412 }; 413 }; 414