0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003 * at91-sama5d3_xplained.dts - Device Tree file for the SAMA5D3 Xplained board
0004 *
0005 * Copyright (C) 2014 Atmel,
0006 * 2014 Nicolas Ferre <nicolas.ferre@atmel.com>
0007 */
0008 /dts-v1/;
0009 #include "sama5d36.dtsi"
0010 #include <dt-bindings/input/input.h>
0011
0012 / {
0013 model = "SAMA5D3 Xplained";
0014 compatible = "atmel,sama5d3-xplained", "atmel,sama5d3", "atmel,sama5";
0015
0016 chosen {
0017 stdout-path = "serial0:115200n8";
0018 };
0019
0020 memory@20000000 {
0021 reg = <0x20000000 0x10000000>;
0022 };
0023
0024 clocks {
0025 slow_xtal {
0026 clock-frequency = <32768>;
0027 };
0028
0029 main_xtal {
0030 clock-frequency = <12000000>;
0031 };
0032 };
0033
0034 ahb {
0035 apb {
0036 mmc0: mmc@f0000000 {
0037 pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
0038 vmmc-supply = <&vcc_mmc0_reg>;
0039 vqmmc-supply = <&vcc_3v3_reg>;
0040 status = "okay";
0041 slot@0 {
0042 reg = <0>;
0043 bus-width = <8>;
0044 cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
0045 };
0046 };
0047
0048 mmc1: mmc@f8000000 {
0049 vmmc-supply = <&vcc_3v3_reg>;
0050 vqmmc-supply = <&vcc_3v3_reg>;
0051 status = "disabled";
0052 slot@0 {
0053 reg = <0>;
0054 bus-width = <4>;
0055 cd-gpios = <&pioE 1 GPIO_ACTIVE_LOW>;
0056 };
0057 };
0058
0059 spi0: spi@f0004000 {
0060 pinctrl-names = "default", "cs";
0061 pinctrl-1 = <&pinctrl_spi0_cs>;
0062 cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
0063 status = "okay";
0064 };
0065
0066 can0: can@f000c000 {
0067 status = "okay";
0068 };
0069
0070 tcb0: timer@f0010000 {
0071 timer0: timer@0 {
0072 compatible = "atmel,tcb-timer";
0073 reg = <0>;
0074 };
0075
0076 timer1: timer@1 {
0077 compatible = "atmel,tcb-timer";
0078 reg = <1>;
0079 };
0080 };
0081
0082 i2c0: i2c@f0014000 {
0083 pinctrl-0 = <&pinctrl_i2c0_pu>;
0084 status = "okay";
0085 };
0086
0087 i2c1: i2c@f0018000 {
0088 status = "okay";
0089
0090 pmic: act8865@5b {
0091 compatible = "active-semi,act8865";
0092 reg = <0x5b>;
0093 status = "disabled";
0094
0095 regulators {
0096 vcc_1v8_reg: DCDC_REG1 {
0097 regulator-name = "VCC_1V8";
0098 regulator-min-microvolt = <1800000>;
0099 regulator-max-microvolt = <1800000>;
0100 regulator-always-on;
0101 };
0102
0103 vcc_1v2_reg: DCDC_REG2 {
0104 regulator-name = "VCC_1V2";
0105 regulator-min-microvolt = <1200000>;
0106 regulator-max-microvolt = <1200000>;
0107 regulator-always-on;
0108 };
0109
0110 vcc_3v3_reg: DCDC_REG3 {
0111 regulator-name = "VCC_3V3";
0112 regulator-min-microvolt = <3300000>;
0113 regulator-max-microvolt = <3300000>;
0114 regulator-always-on;
0115 };
0116
0117 vddfuse_reg: LDO_REG1 {
0118 regulator-name = "FUSE_2V5";
0119 regulator-min-microvolt = <2500000>;
0120 regulator-max-microvolt = <2500000>;
0121 };
0122
0123 vddana_reg: LDO_REG2 {
0124 regulator-name = "VDDANA";
0125 regulator-min-microvolt = <3300000>;
0126 regulator-max-microvolt = <3300000>;
0127 regulator-always-on;
0128 };
0129 };
0130 };
0131 };
0132
0133 macb0: ethernet@f0028000 {
0134 phy-mode = "rgmii-rxid";
0135 #address-cells = <1>;
0136 #size-cells = <0>;
0137 status = "okay";
0138
0139 ethernet-phy@7 {
0140 reg = <0x7>;
0141 };
0142 };
0143
0144 pwm0: pwm@f002c000 {
0145 pinctrl-names = "default";
0146 pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>;
0147 status = "okay";
0148 };
0149
0150 usart0: serial@f001c000 {
0151 status = "okay";
0152 };
0153
0154 usart1: serial@f0020000 {
0155 pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
0156 status = "okay";
0157 };
0158
0159 uart0: serial@f0024000 {
0160 status = "okay";
0161 };
0162
0163 mmc1: mmc@f8000000 {
0164 pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
0165 status = "okay";
0166 slot@0 {
0167 reg = <0>;
0168 bus-width = <4>;
0169 cd-gpios = <&pioE 1 GPIO_ACTIVE_HIGH>;
0170 };
0171 };
0172
0173 spi1: spi@f8008000 {
0174 pinctrl-names = "default", "cs";
0175 pinctrl-1 = <&pinctrl_spi1_cs>;
0176 cs-gpios = <&pioC 25 0>;
0177 status = "okay";
0178 };
0179
0180 adc0: adc@f8018000 {
0181 atmel,adc-vref = <3300>;
0182 atmel,adc-channels-used = <0xfe>;
0183 pinctrl-0 = <
0184 &pinctrl_adc0_adtrg
0185 &pinctrl_adc0_ad1
0186 &pinctrl_adc0_ad2
0187 &pinctrl_adc0_ad3
0188 &pinctrl_adc0_ad4
0189 &pinctrl_adc0_ad5
0190 &pinctrl_adc0_ad6
0191 &pinctrl_adc0_ad7
0192 >;
0193 status = "okay";
0194 };
0195
0196 i2c2: i2c@f801c000 {
0197 dmas = <0>, <0>; /* Do not use DMA for i2c2 */
0198 pinctrl-0 = <&pinctrl_i2c2_pu>;
0199 status = "okay";
0200 };
0201
0202 macb1: ethernet@f802c000 {
0203 phy-mode = "rmii";
0204 #address-cells = <1>;
0205 #size-cells = <0>;
0206 status = "okay";
0207
0208 ethernet-phy@1 {
0209 reg = <0x1>;
0210 };
0211 };
0212
0213 dbgu: serial@ffffee00 {
0214 status = "okay";
0215 };
0216
0217 pinctrl@fffff200 {
0218 board {
0219 pinctrl_i2c0_pu: i2c0_pu {
0220 atmel,pins =
0221 <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
0222 <AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
0223 };
0224
0225 pinctrl_i2c2_pu: i2c2_pu {
0226 atmel,pins =
0227 <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
0228 <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
0229 };
0230
0231 pinctrl_key_gpio: key_gpio_0 {
0232 atmel,pins =
0233 <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
0234 };
0235
0236 pinctrl_mmc0_cd: mmc0_cd {
0237 atmel,pins =
0238 <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
0239 };
0240
0241 pinctrl_mmc1_cd: mmc1_cd {
0242 atmel,pins =
0243 <AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
0244 };
0245
0246 pinctrl_usba_vbus: usba_vbus {
0247 atmel,pins =
0248 <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */
0249 };
0250 pinctrl_usb_default: usb_default {
0251 atmel,pins =
0252 <AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
0253 AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0254 };
0255
0256 pinctrl_gpio_leds: gpio_leds_default {
0257 atmel,pins =
0258 <AT91_PIOE 23 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
0259 AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0260 };
0261
0262 pinctrl_spi0_cs: spi0_cs_default {
0263 atmel,pins =
0264 <AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
0265 AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0266 };
0267
0268 pinctrl_spi1_cs: spi1_cs_default {
0269 atmel,pins = <AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0270 };
0271
0272 pinctrl_vcc_mmc0_reg_gpio: vcc_mmc0_reg_gpio_default {
0273 atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0274 };
0275 };
0276 };
0277 };
0278
0279 usb0: gadget@500000 {
0280 atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */
0281 pinctrl-names = "default";
0282 pinctrl-0 = <&pinctrl_usba_vbus>;
0283 status = "okay";
0284 };
0285
0286 usb1: ohci@600000 {
0287 num-ports = <3>;
0288 atmel,vbus-gpio = <0
0289 &pioE 3 GPIO_ACTIVE_LOW
0290 &pioE 4 GPIO_ACTIVE_LOW
0291 >;
0292 pinctrl-names = "default";
0293 pinctrl-0 = <&pinctrl_usb_default>;
0294 status = "okay";
0295 };
0296
0297 usb2: ehci@700000 {
0298 status = "okay";
0299 };
0300
0301 ebi: ebi@10000000 {
0302 pinctrl-0 = <&pinctrl_ebi_nand_addr>;
0303 pinctrl-names = "default";
0304 status = "okay";
0305
0306 nand_controller: nand-controller {
0307 status = "okay";
0308
0309 nand@3 {
0310 reg = <0x3 0x0 0x2>;
0311 atmel,rb = <0>;
0312 nand-bus-width = <8>;
0313 nand-ecc-mode = "hw";
0314 nand-ecc-strength = <4>;
0315 nand-ecc-step-size = <512>;
0316 nand-on-flash-bbt;
0317 label = "atmel_nand";
0318
0319 partitions {
0320 compatible = "fixed-partitions";
0321 #address-cells = <1>;
0322 #size-cells = <1>;
0323
0324 at91bootstrap@0 {
0325 label = "at91bootstrap";
0326 reg = <0x0 0x40000>;
0327 };
0328
0329 bootloader@40000 {
0330 label = "bootloader";
0331 reg = <0x40000 0xc0000>;
0332 };
0333
0334 bootloaderenvred@100000 {
0335 label = "bootloader env redundant";
0336 reg = <0x100000 0x40000>;
0337 };
0338
0339 bootloaderenv@140000 {
0340 label = "bootloader env";
0341 reg = <0x140000 0x40000>;
0342 };
0343
0344 dtb@180000 {
0345 label = "device tree";
0346 reg = <0x180000 0x80000>;
0347 };
0348
0349 kernel@200000 {
0350 label = "kernel";
0351 reg = <0x200000 0x600000>;
0352 };
0353
0354 rootfs@800000 {
0355 label = "rootfs";
0356 reg = <0x800000 0x0f800000>;
0357 };
0358 };
0359 };
0360 };
0361 };
0362 };
0363
0364 vcc_mmc0_reg: fixedregulator_mmc0 {
0365 compatible = "regulator-fixed";
0366 pinctrl-names = "default";
0367 pinctrl-0 = <&pinctrl_vcc_mmc0_reg_gpio>;
0368 gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
0369 regulator-name = "mmc0-card-supply";
0370 regulator-min-microvolt = <3300000>;
0371 regulator-max-microvolt = <3300000>;
0372 regulator-always-on;
0373 };
0374
0375 gpio-keys {
0376 compatible = "gpio-keys";
0377
0378 pinctrl-names = "default";
0379 pinctrl-0 = <&pinctrl_key_gpio>;
0380
0381 button {
0382 label = "PB_USER";
0383 gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
0384 linux,code = <KEY_PROG1>;
0385 wakeup-source;
0386 };
0387 };
0388
0389 leds {
0390 compatible = "gpio-leds";
0391 pinctrl-names = "default";
0392 pinctrl-0 = <&pinctrl_gpio_leds>;
0393 status = "okay";
0394
0395 d2 {
0396 label = "d2";
0397 gpios = <&pioE 23 GPIO_ACTIVE_LOW>; /* PE23, conflicts with A23, CTS2 */
0398 linux,default-trigger = "heartbeat";
0399 };
0400
0401 d3 {
0402 label = "d3"; /* Conflict with EBI CS0, USART2 CTS. */
0403 gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
0404 };
0405 };
0406 };