1 /* Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved. 2 * 3 * This program is free software; you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License version 2 and 5 * only version 2 as published by the Free Software Foundation. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 */ 12 13 #ifndef MSM_FB_DEF_H 14 #define MSM_FB_DEF_H 15 16 #include <linux/module.h> 17 #include <linux/moduleparam.h> 18 #include <linux/kernel.h> 19 #include <linux/slab.h> 20 #include <linux/delay.h> 21 #include <linux/mm.h> 22 #include <linux/fb.h> 23 #include "msm_mdp.h" 24 #include <linux/init.h> 25 #include <linux/ioport.h> 26 #include <linux/device.h> 27 #include <linux/dma-mapping.h> 28 #include <linux/uaccess.h> 29 #include <linux/workqueue.h> 30 #include <linux/string.h> 31 #include <linux/version.h> 32 #include <linux/proc_fs.h> 33 #include <linux/vmalloc.h> 34 #include <linux/debugfs.h> 35 #include <linux/console.h> 36 37 #include <linux/sched.h> 38 #include <linux/time.h> 39 #include <linux/interrupt.h> 40 #include <mach/hardware.h> 41 #include <linux/io.h> 42 #include <asm/system.h> 43 #include <asm/mach-types.h> 44 #include <linux/platform_device.h> 45 46 typedef s64 int64; 47 typedef s32 int32; 48 typedef s16 int16; 49 typedef s8 int8; 50 51 typedef u64 uint64; 52 typedef u32 uint32; 53 typedef u16 uint16; 54 typedef u8 uint8; 55 56 typedef s32 int4; 57 typedef s16 int2; 58 typedef s8 int1; 59 60 typedef u32 uint4; 61 typedef u16 uint2; 62 typedef u8 uint1; 63 64 typedef u32 dword; 65 typedef u16 word; 66 typedef u8 byte; 67 68 typedef unsigned int boolean; 69 70 #ifndef TRUE 71 #define TRUE 1 72 #endif 73 74 #ifndef FALSE 75 #define FALSE 0 76 #endif 77 78 #define MSM_FB_ENABLE_DBGFS 79 #define FEATURE_MDDI 80 81 #define outp32(addr, val) writel(val, addr) 82 #define outp16(addr, val) writew(val, addr) 83 #define outp8(addr, val) writeb(val, addr) 84 #define outp(addr, val) outp32(addr, val) 85 86 #ifndef MAX 87 #define MAX( x, y ) (((x) > (y)) ? (x) : (y)) 88 #endif 89 90 #ifndef MIN 91 #define MIN( x, y ) (((x) < (y)) ? (x) : (y)) 92 #endif 93 94 /*--------------------------------------------------------------------------*/ 95 96 #define inp32(addr) readl(addr) 97 #define inp16(addr) readw(addr) 98 #define inp8(addr) readb(addr) 99 #define inp(addr) inp32(addr) 100 101 #define inpw(port) readw(port) 102 #define outpw(port, val) writew(val, port) 103 #define inpdw(port) readl(port) 104 #define outpdw(port, val) writel(val, port) 105 106 107 #define clk_busy_wait(x) msleep_interruptible((x)/1000) 108 109 #define memory_barrier() 110 111 #define assert(expr) \ 112 if(!(expr)) { \ 113 printk(KERN_ERR "msm_fb: assertion failed! %s,%s,%s,line=%d\n",\ 114 #expr, __FILE__, __func__, __LINE__); \ 115 } 116 117 #define ASSERT(x) assert(x) 118 119 #define DISP_EBI2_LOCAL_DEFINE 120 #ifdef DISP_EBI2_LOCAL_DEFINE 121 #define LCD_PRIM_BASE_PHYS 0x98000000 122 #define LCD_SECD_BASE_PHYS 0x9c000000 123 #define EBI2_PRIM_LCD_RS_PIN 0x20000 124 #define EBI2_SECD_LCD_RS_PIN 0x20000 125 126 #define EBI2_PRIM_LCD_CLR 0xC0 127 #define EBI2_PRIM_LCD_SEL 0x40 128 129 #define EBI2_SECD_LCD_CLR 0x300 130 #define EBI2_SECD_LCD_SEL 0x100 131 #endif 132 133 extern u32 msm_fb_msg_level; 134 135 /* 136 * Message printing priorities: 137 * LEVEL 0 KERN_EMERG (highest priority) 138 * LEVEL 1 KERN_ALERT 139 * LEVEL 2 KERN_CRIT 140 * LEVEL 3 KERN_ERR 141 * LEVEL 4 KERN_WARNING 142 * LEVEL 5 KERN_NOTICE 143 * LEVEL 6 KERN_INFO 144 * LEVEL 7 KERN_DEBUG (Lowest priority) 145 */ 146 #define MSM_FB_EMERG(msg, ...) \ 147 if (msm_fb_msg_level > 0) \ 148 printk(KERN_EMERG msg, ## __VA_ARGS__); 149 #define MSM_FB_ALERT(msg, ...) \ 150 if (msm_fb_msg_level > 1) \ 151 printk(KERN_ALERT msg, ## __VA_ARGS__); 152 #define MSM_FB_CRIT(msg, ...) \ 153 if (msm_fb_msg_level > 2) \ 154 printk(KERN_CRIT msg, ## __VA_ARGS__); 155 #define MSM_FB_ERR(msg, ...) \ 156 if (msm_fb_msg_level > 3) \ 157 printk(KERN_ERR msg, ## __VA_ARGS__); 158 #define MSM_FB_WARNING(msg, ...) \ 159 if (msm_fb_msg_level > 4) \ 160 printk(KERN_WARNING msg, ## __VA_ARGS__); 161 #define MSM_FB_NOTICE(msg, ...) \ 162 if (msm_fb_msg_level > 5) \ 163 printk(KERN_NOTICE msg, ## __VA_ARGS__); 164 #define MSM_FB_INFO(msg, ...) \ 165 if (msm_fb_msg_level > 6) \ 166 printk(KERN_INFO msg, ## __VA_ARGS__); 167 #define MSM_FB_DEBUG(msg, ...) \ 168 if (msm_fb_msg_level > 7) \ 169 printk(KERN_DEBUG msg, ## __VA_ARGS__); 170 171 #ifdef MSM_FB_C 172 unsigned char *msm_mdp_base; 173 unsigned char *msm_pmdh_base; 174 unsigned char *msm_emdh_base; 175 #else 176 extern unsigned char *msm_mdp_base; 177 extern unsigned char *msm_pmdh_base; 178 extern unsigned char *msm_emdh_base; 179 #endif 180 181 #endif /* MSM_FB_DEF_H */ 182