Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 1 | ============================= |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 2 | ARM Microchip SoCs (aka AT91) |
| 3 | ============================= |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 4 | |
| 5 | |
| 6 | Introduction |
| 7 | ------------ |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 8 | This document gives useful information about the ARM Microchip SoCs that are |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 9 | currently supported in Linux Mainline (you know, the one on kernel.org). |
| 10 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 11 | It is important to note that the Microchip (previously Atmel) ARM-based MPU |
| 12 | product line is historically named "AT91" or "at91" throughout the Linux kernel |
| 13 | development process even if this product prefix has completely disappeared from |
| 14 | the official Microchip product name. Anyway, files, directories, git trees, |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 15 | git branches/tags and email subject always contain this "at91" sub-string. |
| 16 | |
| 17 | |
| 18 | AT91 SoCs |
| 19 | --------- |
Alexandre Belloni | f097998 | 2017-05-31 03:06:19 +0200 | [diff] [blame] | 20 | Documentation and detailed datasheet for each product are available on |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 21 | the Microchip website: http://www.microchip.com. |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 22 | |
| 23 | Flavors: |
| 24 | * ARM 920 based SoC |
| 25 | - at91rm9200 |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 26 | |
| 27 | * Datasheet |
| 28 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 29 | http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-1768-32-bit-ARM920T-Embedded-Microprocessor-AT91RM9200_Datasheet.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 30 | |
| 31 | * ARM 926 based SoCs |
| 32 | - at91sam9260 |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 33 | |
| 34 | * Datasheet |
| 35 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 36 | http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6221-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9260_Datasheet.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 37 | |
| 38 | - at91sam9xe |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 39 | |
| 40 | * Datasheet |
| 41 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 42 | http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6254-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9XE_Datasheet.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 43 | |
| 44 | - at91sam9261 |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 45 | |
| 46 | * Datasheet |
| 47 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 48 | http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6062-ARM926EJ-S-Microprocessor-SAM9261_Datasheet.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 49 | |
| 50 | - at91sam9263 |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 51 | |
| 52 | * Datasheet |
| 53 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 54 | http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6249-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9263_Datasheet.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 55 | |
| 56 | - at91sam9rl |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 57 | |
| 58 | * Datasheet |
| 59 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 60 | http://ww1.microchip.com/downloads/en/DeviceDoc/doc6289.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 61 | |
| 62 | - at91sam9g20 |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 63 | |
| 64 | * Datasheet |
| 65 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 66 | http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001516A.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 67 | |
| 68 | - at91sam9g45 family |
| 69 | - at91sam9g45 |
| 70 | - at91sam9g46 |
| 71 | - at91sam9m10 |
| 72 | - at91sam9m11 (device superset) |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 73 | |
| 74 | * Datasheet |
| 75 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 76 | http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6437-32-bit-ARM926-Embedded-Microprocessor-SAM9M11_Datasheet.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 77 | |
| 78 | - at91sam9x5 family (aka "The 5 series") |
| 79 | - at91sam9g15 |
| 80 | - at91sam9g25 |
| 81 | - at91sam9g35 |
| 82 | - at91sam9x25 |
| 83 | - at91sam9x35 |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 84 | |
| 85 | * Datasheet (can be considered as covering the whole family) |
| 86 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 87 | http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11055-32-bit-ARM926EJ-S-Microcontroller-SAM9X35_Datasheet.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 88 | |
| 89 | - at91sam9n12 |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 90 | |
| 91 | * Datasheet |
| 92 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 93 | http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001517A.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 94 | |
Nicolas Ferre | d9b8e21 | 2020-01-10 10:01:03 +0100 | [diff] [blame] | 95 | - sam9x60 |
| 96 | |
| 97 | * Datasheet |
| 98 | |
| 99 | http://ww1.microchip.com/downloads/en/DeviceDoc/SAM9X60-Data-Sheet-DS60001579A.pdf |
| 100 | |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 101 | * ARM Cortex-A5 based SoCs |
| 102 | - sama5d3 family |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 103 | |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 104 | - sama5d31 |
| 105 | - sama5d33 |
| 106 | - sama5d34 |
| 107 | - sama5d35 |
| 108 | - sama5d36 (device superset) |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 109 | |
| 110 | * Datasheet |
| 111 | |
Nicolas Ferre | 02c1c37 | 2019-08-19 17:12:19 +0200 | [diff] [blame] | 112 | http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet_B.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 113 | |
| 114 | * ARM Cortex-A5 + NEON based SoCs |
| 115 | - sama5d4 family |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 116 | |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 117 | - sama5d41 |
| 118 | - sama5d42 |
| 119 | - sama5d43 |
| 120 | - sama5d44 (device superset) |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 121 | |
| 122 | * Datasheet |
| 123 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 124 | http://ww1.microchip.com/downloads/en/DeviceDoc/60001525A.pdf |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 125 | |
Nicolas Ferre | c268a74 | 2015-07-30 19:12:12 +0200 | [diff] [blame] | 126 | - sama5d2 family |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 127 | |
Nicolas Ferre | b2f8c3d | 2016-05-19 15:11:03 +0200 | [diff] [blame] | 128 | - sama5d21 |
| 129 | - sama5d22 |
| 130 | - sama5d23 |
| 131 | - sama5d24 |
| 132 | - sama5d26 |
| 133 | - sama5d27 (device superset) |
| 134 | - sama5d28 (device superset + environmental monitors) |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 135 | |
| 136 | * Datasheet |
| 137 | |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 138 | http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf |
Nicolas Ferre | c268a74 | 2015-07-30 19:12:12 +0200 | [diff] [blame] | 139 | |
Nicolas Ferre | c0c3fed | 2021-10-04 14:05:54 +0200 | [diff] [blame] | 140 | * ARM Cortex-A7 based SoCs |
| 141 | - sama7g5 family |
| 142 | |
| 143 | - sama7g51 |
| 144 | - sama7g52 |
| 145 | - sama7g53 |
| 146 | - sama7g54 (device superset) |
| 147 | |
| 148 | * Datasheet |
| 149 | |
| 150 | Coming soon |
| 151 | |
Kavyasree Kotagiri | 9da778c | 2021-10-04 16:29:24 +0530 | [diff] [blame] | 152 | - lan966 family |
| 153 | - lan9662 |
| 154 | - lan9668 |
| 155 | |
| 156 | * Datasheet |
| 157 | |
| 158 | Coming soon |
| 159 | |
Alexandre Belloni | f097998 | 2017-05-31 03:06:19 +0200 | [diff] [blame] | 160 | * ARM Cortex-M7 MCUs |
| 161 | - sams70 family |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 162 | |
Alexandre Belloni | f097998 | 2017-05-31 03:06:19 +0200 | [diff] [blame] | 163 | - sams70j19 |
| 164 | - sams70j20 |
| 165 | - sams70j21 |
| 166 | - sams70n19 |
| 167 | - sams70n20 |
| 168 | - sams70n21 |
| 169 | - sams70q19 |
| 170 | - sams70q20 |
| 171 | - sams70q21 |
Alexandre Belloni | f097998 | 2017-05-31 03:06:19 +0200 | [diff] [blame] | 172 | |
| 173 | - samv70 family |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 174 | |
Alexandre Belloni | f097998 | 2017-05-31 03:06:19 +0200 | [diff] [blame] | 175 | - samv70j19 |
| 176 | - samv70j20 |
| 177 | - samv70n19 |
| 178 | - samv70n20 |
| 179 | - samv70q19 |
| 180 | - samv70q20 |
Alexandre Belloni | f097998 | 2017-05-31 03:06:19 +0200 | [diff] [blame] | 181 | |
| 182 | - samv71 family |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 183 | |
Alexandre Belloni | f097998 | 2017-05-31 03:06:19 +0200 | [diff] [blame] | 184 | - samv71j19 |
| 185 | - samv71j20 |
| 186 | - samv71j21 |
| 187 | - samv71n19 |
| 188 | - samv71n20 |
| 189 | - samv71n21 |
| 190 | - samv71q19 |
| 191 | - samv71q20 |
| 192 | - samv71q21 |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 193 | |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 194 | * Datasheet |
| 195 | |
Nicolas Ferre | 02c1c37 | 2019-08-19 17:12:19 +0200 | [diff] [blame] | 196 | http://ww1.microchip.com/downloads/en/DeviceDoc/SAM-E70-S70-V70-V71-Family-Data-Sheet-DS60001527D.pdf |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 197 | |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 198 | |
| 199 | Linux kernel information |
| 200 | ------------------------ |
| 201 | Linux kernel mach directory: arch/arm/mach-at91 |
Nicolas Ferre | 8255c6b | 2018-02-28 15:56:42 +0100 | [diff] [blame] | 202 | MAINTAINERS entry is: "ARM/Microchip (AT91) SoC support" |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 203 | |
| 204 | |
| 205 | Device Tree for AT91 SoCs and boards |
| 206 | ------------------------------------ |
| 207 | All AT91 SoCs are converted to Device Tree. Since Linux 3.19, these products |
| 208 | must use this method to boot the Linux kernel. |
| 209 | |
| 210 | Work In Progress statement: |
| 211 | Device Tree files and Device Tree bindings that apply to AT91 SoCs and boards are |
| 212 | considered as "Unstable". To be completely clear, any at91 binding can change at |
| 213 | any time. So, be sure to use a Device Tree Binary and a Kernel Image generated from |
| 214 | the same source tree. |
Mauro Carvalho Chehab | 56516a9f | 2020-04-15 16:45:24 +0200 | [diff] [blame] | 215 | Please refer to the Documentation/devicetree/bindings/ABI.rst file for a |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 216 | definition of a "Stable" binding/ABI. |
| 217 | This statement will be removed by AT91 MAINTAINERS when appropriate. |
| 218 | |
| 219 | Naming conventions and best practice: |
Mauro Carvalho Chehab | dc7a12b | 2019-04-14 15:51:10 -0300 | [diff] [blame] | 220 | |
Nicolas Ferre | a4d1ca3 | 2015-01-06 11:25:12 +0100 | [diff] [blame] | 221 | - SoCs Device Tree Source Include files are named after the official name of |
| 222 | the product (at91sam9g20.dtsi or sama5d33.dtsi for instance). |
| 223 | - Device Tree Source Include files (.dtsi) are used to collect common nodes that can be |
| 224 | shared across SoCs or boards (sama5d3.dtsi or at91sam9x5cm.dtsi for instance). |
| 225 | When collecting nodes for a particular peripheral or topic, the identifier have to |
| 226 | be placed at the end of the file name, separated with a "_" (at91sam9x5_can.dtsi |
| 227 | or sama5d3_gmac.dtsi for example). |
| 228 | - board Device Tree Source files (.dts) are prefixed by the string "at91-" so |
| 229 | that they can be identified easily. Note that some files are historical exceptions |
| 230 | to this rule (sama5d3[13456]ek.dts, usb_a9g20.dts or animeo_ip.dts for example). |