blob: 8f0429d4b79f698d5c0e77117a75a3210f49c34b [file] [log] [blame]
Binghua Duan02c981c2011-07-08 17:40:12 +08001/*
Barry Song013dd122011-09-22 22:51:30 -07002 * Defines machines for CSR SiRFprimaII
Binghua Duan02c981c2011-07-08 17:40:12 +08003 *
4 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
5 *
6 * Licensed under GPLv2 or later.
7 */
8
9#include <linux/init.h>
10#include <linux/kernel.h>
Barry Song1bdfd27a2011-11-17 22:18:14 +080011#include <asm/sizes.h>
Binghua Duan02c981c2011-07-08 17:40:12 +080012#include <asm/mach-types.h>
13#include <asm/mach/arch.h>
14#include <linux/of.h>
15#include <linux/of_platform.h>
16#include "common.h"
17
18static struct of_device_id sirfsoc_of_bus_ids[] __initdata = {
19 { .compatible = "simple-bus", },
20 {},
21};
22
23void __init sirfsoc_mach_init(void)
24{
25 of_platform_bus_probe(NULL, sirfsoc_of_bus_ids, NULL);
26}
27
Shawn Guoa4b46742012-04-26 20:51:36 +080028void __init sirfsoc_init_late(void)
29{
30 sirfsoc_pm_init();
31}
32
Binghua Duan02c981c2011-07-08 17:40:12 +080033static const char *prima2cb_dt_match[] __initdata = {
34 "sirf,prima2-cb",
35 NULL
36};
37
38MACHINE_START(PRIMA2_EVB, "prima2cb")
39 /* Maintainer: Barry Song <baohua.song@csr.com> */
Nicolas Pitre0cc93112011-07-05 22:38:18 -040040 .atag_offset = 0x100,
Binghua Duan02c981c2011-07-08 17:40:12 +080041 .init_early = sirfsoc_of_clk_init,
Barry Song31adb062011-07-08 02:40:13 -070042 .map_io = sirfsoc_map_lluart,
Binghua Duan02c981c2011-07-08 17:40:12 +080043 .init_irq = sirfsoc_of_irq_init,
44 .timer = &sirfsoc_timer,
Nicolas Pitre98b01242011-09-02 21:05:10 -040045 .dma_zone_size = SZ_256M,
Binghua Duan02c981c2011-07-08 17:40:12 +080046 .init_machine = sirfsoc_mach_init,
Shawn Guoa4b46742012-04-26 20:51:36 +080047 .init_late = sirfsoc_init_late,
Binghua Duan02c981c2011-07-08 17:40:12 +080048 .dt_compat = prima2cb_dt_match,
Russell King125c4032011-11-05 10:23:27 +000049 .restart = sirfsoc_restart,
Binghua Duan02c981c2011-07-08 17:40:12 +080050MACHINE_END