1 /* 2 * Copyright (C) 2010 Broadcom 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 */ 14 15 #include <linux/init.h> 16 #include <linux/irqchip.h> 17 #include <linux/of_address.h> 18 #include <linux/of_platform.h> 19 #include <linux/clk/bcm2835.h> 20 21 #include <asm/mach/arch.h> 22 #include <asm/mach/map.h> 23 24 static void __init bcm2835_init(void) 25 { 26 int ret; 27 28 bcm2835_init_clocks(); 29 30 ret = of_platform_populate(NULL, of_default_bus_match_table, NULL, 31 NULL); 32 if (ret) { 33 pr_err("of_platform_populate failed: %d\n", ret); 34 BUG(); 35 } 36 } 37 38 static const char * const bcm2835_compat[] = { 39 #ifdef CONFIG_ARCH_MULTI_V6 40 "brcm,bcm2835", 41 #endif 42 #ifdef CONFIG_ARCH_MULTI_V7 43 "brcm,bcm2836", 44 #endif 45 NULL 46 }; 47 48 DT_MACHINE_START(BCM2835, "BCM2835") 49 .init_machine = bcm2835_init, 50 .dt_compat = bcm2835_compat 51 MACHINE_END 52