diff options
Diffstat (limited to 'include/soc/sprd/board.h')
| -rw-r--r-- | include/soc/sprd/board.h | 451 |
1 files changed, 451 insertions, 0 deletions
diff --git a/include/soc/sprd/board.h b/include/soc/sprd/board.h new file mode 100644 index 00000000..3e2be639 --- /dev/null +++ b/include/soc/sprd/board.h @@ -0,0 +1,451 @@ +/* + * Copyright (C) 2012 Spreadtrum Communications Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __ASM_ARCH_BOARD_H +#define __ASM_ARCH_BOARD_H + +#ifdef CONFIG_MACH_SP8825EA +#include "__board-sp8825ea.h" +#endif + +#ifdef CONFIG_MACH_SPX35EA +#include "__board-sp8830ea.h" +#endif + +#ifdef CONFIG_MACH_SPX35EB +#include "__board-sp8830eb.h" +#endif + +#ifdef CONFIG_MACH_SP8835EB +#include "__board-sp8835eb.h" +#endif + +#ifdef CONFIG_MACH_SPX35EC +#include "__board-sp8830ec.h" +#endif + +#ifdef CONFIG_MACH_SP8830GEA +#include "__board-sp8830gea.h" +#endif + +#ifdef CONFIG_MACH_SP8730SEA +#include "__board-sp8730sea.h" +#endif + +#ifdef CONFIG_MACH_SP7730GGA +#include "__board-sp7730gga.h" +#endif + +#ifdef CONFIG_MACH_SP7731GGA_LC +#include "__board-sp7731gga_lc.h" +#endif + +#ifdef CONFIG_MACH_SP7730GGA_LC +#include "__board-sp7730gga_lc.h" +#endif + +#ifdef CONFIG_MACH_SP7730GGAOPENPHONE +#include "__board-sp7730ggaopenphone.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEA +#include "__board-sp7731gea.h" +#endif + +#ifdef CONFIG_MACH_SP7732AEA +#include "__board-sp7732Aea.h" +#endif + +#ifdef CONFIG_MACH_SP8730SEEA +#include "__board-sp8730seea.h" +#endif + +#ifdef CONFIG_MACH_SP8730SEEA_QHD +#include "__board-sp8730seea_qhd.h" +#endif + +#ifdef CONFIG_MACH_SP8730SEEA_JIG +#include "__board-sp8730seea_jig.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEA_HD2 +#include "__board-sp7731gea_hd2.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEA_QHD +#include "__board-sp7731gea_qhd.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEA_HD +#include "__board-sp7731gea_hd.h" +#endif + +#ifdef CONFIG_MACH_SP7720EA +#include "__board-sp7720ea.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEA_HDR +#include "__board-sp7731gea_hdr.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEPIKE +#include "__board-sp7731gepike.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEA_FWVGA +#include "__board-sp7731gea_fwvga.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEAOPENPHONE +#include "__board-sp7731geaopenphone.h" +#endif + +#ifdef CONFIG_MACH_SP7731GEA_LC +#include "__board-sp7731gea_lc.h" +#endif + +#ifdef CONFIG_MACH_SP8830GA +#include "__board-sp8830ga.h" +#endif + +#ifdef CONFIG_MACH_SP7730GA +#include "__board-sp7730ga.h" +#endif + +#ifdef CONFIG_MACH_KANAS_W +#include "__board-kanas_w.h" +#endif + +#ifdef CONFIG_MACH_KANAS_TD +#include "__board-kanas_td.h" +#endif + +#ifdef CONFIG_MACH_SP7730EC +#include "__board-sp7730ec.h" +#endif + +#ifdef CONFIG_MACH_SC9620OPENPHONE +#include "__board-sc9620openphone.h" +#endif + +#ifdef CONFIG_MACH_SC9620OPENPHONE_ZT +#include "__board-sc9620openphone_zt.h" +#endif + +#ifdef CONFIG_MACH_SC9620FPGA +#include "__board-sc9620fpga.h" +#endif + +#ifdef CONFIG_MACH_SP7730ECTRISIM +#include "__board-sp7730ectrisim.h" +#endif + +#ifdef CONFIG_MACH_SP5735EA +#include "__board-sp5735ea.h" +#endif + +#ifdef CONFIG_MACH_SP5735C1EA +#include "__board-sp5735c1ea.h" +#endif + +#if defined (CONFIG_MACH_SPX35FPGA) || defined (CONFIG_MACH_SPX15FPGA) || defined(CONFIG_MACH_SPX35LFPGA) || defined(CONFIG_MACH_PIKELFPGA) +#include "__board-sp8830fpga.h" +#endif + +#ifdef CONFIG_MACH_SP9820FPGA +#include "__board-sp9820fpga.h" +#endif + +#ifdef CONFIG_MACH_SP9820EA +#include "__board-sp9820ea.h" +#endif + +#ifdef CONFIG_MACH_COREPRIMELITE +#include "__board-coreprimelite.h" +#endif + +#ifdef CONFIG_MACH_TIZENZ3_3G +#include "__board-tizenz3_3g.h" +#endif + +#ifdef CONFIG_MACH_SHARKLS_Z3LTE +#include "__board-sharkls_z3lte.h" +#endif + +#if defined (CONFIG_MACH_SP9836AEA_4MOD) || defined(CONFIG_MACH_SP9836AEA_3MOD) +#include "__board-sp9836aea.h" +#endif + +#if defined (CONFIG_MACH_SP9838AEA_5MOD) || defined(CONFIG_MACH_SP9838AEA_POWER_DEBUG) || defined(CONFIG_MACH_SP9838AEA_8CORE_LIGHT_SLEEP) || defined(CONFIG_MACH_SP9838AEA_FHD) || defined(CONFIG_MACH_SP9838AEA_FPGA) +#include "__board-sp9838aea.h" +#endif + +#if defined (CONFIG_MACH_SS_SHARKLT8) || defined(CONFIG_MACH_SS_SHARKLT8LIGHTSLEEP) +#include "__board-ss_sharklt8.h" +#endif + +#ifdef CONFIG_MACH_SP9630EA3MN +#include "__board-sp9630ea3mn.h" +#endif + +#ifdef CONFIG_MACH_SP9630EA4MN +#include "__board-sp9630ea4mn.h" +#endif + +#ifdef CONFIG_MACH_SP9830AEA_5M_H100 +#include "__board-sp9830aea_5m_h100.h" +#endif + +#ifdef CONFIG_MACH_SP9830AEA_5M_VOLTE +#include "__board-sp9830aea_5m_volte.h" +#endif + +#ifdef CONFIG_MACH_SP9830AEB_5M_H100 +#include "__board-sp9830aeb_5m_h100.h" +#endif + +#ifdef CONFIG_MACH_SP9830AEC_4M_H100 +#include "__board-sp9830aec_4m_h100.h" +#endif + +#ifdef CONFIG_MACH_SP9830IEA_4M_H100 +#include "__board-sp9830iea_4m_h100.h" +#endif + +#ifdef CONFIG_MACH_SP9830IEA_5M_H100 +#include "__board-sp9830iea_5m_h100.h" +#endif + +#ifdef CONFIG_MACH_SP9830IEB_5M_H100 +#include "__board-sp9830ieb_5m_h100.h" +#endif + +#ifdef CONFIG_MACH_SP9830IEC_4M_H100 +#include "__board-sp9830iec_4m_h100.h" +#endif + +#ifdef CONFIG_MACH_SP7735EC +#include "__board-sp7735ec.h" +#endif + +#if defined (CONFIG_MACH_SP7715EA) || defined(CONFIG_MACH_SPX15) +#include "__board-sp7715ea.h" +#endif + +#ifdef CONFIG_MACH_SP7715EATRISIM +#include "__board-sp7715eatrisim.h" +#endif + +#ifdef CONFIG_MACH_SP7715EAOPENPHONE +#include "__board-sp7715eaopenphone.h" +#endif + +#ifdef CONFIG_MACH_SP6815GA +#include "__board-sp6815ga.h" +#endif +#ifdef CONFIG_MACH_SP7715GA +#include "__board-sp7715ga.h" +#endif + +#ifdef CONFIG_MACH_SP7715GATRISIM +#include "__board-sp7715gatrisim.h" +#endif + +#ifdef CONFIG_MACH_SP8815GA +#include "__board-sp8815ga.h" +#endif + +#ifdef CONFIG_MACH_SP8815GAOPENPHONE +#include "__board-sp8815gaopenphone.h" +#endif + +#ifdef CONFIG_MACH_POCKET2 +#include "__board-pocket2.h" +#endif + +#ifdef CONFIG_MACH_CORSICA_VE +#include "__board-corsica_ve.h" +#endif + +#ifdef CONFIG_MACH_VIVALTO +#include "__board-vivalto.h" +#endif + +#ifdef CONFIG_MACH_YOUNG2 +#include "__board-young2.h" +#endif + +#ifdef CONFIG_MACH_HIGGS +#include "__board-higgs.h" +#endif + +#ifdef CONFIG_MACH_TSHARKWSAMSUNG +#include "__board-tsharkwsamsung.h" +#endif + +#ifdef CONFIG_MACH_CORE3 +#include "__board-core3.h" +#endif +#ifdef CONFIG_MACH_TSHARK2TABE +#include "__board-tshark2tabe.h" +#endif +#ifdef CONFIG_MACH_GRANDPRIME3G_VE +#include "__board-grandprime3g_ve.h" +#endif +#ifdef CONFIG_MACH_GRANDPRIME_DTV +#include "__board-grandprime_dtv.h" +#endif +#ifdef CONFIG_MACH_PIKEAYOUNG2DTV +#include "__board-pikeayoung2dtv.h" +#endif + +#ifdef CONFIG_MACH_COREPRIME3G_VE +#include "__board-coreprime3g_ve.h" +#endif +#include <asm/sizes.h> + +#ifdef CONFIG_SPRD_IOMMU + #define SPRD_H264_DECODE_SIZE (0 * SZ_1M) +#else + #define SPRD_H264_DECODE_SIZE (25 * SZ_1M) +#endif + +#ifdef CONFIG_ION + #ifdef CONFIG_ARCH_SCX35 + #ifdef CONFIG_SPRD_IOMMU + #define SPRD_ION_MM_SIZE (0 * SZ_1M) + #else + #ifndef SPRD_ION_MM_SIZE /* should be defined in "__board-sp**.h" already */ + #define SPRD_ION_MM_SIZE (76 * SZ_1M) + #endif + #endif + + #ifndef SPRD_ION_OVERLAY_SIZE /* should be defined in "__board-sp**.h" already */ + #define SPRD_ION_OVERLAY_SIZE (12 * SZ_1M) + #endif + #else + #ifndef SPRD_ION_MM_SIZE + #define SPRD_ION_MM_SIZE (CONFIG_SPRD_ION_MM_SIZE * SZ_1M) + #endif + + #ifndef SPRD_ION_OVERLAY_SIZE + #define SPRD_ION_OVERLAY_SIZE (CONFIG_SPRD_ION_OVERLAY_SIZE * SZ_1M) + #endif + #endif +#else /* !ION */ + #define SPRD_ION_MM_SIZE (0 * SZ_1M) + #define SPRD_ION_OVERLAY_SIZE (0 * SZ_1M) +#endif + +#ifdef CONFIG_CMA +#ifdef CONFIG_SPRD_IOMMU + #define CMA_MARGIN (0 * SZ_1M) + #define CMA_RESERVE (0 * SZ_1M) + #define CMA_THRESHOLD (0 * SZ_1M) +#else + #define CMA_MARGIN (0 * SZ_1M) + #define CMA_RESERVE (25 * SZ_1M) + #define CMA_THRESHOLD (4 * SZ_1M) +#endif + #define CMA_ALIGNMENT (4 * SZ_1M) + #define SPRD_ION_MEM_RAW_SIZE (SPRD_ION_MM_SIZE + SPRD_ION_OVERLAY_SIZE + CMA_MARGIN - CMA_RESERVE) + /* ALIGN UP */ + #define SPRD_ION_MEM_SIZE (((SPRD_ION_MEM_RAW_SIZE + (CMA_ALIGNMENT - 1)) & (~(CMA_ALIGNMENT - 1))) + CMA_RESERVE) +#else + #define SPRD_ION_MEM_SIZE (SPRD_ION_MM_SIZE + SPRD_ION_OVERLAY_SIZE) +#endif + +#define SPRD_ION_BASE_USE_VARIABLE +#ifndef SPRD_ION_BASE_USE_VARIABLE +#if defined(CONFIG_MACH_SP7715GA) || defined(CONFIG_MACH_SP7715GATRISIM) || defined(CONFIG_MACH_SP8815GA) || defined(CONFIG_MACH_SP8815GAOPENPHONE) || defined(CONFIG_MACH_SP6815GA) || defined(CONFIG_MACH_SP7731GEA_LC) || defined(CONFIG_MACH_SP7731GGA_LC) || defined(CONFIG_MACH_SP7730GGA_LC)/* Nand 4+2 */ +#define SPRD_ION_MEM_BASE \ + ((CONFIG_PHYS_OFFSET & (~(SZ_256M - 1))) + SZ_256M - SPRD_ION_MEM_SIZE) +#else +#define SPRD_ION_MEM_BASE \ + ((CONFIG_PHYS_OFFSET & (~(SZ_512M - 1))) + SZ_512M - SPRD_ION_MEM_SIZE) +#endif +#else + +#if (defined(CONFIG_MACH_SP8730SEEA) \ + || defined(CONFIG_MACH_SP7732AEA) \ + || defined(CONFIG_MACH_SP8730SEEA_QHD) || defined(CONFIG_MACH_SP8730SEEA_JIG) \ + || defined(CONFIG_MACH_TSHARKCOREPRIME) \ + || defined(CONFIG_MACH_TSHARKGRANDNEO) \ + || defined(CONFIG_MACH_COREPRIME3G_VE) || defined(CONFIG_MACH_TIZENZ3_3G) || defined(CONFIG_MACH_GRANDPRIME_DTV) \ + || defined(CONFIG_MACH_SP9830I) \ + || defined(CONFIG_MACH_SP9830AEA_5M_H100) \ + || defined(CONFIG_MACH_SP9830AEC_4M_H100) \ + || defined(CONFIG_MACH_SP9830AEA_5M_VOLTE) \ + || defined(CONFIG_MACH_SP9630EA4MN) \ + || defined(CONFIG_MACH_SP9630EB4MN) \ + || defined(CONFIG_MACH_GRANDPRIME3G_VE) \ + || defined(CONFIG_MACH_SP7720EA) \ + || defined(CONFIG_MACH_SP7731GEA_HD) \ + || defined(CONFIG_MACH_SP7731GEA_HDR) \ + || defined(CONFIG_MACH_SP7731GEPIKE) \ + || defined(CONFIG_MACH_SP7731GEA_HD2) \ + || defined(CONFIG_MACH_SP7731GEA_QHD)) +#define SPRD_ION_MEM_BASE \ + ((CONFIG_PHYS_OFFSET & (~(SZ_1G - 1))) + SZ_1G - SPRD_ION_MEM_SIZE) +#elif (defined(CONFIG_MACH_TSHARK2TABE)) +#define SPRD_ION_MEM_BASE \ + ((CONFIG_PHYS_OFFSET & (~(SZ_1G_512M - 1))) + SZ_1G_512M - SPRD_ION_MEM_SIZE) +#else +extern phys_addr_t sprd_reserve_limit; +#define SPRD_ION_MEM_BASE (sprd_reserve_limit - SPRD_ION_MEM_SIZE) +#endif + +#endif + + +#define SPRD_ION_MM_BASE (SPRD_ION_MEM_BASE) +#define SPRD_ION_OVERLAY_BASE (SPRD_ION_MEM_BASE + SPRD_ION_MM_SIZE) + +#ifdef CONFIG_PSTORE_RAM +#define SPRD_RAM_CONSOLE_SIZE 0x20000 +#define SPRD_RAM_CONSOLE_START (SPRD_ION_MEM_BASE - SPRD_RAM_CONSOLE_SIZE) +#else +#define SPRD_RAM_CONSOLE_START (SPRD_ION_MEM_BASE) +#endif + +#ifdef CONFIG_FB_LCD_RESERVE_MEM +//#define SPRD_FB_MEM_SIZE SZ_8M +#define SPRD_FB_MEM_SIZE (CONFIG_SPRD_FB_SIZE*SZ_1M) +#define SPRD_FB_MEM_BASE (SPRD_RAM_CONSOLE_START - SPRD_FB_MEM_SIZE) +#endif + +#ifdef CONFIG_SPRD_IQ +#define SPRD_IQ_SIZE SZ_128M +#endif + +//#define SPRD_SYSDUMP_MAGIC (SPRD_ION_MEM_BASE + SPRD_ION_MEM_SIZE - SZ_1M) +#define SPRD_SYSDUMP_MAGIC (0x80000000 + 0x20000000 - (1024<<10)) + +struct sysdump_mem { + unsigned long paddr; + unsigned long vaddr; + unsigned long soff; + size_t size; + int type; +}; + +enum sysdump_type { + SYSDUMP_RAM, + SYSDUMP_MODEM, + SYSDUMP_IOMEM, +}; + +extern int sprd_dump_mem_num; +extern struct sysdump_mem sprd_dump_mem[]; + +#endif |
