RK3288_DEVICE(PMU), RK3288_DEVICE(ROM), RK3288_DEVICE(EFUSE), RK3288_SERVICE_DEVICE(CORE), RK3288_SERVICE_DEVICE(DMAC), RK3288_SERVICE_DEVICE(GPU), RK3288_SERVICE_DEVICE(PERI), RK3288_SERVICE_DEVICE(VIO), RK3288_SERVICE_DEVICE(VIDEO), RK3288_SERVICE_DEVICE(HEVC), RK3288_SERVICE_DEVICE(BUS), RK_DEVICE(RK_DDR_VIRT, RK3288_DDR_PCTL0_PHYS, RK3288_DDR_PCTL_SIZE), RK_DEVICE(RK_DDR_VIRT + RK3288_DDR_PCTL_SIZE, RK3288_DDR_PUBL0_PHYS, RK3288_DDR_PUBL_SIZE), RK_DEVICE(RK_DDR_VIRT + RK3288_DDR_PCTL_SIZE + RK3288_DDR_PUBL_SIZE, RK3288_DDR_PCTL1_PHYS, RK3288_DDR_PCTL_SIZE), RK_DEVICE(RK_DDR_VIRT + 2 * RK3288_DDR_PCTL_SIZE + RK3288_DDR_PUBL_SIZE, RK3288_DDR_PUBL1_PHYS, RK3288_DDR_PUBL_SIZE), RK_DEVICE(RK_GPIO_VIRT(0), RK3288_GPIO0_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(1), RK3288_GPIO1_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(2), RK3288_GPIO2_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(3), RK3288_GPIO3_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(4), RK3288_GPIO4_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(5), RK3288_GPIO5_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(6), RK3288_GPIO6_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(7), RK3288_GPIO7_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(8), RK3288_GPIO8_PHYS, RK3288_GPIO_SIZE), RK_DEVICE(RK_DEBUG_UART_VIRT, RK3288_UART_DBG_PHYS, RK3288_UART_SIZE), RK_DEVICE(RK_GIC_VIRT, RK3288_GIC_DIST_PHYS, RK3288_GIC_DIST_SIZE), RK_DEVICE(RK_GIC_VIRT + RK3288_GIC_DIST_SIZE, RK3288_GIC_CPU_PHYS, RK3288_GIC_CPU_SIZE), RK_DEVICE(RK_BOOTRAM_VIRT, RK3288_BOOTRAM_PHYS, RK3288_BOOTRAM_SIZE), RK_DEVICE(RK3288_IMEM_VIRT, RK3288_IMEM_PHYS, SZ_4K), RK_DEVICE(RK_TIMER_VIRT, RK3288_TIMER6_PHYS, RK3288_TIMER_SIZE), };
.virtual = (unsigned long) RK_##name##_VIRT, \ .pfn = __phys_to_pfn(RK3188_##name##_PHYS), \ .length = RK3188_##name##_SIZE, \ .type = MT_DEVICE, \ } static struct map_desc rk3188_io_desc[] __initdata = { RK3188_DEVICE(CRU), RK3188_DEVICE(GRF), RK3188_DEVICE(PMU), RK3188_DEVICE(ROM), RK3188_DEVICE(EFUSE), RK3188_DEVICE(CPU_AXI_BUS), RK_DEVICE(RK_DDR_VIRT, RK3188_DDR_PCTL_PHYS, RK3188_DDR_PCTL_SIZE), RK_DEVICE(RK_DDR_VIRT + RK3188_DDR_PCTL_SIZE, RK3188_DDR_PUBL_PHYS, RK3188_DDR_PUBL_SIZE), RK_DEVICE(RK_GPIO_VIRT(0), RK3188_GPIO0_PHYS, RK3188_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(1), RK3188_GPIO1_PHYS, RK3188_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(2), RK3188_GPIO2_PHYS, RK3188_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(3), RK3188_GPIO3_PHYS, RK3188_GPIO_SIZE), RK_DEVICE(RK_DEBUG_UART_VIRT, RK3188_UART2_PHYS, RK3188_UART_SIZE), }; static void __init rk3188_boot_mode_init(void) { u32 flag = readl_relaxed(RK_PMU_VIRT + RK3188_PMU_SYS_REG0); u32 mode = readl_relaxed(RK_PMU_VIRT + RK3188_PMU_SYS_REG1); if (flag == (SYS_KERNRL_REBOOT_FLAG | BOOT_RECOVER)) { mode = BOOT_MODE_RECOVERY; } rockchip_boot_mode_init(flag, mode);
.type = MT_DEVICE, \ } #define RK3036_IMEM_VIRT (RK_BOOTRAM_VIRT + SZ_32K) #define RK3036_TIMER5_VIRT (RK_TIMER_VIRT + 0xa0) static struct map_desc rk3036_io_desc[] __initdata = { RK3036_DEVICE(CRU), RK3036_DEVICE(GRF), RK3036_DEVICE(ROM), RK3036_DEVICE(EFUSE), RK3036_DEVICE(CPU_AXI_BUS), RK_DEVICE(RK_DDR_VIRT, RK3036_DDR_PCTL_PHYS, RK3036_DDR_PCTL_SIZE), RK_DEVICE(RK_DDR_VIRT + RK3036_DDR_PCTL_SIZE, RK3036_DDR_PHY_PHYS, RK3036_DDR_PHY_SIZE), RK_DEVICE(RK_GPIO_VIRT(0), RK3036_GPIO0_PHYS, RK3036_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(1), RK3036_GPIO1_PHYS, RK3036_GPIO_SIZE), RK_DEVICE(RK_GPIO_VIRT(2), RK3036_GPIO2_PHYS, RK3036_GPIO_SIZE), RK_DEVICE(RK_DEBUG_UART_VIRT, RK3036_UART2_PHYS, RK3036_UART_SIZE), RK_DEVICE(RK_GIC_VIRT, RK3036_GIC_DIST_PHYS, RK3036_GIC_DIST_SIZE), RK_DEVICE(RK_GIC_VIRT + RK3036_GIC_DIST_SIZE, RK3036_GIC_CPU_PHYS, RK3036_GIC_CPU_SIZE), RK_DEVICE(RK3036_IMEM_VIRT, RK3036_IMEM_PHYS, SZ_4K), RK_DEVICE(RK_TIMER_VIRT, RK3036_TIMER_PHYS, RK3036_TIMER_SIZE), RK_DEVICE(RK_PWM_VIRT, RK3036_PWM_PHYS, RK3036_PWM_SIZE), }; static void __init rk3036_boot_mode_init(void) { u32 flag = readl_relaxed(RK_GRF_VIRT + RK3036_GRF_OS_REG4); u32 mode = readl_relaxed(RK_GRF_VIRT + RK3036_GRF_OS_REG5);