1/* 2 * at91sam9260.dtsi - Device Tree Include file for AT91SAM9260 family SoC 3 * 4 * Copyright (C) 2011 Atmel, 5 * 2011 Nicolas Ferre <nicolas.ferre@atmel.com>, 6 * 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> 7 * 8 * Licensed under GPLv2 or later. 9 */ 10 11#include "skeleton.dtsi" 12#include <dt-bindings/pinctrl/at91.h> 13#include <dt-bindings/interrupt-controller/irq.h> 14#include <dt-bindings/gpio/gpio.h> |
15#include <dt-bindings/clock/at91.h> |
16 17/ { 18 model = "Atmel AT91SAM9260 family SoC"; 19 compatible = "atmel,at91sam9260"; 20 interrupt-parent = <&aic>; 21 22 aliases { 23 serial0 = &dbgu; --- 20 unchanged lines hidden (view full) --- 44 device_type = "cpu"; 45 }; 46 }; 47 48 memory { 49 reg = <0x20000000 0x04000000>; 50 }; 51 |
52 clocks { 53 slow_xtal: slow_xtal { 54 compatible = "fixed-clock"; 55 #clock-cells = <0>; 56 clock-frequency = <0>; 57 }; 58 59 main_xtal: main_xtal { 60 compatible = "fixed-clock"; 61 #clock-cells = <0>; 62 clock-frequency = <0>; 63 }; 64 65 adc_op_clk: adc_op_clk{ 66 compatible = "fixed-clock"; 67 #clock-cells = <0>; 68 clock-frequency = <5000000>; 69 }; 70 }; 71 |
72 ahb { 73 compatible = "simple-bus"; 74 #address-cells = <1>; 75 #size-cells = <1>; 76 ranges; 77 78 apb { 79 compatible = "simple-bus"; --- 10 unchanged lines hidden (view full) --- 90 }; 91 92 ramc0: ramc@ffffea00 { 93 compatible = "atmel,at91sam9260-sdramc"; 94 reg = <0xffffea00 0x200>; 95 }; 96 97 pmc: pmc@fffffc00 { |
98 compatible = "atmel,at91sam9260-pmc"; |
99 reg = <0xfffffc00 0x100>; |
100 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 101 interrupt-controller; 102 #address-cells = <1>; 103 #size-cells = <0>; 104 #interrupt-cells = <1>; 105 106 main_osc: main_osc { 107 compatible = "atmel,at91rm9200-clk-main-osc"; 108 #clock-cells = <0>; 109 interrupts-extended = <&pmc AT91_PMC_MOSCS>; 110 clocks = <&main_xtal>; 111 }; 112 113 main: mainck { 114 compatible = "atmel,at91rm9200-clk-main"; 115 #clock-cells = <0>; 116 clocks = <&main_osc>; 117 }; 118 119 slow_rc_osc: slow_rc_osc { 120 compatible = "fixed-clock"; 121 #clock-cells = <0>; 122 clock-frequency = <32768>; 123 clock-accuracy = <50000000>; 124 }; 125 126 clk32k: slck { 127 compatible = "atmel,at91sam9260-clk-slow"; 128 #clock-cells = <0>; 129 clocks = <&slow_rc_osc>, <&slow_xtal>; 130 }; 131 132 plla: pllack { 133 compatible = "atmel,at91rm9200-clk-pll"; 134 #clock-cells = <0>; 135 interrupts-extended = <&pmc AT91_PMC_LOCKA>; 136 clocks = <&main>; 137 reg = <0>; 138 atmel,clk-input-range = <1000000 32000000>; 139 #atmel,pll-clk-output-range-cells = <4>; 140 atmel,pll-clk-output-ranges = <80000000 160000000 0 1>, 141 <150000000 240000000 2 1>; 142 }; 143 144 pllb: pllbck { 145 compatible = "atmel,at91rm9200-clk-pll"; 146 #clock-cells = <0>; 147 interrupts-extended = <&pmc AT91_PMC_LOCKB>; 148 clocks = <&main>; 149 reg = <1>; 150 atmel,clk-input-range = <1000000 5000000>; 151 #atmel,pll-clk-output-range-cells = <4>; 152 atmel,pll-clk-output-ranges = <70000000 130000000 1 1>; 153 }; 154 155 mck: masterck { 156 compatible = "atmel,at91rm9200-clk-master"; 157 #clock-cells = <0>; 158 interrupts-extended = <&pmc AT91_PMC_MCKRDY>; 159 clocks = <&clk32k>, <&main>, <&plla>, <&pllb>; 160 atmel,clk-output-range = <0 105000000>; 161 atmel,clk-divisors = <1 2 4 0>; 162 }; 163 164 usb: usbck { 165 compatible = "atmel,at91rm9200-clk-usb"; 166 #clock-cells = <0>; 167 atmel,clk-divisors = <1 2 4 0>; 168 clocks = <&pllb>; 169 }; 170 171 prog: progck { 172 compatible = "atmel,at91rm9200-clk-programmable"; 173 #address-cells = <1>; 174 #size-cells = <0>; 175 interrupt-parent = <&pmc>; 176 clocks = <&clk32k>, <&main>, <&plla>, <&pllb>; 177 178 prog0: prog0 { 179 #clock-cells = <0>; 180 reg = <0>; 181 interrupts = <AT91_PMC_PCKRDY(0)>; 182 }; 183 184 prog1: prog1 { 185 #clock-cells = <0>; 186 reg = <1>; 187 interrupts = <AT91_PMC_PCKRDY(1)>; 188 }; 189 }; 190 191 systemck { 192 compatible = "atmel,at91rm9200-clk-system"; 193 #address-cells = <1>; 194 #size-cells = <0>; 195 196 uhpck: uhpck { 197 #clock-cells = <0>; 198 reg = <6>; 199 clocks = <&usb>; 200 }; 201 202 udpck: udpck { 203 #clock-cells = <0>; 204 reg = <7>; 205 clocks = <&usb>; 206 }; 207 208 pck0: pck0 { 209 #clock-cells = <0>; 210 reg = <8>; 211 clocks = <&prog0>; 212 }; 213 214 pck1: pck1 { 215 #clock-cells = <0>; 216 reg = <9>; 217 clocks = <&prog1>; 218 }; 219 }; 220 221 periphck { 222 compatible = "atmel,at91rm9200-clk-peripheral"; 223 #address-cells = <1>; 224 #size-cells = <0>; 225 clocks = <&mck>; 226 227 pioA_clk: pioA_clk { 228 #clock-cells = <0>; 229 reg = <2>; 230 }; 231 232 pioB_clk: pioB_clk { 233 #clock-cells = <0>; 234 reg = <3>; 235 }; 236 237 pioC_clk: pioC_clk { 238 #clock-cells = <0>; 239 reg = <4>; 240 }; 241 242 adc_clk: adc_clk { 243 #clock-cells = <0>; 244 reg = <5>; 245 }; 246 247 usart0_clk: usart0_clk { 248 #clock-cells = <0>; 249 reg = <6>; 250 }; 251 252 usart1_clk: usart1_clk { 253 #clock-cells = <0>; 254 reg = <7>; 255 }; 256 257 usart2_clk: usart2_clk { 258 #clock-cells = <0>; 259 reg = <8>; 260 }; 261 262 mci0_clk: mci0_clk { 263 #clock-cells = <0>; 264 reg = <9>; 265 }; 266 267 udc_clk: udc_clk { 268 #clock-cells = <0>; 269 reg = <10>; 270 }; 271 272 twi0_clk: twi0_clk { 273 reg = <11>; 274 #clock-cells = <0>; 275 }; 276 277 spi0_clk: spi0_clk { 278 #clock-cells = <0>; 279 reg = <12>; 280 }; 281 282 spi1_clk: spi1_clk { 283 #clock-cells = <0>; 284 reg = <13>; 285 }; 286 287 ssc0_clk: ssc0_clk { 288 #clock-cells = <0>; 289 reg = <14>; 290 }; 291 292 tc0_clk: tc0_clk { 293 #clock-cells = <0>; 294 reg = <17>; 295 }; 296 297 tc1_clk: tc1_clk { 298 #clock-cells = <0>; 299 reg = <18>; 300 }; 301 302 tc2_clk: tc2_clk { 303 #clock-cells = <0>; 304 reg = <19>; 305 }; 306 307 ohci_clk: ohci_clk { 308 #clock-cells = <0>; 309 reg = <20>; 310 }; 311 312 macb0_clk: macb0_clk { 313 #clock-cells = <0>; 314 reg = <21>; 315 }; 316 317 isi_clk: isi_clk { 318 #clock-cells = <0>; 319 reg = <22>; 320 }; 321 322 usart3_clk: usart3_clk { 323 #clock-cells = <0>; 324 reg = <23>; 325 }; 326 327 uart0_clk: uart0_clk { 328 #clock-cells = <0>; 329 reg = <24>; 330 }; 331 332 uart1_clk: uart1_clk { 333 #clock-cells = <0>; 334 reg = <25>; 335 }; 336 337 tc3_clk: tc3_clk { 338 #clock-cells = <0>; 339 reg = <26>; 340 }; 341 342 tc4_clk: tc4_clk { 343 #clock-cells = <0>; 344 reg = <27>; 345 }; 346 347 tc5_clk: tc5_clk { 348 #clock-cells = <0>; 349 reg = <28>; 350 }; 351 }; |
352 }; 353 354 rstc@fffffd00 { 355 compatible = "atmel,at91sam9260-rstc"; 356 reg = <0xfffffd00 0x10>; 357 }; 358 359 shdwc@fffffd10 { 360 compatible = "atmel,at91sam9260-shdwc"; 361 reg = <0xfffffd10 0x10>; 362 }; 363 364 pit: timer@fffffd30 { 365 compatible = "atmel,at91sam9260-pit"; 366 reg = <0xfffffd30 0xf>; 367 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; |
368 clocks = <&mck>; |
369 }; 370 371 tcb0: timer@fffa0000 { 372 compatible = "atmel,at91rm9200-tcb"; 373 reg = <0xfffa0000 0x100>; 374 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0 375 18 IRQ_TYPE_LEVEL_HIGH 0 376 19 IRQ_TYPE_LEVEL_HIGH 0>; |
377 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>; 378 clock-names = "t0_clk", "t1_clk", "t2_clk"; |
379 }; 380 381 tcb1: timer@fffdc000 { 382 compatible = "atmel,at91rm9200-tcb"; 383 reg = <0xfffdc000 0x100>; 384 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0 385 27 IRQ_TYPE_LEVEL_HIGH 0 386 28 IRQ_TYPE_LEVEL_HIGH 0>; |
387 clocks = <&tc3_clk>, <&tc4_clk>, <&tc5_clk>; 388 clock-names = "t0_clk", "t1_clk", "t2_clk"; |
389 }; 390 391 pinctrl@fffff400 { 392 #address-cells = <1>; 393 #size-cells = <1>; 394 compatible = "atmel,at91rm9200-pinctrl", "simple-bus"; 395 ranges = <0xfffff400 0xfffff400 0x600>; 396 --- 319 unchanged lines hidden (view full) --- 716 pioA: gpio@fffff400 { 717 compatible = "atmel,at91rm9200-gpio"; 718 reg = <0xfffff400 0x200>; 719 interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>; 720 #gpio-cells = <2>; 721 gpio-controller; 722 interrupt-controller; 723 #interrupt-cells = <2>; |
724 clocks = <&pioA_clk>; |
725 }; 726 727 pioB: gpio@fffff600 { 728 compatible = "atmel,at91rm9200-gpio"; 729 reg = <0xfffff600 0x200>; 730 interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>; 731 #gpio-cells = <2>; 732 gpio-controller; 733 interrupt-controller; 734 #interrupt-cells = <2>; |
735 clocks = <&pioB_clk>; |
736 }; 737 738 pioC: gpio@fffff800 { 739 compatible = "atmel,at91rm9200-gpio"; 740 reg = <0xfffff800 0x200>; 741 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>; 742 #gpio-cells = <2>; 743 gpio-controller; 744 interrupt-controller; 745 #interrupt-cells = <2>; |
746 clocks = <&pioC_clk>; |
747 }; 748 }; 749 750 dbgu: serial@fffff200 { 751 compatible = "atmel,at91sam9260-usart"; 752 reg = <0xfffff200 0x200>; 753 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 754 pinctrl-names = "default"; 755 pinctrl-0 = <&pinctrl_dbgu>; |
756 clocks = <&mck>; 757 clock-names = "usart"; |
758 status = "disabled"; 759 }; 760 761 usart0: serial@fffb0000 { 762 compatible = "atmel,at91sam9260-usart"; 763 reg = <0xfffb0000 0x200>; 764 interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>; 765 atmel,use-dma-rx; 766 atmel,use-dma-tx; 767 pinctrl-names = "default"; 768 pinctrl-0 = <&pinctrl_usart0>; |
769 clocks = <&usart0_clk>; 770 clock-names = "usart"; |
771 status = "disabled"; 772 }; 773 774 usart1: serial@fffb4000 { 775 compatible = "atmel,at91sam9260-usart"; 776 reg = <0xfffb4000 0x200>; 777 interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>; 778 atmel,use-dma-rx; 779 atmel,use-dma-tx; 780 pinctrl-names = "default"; 781 pinctrl-0 = <&pinctrl_usart1>; |
782 clocks = <&usart1_clk>; 783 clock-names = "usart"; |
784 status = "disabled"; 785 }; 786 787 usart2: serial@fffb8000 { 788 compatible = "atmel,at91sam9260-usart"; 789 reg = <0xfffb8000 0x200>; 790 interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>; 791 atmel,use-dma-rx; 792 atmel,use-dma-tx; 793 pinctrl-names = "default"; 794 pinctrl-0 = <&pinctrl_usart2>; |
795 clocks = <&usart2_clk>; 796 clock-names = "usart"; |
797 status = "disabled"; 798 }; 799 800 usart3: serial@fffd0000 { 801 compatible = "atmel,at91sam9260-usart"; 802 reg = <0xfffd0000 0x200>; 803 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 5>; 804 atmel,use-dma-rx; 805 atmel,use-dma-tx; 806 pinctrl-names = "default"; 807 pinctrl-0 = <&pinctrl_usart3>; |
808 clocks = <&usart3_clk>; 809 clock-names = "usart"; |
810 status = "disabled"; 811 }; 812 813 uart0: serial@fffd4000 { 814 compatible = "atmel,at91sam9260-usart"; 815 reg = <0xfffd4000 0x200>; 816 interrupts = <24 IRQ_TYPE_LEVEL_HIGH 5>; 817 atmel,use-dma-rx; 818 atmel,use-dma-tx; 819 pinctrl-names = "default"; 820 pinctrl-0 = <&pinctrl_uart0>; |
821 clocks = <&uart0_clk>; 822 clock-names = "usart"; |
823 status = "disabled"; 824 }; 825 826 uart1: serial@fffd8000 { 827 compatible = "atmel,at91sam9260-usart"; 828 reg = <0xfffd8000 0x200>; 829 interrupts = <25 IRQ_TYPE_LEVEL_HIGH 5>; 830 atmel,use-dma-rx; 831 atmel,use-dma-tx; 832 pinctrl-names = "default"; 833 pinctrl-0 = <&pinctrl_uart1>; |
834 clocks = <&uart1_clk>; 835 clock-names = "usart"; |
836 status = "disabled"; 837 }; 838 839 macb0: ethernet@fffc4000 { 840 compatible = "cdns,at32ap7000-macb", "cdns,macb"; 841 reg = <0xfffc4000 0x100>; 842 interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>; 843 pinctrl-names = "default"; 844 pinctrl-0 = <&pinctrl_macb_rmii>; |
845 clocks = <&macb0_clk>, <&macb0_clk>; 846 clock-names = "hclk", "pclk"; |
847 status = "disabled"; 848 }; 849 850 usb1: gadget@fffa4000 { 851 compatible = "atmel,at91rm9200-udc"; 852 reg = <0xfffa4000 0x4000>; 853 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>; |
854 clocks = <&udc_clk>, <&udpck>; 855 clock-names = "pclk", "hclk"; |
856 status = "disabled"; 857 }; 858 859 i2c0: i2c@fffac000 { 860 compatible = "atmel,at91sam9260-i2c"; 861 reg = <0xfffac000 0x100>; 862 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>; 863 #address-cells = <1>; 864 #size-cells = <0>; |
865 clocks = <&twi0_clk>; |
866 status = "disabled"; 867 }; 868 869 mmc0: mmc@fffa8000 { 870 compatible = "atmel,hsmci"; 871 reg = <0xfffa8000 0x600>; 872 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>; 873 #address-cells = <1>; 874 #size-cells = <0>; 875 pinctrl-names = "default"; |
876 clocks = <&mci0_clk>; 877 clock-names = "mci_clk"; |
878 status = "disabled"; 879 }; 880 881 ssc0: ssc@fffbc000 { 882 compatible = "atmel,at91rm9200-ssc"; 883 reg = <0xfffbc000 0x4000>; 884 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>; 885 pinctrl-names = "default"; 886 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; |
887 clocks = <&ssc0_clk>; 888 clock-names = "pclk"; |
889 status = "disabled"; 890 }; 891 892 spi0: spi@fffc8000 { 893 #address-cells = <1>; 894 #size-cells = <0>; 895 compatible = "atmel,at91rm9200-spi"; 896 reg = <0xfffc8000 0x200>; 897 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>; 898 pinctrl-names = "default"; 899 pinctrl-0 = <&pinctrl_spi0>; |
900 clocks = <&spi0_clk>; 901 clock-names = "spi_clk"; |
902 status = "disabled"; 903 }; 904 905 spi1: spi@fffcc000 { 906 #address-cells = <1>; 907 #size-cells = <0>; 908 compatible = "atmel,at91rm9200-spi"; 909 reg = <0xfffcc000 0x200>; 910 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>; 911 pinctrl-names = "default"; 912 pinctrl-0 = <&pinctrl_spi1>; |
913 clocks = <&spi1_clk>; 914 clock-names = "spi_clk"; |
915 status = "disabled"; 916 }; 917 918 adc0: adc@fffe0000 { |
919 #address-cells = <1>; 920 #size-cells = <0>; |
921 compatible = "atmel,at91sam9260-adc"; 922 reg = <0xfffe0000 0x100>; 923 interrupts = <5 IRQ_TYPE_LEVEL_HIGH 0>; |
924 clocks = <&adc_clk>, <&adc_op_clk>; 925 clock-names = "adc_clk", "adc_op_clk"; |
926 atmel,adc-use-external-triggers; 927 atmel,adc-channels-used = <0xf>; 928 atmel,adc-vref = <3300>; |
929 atmel,adc-startup-time = <15>; |
930 atmel,adc-res = <8 10>; 931 atmel,adc-res-names = "lowres", "highres"; 932 atmel,adc-use-res = "highres"; 933 934 trigger@0 { |
935 reg = <0>; |
936 trigger-name = "timer-counter-0"; 937 trigger-value = <0x1>; 938 }; 939 trigger@1 { |
940 reg = <1>; |
941 trigger-name = "timer-counter-1"; 942 trigger-value = <0x3>; 943 }; 944 945 trigger@2 { |
946 reg = <2>; |
947 trigger-name = "timer-counter-2"; 948 trigger-value = <0x5>; 949 }; 950 951 trigger@3 { |
952 reg = <3>; |
953 trigger-name = "external"; |
954 trigger-value = <0xd>; |
955 trigger-external; 956 }; 957 }; 958 959 watchdog@fffffd40 { 960 compatible = "atmel,at91sam9260-wdt"; 961 reg = <0xfffffd40 0x10>; 962 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; --- 22 unchanged lines hidden (view full) --- 985 >; 986 status = "disabled"; 987 }; 988 989 usb0: ohci@00500000 { 990 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 991 reg = <0x00500000 0x100000>; 992 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>; |
993 clocks = <&usb>, <&ohci_clk>, <&ohci_clk>, <&uhpck>; 994 clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck"; |
995 status = "disabled"; 996 }; 997 }; 998 999 i2c@0 { 1000 compatible = "i2c-gpio"; 1001 gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */ 1002 &pioA 24 GPIO_ACTIVE_HIGH /* scl */ 1003 >; 1004 i2c-gpio,sda-open-drain; 1005 i2c-gpio,scl-open-drain; 1006 i2c-gpio,delay-us = <2>; /* ~100 kHz */ 1007 #address-cells = <1>; 1008 #size-cells = <0>; 1009 pinctrl-names = "default"; 1010 pinctrl-0 = <&pinctrl_i2c_gpio0>; 1011 status = "disabled"; 1012 }; 1013}; |