21
21
#define CHIP_ID_F81866 0x1010
22
22
#define CHIP_ID_F81966 0x0215
23
23
#define CHIP_ID_F81216AD 0x1602
24
+ #define CHIP_ID_F81216E 0x1617
24
25
#define CHIP_ID_F81216H 0x0501
25
26
#define CHIP_ID_F81216 0x0802
26
27
#define VENDOR_ID1 0x23
@@ -158,6 +159,7 @@ static int fintek_8250_check_id(struct fintek_8250 *pdata)
158
159
case CHIP_ID_F81866 :
159
160
case CHIP_ID_F81966 :
160
161
case CHIP_ID_F81216AD :
162
+ case CHIP_ID_F81216E :
161
163
case CHIP_ID_F81216H :
162
164
case CHIP_ID_F81216 :
163
165
break ;
@@ -181,6 +183,7 @@ static int fintek_8250_get_ldn_range(struct fintek_8250 *pdata, int *min,
181
183
return 0 ;
182
184
183
185
case CHIP_ID_F81216AD :
186
+ case CHIP_ID_F81216E :
184
187
case CHIP_ID_F81216H :
185
188
case CHIP_ID_F81216 :
186
189
* min = F81216_LDN_LOW ;
@@ -250,6 +253,7 @@ static void fintek_8250_set_irq_mode(struct fintek_8250 *pdata, bool is_level)
250
253
break ;
251
254
252
255
case CHIP_ID_F81216AD :
256
+ case CHIP_ID_F81216E :
253
257
case CHIP_ID_F81216H :
254
258
case CHIP_ID_F81216 :
255
259
sio_write_mask_reg (pdata , FINTEK_IRQ_MODE , IRQ_SHARE ,
@@ -263,7 +267,8 @@ static void fintek_8250_set_irq_mode(struct fintek_8250 *pdata, bool is_level)
263
267
static void fintek_8250_set_max_fifo (struct fintek_8250 * pdata )
264
268
{
265
269
switch (pdata -> pid ) {
266
- case CHIP_ID_F81216H : /* 128Bytes FIFO */
270
+ case CHIP_ID_F81216E : /* 128Bytes FIFO */
271
+ case CHIP_ID_F81216H :
267
272
case CHIP_ID_F81966 :
268
273
case CHIP_ID_F81866 :
269
274
sio_write_mask_reg (pdata , FIFO_CTRL ,
@@ -297,6 +302,7 @@ static void fintek_8250_set_termios(struct uart_port *port,
297
302
goto exit ;
298
303
299
304
switch (pdata -> pid ) {
305
+ case CHIP_ID_F81216E :
300
306
case CHIP_ID_F81216H :
301
307
reg = RS485 ;
302
308
break ;
@@ -346,6 +352,7 @@ static void fintek_8250_set_termios_handler(struct uart_8250_port *uart)
346
352
struct fintek_8250 * pdata = uart -> port .private_data ;
347
353
348
354
switch (pdata -> pid ) {
355
+ case CHIP_ID_F81216E :
349
356
case CHIP_ID_F81216H :
350
357
case CHIP_ID_F81966 :
351
358
case CHIP_ID_F81866 :
@@ -438,6 +445,11 @@ static void fintek_8250_set_rs485_handler(struct uart_8250_port *uart)
438
445
uart -> port .rs485_supported = fintek_8250_rs485_supported ;
439
446
break ;
440
447
448
+ case CHIP_ID_F81216E : /* F81216E does not support RS485 delays */
449
+ uart -> port .rs485_config = fintek_8250_rs485_config ;
450
+ uart -> port .rs485_supported = fintek_8250_rs485_supported ;
451
+ break ;
452
+
441
453
default : /* No RS485 Auto direction functional */
442
454
break ;
443
455
}
0 commit comments