* for TEE security driver * and avoid overlap with asic ID at base+1D000 */ __MEM_DEV_DESC(U8500_BOOT_ROM_BASE+0x17000, 6*SZ_4K), __IO_DEV_DESC(U8500_PRCMU_TCDM_BASE, SZ_4K), }; /* U9540 IO map specific description */ static struct map_desc u9540_io_desc[] __initdata = { __IO_DEV_DESC(U8500_PRCMU_BASE, SZ_4K + SZ_8K), /* * Map U9540_PUBLIC_BOOT_ROM_BASE (base+17000) only * for TEE security driver * and avoid overlap with asic ID at base+1D000 */ __MEM_DEV_DESC_DB9540_ROM(U9540_BOOT_ROM_BASE+0x17000, 6*SZ_4K), __IO_DEV_DESC(U8500_PRCMU_TCDM_BASE, SZ_4K + SZ_8K), #ifdef CONFIG_C2C __IO_DEV_DESC(U8500_C2C_BASE, SZ_4K), #endif }; void __init u8500_map_io(void) { /* * Map the UARTs early so that the DEBUG_LL stuff continues to work. */ iotable_init(u8500_uart_io_desc, ARRAY_SIZE(u8500_uart_io_desc)); /* * STE NMF CM driver only used on the U8500 allocate using
__IO_DEV_DESC(U8500_GPIO2_BASE, SZ_4K), __IO_DEV_DESC(U8500_GPIO3_BASE, SZ_4K), }; /* U8500 IO map specific description */ static struct map_desc u8500_io_desc[] __initdata = { __IO_DEV_DESC(U8500_PRCMU_BASE, SZ_4K), __MEM_DEV_DESC(U8500_BOOT_ROM_BASE, SZ_1M), __IO_DEV_DESC(U8500_PRCMU_TCDM_BASE, SZ_4K), }; /* U9540 IO map specific description */ static struct map_desc u9540_io_desc[] __initdata = { __IO_DEV_DESC(U8500_PRCMU_BASE, SZ_4K + SZ_8K), __MEM_DEV_DESC_DB9540_ROM(U9540_BOOT_ROM_BASE, SZ_1M), __IO_DEV_DESC(U8500_PRCMU_TCDM_BASE, SZ_4K + SZ_8K), }; struct reboot_reason reboot_reasons_hw[] = { {"modem", HW_RESET_MODEM}, {"ape-restart", HW_RESET_APE_RESTART}, {"a9-restart", HW_RESET_A9_RESTART}, {"por", HW_RESET_POR}, {"secure-wd", HW_RESET_SECURE_WD}, {"ape", HW_RESET_APE}, {"ape-sw", HW_RESET_APE_SOFTWARE}, {"a9-cpu1-wd", HW_RESET_A9_CPU1_WD}, {"a9-cpu0-wd", HW_RESET_A9_CPU0_WD}, };