xref: /OK3568_Linux_fs/kernel/arch/arm/mach-pxa/colibri.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef _COLIBRI_H_
3*4882a593Smuzhiyun #define _COLIBRI_H_
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <net/ax88796.h>
6*4882a593Smuzhiyun #include <mach/mfp.h>
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun /*
9*4882a593Smuzhiyun  * base board glue for PXA270 module
10*4882a593Smuzhiyun  */
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun enum {
13*4882a593Smuzhiyun 	COLIBRI_EVALBOARD = 0,
14*4882a593Smuzhiyun 	COLIBRI_PXA270_INCOME,
15*4882a593Smuzhiyun };
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #if defined(CONFIG_MACH_COLIBRI_EVALBOARD)
18*4882a593Smuzhiyun extern void colibri_evalboard_init(void);
19*4882a593Smuzhiyun #else
colibri_evalboard_init(void)20*4882a593Smuzhiyun static inline void colibri_evalboard_init(void) {}
21*4882a593Smuzhiyun #endif
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun #if defined(CONFIG_MACH_COLIBRI_PXA270_INCOME)
24*4882a593Smuzhiyun extern void colibri_pxa270_income_boardinit(void);
25*4882a593Smuzhiyun #else
colibri_pxa270_income_boardinit(void)26*4882a593Smuzhiyun static inline void colibri_pxa270_income_boardinit(void) {}
27*4882a593Smuzhiyun #endif
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun /*
30*4882a593Smuzhiyun  * common settings for all modules
31*4882a593Smuzhiyun  */
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun #if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
34*4882a593Smuzhiyun extern void colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin);
35*4882a593Smuzhiyun #else
colibri_pxa3xx_init_mmc(mfp_cfg_t * pins,int len,int detect_pin)36*4882a593Smuzhiyun static inline void colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin) {}
37*4882a593Smuzhiyun #endif
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
40*4882a593Smuzhiyun extern void colibri_pxa3xx_init_lcd(int bl_pin);
41*4882a593Smuzhiyun #else
colibri_pxa3xx_init_lcd(int bl_pin)42*4882a593Smuzhiyun static inline void colibri_pxa3xx_init_lcd(int bl_pin) {}
43*4882a593Smuzhiyun #endif
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun #if defined(CONFIG_AX88796)
46*4882a593Smuzhiyun extern void colibri_pxa3xx_init_eth(struct ax_plat_data *plat_data);
47*4882a593Smuzhiyun #endif
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun #if IS_ENABLED(CONFIG_MTD_NAND_MARVELL)
50*4882a593Smuzhiyun extern void colibri_pxa3xx_init_nand(void);
51*4882a593Smuzhiyun #else
colibri_pxa3xx_init_nand(void)52*4882a593Smuzhiyun static inline void colibri_pxa3xx_init_nand(void) {}
53*4882a593Smuzhiyun #endif
54*4882a593Smuzhiyun 
55*4882a593Smuzhiyun /* physical memory regions */
56*4882a593Smuzhiyun #define COLIBRI_SDRAM_BASE	0xa0000000      /* SDRAM region */
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun /* GPIO definitions for Colibri PXA270 */
59*4882a593Smuzhiyun #define GPIO114_COLIBRI_PXA270_ETH_IRQ	114
60*4882a593Smuzhiyun #define GPIO0_COLIBRI_PXA270_SD_DETECT	0
61*4882a593Smuzhiyun #define GPIO113_COLIBRI_PXA270_TS_IRQ	113
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun /* GPIO definitions for Colibri PXA300/310 */
64*4882a593Smuzhiyun #define GPIO13_COLIBRI_PXA300_SD_DETECT	13
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun /* GPIO definitions for Colibri PXA320 */
67*4882a593Smuzhiyun #define GPIO28_COLIBRI_PXA320_SD_DETECT	28
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun #endif /* _COLIBRI_H_ */
70*4882a593Smuzhiyun 
71