18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * arch/arm/mach-tegra/io.c 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2010 Google, Inc. 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Author: 88c2ecf20Sopenharmony_ci * Colin Cross <ccross@google.com> 98c2ecf20Sopenharmony_ci * Erik Gilling <konkers@google.com> 108c2ecf20Sopenharmony_ci */ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <linux/init.h> 138c2ecf20Sopenharmony_ci#include <linux/io.h> 148c2ecf20Sopenharmony_ci#include <linux/kernel.h> 158c2ecf20Sopenharmony_ci#include <linux/mm.h> 168c2ecf20Sopenharmony_ci#include <linux/module.h> 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci#include <asm/mach/map.h> 198c2ecf20Sopenharmony_ci#include <asm/page.h> 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#include "board.h" 228c2ecf20Sopenharmony_ci#include "iomap.h" 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistatic struct map_desc tegra_io_desc[] __initdata = { 258c2ecf20Sopenharmony_ci { 268c2ecf20Sopenharmony_ci .virtual = (unsigned long)IO_PPSB_VIRT, 278c2ecf20Sopenharmony_ci .pfn = __phys_to_pfn(IO_PPSB_PHYS), 288c2ecf20Sopenharmony_ci .length = IO_PPSB_SIZE, 298c2ecf20Sopenharmony_ci .type = MT_DEVICE, 308c2ecf20Sopenharmony_ci }, 318c2ecf20Sopenharmony_ci { 328c2ecf20Sopenharmony_ci .virtual = (unsigned long)IO_APB_VIRT, 338c2ecf20Sopenharmony_ci .pfn = __phys_to_pfn(IO_APB_PHYS), 348c2ecf20Sopenharmony_ci .length = IO_APB_SIZE, 358c2ecf20Sopenharmony_ci .type = MT_DEVICE, 368c2ecf20Sopenharmony_ci }, 378c2ecf20Sopenharmony_ci { 388c2ecf20Sopenharmony_ci .virtual = (unsigned long)IO_CPU_VIRT, 398c2ecf20Sopenharmony_ci .pfn = __phys_to_pfn(IO_CPU_PHYS), 408c2ecf20Sopenharmony_ci .length = IO_CPU_SIZE, 418c2ecf20Sopenharmony_ci .type = MT_DEVICE, 428c2ecf20Sopenharmony_ci }, 438c2ecf20Sopenharmony_ci { 448c2ecf20Sopenharmony_ci .virtual = (unsigned long)IO_IRAM_VIRT, 458c2ecf20Sopenharmony_ci .pfn = __phys_to_pfn(IO_IRAM_PHYS), 468c2ecf20Sopenharmony_ci .length = IO_IRAM_SIZE, 478c2ecf20Sopenharmony_ci .type = MT_DEVICE, 488c2ecf20Sopenharmony_ci }, 498c2ecf20Sopenharmony_ci}; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_civoid __init tegra_map_common_io(void) 528c2ecf20Sopenharmony_ci{ 538c2ecf20Sopenharmony_ci debug_ll_io_init(); 548c2ecf20Sopenharmony_ci iotable_init(tegra_io_desc, ARRAY_SIZE(tegra_io_desc)); 558c2ecf20Sopenharmony_ci} 56