Efika MX platform support
[efikamx:linux-kernel.git] / arch / arm / mach-mx5 / mx51_efikamx.h
1
2 #include "devices.h"
3 #include "mx51_pins.h"
4 #include "iomux.h"
5
6 #ifndef __MX51_EFIKAMX_H__
7 #define __MX51_EFIKAMX_H__
8
9 #define VIDEO_OUT_STATIC_AUTO   0
10 #define VIDEO_OUT_STATIC_HDMI   1
11 #define VIDEO_OUT_STATIC_DSUB   2
12
13 #define res_matches_refresh(v, x, y, r) \
14                         ((v).xres == (x) && (v).yres == (y) && (v).refresh == (r))
15
16 extern int mx51_efikamx_revision(void);
17
18 /* move to mx51_efikamx.h */
19 extern void __init mx51_efikamx_io_init(void);
20 extern int __init mx51_efikamx_init_mc13892(void);
21 extern void __init mx51_efikamx_timer_init(void);
22
23 /* peripheral inits */
24 extern void __init mx51_efikamx_init_sdhc(void);
25 extern void __init mx51_efikamx_init_leds(void);
26 extern void __init mx51_efikamx_init_power_key(void);
27 extern void __init mx51_efikamx_init_spi(void);
28 extern void __init mx51_efikamx_init_i2c(void);
29 extern void __init mx51_efikamx_init_i2c2(void);
30 extern void __init mx51_efikamx_init_nor(void);
31 extern void __init mx51_efikamx_init_display(void);
32 extern void __init mx51_efikamx_init_usb(void);
33 extern void __init mx51_efikamx_init_pata(void);
34 extern void __init mx51_efikamx_init_usb(void);
35 extern int __init mx51_efikamx_init_pmic(void);
36 extern void __init mx51_efikamx_init_soc(void);
37
38 /* io */
39 extern void mx51_efikamx_board_id(void);
40 extern int mx51_efikamx_revision(void);
41
42 /* cpu */
43 extern struct cpu_wp *(*get_cpu_wp)(int *wp);
44 extern void (*set_num_cpu_wp)(int num);
45 extern struct cpu_wp *mx51_efikamx_get_cpu_wp(int *wp);
46 extern void mx51_efikamx_set_num_cpu_wp(int num);
47
48 /* hmm? */
49 extern void mx51_efikamx_power_off(void);
50
51
52 // DBG(("iomux [%u] %u,%u,%u,%u,%u\n", i, pins[i].pin, pins[i].mux_mode, pins[i].pad_cfg, pins[i].in_select, pins[i].in_mode)); 
53
54 #define CONFIG_IOMUX(pins) \
55 {\
56         int i = 0; \
57         for (i = 0; i < ARRAY_SIZE(pins); i++) { \
58                 mxc_request_iomux(pins[i].pin, pins[i].mux_mode); \
59                 if (pins[i].pad_cfg) \
60                         mxc_iomux_set_pad(pins[i].pin, pins[i].pad_cfg); \
61                 if (pins[i].in_select) \
62                         mxc_iomux_set_input(pins[i].in_select, pins[i].in_mode); \
63         } \
64 }
65
66 extern int mx51_efikamx_reboot(void);
67 extern void mx51_efikamx_power_off(void);
68
69 extern int mxc_init_fb(void);
70 extern void mx51_efikamx_display_adjust_mem(int gpu_start, int gpu_mem, int fb_mem);
71 #define DBG(x) { printk(KERN_ERR "Efika MX: "); printk x ; }
72
73 #endif /* __MX51_EFIKAMX_H__ */