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 Original line Diff line number Diff line
@@ -101,6 +101,10 @@ choice
		bool "Kernel low-level debugging on 9263 and 9g45"
		bool "Kernel low-level debugging on 9263 and 9g45"
		depends on HAVE_AT91_DBGU1
		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
	config DEBUG_BCM2835
		bool "Kernel low-level debugging on BCM2835 PL011 UART"
		bool "Kernel low-level debugging on BCM2835 PL011 UART"
		depends on ARCH_BCM2835
		depends on ARCH_BCM2835
+18 −0
Original line number Original line Diff line number Diff line
@@ -12,6 +12,9 @@ config HAVE_AT91_DBGU0
config HAVE_AT91_DBGU1
config HAVE_AT91_DBGU1
	bool
	bool


config HAVE_AT91_DBGU2
	bool

config AT91_USE_OLD_CLK
config AT91_USE_OLD_CLK
	bool
	bool


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


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


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


	/* SAMA5D4 */
	AT91_SOC_SAMA5D4,

	/* Unknown type */
	/* Unknown type */
	AT91_SOC_UNKNOWN,
	AT91_SOC_UNKNOWN,
};
};
@@ -211,6 +214,12 @@ static inline int at91_soc_is_detected(void)
#define cpu_is_sama5d3()	(0)
#define cpu_is_sama5d3()	(0)
#endif
#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
 * Since this is ARM, we will never run on any AVR32 CPU. But these
 * definitions may reduce clutter in common drivers.
 * definitions may reduce clutter in common drivers.
+33 −0
Original line number Original line 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