diff options
Diffstat (limited to 'arch/arm/mach-tegra/include')
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/debug-macro.S | 100 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/dma.h | 54 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/iomap.h | 325 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/irammap.h | 35 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/irqs.h | 182 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/powergate.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/tegra-ahb.h | 19 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/uncompress.h | 67 | 
8 files changed, 7 insertions, 777 deletions
diff --git a/arch/arm/mach-tegra/include/mach/debug-macro.S b/arch/arm/mach-tegra/include/mach/debug-macro.S deleted file mode 100644 index 8ce0661b8a3..00000000000 --- a/arch/arm/mach-tegra/include/mach/debug-macro.S +++ /dev/null @@ -1,100 +0,0 @@ -/* - * arch/arm/mach-tegra/include/mach/debug-macro.S - * - * Copyright (C) 2010,2011 Google, Inc. - * Copyright (C) 2011-2012 NVIDIA CORPORATION. All Rights Reserved. - * - * Author: - *	Colin Cross <ccross@google.com> - *	Erik Gilling <konkers@google.com> - *	Doug Anderson <dianders@chromium.org> - *	Stephen Warren <swarren@nvidia.com> - * - * Portions based on mach-omap2's debug-macro.S - * Copyright (C) 1994-1999 Russell King - * - * 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. - * - */ - -#include <linux/serial_reg.h> - -#include <mach/iomap.h> -#include <mach/irammap.h> - -		.macro  addruart, rp, rv, tmp -		adr	\rp, 99f		@ actual addr of 99f -		ldr	\rv, [\rp]		@ linked addr is stored there -		sub	\rv, \rv, \rp		@ offset between the two -		ldr	\rp, [\rp, #4]		@ linked tegra_uart_config -		sub	\tmp, \rp, \rv		@ actual tegra_uart_config -		ldr	\rp, [\tmp]		@ Load tegra_uart_config -		cmp	\rp, #1			@ needs intitialization? -		bne	100f			@ no; go load the addresses -		mov	\rv, #0			@ yes; record init is done -		str	\rv, [\tmp] -		mov	\rp, #TEGRA_IRAM_BASE	@ See if cookie is in IRAM -		ldr	\rv, [\rp, #TEGRA_IRAM_DEBUG_UART_OFFSET] -		movw	\rp, #TEGRA_IRAM_DEBUG_UART_COOKIE & 0xffff -		movt	\rp, #TEGRA_IRAM_DEBUG_UART_COOKIE >> 16 -		cmp	\rv, \rp		@ Cookie present? -		bne	100f			@ No, use default UART -		mov	\rp, #TEGRA_IRAM_BASE	@ Load UART address from IRAM -		ldr	\rv, [\rp, #TEGRA_IRAM_DEBUG_UART_OFFSET + 4] -		str	\rv, [\tmp, #4]		@ Store in tegra_uart_phys -		sub	\rv, \rv, #IO_APB_PHYS	@ Calculate virt address -		add	\rv, \rv, #IO_APB_VIRT -		str	\rv, [\tmp, #8]		@ Store in tegra_uart_virt -		b	100f - -		.align -99:		.word	. -		.word	tegra_uart_config -		.ltorg - -100:		ldr	\rp, [\tmp, #4]		@ Load tegra_uart_phys -		ldr	\rv, [\tmp, #8]		@ Load tegra_uart_virt -		.endm - -#define UART_SHIFT 2 - -/* - * Code below is swiped from <asm/hardware/debug-8250.S>, but add an extra - * check to make sure that we aren't in the CONFIG_TEGRA_DEBUG_UART_NONE case. - * We use the fact that all 5 valid UART addresses all have something in the - * 2nd-to-lowest byte. - */ - -		.macro	senduart, rd, rx -		tst	\rx, #0x0000ff00 -		strneb	\rd, [\rx, #UART_TX << UART_SHIFT] -1001: -		.endm - -		.macro	busyuart, rd, rx -		tst	\rx, #0x0000ff00 -		beq	1002f -1001:		ldrb	\rd, [\rx, #UART_LSR << UART_SHIFT] -		and	\rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE -		teq	\rd, #UART_LSR_TEMT | UART_LSR_THRE -		bne	1001b -1002: -		.endm - -		.macro	waituart, rd, rx -#ifdef FLOW_CONTROL -		tst	\rx, #0x0000ff00 -		beq	1002f -1001:		ldrb	\rd, [\rx, #UART_MSR << UART_SHIFT] -		tst	\rd, #UART_MSR_CTS -		beq	1001b -1002: -#endif -		.endm diff --git a/arch/arm/mach-tegra/include/mach/dma.h b/arch/arm/mach-tegra/include/mach/dma.h deleted file mode 100644 index 3081cc6dda3..00000000000 --- a/arch/arm/mach-tegra/include/mach/dma.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * arch/arm/mach-tegra/include/mach/dma.h - * - * Copyright (c) 2008-2009, NVIDIA Corporation. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. - */ - -#ifndef __MACH_TEGRA_DMA_H -#define __MACH_TEGRA_DMA_H - -#include <linux/list.h> - -#define TEGRA_DMA_REQ_SEL_CNTR			0 -#define TEGRA_DMA_REQ_SEL_I2S_2			1 -#define TEGRA_DMA_REQ_SEL_I2S_1			2 -#define TEGRA_DMA_REQ_SEL_SPD_I			3 -#define TEGRA_DMA_REQ_SEL_UI_I			4 -#define TEGRA_DMA_REQ_SEL_MIPI			5 -#define TEGRA_DMA_REQ_SEL_I2S2_2		6 -#define TEGRA_DMA_REQ_SEL_I2S2_1		7 -#define TEGRA_DMA_REQ_SEL_UARTA			8 -#define TEGRA_DMA_REQ_SEL_UARTB			9 -#define TEGRA_DMA_REQ_SEL_UARTC			10 -#define TEGRA_DMA_REQ_SEL_SPI			11 -#define TEGRA_DMA_REQ_SEL_AC97			12 -#define TEGRA_DMA_REQ_SEL_ACMODEM		13 -#define TEGRA_DMA_REQ_SEL_SL4B			14 -#define TEGRA_DMA_REQ_SEL_SL2B1			15 -#define TEGRA_DMA_REQ_SEL_SL2B2			16 -#define TEGRA_DMA_REQ_SEL_SL2B3			17 -#define TEGRA_DMA_REQ_SEL_SL2B4			18 -#define TEGRA_DMA_REQ_SEL_UARTD			19 -#define TEGRA_DMA_REQ_SEL_UARTE			20 -#define TEGRA_DMA_REQ_SEL_I2C			21 -#define TEGRA_DMA_REQ_SEL_I2C2			22 -#define TEGRA_DMA_REQ_SEL_I2C3			23 -#define TEGRA_DMA_REQ_SEL_DVC_I2C		24 -#define TEGRA_DMA_REQ_SEL_OWR			25 -#define TEGRA_DMA_REQ_SEL_INVALID		31 - -#endif diff --git a/arch/arm/mach-tegra/include/mach/iomap.h b/arch/arm/mach-tegra/include/mach/iomap.h deleted file mode 100644 index fee3a94c454..00000000000 --- a/arch/arm/mach-tegra/include/mach/iomap.h +++ /dev/null @@ -1,325 +0,0 @@ -/* - * arch/arm/mach-tegra/include/mach/iomap.h - * - * Copyright (C) 2010 Google, Inc. - * - * Author: - *	Colin Cross <ccross@google.com> - *	Erik Gilling <konkers@google.com> - * - * 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_TEGRA_IOMAP_H -#define __MACH_TEGRA_IOMAP_H - -#include <asm/sizes.h> - -#define TEGRA_IRAM_BASE			0x40000000 -#define TEGRA_IRAM_SIZE			SZ_256K - -#define TEGRA_HOST1X_BASE		0x50000000 -#define TEGRA_HOST1X_SIZE		0x24000 - -#define TEGRA_ARM_PERIF_BASE		0x50040000 -#define TEGRA_ARM_PERIF_SIZE		SZ_8K - -#define TEGRA_ARM_PL310_BASE		0x50043000 -#define TEGRA_ARM_PL310_SIZE		SZ_4K - -#define TEGRA_ARM_INT_DIST_BASE		0x50041000 -#define TEGRA_ARM_INT_DIST_SIZE		SZ_4K - -#define TEGRA_MPE_BASE			0x54040000 -#define TEGRA_MPE_SIZE			SZ_256K - -#define TEGRA_VI_BASE			0x54080000 -#define TEGRA_VI_SIZE			SZ_256K - -#define TEGRA_ISP_BASE			0x54100000 -#define TEGRA_ISP_SIZE			SZ_256K - -#define TEGRA_DISPLAY_BASE		0x54200000 -#define TEGRA_DISPLAY_SIZE		SZ_256K - -#define TEGRA_DISPLAY2_BASE		0x54240000 -#define TEGRA_DISPLAY2_SIZE		SZ_256K - -#define TEGRA_HDMI_BASE			0x54280000 -#define TEGRA_HDMI_SIZE			SZ_256K - -#define TEGRA_GART_BASE			0x58000000 -#define TEGRA_GART_SIZE			SZ_32M - -#define TEGRA_RES_SEMA_BASE		0x60001000 -#define TEGRA_RES_SEMA_SIZE		SZ_4K - -#define TEGRA_PRIMARY_ICTLR_BASE	0x60004000 -#define TEGRA_PRIMARY_ICTLR_SIZE	SZ_64 - -#define TEGRA_SECONDARY_ICTLR_BASE	0x60004100 -#define TEGRA_SECONDARY_ICTLR_SIZE	SZ_64 - -#define TEGRA_TERTIARY_ICTLR_BASE	0x60004200 -#define TEGRA_TERTIARY_ICTLR_SIZE	SZ_64 - -#define TEGRA_QUATERNARY_ICTLR_BASE	0x60004300 -#define TEGRA_QUATERNARY_ICTLR_SIZE	SZ_64 - -#define TEGRA_QUINARY_ICTLR_BASE	0x60004400 -#define TEGRA_QUINARY_ICTLR_SIZE	SZ_64 - -#define TEGRA_TMR1_BASE			0x60005000 -#define TEGRA_TMR1_SIZE			SZ_8 - -#define TEGRA_TMR2_BASE			0x60005008 -#define TEGRA_TMR2_SIZE			SZ_8 - -#define TEGRA_TMRUS_BASE		0x60005010 -#define TEGRA_TMRUS_SIZE		SZ_64 - -#define TEGRA_TMR3_BASE			0x60005050 -#define TEGRA_TMR3_SIZE			SZ_8 - -#define TEGRA_TMR4_BASE			0x60005058 -#define TEGRA_TMR4_SIZE			SZ_8 - -#define TEGRA_CLK_RESET_BASE		0x60006000 -#define TEGRA_CLK_RESET_SIZE		SZ_4K - -#define TEGRA_FLOW_CTRL_BASE		0x60007000 -#define TEGRA_FLOW_CTRL_SIZE		20 - -#define TEGRA_AHB_DMA_BASE		0x60008000 -#define TEGRA_AHB_DMA_SIZE		SZ_4K - -#define TEGRA_AHB_DMA_CH0_BASE		0x60009000 -#define TEGRA_AHB_DMA_CH0_SIZE		32 - -#define TEGRA_APB_DMA_BASE		0x6000A000 -#define TEGRA_APB_DMA_SIZE		SZ_4K - -#define TEGRA_APB_DMA_CH0_BASE		0x6000B000 -#define TEGRA_APB_DMA_CH0_SIZE		32 - -#define TEGRA_AHB_GIZMO_BASE		0x6000C004 -#define TEGRA_AHB_GIZMO_SIZE		0x10C - -#define TEGRA_SB_BASE			0x6000C200 -#define TEGRA_SB_SIZE			256 - -#define TEGRA_STATMON_BASE		0x6000C400 -#define TEGRA_STATMON_SIZE		SZ_1K - -#define TEGRA_GPIO_BASE			0x6000D000 -#define TEGRA_GPIO_SIZE			SZ_4K - -#define TEGRA_EXCEPTION_VECTORS_BASE    0x6000F000 -#define TEGRA_EXCEPTION_VECTORS_SIZE    SZ_4K - -#define TEGRA_APB_MISC_BASE		0x70000000 -#define TEGRA_APB_MISC_SIZE		SZ_4K - -#define TEGRA_APB_MISC_DAS_BASE		0x70000c00 -#define TEGRA_APB_MISC_DAS_SIZE		SZ_128 - -#define TEGRA_AC97_BASE			0x70002000 -#define TEGRA_AC97_SIZE			SZ_512 - -#define TEGRA_SPDIF_BASE		0x70002400 -#define TEGRA_SPDIF_SIZE		SZ_512 - -#define TEGRA_I2S1_BASE			0x70002800 -#define TEGRA_I2S1_SIZE			SZ_256 - -#define TEGRA_I2S2_BASE			0x70002A00 -#define TEGRA_I2S2_SIZE			SZ_256 - -#define TEGRA_UARTA_BASE		0x70006000 -#define TEGRA_UARTA_SIZE		SZ_64 - -#define TEGRA_UARTB_BASE		0x70006040 -#define TEGRA_UARTB_SIZE		SZ_64 - -#define TEGRA_UARTC_BASE		0x70006200 -#define TEGRA_UARTC_SIZE		SZ_256 - -#define TEGRA_UARTD_BASE		0x70006300 -#define TEGRA_UARTD_SIZE		SZ_256 - -#define TEGRA_UARTE_BASE		0x70006400 -#define TEGRA_UARTE_SIZE		SZ_256 - -#define TEGRA_NAND_BASE			0x70008000 -#define TEGRA_NAND_SIZE			SZ_256 - -#define TEGRA_HSMMC_BASE		0x70008500 -#define TEGRA_HSMMC_SIZE		SZ_256 - -#define TEGRA_SNOR_BASE			0x70009000 -#define TEGRA_SNOR_SIZE			SZ_4K - -#define TEGRA_PWFM_BASE			0x7000A000 -#define TEGRA_PWFM_SIZE			SZ_256 - -#define TEGRA_PWFM0_BASE		0x7000A000 -#define TEGRA_PWFM0_SIZE		4 - -#define TEGRA_PWFM1_BASE		0x7000A010 -#define TEGRA_PWFM1_SIZE		4 - -#define TEGRA_PWFM2_BASE		0x7000A020 -#define TEGRA_PWFM2_SIZE		4 - -#define TEGRA_PWFM3_BASE		0x7000A030 -#define TEGRA_PWFM3_SIZE		4 - -#define TEGRA_MIPI_BASE			0x7000B000 -#define TEGRA_MIPI_SIZE			SZ_256 - -#define TEGRA_I2C_BASE			0x7000C000 -#define TEGRA_I2C_SIZE			SZ_256 - -#define TEGRA_TWC_BASE			0x7000C100 -#define TEGRA_TWC_SIZE			SZ_256 - -#define TEGRA_SPI_BASE			0x7000C380 -#define TEGRA_SPI_SIZE			48 - -#define TEGRA_I2C2_BASE			0x7000C400 -#define TEGRA_I2C2_SIZE			SZ_256 - -#define TEGRA_I2C3_BASE			0x7000C500 -#define TEGRA_I2C3_SIZE			SZ_256 - -#define TEGRA_OWR_BASE			0x7000C600 -#define TEGRA_OWR_SIZE			80 - -#define TEGRA_DVC_BASE			0x7000D000 -#define TEGRA_DVC_SIZE			SZ_512 - -#define TEGRA_SPI1_BASE			0x7000D400 -#define TEGRA_SPI1_SIZE			SZ_512 - -#define TEGRA_SPI2_BASE			0x7000D600 -#define TEGRA_SPI2_SIZE			SZ_512 - -#define TEGRA_SPI3_BASE			0x7000D800 -#define TEGRA_SPI3_SIZE			SZ_512 - -#define TEGRA_SPI4_BASE			0x7000DA00 -#define TEGRA_SPI4_SIZE			SZ_512 - -#define TEGRA_RTC_BASE			0x7000E000 -#define TEGRA_RTC_SIZE			SZ_256 - -#define TEGRA_KBC_BASE			0x7000E200 -#define TEGRA_KBC_SIZE			SZ_256 - -#define TEGRA_PMC_BASE			0x7000E400 -#define TEGRA_PMC_SIZE			SZ_256 - -#define TEGRA_MC_BASE			0x7000F000 -#define TEGRA_MC_SIZE			SZ_1K - -#define TEGRA_EMC_BASE			0x7000F400 -#define TEGRA_EMC_SIZE			SZ_1K - -#define TEGRA_FUSE_BASE			0x7000F800 -#define TEGRA_FUSE_SIZE			SZ_1K - -#define TEGRA_KFUSE_BASE		0x7000FC00 -#define TEGRA_KFUSE_SIZE		SZ_1K - -#define TEGRA_CSITE_BASE		0x70040000 -#define TEGRA_CSITE_SIZE		SZ_256K - -#define TEGRA_USB_BASE			0xC5000000 -#define TEGRA_USB_SIZE			SZ_16K - -#define TEGRA_USB2_BASE			0xC5004000 -#define TEGRA_USB2_SIZE			SZ_16K - -#define TEGRA_USB3_BASE			0xC5008000 -#define TEGRA_USB3_SIZE			SZ_16K - -#define TEGRA_SDMMC1_BASE		0xC8000000 -#define TEGRA_SDMMC1_SIZE		SZ_512 - -#define TEGRA_SDMMC2_BASE		0xC8000200 -#define TEGRA_SDMMC2_SIZE		SZ_512 - -#define TEGRA_SDMMC3_BASE		0xC8000400 -#define TEGRA_SDMMC3_SIZE		SZ_512 - -#define TEGRA_SDMMC4_BASE		0xC8000600 -#define TEGRA_SDMMC4_SIZE		SZ_512 - -#if defined(CONFIG_TEGRA_DEBUG_UART_NONE) -# define TEGRA_DEBUG_UART_BASE 0 -#elif defined(CONFIG_TEGRA_DEBUG_UARTA) -# define TEGRA_DEBUG_UART_BASE TEGRA_UARTA_BASE -#elif defined(CONFIG_TEGRA_DEBUG_UARTB) -# define TEGRA_DEBUG_UART_BASE TEGRA_UARTB_BASE -#elif defined(CONFIG_TEGRA_DEBUG_UARTC) -# define TEGRA_DEBUG_UART_BASE TEGRA_UARTC_BASE -#elif defined(CONFIG_TEGRA_DEBUG_UARTD) -# define TEGRA_DEBUG_UART_BASE TEGRA_UARTD_BASE -#elif defined(CONFIG_TEGRA_DEBUG_UARTE) -# define TEGRA_DEBUG_UART_BASE TEGRA_UARTE_BASE -#endif - -/* On TEGRA, many peripherals are very closely packed in - * two 256MB io windows (that actually only use about 64KB - * at the start of each). - * - * We will just map the first 1MB of each window (to minimize - * pt entries needed) and provide a macro to transform physical - * io addresses to an appropriate void __iomem *. - * - */ - -#define IO_IRAM_PHYS	0x40000000 -#define IO_IRAM_VIRT	IOMEM(0xFE400000) -#define IO_IRAM_SIZE	SZ_256K - -#define IO_CPU_PHYS     0x50040000 -#define IO_CPU_VIRT     IOMEM(0xFE000000) -#define IO_CPU_SIZE	SZ_16K - -#define IO_PPSB_PHYS	0x60000000 -#define IO_PPSB_VIRT	IOMEM(0xFE200000) -#define IO_PPSB_SIZE	SZ_1M - -#define IO_APB_PHYS	0x70000000 -#define IO_APB_VIRT	IOMEM(0xFE300000) -#define IO_APB_SIZE	SZ_1M - -#define TEGRA_PCIE_BASE		0x80000000 -#define TEGRA_PCIE_IO_BASE	(TEGRA_PCIE_BASE + SZ_4M) - -#define IO_TO_VIRT_BETWEEN(p, st, sz)	((p) >= (st) && (p) < ((st) + (sz))) -#define IO_TO_VIRT_XLATE(p, pst, vst)	(((p) - (pst) + (vst))) - -#define IO_TO_VIRT(n) ( \ -	IO_TO_VIRT_BETWEEN((n), IO_PPSB_PHYS, IO_PPSB_SIZE) ?		\ -		IO_TO_VIRT_XLATE((n), IO_PPSB_PHYS, IO_PPSB_VIRT) :	\ -	IO_TO_VIRT_BETWEEN((n), IO_APB_PHYS, IO_APB_SIZE) ?		\ -		IO_TO_VIRT_XLATE((n), IO_APB_PHYS, IO_APB_VIRT) :	\ -	IO_TO_VIRT_BETWEEN((n), IO_CPU_PHYS, IO_CPU_SIZE) ?		\ -		IO_TO_VIRT_XLATE((n), IO_CPU_PHYS, IO_CPU_VIRT) :	\ -	IO_TO_VIRT_BETWEEN((n), IO_IRAM_PHYS, IO_IRAM_SIZE) ?		\ -		IO_TO_VIRT_XLATE((n), IO_IRAM_PHYS, IO_IRAM_VIRT) :	\ -	NULL) - -#define IO_ADDRESS(n) (IO_TO_VIRT(n)) - -#endif diff --git a/arch/arm/mach-tegra/include/mach/irammap.h b/arch/arm/mach-tegra/include/mach/irammap.h deleted file mode 100644 index 0cbe6326185..00000000000 --- a/arch/arm/mach-tegra/include/mach/irammap.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope 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. - * - * You should have received a copy of the GNU General Public License - * along with this program.  If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef __MACH_TEGRA_IRAMMAP_H -#define __MACH_TEGRA_IRAMMAP_H - -#include <asm/sizes.h> - -/* The first 1K of IRAM is permanently reserved for the CPU reset handler */ -#define TEGRA_IRAM_RESET_HANDLER_OFFSET	0 -#define TEGRA_IRAM_RESET_HANDLER_SIZE	SZ_1K - -/* - * These locations are written to by uncompress.h, and read by debug-macro.S. - * The first word holds the cookie value if the data is valid. The second - * word holds the UART physical address. - */ -#define TEGRA_IRAM_DEBUG_UART_OFFSET	SZ_1K -#define TEGRA_IRAM_DEBUG_UART_SIZE	8 -#define TEGRA_IRAM_DEBUG_UART_COOKIE	0x55415254 - -#endif diff --git a/arch/arm/mach-tegra/include/mach/irqs.h b/arch/arm/mach-tegra/include/mach/irqs.h deleted file mode 100644 index aad1a2c1d71..00000000000 --- a/arch/arm/mach-tegra/include/mach/irqs.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - * arch/arm/mach-tegra/include/mach/irqs.h - * - * Copyright (C) 2010 Google, Inc. - * - * Author: - *	Colin Cross <ccross@google.com> - *	Erik Gilling <konkers@google.com> - * - * 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_TEGRA_IRQS_H -#define __MACH_TEGRA_IRQS_H - -#define INT_GIC_BASE			0 - -#define IRQ_LOCALTIMER                  29 - -/* Primary Interrupt Controller */ -#define INT_PRI_BASE			(INT_GIC_BASE + 32) -#define INT_TMR1			(INT_PRI_BASE + 0) -#define INT_TMR2			(INT_PRI_BASE + 1) -#define INT_RTC				(INT_PRI_BASE + 2) -#define INT_I2S2			(INT_PRI_BASE + 3) -#define INT_SHR_SEM_INBOX_IBF		(INT_PRI_BASE + 4) -#define INT_SHR_SEM_INBOX_IBE		(INT_PRI_BASE + 5) -#define INT_SHR_SEM_OUTBOX_IBF		(INT_PRI_BASE + 6) -#define INT_SHR_SEM_OUTBOX_IBE		(INT_PRI_BASE + 7) -#define INT_VDE_UCQ_ERROR		(INT_PRI_BASE + 8) -#define INT_VDE_SYNC_TOKEN		(INT_PRI_BASE + 9) -#define INT_VDE_BSE_V			(INT_PRI_BASE + 10) -#define INT_VDE_BSE_A			(INT_PRI_BASE + 11) -#define INT_VDE_SXE			(INT_PRI_BASE + 12) -#define INT_I2S1			(INT_PRI_BASE + 13) -#define INT_SDMMC1			(INT_PRI_BASE + 14) -#define INT_SDMMC2			(INT_PRI_BASE + 15) -#define INT_XIO				(INT_PRI_BASE + 16) -#define INT_VDE				(INT_PRI_BASE + 17) -#define INT_AVP_UCQ			(INT_PRI_BASE + 18) -#define INT_SDMMC3			(INT_PRI_BASE + 19) -#define INT_USB				(INT_PRI_BASE + 20) -#define INT_USB2			(INT_PRI_BASE + 21) -#define INT_PRI_RES_22			(INT_PRI_BASE + 22) -#define INT_EIDE			(INT_PRI_BASE + 23) -#define INT_NANDFLASH			(INT_PRI_BASE + 24) -#define INT_VCP				(INT_PRI_BASE + 25) -#define INT_APB_DMA			(INT_PRI_BASE + 26) -#define INT_AHB_DMA			(INT_PRI_BASE + 27) -#define INT_GNT_0			(INT_PRI_BASE + 28) -#define INT_GNT_1			(INT_PRI_BASE + 29) -#define INT_OWR				(INT_PRI_BASE + 30) -#define INT_SDMMC4			(INT_PRI_BASE + 31) - -/* Secondary Interrupt Controller */ -#define INT_SEC_BASE			(INT_PRI_BASE + 32) -#define INT_GPIO1			(INT_SEC_BASE + 0) -#define INT_GPIO2			(INT_SEC_BASE + 1) -#define INT_GPIO3			(INT_SEC_BASE + 2) -#define INT_GPIO4			(INT_SEC_BASE + 3) -#define INT_UARTA			(INT_SEC_BASE + 4) -#define INT_UARTB			(INT_SEC_BASE + 5) -#define INT_I2C				(INT_SEC_BASE + 6) -#define INT_SPI				(INT_SEC_BASE + 7) -#define INT_TWC				(INT_SEC_BASE + 8) -#define INT_TMR3			(INT_SEC_BASE + 9) -#define INT_TMR4			(INT_SEC_BASE + 10) -#define INT_FLOW_RSM0			(INT_SEC_BASE + 11) -#define INT_FLOW_RSM1			(INT_SEC_BASE + 12) -#define INT_SPDIF			(INT_SEC_BASE + 13) -#define INT_UARTC			(INT_SEC_BASE + 14) -#define INT_MIPI			(INT_SEC_BASE + 15) -#define INT_EVENTA			(INT_SEC_BASE + 16) -#define INT_EVENTB			(INT_SEC_BASE + 17) -#define INT_EVENTC			(INT_SEC_BASE + 18) -#define INT_EVENTD			(INT_SEC_BASE + 19) -#define INT_VFIR			(INT_SEC_BASE + 20) -#define INT_DVC				(INT_SEC_BASE + 21) -#define INT_SYS_STATS_MON		(INT_SEC_BASE + 22) -#define INT_GPIO5			(INT_SEC_BASE + 23) -#define INT_CPU0_PMU_INTR		(INT_SEC_BASE + 24) -#define INT_CPU1_PMU_INTR		(INT_SEC_BASE + 25) -#define INT_SEC_RES_26			(INT_SEC_BASE + 26) -#define INT_S_LINK1			(INT_SEC_BASE + 27) -#define INT_APB_DMA_COP			(INT_SEC_BASE + 28) -#define INT_AHB_DMA_COP			(INT_SEC_BASE + 29) -#define INT_DMA_TX			(INT_SEC_BASE + 30) -#define INT_DMA_RX			(INT_SEC_BASE + 31) - -/* Tertiary Interrupt Controller */ -#define INT_TRI_BASE			(INT_SEC_BASE + 32) -#define INT_HOST1X_COP_SYNCPT		(INT_TRI_BASE + 0) -#define INT_HOST1X_MPCORE_SYNCPT	(INT_TRI_BASE + 1) -#define INT_HOST1X_COP_GENERAL		(INT_TRI_BASE + 2) -#define INT_HOST1X_MPCORE_GENERAL	(INT_TRI_BASE + 3) -#define INT_MPE_GENERAL			(INT_TRI_BASE + 4) -#define INT_VI_GENERAL			(INT_TRI_BASE + 5) -#define INT_EPP_GENERAL			(INT_TRI_BASE + 6) -#define INT_ISP_GENERAL			(INT_TRI_BASE + 7) -#define INT_2D_GENERAL			(INT_TRI_BASE + 8) -#define INT_DISPLAY_GENERAL		(INT_TRI_BASE + 9) -#define INT_DISPLAY_B_GENERAL		(INT_TRI_BASE + 10) -#define INT_HDMI			(INT_TRI_BASE + 11) -#define INT_TVO_GENERAL			(INT_TRI_BASE + 12) -#define INT_MC_GENERAL			(INT_TRI_BASE + 13) -#define INT_EMC_GENERAL			(INT_TRI_BASE + 14) -#define INT_TRI_RES_15			(INT_TRI_BASE + 15) -#define INT_TRI_RES_16			(INT_TRI_BASE + 16) -#define INT_AC97			(INT_TRI_BASE + 17) -#define INT_SPI_2			(INT_TRI_BASE + 18) -#define INT_SPI_3			(INT_TRI_BASE + 19) -#define INT_I2C2			(INT_TRI_BASE + 20) -#define INT_KBC				(INT_TRI_BASE + 21) -#define INT_EXTERNAL_PMU		(INT_TRI_BASE + 22) -#define INT_GPIO6			(INT_TRI_BASE + 23) -#define INT_TVDAC			(INT_TRI_BASE + 24) -#define INT_GPIO7			(INT_TRI_BASE + 25) -#define INT_UARTD			(INT_TRI_BASE + 26) -#define INT_UARTE			(INT_TRI_BASE + 27) -#define INT_I2C3			(INT_TRI_BASE + 28) -#define INT_SPI_4			(INT_TRI_BASE + 29) -#define INT_TRI_RES_30			(INT_TRI_BASE + 30) -#define INT_SW_RESERVED			(INT_TRI_BASE + 31) - -/* Quaternary Interrupt Controller */ -#define INT_QUAD_BASE			(INT_TRI_BASE + 32) -#define INT_SNOR			(INT_QUAD_BASE + 0) -#define INT_USB3			(INT_QUAD_BASE + 1) -#define INT_PCIE_INTR			(INT_QUAD_BASE + 2) -#define INT_PCIE_MSI			(INT_QUAD_BASE + 3) -#define INT_QUAD_RES_4			(INT_QUAD_BASE + 4) -#define INT_QUAD_RES_5			(INT_QUAD_BASE + 5) -#define INT_QUAD_RES_6			(INT_QUAD_BASE + 6) -#define INT_QUAD_RES_7			(INT_QUAD_BASE + 7) -#define INT_APB_DMA_CH0			(INT_QUAD_BASE + 8) -#define INT_APB_DMA_CH1			(INT_QUAD_BASE + 9) -#define INT_APB_DMA_CH2			(INT_QUAD_BASE + 10) -#define INT_APB_DMA_CH3			(INT_QUAD_BASE + 11) -#define INT_APB_DMA_CH4			(INT_QUAD_BASE + 12) -#define INT_APB_DMA_CH5			(INT_QUAD_BASE + 13) -#define INT_APB_DMA_CH6			(INT_QUAD_BASE + 14) -#define INT_APB_DMA_CH7			(INT_QUAD_BASE + 15) -#define INT_APB_DMA_CH8			(INT_QUAD_BASE + 16) -#define INT_APB_DMA_CH9			(INT_QUAD_BASE + 17) -#define INT_APB_DMA_CH10		(INT_QUAD_BASE + 18) -#define INT_APB_DMA_CH11		(INT_QUAD_BASE + 19) -#define INT_APB_DMA_CH12		(INT_QUAD_BASE + 20) -#define INT_APB_DMA_CH13		(INT_QUAD_BASE + 21) -#define INT_APB_DMA_CH14		(INT_QUAD_BASE + 22) -#define INT_APB_DMA_CH15		(INT_QUAD_BASE + 23) -#define INT_QUAD_RES_24			(INT_QUAD_BASE + 24) -#define INT_QUAD_RES_25			(INT_QUAD_BASE + 25) -#define INT_QUAD_RES_26			(INT_QUAD_BASE + 26) -#define INT_QUAD_RES_27			(INT_QUAD_BASE + 27) -#define INT_QUAD_RES_28			(INT_QUAD_BASE + 28) -#define INT_QUAD_RES_29			(INT_QUAD_BASE + 29) -#define INT_QUAD_RES_30			(INT_QUAD_BASE + 30) -#define INT_QUAD_RES_31			(INT_QUAD_BASE + 31) - -/* Tegra30 has 5 banks of 32 IRQs */ -#define INT_MAIN_NR			(32 * 5) -#define INT_GPIO_BASE			(INT_PRI_BASE + INT_MAIN_NR) - -/* Tegra30 has 8 banks of 32 GPIOs */ -#define INT_GPIO_NR			(32 * 8) - -#define TEGRA_NR_IRQS			(INT_GPIO_BASE + INT_GPIO_NR) - -#define INT_BOARD_BASE			TEGRA_NR_IRQS -#define NR_BOARD_IRQS			32 - -#define NR_IRQS				(INT_BOARD_BASE + NR_BOARD_IRQS) - -#endif diff --git a/arch/arm/mach-tegra/include/mach/powergate.h b/arch/arm/mach-tegra/include/mach/powergate.h index 4752b1a68f3..06763fe7529 100644 --- a/arch/arm/mach-tegra/include/mach/powergate.h +++ b/arch/arm/mach-tegra/include/mach/powergate.h @@ -20,6 +20,8 @@  #ifndef _MACH_TEGRA_POWERGATE_H_  #define _MACH_TEGRA_POWERGATE_H_ +struct clk; +  #define TEGRA_POWERGATE_CPU	0  #define TEGRA_POWERGATE_3D	1  #define TEGRA_POWERGATE_VENC	2 diff --git a/arch/arm/mach-tegra/include/mach/tegra-ahb.h b/arch/arm/mach-tegra/include/mach/tegra-ahb.h deleted file mode 100644 index e0f8c84b1d8..00000000000 --- a/arch/arm/mach-tegra/include/mach/tegra-ahb.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope 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_TEGRA_AHB_H__ -#define __MACH_TEGRA_AHB_H__ - -extern int tegra_ahb_enable_smmu(struct device_node *ahb); - -#endif	/* __MACH_TEGRA_AHB_H__ */ diff --git a/arch/arm/mach-tegra/include/mach/uncompress.h b/arch/arm/mach-tegra/include/mach/uncompress.h index 937c4c50219..485003f9b63 100644 --- a/arch/arm/mach-tegra/include/mach/uncompress.h +++ b/arch/arm/mach-tegra/include/mach/uncompress.h @@ -28,8 +28,7 @@  #include <linux/types.h>  #include <linux/serial_reg.h> -#include <mach/iomap.h> -#include <mach/irammap.h> +#include "../../iomap.h"  #define BIT(x) (1 << (x))  #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) @@ -52,17 +51,6 @@ static inline void flush(void)  {  } -static inline void save_uart_address(void) -{ -	u32 *buf = (u32 *)(TEGRA_IRAM_BASE + TEGRA_IRAM_DEBUG_UART_OFFSET); - -	if (uart) { -		buf[0] = TEGRA_IRAM_DEBUG_UART_COOKIE; -		buf[1] = (u32)uart; -	} else -		buf[0] = 0; -} -  static const struct {  	u32 base;  	u32 reset_reg; @@ -139,51 +127,19 @@ int auto_odmdata(void)  }  #endif -#ifdef CONFIG_TEGRA_DEBUG_UART_AUTO_SCRATCH -int auto_scratch(void) -{ -	int i; - -	/* -	 * Look for the first UART that: -	 * a) Is not in reset. -	 * b) Is clocked. -	 * c) Has a 'D' in the scratchpad register. -	 * -	 * Note that on Tegra30, the first two conditions are required, since -	 * if not true, accesses to the UART scratch register will hang. -	 * Tegra20 doesn't have this issue. -	 * -	 * The intent is that the bootloader will tell the kernel which UART -	 * to use by setting up those conditions. If nothing found, we'll fall -	 * back to what's specified in TEGRA_DEBUG_UART_BASE. -	 */ -	for (i = 0; i < ARRAY_SIZE(uarts); i++) { -		if (!uart_clocked(i)) -			continue; - -		uart = (volatile u8 *)uarts[i].base; -		if (uart[UART_SCR << DEBUG_UART_SHIFT] != 'D') -			continue; - -		return i; -	} - -	return -1; -} -#endif -  /*   * Setup before decompression.  This is where we do UART selection for   * earlyprintk and init the uart_base register.   */  static inline void arch_decomp_setup(void)  { -	int uart_id, auto_uart_id; +	int uart_id;  	volatile u32 *apb_misc = (volatile u32 *)TEGRA_APB_MISC_BASE;  	u32 chip, div; -#if defined(CONFIG_TEGRA_DEBUG_UARTA) +#if defined(CONFIG_TEGRA_DEBUG_UART_AUTO_ODMDATA) +	uart_id = auto_odmdata(); +#elif defined(CONFIG_TEGRA_DEBUG_UARTA)  	uart_id = 0;  #elif defined(CONFIG_TEGRA_DEBUG_UARTB)  	uart_id = 1; @@ -193,19 +149,7 @@ static inline void arch_decomp_setup(void)  	uart_id = 3;  #elif defined(CONFIG_TEGRA_DEBUG_UARTE)  	uart_id = 4; -#else -	uart_id = -1; -#endif - -#if defined(CONFIG_TEGRA_DEBUG_UART_AUTO_ODMDATA) -	auto_uart_id = auto_odmdata(); -#elif defined(CONFIG_TEGRA_DEBUG_UART_AUTO_SCRATCH) -	auto_uart_id = auto_scratch(); -#else -	auto_uart_id = -1;  #endif -	if (auto_uart_id != -1) -		uart_id = auto_uart_id;  	if (uart_id < 0 || uart_id >= ARRAY_SIZE(uarts) ||  	    !uart_clocked(uart_id)) @@ -213,7 +157,6 @@ static inline void arch_decomp_setup(void)  	else  		uart = (volatile u8 *)uarts[uart_id].base; -	save_uart_address();  	if (uart == NULL)  		return;  |