1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * at91-sama7g54_curiosity.dts - Device Tree file for SAMA7G54 Curiosity Board 4 * 5 * Copyright (C) 2024 Microchip Technology Inc. and its subsidiaries 6 * 7 * Author: Mihai Sain <mihai.sain@microchip.com> 8 * 9 */ 10/dts-v1/; 11#include "sama7g5-pinfunc.h" 12#include "sama7g5.dtsi" 13#include <dt-bindings/input/input.h> 14#include <dt-bindings/leds/common.h> 15#include <dt-bindings/mfd/atmel-flexcom.h> 16#include <dt-bindings/pinctrl/at91.h> 17 18/ { 19 model = "Microchip SAMA7G54 Curiosity"; 20 compatible = "microchip,sama7g54-curiosity", "microchip,sama7g5", "microchip,sama7"; 21 22 aliases { 23 serial0 = &uart3; 24 i2c0 = &i2c10; 25 }; 26 27 chosen { 28 stdout-path = "serial0:115200n8"; 29 }; 30 31 gpio-keys { 32 compatible = "gpio-keys"; 33 pinctrl-names = "default"; 34 pinctrl-0 = <&pinctrl_key_gpio_default>; 35 36 button-user { 37 label = "user-button"; 38 gpios = <&pioA PIN_PD19 GPIO_ACTIVE_LOW>; 39 linux,code = <KEY_PROG1>; 40 wakeup-source; 41 }; 42 }; 43 44 leds { 45 compatible = "gpio-leds"; 46 pinctrl-names = "default"; 47 pinctrl-0 = <&pinctrl_led_gpio_default>; 48 49 led-red { 50 color = <LED_COLOR_ID_RED>; 51 function = LED_FUNCTION_POWER; 52 gpios = <&pioA PIN_PD13 GPIO_ACTIVE_HIGH>; 53 default-state = "off"; 54 }; 55 56 led-green { 57 color = <LED_COLOR_ID_GREEN>; 58 function = LED_FUNCTION_BOOT; 59 gpios = <&pioA PIN_PD14 GPIO_ACTIVE_HIGH>; 60 default-state = "off"; 61 }; 62 63 led-blue { 64 color = <LED_COLOR_ID_BLUE>; 65 function = LED_FUNCTION_CPU; 66 gpios = <&pioA PIN_PB15 GPIO_ACTIVE_HIGH>; 67 linux,default-trigger = "heartbeat"; 68 }; 69 }; 70 71 memory@60000000 { 72 device_type = "memory"; 73 reg = <0x60000000 0x10000000>; /* 256 MiB DDR3L-1066 16-bit */ 74 }; 75}; 76 77&adc { 78 vddana-supply = <&vddout25>; 79 vref-supply = <&vddout25>; 80 pinctrl-names = "default"; 81 pinctrl-0 = <&pinctrl_mikrobus1_an_default &pinctrl_mikrobus2_an_default>; 82 status = "okay"; 83}; 84 85&cpu0 { 86 cpu-supply = <&vddcpu>; 87}; 88 89&dma0 { 90 status = "okay"; 91}; 92 93&dma1 { 94 status = "okay"; 95}; 96 97&dma2 { 98 status = "okay"; 99}; 100 101&ebi { 102 pinctrl-names = "default"; 103 pinctrl-0 = <&pinctrl_nand_default>; 104 status = "okay"; 105 106 nand_controller: nand-controller { 107 status = "okay"; 108 109 nand@3 { 110 reg = <0x3 0x0 0x800000>; 111 atmel,rb = <0>; 112 nand-bus-width = <8>; 113 nand-ecc-mode = "hw"; 114 nand-ecc-strength = <8>; 115 nand-ecc-step-size = <512>; 116 nand-on-flash-bbt; 117 label = "nand"; 118 119 partitions { 120 compatible = "fixed-partitions"; 121 #address-cells = <1>; 122 #size-cells = <1>; 123 124 at91bootstrap@0 { 125 label = "nand: at91bootstrap"; 126 reg = <0x0 0x40000>; 127 }; 128 129 bootloader@40000 { 130 label = "nand: u-boot"; 131 reg = <0x40000 0x100000>; 132 }; 133 134 bootloaderenv@140000 { 135 label = "nand: u-boot env"; 136 reg = <0x140000 0x40000>; 137 }; 138 139 dtb@180000 { 140 label = "nand: device tree"; 141 reg = <0x180000 0x80000>; 142 }; 143 144 kernel@200000 { 145 label = "nand: kernel"; 146 reg = <0x200000 0x600000>; 147 }; 148 149 rootfs@800000 { 150 label = "nand: rootfs"; 151 reg = <0x800000 0x1f800000>; 152 }; 153 }; 154 }; 155 }; 156}; 157 158&flx3 { 159 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; 160 status = "okay"; 161 162 uart3: serial@200 { 163 pinctrl-names = "default"; 164 pinctrl-0 = <&pinctrl_flx3_default>; 165 status = "okay"; 166 }; 167}; 168 169&flx10 { 170 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 171 status = "okay"; 172 173 i2c10: i2c@600 { 174 pinctrl-names = "default"; 175 pinctrl-0 = <&pinctrl_flx10_default>; 176 i2c-analog-filter; 177 i2c-digital-filter; 178 i2c-digital-filter-width-ns = <35>; 179 status = "okay"; 180 181 eeprom@51 { 182 compatible = "atmel,24c02"; 183 reg = <0x51>; 184 pagesize = <16>; 185 size = <256>; 186 vcc-supply = <&vdd_3v3>; 187 }; 188 189 pmic@5b { 190 compatible = "microchip,mcp16502"; 191 reg = <0x5b>; 192 193 regulators { 194 vdd_3v3: VDD_IO { 195 regulator-name = "VDD_IO"; 196 regulator-min-microvolt = <3300000>; 197 regulator-max-microvolt = <3300000>; 198 regulator-initial-mode = <2>; 199 regulator-allowed-modes = <2>, <4>; 200 regulator-always-on; 201 202 regulator-state-standby { 203 regulator-on-in-suspend; 204 regulator-suspend-microvolt = <3300000>; 205 regulator-mode = <4>; 206 }; 207 208 regulator-state-mem { 209 regulator-off-in-suspend; 210 regulator-mode = <4>; 211 }; 212 }; 213 214 vddioddr: VDD_DDR { 215 regulator-name = "VDD_DDR"; 216 regulator-min-microvolt = <1350000>; 217 regulator-max-microvolt = <1350000>; 218 regulator-initial-mode = <2>; 219 regulator-allowed-modes = <2>, <4>; 220 regulator-always-on; 221 222 regulator-state-standby { 223 regulator-on-in-suspend; 224 regulator-suspend-microvolt = <1350000>; 225 regulator-mode = <4>; 226 }; 227 228 regulator-state-mem { 229 regulator-on-in-suspend; 230 regulator-suspend-microvolt = <1350000>; 231 regulator-mode = <4>; 232 }; 233 }; 234 235 vddcore: VDD_CORE { 236 regulator-name = "VDD_CORE"; 237 regulator-min-microvolt = <1150000>; 238 regulator-max-microvolt = <1150000>; 239 regulator-initial-mode = <2>; 240 regulator-allowed-modes = <2>, <4>; 241 regulator-always-on; 242 243 regulator-state-standby { 244 regulator-on-in-suspend; 245 regulator-suspend-microvolt = <1150000>; 246 regulator-mode = <4>; 247 }; 248 249 regulator-state-mem { 250 regulator-off-in-suspend; 251 regulator-mode = <4>; 252 }; 253 }; 254 255 vddcpu: VDD_OTHER { 256 regulator-name = "VDD_OTHER"; 257 regulator-min-microvolt = <1050000>; 258 regulator-max-microvolt = <1250000>; 259 regulator-initial-mode = <2>; 260 regulator-allowed-modes = <2>, <4>; 261 regulator-ramp-delay = <3125>; 262 regulator-always-on; 263 264 regulator-state-standby { 265 regulator-on-in-suspend; 266 regulator-suspend-microvolt = <1050000>; 267 regulator-mode = <4>; 268 }; 269 270 regulator-state-mem { 271 regulator-off-in-suspend; 272 regulator-mode = <4>; 273 }; 274 }; 275 276 vldo1: LDO1 { 277 regulator-name = "LDO1"; 278 regulator-min-microvolt = <1800000>; 279 regulator-max-microvolt = <1800000>; 280 regulator-always-on; 281 282 regulator-state-standby { 283 regulator-suspend-microvolt = <1800000>; 284 regulator-on-in-suspend; 285 }; 286 287 regulator-state-mem { 288 regulator-off-in-suspend; 289 }; 290 }; 291 292 vldo2: LDO2 { 293 regulator-name = "LDO2"; 294 regulator-min-microvolt = <3300000>; 295 regulator-max-microvolt = <3300000>; 296 regulator-always-on; 297 298 regulator-state-standby { 299 regulator-suspend-microvolt = <3300000>; 300 regulator-on-in-suspend; 301 }; 302 303 regulator-state-mem { 304 regulator-off-in-suspend; 305 }; 306 }; 307 }; 308 }; 309 }; 310}; 311 312&main_xtal { 313 clock-frequency = <24000000>; 314}; 315 316&qspi1 { 317 pinctrl-names = "default"; 318 pinctrl-0 = <&pinctrl_qspi1_default>; 319 status = "okay"; 320 321 flash@0 { 322 compatible = "jedec,spi-nor"; 323 reg = <0x0>; 324 spi-max-frequency = <100000000>; 325 spi-tx-bus-width = <4>; 326 spi-rx-bus-width = <4>; 327 m25p,fast-read; 328 }; 329}; 330 331&pioA { 332 pinctrl_flx3_default: flx3-default { 333 pinmux = <PIN_PD16__FLEXCOM3_IO0>, 334 <PIN_PD17__FLEXCOM3_IO1>; 335 bias-pull-up; 336 }; 337 338 pinctrl_flx10_default: flx10-default { 339 pinmux = <PIN_PC30__FLEXCOM10_IO0>, 340 <PIN_PC31__FLEXCOM10_IO1>; 341 bias-pull-up; 342 }; 343 344 pinctrl_key_gpio_default: key-gpio-default { 345 pinmux = <PIN_PD19__GPIO>; 346 bias-pull-up; 347 }; 348 349 pinctrl_led_gpio_default: led-gpio-default { 350 pinmux = <PIN_PD13__GPIO>, 351 <PIN_PD14__GPIO>, 352 <PIN_PB15__GPIO>; 353 bias-pull-up; 354 }; 355 356 pinctrl_mikrobus1_an_default: mikrobus1-an-default { 357 pinmux = <PIN_PC15__GPIO>; 358 bias-disable; 359 }; 360 361 pinctrl_mikrobus2_an_default: mikrobus2-an-default { 362 pinmux = <PIN_PC13__GPIO>; 363 bias-disable; 364 }; 365 366 pinctrl_nand_default: nand-default { 367 pinmux = <PIN_PD9__D0>, 368 <PIN_PD10__D1>, 369 <PIN_PD11__D2>, 370 <PIN_PC21__D3>, 371 <PIN_PC22__D4>, 372 <PIN_PC23__D5>, 373 <PIN_PC24__D6>, 374 <PIN_PD2__D7>, 375 <PIN_PD3__NANDRDY>, 376 <PIN_PD4__NCS3_NANDCS>, 377 <PIN_PD5__NWE_NWR0_NANDWE>, 378 <PIN_PD6__NRD_NANDOE>, 379 <PIN_PD7__A21_NANDALE>, 380 <PIN_PD8__A22_NANDCLE>; 381 bias-disable; 382 slew-rate = <0>; 383 }; 384 385 pinctrl_qspi1_default: qspi1-default { 386 pinmux = <PIN_PB22__QSPI1_IO3>, 387 <PIN_PB23__QSPI1_IO2>, 388 <PIN_PB24__QSPI1_IO1>, 389 <PIN_PB25__QSPI1_IO0>, 390 <PIN_PB26__QSPI1_CS>, 391 <PIN_PB27__QSPI1_SCK>; 392 bias-pull-up; 393 slew-rate = <0>; 394 }; 395 396 pinctrl_sdmmc0_default: sdmmc0-default { 397 pinmux = <PIN_PA0__SDMMC0_CK>, 398 <PIN_PA1__SDMMC0_CMD>, 399 <PIN_PA2__SDMMC0_RSTN>, 400 <PIN_PA3__SDMMC0_DAT0>, 401 <PIN_PA4__SDMMC0_DAT1>, 402 <PIN_PA5__SDMMC0_DAT2>, 403 <PIN_PA6__SDMMC0_DAT3>; 404 bias-pull-up; 405 slew-rate = <0>; 406 }; 407 408 pinctrl_sdmmc1_default: sdmmc1-default { 409 pinmux = <PIN_PB29__SDMMC1_CMD>, 410 <PIN_PB30__SDMMC1_CK>, 411 <PIN_PB31__SDMMC1_DAT0>, 412 <PIN_PC0__SDMMC1_DAT1>, 413 <PIN_PC1__SDMMC1_DAT2>, 414 <PIN_PC2__SDMMC1_DAT3>, 415 <PIN_PC4__SDMMC1_CD>; 416 bias-pull-up; 417 slew-rate = <0>; 418 }; 419}; 420 421&rtt { 422 atmel,rtt-rtc-time-reg = <&gpbr 0x0>; 423}; 424 425/* M.2 slot for wireless card */ 426&sdmmc0 { 427 bus-width = <4>; 428 cd-gpios = <&pioA 31 GPIO_ACTIVE_LOW>; 429 disable-wp; 430 sdhci-caps-mask = <0x0 0x00200000>; 431 vmmc-supply = <&vdd_3v3>; 432 vqmmc-supply = <&vdd_3v3>; 433 pinctrl-names = "default"; 434 pinctrl-0 = <&pinctrl_sdmmc0_default>; 435 status = "okay"; 436}; 437 438/* micro SD socket */ 439&sdmmc1 { 440 bus-width = <4>; 441 disable-wp; 442 sdhci-caps-mask = <0x0 0x00200000>; 443 vmmc-supply = <&vdd_3v3>; 444 vqmmc-supply = <&vdd_3v3>; 445 pinctrl-names = "default"; 446 pinctrl-0 = <&pinctrl_sdmmc1_default>; 447 status = "okay"; 448}; 449 450&slow_xtal { 451 clock-frequency = <32768>; 452}; 453 454&shdwc { 455 debounce-delay-us = <976>; 456 status = "okay"; 457 458 input@0 { 459 reg = <0>; 460 }; 461}; 462 463&tcb0 { 464 timer0: timer@0 { 465 compatible = "atmel,tcb-timer"; 466 reg = <0>; 467 }; 468 469 timer1: timer@1 { 470 compatible = "atmel,tcb-timer"; 471 reg = <1>; 472 }; 473}; 474 475&trng { 476 status = "okay"; 477}; 478 479&vddout25 { 480 vin-supply = <&vdd_3v3>; 481 status = "okay"; 482}; 483