1 /* 2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited. 3 * Author(s): Srinivas Kandagatla <srinivas.kandagatla@st.com> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * published by the Free Software Foundation. 8 */ 9 10 #include <linux/clk-provider.h> 11 #include <linux/clocksource.h> 12 #include <linux/irq.h> 13 #include <asm/hardware/cache-l2x0.h> 14 #include <asm/mach/arch.h> 15 16 #include "smp.h" 17 18 void __init stih41x_l2x0_init(void) 19 { 20 u32 way_size = 0x4; 21 u32 aux_ctrl; 22 /* may be this can be encoded in macros like BIT*() */ 23 aux_ctrl = (0x1 << L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT) | 24 (0x1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) | 25 (0x1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT) | 26 (way_size << L2X0_AUX_CTRL_WAY_SIZE_SHIFT); 27 28 l2x0_of_init(aux_ctrl, L2X0_AUX_CTRL_MASK); 29 } 30 31 static void __init stih41x_timer_init(void) 32 { 33 of_clk_init(NULL); 34 clocksource_of_init(); 35 stih41x_l2x0_init(); 36 } 37 38 static const char *stih41x_dt_match[] __initdata = { 39 "st,stih415", 40 "st,stih416", 41 NULL 42 }; 43 44 DT_MACHINE_START(STM, "STiH415/416 SoC with Flattened Device Tree") 45 .init_time = stih41x_timer_init, 46 .smp = smp_ops(sti_smp_ops), 47 .dt_compat = stih41x_dt_match, 48 MACHINE_END 49