void __init exynos_init_io(struct map_desc *mach_desc, int size)
{
	struct map_desc *iodesc = exynos_iodesc;
	int iodesc_sz = ARRAY_SIZE(exynos_iodesc);
#if defined(CONFIG_OF) && defined(CONFIG_ARCH_EXYNOS5)
	unsigned long root = of_get_flat_dt_root();

	/* initialize the io descriptors we need for initialization */
	if (of_flat_dt_is_compatible(root, "samsung,exynos5440")) {
		iodesc = exynos5440_iodesc;
		iodesc_sz = ARRAY_SIZE(exynos5440_iodesc);
	}
#endif

	debug_ll_io_init();

	iotable_init(iodesc, iodesc_sz);

	if (mach_desc)
		iotable_init(mach_desc, size);

	/* detect cpu id and rev. */
	s5p_init_cpu(S5P_VA_CHIPID);

	s3c_init_cpu(samsung_cpu_id, cpu_ids, ARRAY_SIZE(cpu_ids));

	/* TO support Watch dog reset */
	wdt_reset_init();

	/* Setup platform-specific resume code */
	s5p_resume_cpu_id = samsung_cpu_id;
	plat_cpu_resume = s3c_cpu_resume;
}
Exemple #2
0
static void __init rk3288_dt_map_io(void)
{
	iotable_init(rk3288_io_desc, ARRAY_SIZE(rk3288_io_desc));
	debug_ll_io_init();
	usb_uart_init();

	rockchip_soc_id = ROCKCHIP_SOC_RK3288;

	/* rkpwm is used instead of old pwm */
	writel_relaxed(0x00010001, RK_GRF_VIRT + RK3288_GRF_SOC_CON2);

	/* disable address remap */
	writel_relaxed(0x08000000, RK_SGRF_VIRT + RK3288_SGRF_SOC_CON0);

	/* enable timer7 for core */
	writel_relaxed(0, RK3288_TIMER7_VIRT + 0x10);
	dsb();
	writel_relaxed(0xFFFFFFFF, RK3288_TIMER7_VIRT + 0x00);
	writel_relaxed(0xFFFFFFFF, RK3288_TIMER7_VIRT + 0x04);
	dsb();
	writel_relaxed(1, RK3288_TIMER7_VIRT + 0x10);
	dsb();

	rk3288_boot_mode_init();
}
Exemple #3
0
static void __init imx6q_map_io(void)
{
	debug_ll_io_init();
	imx_scu_map_io();
	imx6_pm_map_io();
#ifdef CONFIG_CPU_FREQ
	imx_busfreq_map_io();
#endif
}
static void __init s3c64xx_dt_map_io(void)
{
	debug_ll_io_init();
	iotable_init(s3c64xx_dt_iodesc, ARRAY_SIZE(s3c64xx_dt_iodesc));

	s3c64xx_init_cpu();

	if (!soc_is_s3c64xx())
		panic("SoC is not S3C64xx!");
}
static void __init rk3188_dt_map_io(void)
{
	iotable_init(rk3188_io_desc, ARRAY_SIZE(rk3188_io_desc));
	debug_ll_io_init();
	usb_uart_init();

	rockchip_soc_id = ROCKCHIP_SOC_RK3188;
	if (readl_relaxed(RK_ROM_VIRT + 0x27f0) == 0x33313042
	 && readl_relaxed(RK_ROM_VIRT + 0x27f4) == 0x32303133
	 && readl_relaxed(RK_ROM_VIRT + 0x27f8) == 0x30313331
	 && readl_relaxed(RK_ROM_VIRT + 0x27fc) == 0x56313031)
		rockchip_soc_id = ROCKCHIP_SOC_RK3188PLUS;

	/* rki2c is used instead of old i2c */
	writel_relaxed(0xF800F800, RK_GRF_VIRT + RK3188_GRF_SOC_CON1);

	rk3188_boot_mode_init();
}
static void __init rk3036_dt_map_io(void)
{
	rockchip_soc_id = ROCKCHIP_SOC_RK3036;

	iotable_init(rk3036_io_desc, ARRAY_SIZE(rk3036_io_desc));
	debug_ll_io_init();
	usb_uart_init();

	/* enable timer5 for core */
	writel_relaxed(0, RK3036_TIMER5_VIRT + 0x10);
	dsb();
	writel_relaxed(0xFFFFFFFF, RK3036_TIMER5_VIRT + 0x00);
	writel_relaxed(0xFFFFFFFF, RK3036_TIMER5_VIRT + 0x04);
	dsb();
	writel_relaxed(1, RK3036_TIMER5_VIRT + 0x10);
	dsb();

	rk3036_boot_mode_init();
}
static void __init rk3288_dt_map_io(void)
{
	u32 v;

	rockchip_soc_id = ROCKCHIP_SOC_RK3288;

	iotable_init(rk3288_io_desc, ARRAY_SIZE(rk3288_io_desc));
	debug_ll_io_init();
	usb_uart_init();

	/* pmu reset by second global soft reset */
	v = readl_relaxed(RK_CRU_VIRT + RK3288_CRU_GLB_RST_CON);
	v &= ~(3 << 2);
	v |= 1 << 2;
	writel_relaxed(v, RK_CRU_VIRT + RK3288_CRU_GLB_RST_CON);

	/* rkpwm is used instead of old pwm */
	writel_relaxed(0x00010001, RK_GRF_VIRT + RK3288_GRF_SOC_CON2);

	/* disable address remap */
#ifndef CONFIG_ARM_TRUSTZONE
	writel_relaxed(0x08000000, RK_SGRF_VIRT + RK3288_SGRF_SOC_CON0);
#endif

	/* enable timer7 for core */
	writel_relaxed(0, RK3288_TIMER7_VIRT + 0x10);
	dsb();
	writel_relaxed(0xFFFFFFFF, RK3288_TIMER7_VIRT + 0x00);
	writel_relaxed(0xFFFFFFFF, RK3288_TIMER7_VIRT + 0x04);
	dsb();
	writel_relaxed(1, RK3288_TIMER7_VIRT + 0x10);
	dsb();

	/* power up/down GPU domain wait 1us */
	writel_relaxed(24, RK_PMU_VIRT + RK3288_PMU_GPU_PWRDWN_CNT);
	writel_relaxed(24, RK_PMU_VIRT + RK3288_PMU_GPU_PWRUP_CNT);

	rk3288_boot_mode_init();
#ifndef CONFIG_ARM_TRUSTZONE
	rockchip_efuse_init();
#endif
}
Exemple #8
0
void __init r8a7779_map_io(void)
{
	debug_ll_io_init();
	iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc));
}
static void __init sh73a0_map_io(void)
{
	debug_ll_io_init();
	iotable_init(sh73a0_io_desc, ARRAY_SIZE(sh73a0_io_desc));
}
Exemple #10
0
void __init tegra_map_common_io(void)
{
	debug_ll_io_init();
	iotable_init(tegra_io_desc, ARRAY_SIZE(tegra_io_desc));
}
Exemple #11
0
static void __init hi3620_map_io(void)
{
	debug_ll_io_init();
	iotable_init(hi3620_io_desc, ARRAY_SIZE(hi3620_io_desc));
}
Exemple #12
0
static void __init imx6sl_map_io(void)
{
	debug_ll_io_init();
	imx6_pm_map_io();
	imx6_busfreq_map_io();
}
Exemple #13
0
static void __init u8500_map_io(void)
{
	debug_ll_io_init();
	ux500_setup_id();
}
Exemple #14
0
void __init ox820_map_common_io(void)
{
	debug_ll_io_init();
	iotable_init(ox820_io_desc, ARRAY_SIZE(ox820_io_desc));
}
Exemple #15
0
static void __init imx6q_map_io(void)
{
	debug_ll_io_init();
	imx_scu_map_io();
}
static void __init imx7d_map_io(void)
{
	debug_ll_io_init();
	imx7_pm_map_io();
	imx_busfreq_map_io();
}
Exemple #17
0
void __init pxa_map_io(void)
{
	debug_ll_io_init();
	iotable_init(ARRAY_AND_SIZE(common_io_desc));
}