1ARM Microchip SoCs (aka AT91)
2=============================
3
4
5Introduction
6------------
7This document gives useful information about the ARM Microchip SoCs that are
8currently supported in Linux Mainline (you know, the one on kernel.org).
9
10It is important to note that the Microchip (previously Atmel) ARM-based MPU
11product line is historically named "AT91" or "at91" throughout the Linux kernel
12development process even if this product prefix has completely disappeared from
13the official Microchip product name. Anyway, files, directories, git trees,
14git branches/tags and email subject always contain this "at91" sub-string.
15
16
17AT91 SoCs
18---------
19Documentation and detailed datasheet for each product are available on
20the Microchip website: http://www.microchip.com.
21
22  Flavors:
23    * ARM 920 based SoC
24      - at91rm9200
25        + Datasheet
26          http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-1768-32-bit-ARM920T-Embedded-Microprocessor-AT91RM9200_Datasheet.pdf
27
28    * ARM 926 based SoCs
29      - at91sam9260
30        + Datasheet
31          http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6221-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9260_Datasheet.pdf
32
33      - at91sam9xe
34        + Datasheet
35          http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6254-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9XE_Datasheet.pdf
36
37      - at91sam9261
38        + Datasheet
39          http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6062-ARM926EJ-S-Microprocessor-SAM9261_Datasheet.pdf
40
41      - at91sam9263
42        + Datasheet
43          http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6249-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9263_Datasheet.pdf
44
45      - at91sam9rl
46        + Datasheet
47          http://ww1.microchip.com/downloads/en/DeviceDoc/doc6289.pdf
48
49      - at91sam9g20
50        + Datasheet
51          http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001516A.pdf
52
53      - at91sam9g45 family
54        - at91sam9g45
55        - at91sam9g46
56        - at91sam9m10
57        - at91sam9m11 (device superset)
58        + Datasheet
59          http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6437-32-bit-ARM926-Embedded-Microprocessor-SAM9M11_Datasheet.pdf
60
61      - at91sam9x5 family (aka "The 5 series")
62        - at91sam9g15
63        - at91sam9g25
64        - at91sam9g35
65        - at91sam9x25
66        - at91sam9x35
67        + Datasheet (can be considered as covering the whole family)
68          http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11055-32-bit-ARM926EJ-S-Microcontroller-SAM9X35_Datasheet.pdf
69
70      - at91sam9n12
71        + Datasheet
72          http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001517A.pdf
73
74    * ARM Cortex-A5 based SoCs
75      - sama5d3 family
76        - sama5d31
77        - sama5d33
78        - sama5d34
79        - sama5d35
80        - sama5d36 (device superset)
81        + Datasheet
82          http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet.pdf
83
84    * ARM Cortex-A5 + NEON based SoCs
85      - sama5d4 family
86        - sama5d41
87        - sama5d42
88        - sama5d43
89        - sama5d44 (device superset)
90        + Datasheet
91          http://ww1.microchip.com/downloads/en/DeviceDoc/60001525A.pdf
92
93      - sama5d2 family
94        - sama5d21
95        - sama5d22
96        - sama5d23
97        - sama5d24
98        - sama5d26
99        - sama5d27 (device superset)
100        - sama5d28 (device superset + environmental monitors)
101        + Datasheet
102          http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf
103
104    * ARM Cortex-M7 MCUs
105      - sams70 family
106        - sams70j19
107        - sams70j20
108        - sams70j21
109        - sams70n19
110        - sams70n20
111        - sams70n21
112        - sams70q19
113        - sams70q20
114        - sams70q21
115
116      - samv70 family
117        - samv70j19
118        - samv70j20
119        - samv70n19
120        - samv70n20
121        - samv70q19
122        - samv70q20
123
124      - samv71 family
125        - samv71j19
126        - samv71j20
127        - samv71j21
128        - samv71n19
129        - samv71n20
130        - samv71n21
131        - samv71q19
132        - samv71q20
133        - samv71q21
134
135        + Datasheet
136          http://ww1.microchip.com/downloads/en/DeviceDoc/60001527A.pdf
137
138
139Linux kernel information
140------------------------
141Linux kernel mach directory: arch/arm/mach-at91
142MAINTAINERS entry is: "ARM/Microchip (AT91) SoC support"
143
144
145Device Tree for AT91 SoCs and boards
146------------------------------------
147All AT91 SoCs are converted to Device Tree. Since Linux 3.19, these products
148must use this method to boot the Linux kernel.
149
150Work In Progress statement:
151Device Tree files and Device Tree bindings that apply to AT91 SoCs and boards are
152considered as "Unstable". To be completely clear, any at91 binding can change at
153any time. So, be sure to use a Device Tree Binary and a Kernel Image generated from
154the same source tree.
155Please refer to the Documentation/devicetree/bindings/ABI.txt file for a
156definition of a "Stable" binding/ABI.
157This statement will be removed by AT91 MAINTAINERS when appropriate.
158
159Naming conventions and best practice:
160- SoCs Device Tree Source Include files are named after the official name of
161  the product (at91sam9g20.dtsi or sama5d33.dtsi for instance).
162- Device Tree Source Include files (.dtsi) are used to collect common nodes that can be
163  shared across SoCs or boards (sama5d3.dtsi or at91sam9x5cm.dtsi for instance).
164  When collecting nodes for a particular peripheral or topic, the identifier have to
165  be placed at the end of the file name, separated with a "_" (at91sam9x5_can.dtsi
166  or sama5d3_gmac.dtsi for example).
167- board Device Tree Source files (.dts) are prefixed by the string "at91-" so
168  that they can be identified easily. Note that some files are historical exceptions
169  to this rule (sama5d3[13456]ek.dts, usb_a9g20.dts or animeo_ip.dts for example).
170