summaryrefslogtreecommitdiff
path: root/arch/arm/mach-zynq/include/mach/zynq_soc.h
blob: 5ebbd8e6eeee6771b5bff400cc1a1b696c9561a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* arch/arm/mach-zynq/include/mach/zynq_soc.h
 *
 *  Copyright (C) 2011 Xilinx
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#ifndef __MACH_XILINX_SOC_H__
#define __MACH_XILINX_SOC_H__

#include <asm/pgtable.h>

#define PERIPHERAL_CLOCK_RATE		2500000

/* Static peripheral mappings are mapped at the top of the vmalloc region.  The
 * early uart mapping causes intermediate problems/failure at certain
 * addresses, including the very top of the vmalloc region.  Map it at an
 * address that is known to work.
 */
#define UART0_PHYS		0xE0000000
#define UART1_PHYS		0xE0001000
#define UART_SIZE		SZ_4K
#define UART_VIRT		0xF0001000

#define TTC0_PHYS		0xF8001000
#define TTC0_SIZE		SZ_4K
#define TTC0_VIRT		(VMALLOC_END - TTC0_SIZE)

#define SCU_PERIPH_PHYS		0xF8F00000
#define SCU_PERIPH_SIZE		SZ_8K
#define SCU_PERIPH_VIRT		(TTC0_VIRT - SCU_PERIPH_SIZE)

#if IS_ENABLED(CONFIG_DEBUG_ZYNQ_UART1)
# define LL_UART_PADDR		UART1_PHYS
#else
# define LL_UART_PADDR		UART0_PHYS
#endif

#define LL_UART_VADDR		UART_VIRT

/* The following are intended for the devices that are mapped early */

#define TTC0_BASE			IOMEM(TTC0_VIRT)
#define SCU_PERIPH_BASE			IOMEM(SCU_PERIPH_VIRT)

#endif