From: "Ji-Ze Hong (Peter Hong)" <hpeter@gmail.com>
To: gregkh@linuxfoundation.org, jslaby@suse.com, ricardo.ribalda@gmail.com
Cc: arnd@arndb.de, peter@hurleysoftware.com,
linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
tom_tsai@fintek.com.tw, peter_hong@fintek.com.tw,
"Ji-Ze Hong (Peter Hong)" <hpeter+linux_kernel@gmail.com>
Subject: [PATCH 5/7] serial: 8250_fintek: Add F81216 Support
Date: Thu, 1 Sep 2016 11:39:54 +0800 [thread overview]
Message-ID: <1472701196-14795-6-git-send-email-hpeter+linux_kernel@gmail.com> (raw)
In-Reply-To: <1472701196-14795-1-git-send-email-hpeter+linux_kernel@gmail.com>
Fintek F81216 is a LPC to 4 UARTs device. It's the F81216 series but
support less functional than F81216AD/F81216H
The following list is brief descriptions of F81216 series:
F81216H (0105)
9Bit/High baud rate(not implements with mainline)
RS485, 128Bytes FIFO (implemented)
F81216AD (0216)
9Bit(not implements with mainline)
RS485(implemented)
F81216 (0208)
basically 16550A
Signed-off-by: Ji-Ze Hong (Peter Hong) <hpeter+linux_kernel@gmail.com>
---
drivers/tty/serial/8250/8250_fintek.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_fintek.c b/drivers/tty/serial/8250/8250_fintek.c
index 921f742..a62cfdd 100644
--- a/drivers/tty/serial/8250/8250_fintek.c
+++ b/drivers/tty/serial/8250/8250_fintek.c
@@ -23,6 +23,7 @@
#define CHIP_ID2 0x21
#define CHIP_ID_F81216AD 0x1602
#define CHIP_ID_F81216H 0x0501
+#define CHIP_ID_F81216 0x0802
#define VENDOR_ID1 0x23
#define VENDOR_ID1_VAL 0x19
#define VENDOR_ID2 0x24
@@ -107,8 +108,14 @@ static int fintek_8250_check_id(struct fintek_8250 *pdata)
chip = sio_read_reg(pdata, CHIP_ID1);
chip |= sio_read_reg(pdata, CHIP_ID2) << 8;
- if (chip != CHIP_ID_F81216AD && chip != CHIP_ID_F81216H)
+ switch (chip) {
+ case CHIP_ID_F81216AD:
+ case CHIP_ID_F81216H:
+ case CHIP_ID_F81216:
+ break;
+ default:
return -ENODEV;
+ }
pdata->pid = chip;
return 0;
@@ -235,6 +242,21 @@ static int find_base_port(struct fintek_8250 *pdata, u16 io_address,
return -ENODEV;
}
+static void fintek_8250_set_rs485_handler(struct uart_8250_port *uart)
+{
+ struct fintek_8250 *pdata = uart->port.private_data;
+
+ switch (pdata->pid) {
+ default: /* No RS485 Auto direction functional */
+ break;
+
+ case CHIP_ID_F81216AD:
+ case CHIP_ID_F81216H:
+ uart->port.rs485_config = fintek_8250_rs485_config;
+ break;
+ }
+}
+
int fintek_8250_probe(struct uart_8250_port *uart)
{
struct fintek_8250 *pdata;
@@ -248,8 +270,8 @@ int fintek_8250_probe(struct uart_8250_port *uart)
return -ENOMEM;
memcpy(pdata, &probe_data, sizeof(probe_data));
- uart->port.rs485_config = fintek_8250_rs485_config;
uart->port.private_data = pdata;
+ fintek_8250_set_rs485_handler(uart);
return 0;
}
--
1.9.1
next prev parent reply other threads:[~2016-09-01 3:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-01 3:39 [PATCH 0/7] serial: 8250_fintek: Fix the IRQ mode and code refactoring Ji-Ze Hong (Peter Hong)
2016-09-01 3:39 ` [PATCH 1/7] serial: 8250_fintek: Refactoring read/write method Ji-Ze Hong (Peter Hong)
2016-09-01 3:39 ` [PATCH 2/7] serial: 8250_fintek: Set IRQ Mode when port probed Ji-Ze Hong (Peter Hong)
2016-09-01 3:39 ` [PATCH 3/7] serial: 8250_fintek: Set maximum FIFO of F81216H Ji-Ze Hong (Peter Hong)
2016-09-01 11:16 ` Ricardo Ribalda Delgado
2016-09-06 1:37 ` Ji-Ze Hong (Peter Hong)
2016-09-01 3:39 ` [PATCH 4/7] serial: 8250_fintek: Rearrange function Ji-Ze Hong (Peter Hong)
2016-09-01 11:17 ` Ricardo Ribalda Delgado
2016-09-06 1:56 ` Ji-Ze Hong (Peter Hong)
2016-09-01 3:39 ` Ji-Ze Hong (Peter Hong) [this message]
2016-09-01 11:22 ` [PATCH 5/7] serial: 8250_fintek: Add F81216 Support Ricardo Ribalda Delgado
2016-09-06 2:04 ` Ji-Ze Hong (Peter Hong)
2016-09-01 3:39 ` [PATCH 6/7] serial: 8250_fintek: Add F81866 Support Ji-Ze Hong (Peter Hong)
2016-09-01 3:39 ` [PATCH 7/7] serial: 8250_fintek: Add F81865 Support Ji-Ze Hong (Peter Hong)
2016-09-01 11:29 ` Ricardo Ribalda Delgado
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1472701196-14795-6-git-send-email-hpeter+linux_kernel@gmail.com \
--to=hpeter@gmail.com \
--cc=arnd@arndb.de \
--cc=gregkh@linuxfoundation.org \
--cc=hpeter+linux_kernel@gmail.com \
--cc=jslaby@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=peter@hurleysoftware.com \
--cc=peter_hong@fintek.com.tw \
--cc=ricardo.ribalda@gmail.com \
--cc=tom_tsai@fintek.com.tw \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.