2006-12-13 15:55:54

by Russell King

[permalink] [raw]
Subject: [PATCH] Add support for Korenix 16C950-based PCI cards

Linus, Andrew,

This patch adds initial support to 8250-pci for the Korenix Jetcard PCI
serial cards. The JC12xx cards are standard RS232-based serial cards
utilising the Oxford 16C950 device.

The JC14xx are RS422/RS485-based cards, but in order for these to be
supported natively, we will need additional tweaks to the 8250 layers
so we can specify some values for the 950's registers. Hence, these
two entries are commented out.

Signed-off-by: Russell King <[email protected]>

drivers/serial/8250_pci.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 4d0ff8f..89c3f2c 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -2239,6 +2239,30 @@ static struct pci_device_id serial_pci_t
pbn_b0_bt_1_460800 },

/*
+ * Korenix Jetcard F0/F1 cards (JC1204, JC1208, JC1404, JC1408).
+ * Cards are identified by their subsystem vendor IDs, which
+ * (in hex) match the model number.
+ *
+ * Note that JC140x are RS422/485 cards which require ox950
+ * ACR = 0x10, and as such are not currently fully supported.
+ */
+ { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF0,
+ 0x1204, 0x0004, 0, 0,
+ pbn_b0_4_921600 },
+ { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF0,
+ 0x1208, 0x0004, 0, 0,
+ pbn_b0_4_921600 },
+/* { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF0,
+ 0x1402, 0x0002, 0, 0,
+ pbn_b0_2_921600 }, */
+/* { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF0,
+ 0x1404, 0x0004, 0, 0,
+ pbn_b0_4_921600 }, */
+ { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF1,
+ 0x1208, 0x0004, 0, 0,
+ pbn_b0_4_921600 },
+
+ /*
* Dell Remote Access Card 4 - [email protected]
*/
{ PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DELL_RAC4,


2006-12-20 13:40:41

by Andrey Panin

[permalink] [raw]
Subject: Re: [PATCH] Add support for Korenix 16C950-based PCI cards

On 347, 12 13, 2006 at 02:45:46PM +0000, Russell King wrote:
> Linus, Andrew,
>
> This patch adds initial support to 8250-pci for the Korenix Jetcard PCI
> serial cards. The JC12xx cards are standard RS232-based serial cards
> utilising the Oxford 16C950 device.
>
> The JC14xx are RS422/RS485-based cards, but in order for these to be
> supported natively, we will need additional tweaks to the 8250 layers
> so we can specify some values for the 950's registers. Hence, these
> two entries are commented out.

IIRC 16c950 just need two bits in ACR set properly. Will attached patch
do the trick ?

> Signed-off-by: Russell King <[email protected]>
>
> drivers/serial/8250_pci.c | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
> index 4d0ff8f..89c3f2c 100644
> --- a/drivers/serial/8250_pci.c
> +++ b/drivers/serial/8250_pci.c
> @@ -2239,6 +2239,30 @@ static struct pci_device_id serial_pci_t
> pbn_b0_bt_1_460800 },
>
> /*
> + * Korenix Jetcard F0/F1 cards (JC1204, JC1208, JC1404, JC1408).
> + * Cards are identified by their subsystem vendor IDs, which
> + * (in hex) match the model number.
> + *
> + * Note that JC140x are RS422/485 cards which require ox950
> + * ACR = 0x10, and as such are not currently fully supported.
> + */
> + { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF0,
> + 0x1204, 0x0004, 0, 0,
> + pbn_b0_4_921600 },
> + { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF0,
> + 0x1208, 0x0004, 0, 0,
> + pbn_b0_4_921600 },
> +/* { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF0,
> + 0x1402, 0x0002, 0, 0,
> + pbn_b0_2_921600 }, */
> +/* { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF0,
> + 0x1404, 0x0004, 0, 0,
> + pbn_b0_4_921600 }, */
> + { PCI_VENDOR_ID_KORENIX, PCI_DEVICE_ID_KORENIX_JETCARDF1,
> + 0x1208, 0x0004, 0, 0,
> + pbn_b0_4_921600 },
> +
> + /*
> * Dell Remote Access Card 4 - [email protected]
> */
> { PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DELL_RAC4,

--
Andrey Panin | Linux and UNIX system administrator
[email protected] | PGP key: wwwkeys.pgp.net


Attachments:
(No filename) (2.11 kB)
patch-ACR (1.32 kB)
Download all attachments

2006-12-20 19:06:07

by Russell King

[permalink] [raw]
Subject: Re: [PATCH] Add support for Korenix 16C950-based PCI cards

On Wed, Dec 20, 2006 at 04:33:10PM +0300, Andrey Panin wrote:
> On 347, 12 13, 2006 at 02:45:46PM +0000, Russell King wrote:
> > Linus, Andrew,
> >
> > This patch adds initial support to 8250-pci for the Korenix Jetcard PCI
> > serial cards. The JC12xx cards are standard RS232-based serial cards
> > utilising the Oxford 16C950 device.
> >
> > The JC14xx are RS422/RS485-based cards, but in order for these to be
> > supported natively, we will need additional tweaks to the 8250 layers
> > so we can specify some values for the 950's registers. Hence, these
> > two entries are commented out.
>
> IIRC 16c950 just need two bits in ACR set properly. Will attached patch
> do the trick ?

I, too, also have a patch which does something similar. I'm going to
hold off on that until post 2.6.20 though, especially as I have no
way to test it.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: