OSDN Git Service

ARM: at91/soc: add basic support for new sama5d2 SoC
authorNicolas Ferre <nicolas.ferre@atmel.com>
Thu, 30 Jul 2015 17:12:12 +0000 (19:12 +0200)
committerOlof Johansson <olof@lixom.net>
Wed, 5 Aug 2015 08:40:21 +0000 (10:40 +0200)
Add Kconfig entries, header file changes and addition to the documentation.
The early debug infrastructure is also added for easy development.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
Documentation/arm/Atmel/README
Documentation/devicetree/bindings/arm/atmel-at91.txt
arch/arm/Kconfig.debug
arch/arm/include/debug/at91.S
arch/arm/mach-at91/Kconfig
arch/arm/mach-at91/sama5.c
arch/arm/mach-at91/soc.h

index c53a19b..0931cf7 100644 (file)
@@ -90,6 +90,11 @@ the Atmel website: http://www.atmel.com.
         + Datasheet
           http://www.atmel.com/Images/Atmel-11238-32-bit-Cortex-A5-Microcontroller-SAMA5D4_Datasheet.pdf
 
+      - sama5d2 family
+        - sama5d27
+        + Datasheet
+          Coming soon
+
 
 Linux kernel information
 ------------------------
index 424ac8c..7f04b8a 100644 (file)
@@ -27,6 +27,8 @@ compatible: must be one of:
     o "atmel,at91sam9xe"
  * "atmel,sama5" for SoCs using a Cortex-A5, shall be extended with the specific
    SoC family:
+    o "atmel,sama5d2" shall be extended with the specific SoC compatible:
+       - "atmel,sama5d27"
     o "atmel,sama5d3" shall be extended with the specific SoC compatible:
        - "atmel,sama5d31"
        - "atmel,sama5d33"
index a2e16f9..946c8c0 100644 (file)
@@ -141,6 +141,12 @@ choice
                depends on ARCH_AT91
                depends on SOC_SAMA5
 
+       config AT91_DEBUG_LL_DBGU3
+               bool "Kernel low-level debugging on sama5d2"
+               select DEBUG_AT91_UART
+               depends on ARCH_AT91
+               depends on SOC_SAMA5
+
        config DEBUG_BCM2835
                bool "Kernel low-level debugging on BCM2835 PL011 UART"
                depends on ARCH_BCM2835
index c3c45e6..2556a88 100644 (file)
 #define AT91_DBGU 0xfffff200 /* AT91_BASE_DBGU0 */
 #elif defined(CONFIG_AT91_DEBUG_LL_DBGU1)
 #define AT91_DBGU 0xffffee00 /* AT91_BASE_DBGU1 */
-#else
+#elif defined(CONFIG_AT91_DEBUG_LL_DBGU2)
 /* On sama5d4, use USART3 as low level serial console */
 #define AT91_DBGU 0xfc00c000 /* SAMA5D4_BASE_USART3 */
+#else
+/* On sama5d2, use UART1 as low level serial console */
+#define AT91_DBGU 0xf8020000
 #endif
 
 #ifdef CONFIG_MMU
index fd95f34..89a755b 100644 (file)
@@ -8,6 +8,18 @@ menuconfig ARCH_AT91
        select SOC_BUS
 
 if ARCH_AT91
+config SOC_SAMA5D2
+       bool "SAMA5D2 family" if ARCH_MULTI_V7
+       select SOC_SAMA5
+       select CACHE_L2X0
+       select HAVE_FB_ATMEL
+       select HAVE_AT91_UTMI
+       select HAVE_AT91_USB_CLK
+       select HAVE_AT91_H32MX
+       select HAVE_AT91_GENERATED_CLK
+       help
+         Select this if ou are using one of Atmel's SAMA5D2 family SoC.
+
 config SOC_SAMA5D3
        bool "SAMA5D3 family" if ARCH_MULTI_V7
        select SOC_SAMA5
index 41d829d..90c3c30 100644 (file)
@@ -18,6 +18,8 @@
 #include "soc.h"
 
 static const struct at91_soc sama5_socs[] = {
+       AT91_SOC(SAMA5D2_CIDR_MATCH, SAMA5D27_EXID_MATCH,
+                "sama5d27", "sama5d2"),
        AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D31_EXID_MATCH,
                 "sama5d31", "sama5d3"),
        AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D33_EXID_MATCH,
@@ -64,6 +66,7 @@ DT_MACHINE_START(sama5_dt, "Atmel SAMA5")
 MACHINE_END
 
 static const char *sama5_alt_dt_board_compat[] __initconst = {
+       "atmel,sama5d2",
        "atmel,sama5d4",
        NULL
 };
index be23c40..8ede0ef 100644 (file)
@@ -62,6 +62,9 @@ at91_soc_init(const struct at91_soc *socs);
 #define AT91SAM9XE256_CIDR_MATCH       0x329a93a0
 #define AT91SAM9XE512_CIDR_MATCH       0x329aa3a0
 
+#define SAMA5D2_CIDR_MATCH             0x0a5c08c0
+#define SAMA5D27_EXID_MATCH            0x00000021
+
 #define SAMA5D3_CIDR_MATCH             0x0a5c07c0
 #define SAMA5D31_EXID_MATCH            0x00444300
 #define SAMA5D33_EXID_MATCH            0x00414300