1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * sam9x60ek.dts - Device Tree file for SAM9X60 EK board 4 * 5 * Copyright (C) 2018 Microchip Technology Inc. and its subsidiaries 6 * 7 * Author: Sandeep Sheriker M <Sandeepsheriker.mallikarjun@microchip.com> 8 */ 9/dts-v1/; 10#include <dt-bindings/mfd/atmel-flexcom.h> 11#include "sam9x60.dtsi" 12 13/ { 14 model = "Microchip SAM9X60-Ek"; 15 compatible = "microchip,sam9x60ek", "microchip,sam9x60", "atmel,at91sam9"; 16 17 chosen { 18 stdout-path = &dbgu; 19 i2c0 = &flx0; 20 }; 21 22 clocks { 23 slow_xtal: slow_xtal { 24 clock-frequency = <32768>; 25 }; 26 27 main_xtal: main_xtal { 28 clock-frequency = <24000000>; 29 }; 30 }; 31 32 onewire_tm: onewire { 33 gpios = <&pioD 14 GPIO_ACTIVE_HIGH>; 34 pinctrl-names = "default"; 35 pinctrl-0 = <&pinctrl_onewire_tm_default>; 36 status = "okay"; 37 38 w1_eeprom: w1_eeprom@0 { 39 compatible = "maxim,ds24b33"; 40 status = "okay"; 41 }; 42 }; 43 44 ahb { 45 apb { 46 qspi: spi@f0014000 { 47 pinctrl-names = "default"; 48 pinctrl-0 = <&pinctrl_qspi>; 49 status = "okay"; 50 51 nor_flash: sst26vf064@0 { 52 compatible = "jedec,spi-nor"; 53 reg = <0>; 54 spi-max-frequency = <80000000>; 55 spi-rx-bus-width = <4>; 56 spi-tx-bus-width = <4>; 57 }; 58 }; 59 60 flx0: flexcom@f801c600 { 61 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 62 status = "okay"; 63 64 i2c@600 { 65 compatible = "microchip,sam9x60-i2c"; 66 reg = <0x600 0x200>; 67 pinctrl-names = "default"; 68 pinctrl-0 = <&pinctrl_flx0>; 69 #address-cells = <1>; 70 #size-cells = <0>; 71 clocks = <&pmc PMC_TYPE_PERIPHERAL 5>; 72 status = "okay"; 73 74 eeprom@53 { 75 compatible = "atmel,24c02"; /* EEPROM is 2Kbits microchip 24aa025e48, an at24c02 with page size of 16 */ 76 reg = <0x53>; 77 pagesize = <16>; 78 }; 79 }; 80 }; 81 }; 82 }; 83}; 84 85&dbgu { 86 pinctrl-names = "default"; 87 pinctrl-0 = <&pinctrl_dbgu>; 88}; 89 90&ebi { 91 pinctrl-names = "default"; 92 pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>; 93 status = "okay"; 94 95 nand_controller: nand-controller { 96 pinctrl-names = "default"; 97 pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>; 98 status = "okay"; 99 100 nand@3 { 101 reg = <0x3 0x0 0x800000>; 102 rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>; 103 cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>; 104 nand-bus-width = <8>; 105 nand-ecc-mode = "hw"; 106 nand-ecc-strength = <8>; 107 nand-ecc-step-size = <512>; 108 nand-on-flash-bbt; 109 label = "atmel_nand"; 110 111 partitions { 112 compatible = "fixed-partitions"; 113 #address-cells = <1>; 114 #size-cells = <1>; 115 116 at91bootstrap@0 { 117 label = "at91bootstrap"; 118 reg = <0x0 0x40000>; 119 }; 120 121 uboot@40000 { 122 label = "u-boot"; 123 reg = <0x40000 0xc0000>; 124 }; 125 126 ubootenvred@100000 { 127 label = "U-Boot Env Redundant"; 128 reg = <0x100000 0x40000>; 129 }; 130 131 ubootenv@140000 { 132 label = "U-Boot Env"; 133 reg = <0x140000 0x40000>; 134 }; 135 136 dtb@180000 { 137 label = "device tree"; 138 reg = <0x180000 0x80000>; 139 }; 140 141 kernel@200000 { 142 label = "kernel"; 143 reg = <0x200000 0x600000>; 144 }; 145 146 rootfs@800000 { 147 label = "rootfs"; 148 reg = <0x800000 0x1f800000>; 149 }; 150 }; 151 }; 152 }; 153}; 154 155&macb0 { 156 phy-mode = "rmii"; 157 pinctrl-names = "default"; 158 pinctrl-0 = <&pinctrl_macb0_rmii>; 159 status = "okay"; 160}; 161 162&pinctrl { 163 /* shared pinctrl settings */ 164 dbgu { 165 pinctrl_dbgu: dbgu-0 { 166 atmel,pins = 167 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP 168 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; 169 }; 170 }; 171 172 qspi { 173 pinctrl_qspi: qspi { 174 atmel,pins = 175 <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE 176 AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE 177 AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP 178 AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP 179 AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_PULL_UP 180 AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; 181 }; 182 }; 183 184 nand { 185 pinctrl_nand_oe_we: nand-oe-we-0 { 186 atmel,pins = 187 <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 188 AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; 189 }; 190 191 pinctrl_nand_rb: nand-rb-0 { 192 atmel,pins = 193 <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; 194 }; 195 196 pinctrl_nand_cs: nand-cs-0 { 197 atmel,pins = 198 <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; 199 }; 200 }; 201 202 ebi { 203 pinctrl_ebi_data_0_7: ebi-data-lsb-0 { 204 atmel,pins = 205 <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 206 AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 207 AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 208 AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 209 AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 210 AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 211 AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 212 AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; 213 }; 214 215 pinctrl_ebi_addr_nand: ebi-addr-0 { 216 atmel,pins = 217 <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) 218 AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; 219 }; 220 }; 221 222 flexcom { 223 pinctrl_flx0: flx0_default { 224 atmel,pins = 225 <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE 226 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>; 227 }; 228 }; 229 230 macb0 { 231 pinctrl_macb0_rmii: macb0_rmii-0 { 232 atmel,pins = 233 <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB0 periph A */ 234 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB1 periph A */ 235 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB2 periph A */ 236 AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB3 periph A */ 237 AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB4 periph A */ 238 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB5 periph A */ 239 AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB6 periph A */ 240 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB7 periph A */ 241 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB9 periph A */ 242 AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */ 243 }; 244 }; 245 246 pinctrl_onewire_tm_default: onewire_tm_default { 247 atmel,pins = 248 <AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; 249 }; 250 251 sdhci0 { 252 pinctrl_sdhci0: sdhci0 { 253 atmel,pins = 254 <AT91_PIOA 17 AT91_PERIPH_A 255 (AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA17 CK periph A with pullup */ 256 AT91_PIOA 16 AT91_PERIPH_A 257 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA16 CMD periph A with pullup */ 258 AT91_PIOA 15 AT91_PERIPH_A 259 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA15 DAT0 periph A */ 260 AT91_PIOA 18 AT91_PERIPH_A 261 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA18 DAT1 periph A with pullup */ 262 AT91_PIOA 19 AT91_PERIPH_A 263 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA19 DAT2 periph A with pullup */ 264 AT91_PIOA 20 AT91_PERIPH_A 265 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA)>; /* PA20 DAT3 periph A with pullup */ 266 }; 267 }; 268 269 sdhci1 { 270 pinctrl_sdhci1: sdhci1 { 271 atmel,pins = 272 <AT91_PIOA 13 AT91_PERIPH_B (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA13 CK periph B */ 273 AT91_PIOA 12 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA12 CMD periph B with pullup */ 274 AT91_PIOA 11 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA11 DAT0 periph B with pullup */ 275 AT91_PIOA 2 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA2 DAT1 periph B with pullup */ 276 AT91_PIOA 3 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA3 DAT2 periph B with pullup */ 277 AT91_PIOA 4 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA4 DAT3 periph B with pullup */ 278 }; 279 }; 280 281 usb1 { 282 pinctrl_usb_default: usb_default { 283 atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE 284 AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; 285 }; 286 }; 287}; 288 289&sdhci0 { 290 pinctrl-names = "default"; 291 pinctrl-0 = <&pinctrl_sdhci0>; 292}; 293 294&sdhci1 { 295 pinctrl-names = "default"; 296 pinctrl-0 = <&pinctrl_sdhci1>; 297}; 298 299&usb1 { 300 num-ports = <3>; 301 atmel,vbus-gpio = <0 302 &pioD 15 GPIO_ACTIVE_HIGH 303 &pioD 16 GPIO_ACTIVE_HIGH>; 304 pinctrl-names = "default"; 305 pinctrl-0 = <&pinctrl_usb_default>; 306 status = "okay"; 307}; 308 309&usb2 { 310 status = "okay"; 311}; 312