2 //--------------------------------------------------------
\r
5 // Melfas MCS7000 Series Download base v1.0 2010.04.05
\r
8 //--------------------------------------------------------
\r
10 #ifndef __MELFAS_DOWNLOAD_PORTING_H_INCLUDED__
\r
11 #define __MELFAS_DOWNLOAD_PORTING_H_INCLUDED__
\r
13 //============================================================
\r
17 //============================================================
\r
20 1. melfas_download_porting.h
\r
21 - Check typedef [melfas_download_porting.h]
\r
23 - Check download options [melfas_download_porting.h]
\r
25 - Add Port control code ( CE, RESETB, I2C,... ) [melfas_download_porting.h]
\r
27 - Apply your delay function ( inside mcsdl_delaly() ) [melfas_download.c]
\r
28 Modify delay parameter constant ( ex. MCSDL_DELAY_5MS ) to make it fit to your delay function.
\r
30 - Rename 'uart_printf()' to your console print function for debugging. [melfas_download_porting.h]
\r
31 or, define uart_printf() as different function properly.
\r
33 - Check Watchdog timer, Interrupt factor
\r
35 - Including Melfas binary .c file
\r
37 - Basenad dealy function
\r
38 fill up mcsdl_delay()
\r
40 - Implement processing external Melfas binary .bin file.
\r
44 //============================================================
\r
48 //============================================================
\r
51 typedef unsigned char UINT8;
\r
52 //typedef unsigned char uint8_t;
\r
53 typedef short INT16;
\r
54 typedef unsigned short UINT16;
\r
55 //typedef unsigned short uint16_t;
\r
57 typedef unsigned int UINT32;
\r
58 typedef unsigned char BOOLEAN;
\r
66 #define FALSE (1==0)
\r
73 #define GPIO_TOUCH_I2C_SDA
\r
74 #ifndef GPIO_TOUCH_I2C_SDA
\r
75 #define GPIO_TOUCH_I2C_SDA GPIO_I2C0_SDA
\r
76 #define GPIO_TOUCH_I2C_SCL GPIO_I2C0_SCL
\r
79 //============================================================
\r
81 // Porting Download Options
\r
83 //============================================================
\r
85 // For printing debug information. ( Please check 'printing function' )
\r
86 #define MELFAS_ENABLE_DBG_PRINT 1
\r
87 #define MELFAS_ENABLE_DBG_PROGRESS_PRINT 1
\r
89 // For delay function test. ( Disable after Porting is finished )
\r
90 #define MELFAS_ENABLE_DELAY_TEST 0
\r
93 //============================================================
\r
95 // IO Control poting.
\r
97 // Fill 'Using signal' up only.
\r
98 // See MCSDL_USE_VDD_CONTROL,
\r
99 // MCSDL_USE_CE_CONTROL,
\r
101 //============================================================
\r
106 #define GPIO_TOUCH_EN S5PV310_GPL0(3)
\r
107 #if MCSDL_USE_VDD_CONTROL
\r
108 #define MCSDL_VDD_SET_HIGH() gpio_set_value(GPIO_TOUCH_EN, 1)
\r
109 #define MCSDL_VDD_SET_LOW() gpio_set_value(GPIO_TOUCH_EN, 0)
\r
111 #define MCSDL_VDD_SET_HIGH() // Nothing
\r
112 #define MCSDL_VDD_SET_LOW() // Nothing
\r
118 #if MCSDL_USE_CE_CONTROL
\r
119 #define MCSDL_CE_SET_HIGH() gpio_set_value(GPIO_TOUCH_EN, 1)
\r
120 #define MCSDL_CE_SET_LOW() gpio_set_value(GPIO_TOUCH_EN, 0)
\r
121 #define MCSDL_CE_SET_OUTPUT() gpio_tlmm_config(GPIO_CFG(TOUCH_EN, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_16MA),GPIO_CFG_ENABLE)
\r
123 #define MCSDL_CE_SET_HIGH() // Nothing
\r
124 #define MCSDL_CE_SET_LOW() // Nothing
\r
125 #define MCSDL_CE_SET_OUTPUT() // Nothing
\r
129 #define melfas_i2c_gpio_scl() gpio_tlmm_config(GPIO_CFG(GPIO_TSP_SCL, 0, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_2MA),1);
\r
130 #define melfas_i2c_gpio_sda() gpio_tlmm_config(GPIO_CFG(GPIO_TSP_SDA, 0, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_2MA),1);
\r
137 #define GPIO_TOUCH_INT S5PV310_GPX0(4)
\r
138 #if MCSDL_USE_RESETB_CONTROL
\r
139 #define MCSDL_RESETB_SET_HIGH() gpio_set_value(GPIO_TOUCH_INT, 1)
\r
140 #define MCSDL_RESETB_SET_LOW() gpio_set_value(GPIO_TOUCH_INT, 0)
\r
141 #define MCSDL_RESETB_SET_OUTPUT(n) gpio_direction_output(GPIO_TOUCH_INT, n)
\r
142 #define MCSDL_RESETB_SET_INPUT() gpio_direction_input(GPIO_TOUCH_INT)
\r
144 #define MCSDL_RESETB_SET_HIGH()
\r
145 #define MCSDL_RESETB_SET_LOW()
\r
146 #define MCSDL_RESETB_SET_OUTPUT()
\r
147 #define MCSDL_RESETB_SET_INPUT()
\r
151 //------------------
\r
153 //------------------
\r
154 #define GPIO_TSP_SDA S5PV310_GPA1(2)
\r
155 #define GPIO_TSP_SCL S5PV310_GPA1(3)
\r
156 #define MCSDL_GPIO_SCL_SET_HIGH() gpio_set_value(GPIO_TSP_SCL, 1)
\r
157 #define MCSDL_GPIO_SCL_SET_LOW() gpio_set_value(GPIO_TSP_SCL, 0)
\r
159 #define MCSDL_GPIO_SDA_SET_HIGH() gpio_set_value(GPIO_TSP_SDA, 1)
\r
160 #define MCSDL_GPIO_SDA_SET_LOW() gpio_set_value(GPIO_TSP_SDA, 0)
\r
162 #define MCSDL_GPIO_SCL_SET_OUTPUT(n) gpio_direction_output(GPIO_TSP_SCL, n)
\r
163 #define MCSDL_GPIO_SCL_SET_INPUT() gpio_direction_input(GPIO_TSP_SCL)
\r
165 #define MCSDL_GPIO_SDA_SET_OUTPUT(n) gpio_direction_output(GPIO_TSP_SDA, n)
\r
166 #define MCSDL_GPIO_SDA_SET_INPUT() gpio_direction_input(GPIO_TSP_SDA)
\r
168 #define MCSDL_GPIO_SDA_IS_HIGH() ((gpio_get_value(GPIO_TSP_SDA) > 0) ? 1 : 0)
\r
170 #define MCSDL_SET_GPIO_I2C() // Nothing
\r
171 #define MCSDL_SET_HW_I2C() // Nothing
\r
175 //============================================================
\r
177 // Delay parameter setting
\r
179 // These are used on 'mcsdl_delay()'
\r
181 //============================================================
\r
183 #define MCSDL_DELAY_1US 1
\r
184 #define MCSDL_DELAY_2US 2
\r
185 #define MCSDL_DELAY_3US 3
\r
186 #define MCSDL_DELAY_5US 5
\r
187 #define MCSDL_DELAY_7US 7
\r
188 #define MCSDL_DELAY_10US 10
\r
189 #define MCSDL_DELAY_15US 15
\r
190 #define MCSDL_DELAY_20US 20
\r
192 #define MCSDL_DELAY_100US 100
\r
193 #define MCSDL_DELAY_150US 150
\r
194 #define MCSDL_DELAY_500US 500
\r
195 #define MCSDL_DELAY_800US 800
\r
198 #define MCSDL_DELAY_1MS 1000
\r
199 #define MCSDL_DELAY_5MS 5000
\r
200 #define MCSDL_DELAY_10MS 10000
\r
201 #define MCSDL_DELAY_25MS 25000
\r
202 #define MCSDL_DELAY_30MS 30000
\r
203 #define MCSDL_DELAY_40MS 40000
\r
204 #define MCSDL_DELAY_45MS 45000
\r
207 #define MCSDL_DELAY_60MS 60000
\r
208 #define MCSDL_DELAY_40US 40
\r
209 #define MCSDL_DELAY_300US 300
\r
212 //============================================================
\r
214 // Defence External Effect
\r
216 //============================================================
\r
219 #define MELFAS_DISABLE_BASEBAND_ISR() ____HERE!_____
\r
220 #define MELFAS_DISABLE_WATCHDOG_TIMER_RESET() ____HERE!_____
\r
222 #define MELFAS_ROLLBACK_BASEBAND_ISR() ____HERE!_____
\r
223 #define MELFAS_ROLLBACK_WATCHDOG_TIMER_RESET() ____HERE!_____
\r
227 #define MELFAS_DISABLE_BASEBAND_ISR() // Nothing
\r
228 #define MELFAS_DISABLE_WATCHDOG_TIMER_RESET() // Nothing
\r
230 #define MELFAS_ROLLBACK_BASEBAND_ISR() // Nothing
\r
231 #define MELFAS_ROLLBACK_WATCHDOG_TIMER_RESET() // Nothing
\r