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