diff options
Diffstat (limited to 'arch/arm/mach-tegra/common.c')
| -rw-r--r-- | arch/arm/mach-tegra/common.c | 26 | 
1 files changed, 25 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index a2eb90169ae..22df10fb997 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c @@ -27,11 +27,29 @@  #include <asm/hardware/gic.h>  #include <mach/iomap.h> -#include <mach/system.h> +#include <mach/powergate.h>  #include "board.h"  #include "clock.h"  #include "fuse.h" +#include "pmc.h" + +/* + * Storage for debug-macro.S's state. + * + * This must be in .data not .bss so that it gets initialized each time the + * kernel is loaded. The data is declared here rather than debug-macro.S so + * that multiple inclusions of debug-macro.S point at the same data. + */ +#define TEGRA_DEBUG_UART_OFFSET (TEGRA_DEBUG_UART_BASE & 0xFFFF) +u32 tegra_uart_config[3] = { +	/* Debug UART initialization required */ +	1, +	/* Debug UART physical address */ +	(u32)(IO_APB_PHYS + TEGRA_DEBUG_UART_OFFSET), +	/* Debug UART virtual address */ +	(u32)(IO_APB_VIRT + TEGRA_DEBUG_UART_OFFSET), +};  #ifdef CONFIG_OF  static const struct of_device_id tegra_dt_irq_match[] __initconst = { @@ -100,11 +118,17 @@ void __init tegra20_init_early(void)  	tegra2_init_clocks();  	tegra_clk_init_from_table(tegra20_clk_init_table);  	tegra_init_cache(0x331, 0x441); +	tegra_pmc_init(); +	tegra_powergate_init();  }  #endif  #ifdef CONFIG_ARCH_TEGRA_3x_SOC  void __init tegra30_init_early(void)  { +	tegra_init_fuse(); +	tegra30_init_clocks();  	tegra_init_cache(0x441, 0x551); +	tegra_pmc_init(); +	tegra_powergate_init();  }  #endif  |