Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2dc850b6 authored by Nicolas Ferre's avatar Nicolas Ferre
Browse files

ARM: at91: introduce basic SAMA5D4 support

parent bcc5fd49
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -101,6 +101,10 @@ choice
		bool "Kernel low-level debugging on 9263 and 9g45"
		depends on HAVE_AT91_DBGU1

	config AT91_DEBUG_LL_DBGU2
		bool "Kernel low-level debugging on sama5d4"
		depends on HAVE_AT91_DBGU2

	config DEBUG_BCM2835
		bool "Kernel low-level debugging on BCM2835 PL011 UART"
		depends on ARCH_BCM2835
+18 −0
Original line number Diff line number Diff line
@@ -12,6 +12,9 @@ config HAVE_AT91_DBGU0
config HAVE_AT91_DBGU1
	bool

config HAVE_AT91_DBGU2
	bool

config AT91_USE_OLD_CLK
	bool

@@ -106,6 +109,21 @@ config SOC_SAMA5D3
	help
	  Select this if you are using one of Atmel's SAMA5D3 family SoC.
	  This support covers SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35, SAMA5D36.

config SOC_SAMA5D4
	bool "SAMA5D4 family"
	select SOC_SAMA5
	select HAVE_AT91_DBGU2
	select CLKSRC_MMIO
	select CACHE_L2X0
	select CACHE_PL310
	select HAVE_FB_ATMEL
	select HAVE_AT91_UTMI
	select HAVE_AT91_SMD
	select HAVE_AT91_USB_CLK
	select HAVE_AT91_H32MX
	help
	  Select this if you are using one of Atmel's SAMA5D4 family SoC.
endif

if SOC_SAM_V4_V5
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ obj-$(CONFIG_SOC_AT91SAM9N12) += at91sam9n12.o
obj-$(CONFIG_SOC_AT91SAM9X5)	+= at91sam9x5.o
obj-$(CONFIG_SOC_AT91SAM9RL)	+= at91sam9rl.o
obj-$(CONFIG_SOC_SAMA5D3)	+= sama5d3.o
obj-$(CONFIG_SOC_SAMA5D4)	+= sama5d4.o

obj-$(CONFIG_ARCH_AT91RM9200)	+= at91rm9200_devices.o
obj-$(CONFIG_ARCH_AT91SAM9260)	+= at91sam9260_devices.o
+9 −0
Original line number Diff line number Diff line
@@ -86,6 +86,9 @@ enum at91_soc_type {
	/* SAMA5D3 */
	AT91_SOC_SAMA5D3,

	/* SAMA5D4 */
	AT91_SOC_SAMA5D4,

	/* Unknown type */
	AT91_SOC_UNKNOWN,
};
@@ -211,6 +214,12 @@ static inline int at91_soc_is_detected(void)
#define cpu_is_sama5d3()	(0)
#endif

#ifdef CONFIG_SOC_SAMA5D4
#define cpu_is_sama5d4()	(at91_soc_initdata.type == AT91_SOC_SAMA5D4)
#else
#define cpu_is_sama5d4()	(0)
#endif

/*
 * Since this is ARM, we will never run on any AVR32 CPU. But these
 * definitions may reduce clutter in common drivers.
+33 −0
Original line number Diff line number Diff line
/*
 * Chip-specific header file for the SAMA5D4 family
 *
 *  Copyright (C) 2013 Atmel Corporation,
 *                     Nicolas Ferre <nicolas.ferre@atmel.com>
 *
 * Common definitions.
 * Based on SAMA5D4 datasheet.
 *
 * Licensed under GPLv2 or later.
 */

#ifndef SAMA5D4_H
#define SAMA5D4_H

/*
 * User Peripheral physical base addresses.
 */
#define SAMA5D4_BASE_USART3	0xfc00c000 /* (USART3 non-secure) Base Address */
#define SAMA5D4_BASE_PMC	0xf0018000 /* (PMC) Base Address */
#define SAMA5D4_BASE_MPDDRC	0xf0010000 /* (MPDDRC) Base Address */
#define SAMA5D4_BASE_PIOD	0xfc068000 /* (PIOD) Base Address */

/* Some other peripherals */
#define SAMA5D4_BASE_SYS2	SAMA5D4_BASE_PIOD

/*
 * Internal Memory.
 */
#define SAMA5D4_NS_SRAM_BASE     0x00210000      /* Internal SRAM base address Non-Secure */
#define SAMA5D4_NS_SRAM_SIZE     (64 * SZ_1K)   /* Internal SRAM size Non-Secure part (64Kb) */

#endif
Loading