a3db18011e9df213cb6adcb025364ffa0b1087cb
[profile/mobile/platform/kernel/u-boot-tm1.git] / board / spreadtrum / sp7715eaopenphone / openphone.c
1 #include <common.h>
2 #include <asm/io.h>
3 #include <asm/arch/ldo.h>
4 #include <asm/arch/sprd_reg_ahb.h>
5 #include <asm/arch/regs_ahb.h>
6 #include <asm/arch/common.h>
7 #include <asm/arch/adi_hal_internal.h>
8 #include <asm/u-boot.h>
9 #include <part.h>
10 #include <sdhci.h>
11 #include <asm/arch/mfp.h>
12 #include <linux/gpio.h>
13 #include <asm/arch/gpio.h>
14 #include <asm/arch/pinmap.h>
15 #include <asm/arch/low_power.h>
16 #include "ldo.h"
17 #include "pll.h"
18 #include "shutdown.h"
19 DECLARE_GLOBAL_DATA_PTR;
20
21 //#define GPIO_CP2_RFCTL      169
22
23 extern void sprd_gpio_init(void);
24 extern void ADI_init (void);
25 extern int LDO_Init(void);
26 extern void ADC_Init(void);
27 extern int sound_init(void);
28 extern void init_ldo_sleep_gr(void);
29
30 #ifdef CONFIG_GENERIC_MMC
31 int mv_sdh_init(u32 regbase, u32 max_clk, u32 min_clk, u32 quirks);
32 int mmc_sdcard_init();
33
34 int board_mmc_init(bd_t *bd)
35 {
36         mmc_sdcard_init();
37
38         mv_sdh_init(CONFIG_SYS_SD_BASE, SDIO_BASE_CLK_192M,
39                         SDIO_CLK_250K, 0);
40
41         return 0;
42 }
43 #endif
44
45 extern struct eic_gpio_resource sprd_gpio_resource[];
46 #if 0
47 static void cp2_rfctl_init(void)
48 {
49         sprd_gpio_request(NULL,GPIO_CP2_RFCTL);
50         sprd_gpio_direction_output(NULL, GPIO_CP2_RFCTL, 1);
51         sprd_gpio_set(NULL, GPIO_CP2_RFCTL, 1);
52 }
53 #endif
54 int board_init()
55 {
56         gd->bd->bi_arch_number = MACH_TYPE_OPENPHONE;
57         gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
58         ADI_init();
59         misc_init();
60         LDO_Init();
61         ADC_Init();
62         pin_init();
63         sprd_eic_init();
64         sprd_gpio_init();
65         sound_init();
66         //init_ldo_sleep_gr();
67         if (ANA_GET_CHIP_ID() == 0x2711a000) {
68                 customize_low_power_init_prepare(fixed_ldo_cfg,
69                                                                         fixed_pll_cfg_0x2711a000, fixed_shutdown_cfg);
70         }
71         else {
72                 customize_low_power_init_prepare(fixed_ldo_cfg, fixed_pll_cfg, fixed_shutdown_cfg);
73         }
74         low_power_init();
75         //TDPllRefConfig(1);
76         //cp2_rfctl_init();
77
78         return 0;
79 }
80
81 int dram_init(void)
82 {
83         gd->ram_size = get_ram_size((volatile void *)PHYS_SDRAM_1,
84                         PHYS_SDRAM_1_SIZE);
85         return 0;
86 }