xref: /openbmc/linux/arch/arm/mach-sti/board-dt.c (revision c6594025)
165ebcc11SSrinivas Kandagatla /*
265ebcc11SSrinivas Kandagatla  * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
365ebcc11SSrinivas Kandagatla  * Author(s): Srinivas Kandagatla <srinivas.kandagatla@st.com>
465ebcc11SSrinivas Kandagatla  *
565ebcc11SSrinivas Kandagatla  * This program is free software; you can redistribute it and/or modify
665ebcc11SSrinivas Kandagatla  * it under the terms of the GNU General Public License version 2 as
765ebcc11SSrinivas Kandagatla  * published by the Free Software Foundation.
865ebcc11SSrinivas Kandagatla  */
965ebcc11SSrinivas Kandagatla 
1065ebcc11SSrinivas Kandagatla #include <linux/irq.h>
1128fbb151SSebastian Hesselbarth #include <linux/of_platform.h>
1265ebcc11SSrinivas Kandagatla #include <asm/hardware/cache-l2x0.h>
1365ebcc11SSrinivas Kandagatla #include <asm/mach/arch.h>
1465ebcc11SSrinivas Kandagatla 
1565ebcc11SSrinivas Kandagatla #include "smp.h"
1665ebcc11SSrinivas Kandagatla 
1765ebcc11SSrinivas Kandagatla void __init stih41x_l2x0_init(void)
1865ebcc11SSrinivas Kandagatla {
1965ebcc11SSrinivas Kandagatla 	u32 way_size = 0x4;
2065ebcc11SSrinivas Kandagatla 	u32 aux_ctrl;
2165ebcc11SSrinivas Kandagatla 	/* may be this can be encoded in macros like BIT*() */
2265ebcc11SSrinivas Kandagatla 	aux_ctrl = (0x1 << L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT) |
2365ebcc11SSrinivas Kandagatla 		(0x1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) |
2465ebcc11SSrinivas Kandagatla 		(0x1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT) |
2565ebcc11SSrinivas Kandagatla 		(way_size << L2X0_AUX_CTRL_WAY_SIZE_SHIFT);
2665ebcc11SSrinivas Kandagatla 
2765ebcc11SSrinivas Kandagatla 	l2x0_of_init(aux_ctrl, L2X0_AUX_CTRL_MASK);
2865ebcc11SSrinivas Kandagatla }
2965ebcc11SSrinivas Kandagatla 
3028fbb151SSebastian Hesselbarth static void __init stih41x_machine_init(void)
3165ebcc11SSrinivas Kandagatla {
3265ebcc11SSrinivas Kandagatla 	stih41x_l2x0_init();
3328fbb151SSebastian Hesselbarth 	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
3465ebcc11SSrinivas Kandagatla }
3565ebcc11SSrinivas Kandagatla 
3665ebcc11SSrinivas Kandagatla static const char *stih41x_dt_match[] __initdata = {
3765ebcc11SSrinivas Kandagatla 	"st,stih415",
3815969b45SSrinivas Kandagatla 	"st,stih416",
39c6594025SMaxime Coquelin 	"st,stih407",
4065ebcc11SSrinivas Kandagatla 	NULL
4165ebcc11SSrinivas Kandagatla };
4265ebcc11SSrinivas Kandagatla 
4315969b45SSrinivas Kandagatla DT_MACHINE_START(STM, "STiH415/416 SoC with Flattened Device Tree")
4428fbb151SSebastian Hesselbarth 	.init_machine	= stih41x_machine_init,
4565ebcc11SSrinivas Kandagatla 	.smp		= smp_ops(sti_smp_ops),
4665ebcc11SSrinivas Kandagatla 	.dt_compat	= stih41x_dt_match,
4765ebcc11SSrinivas Kandagatla MACHINE_END
48