Files
linux-nv-oot/drivers/tty/serial/wch_35x/wch_devtable.c
Ankit Patel a922b344f8 nvidia: serial: CH384 driver support added
CH384 is a PCI-Express bus converter chip, which converts PCIE bus to Quad
serial ports and printer port, including four asynchronous serial ports
compatible with 16C550 or 16C750

This VCP driver supports pci to uart chips ch382/ch384, Crystal frequency
support 22.1184M

Bug 3857918

Change-Id: Iae13dbbb0959178d69a93277823d8305973d66be
Signed-off-by: Ankit patel <anpatel@nvidia.com>
(cherry picked from commit c0239f39c89fcd11dc9a3228892e920c680ddf49)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2921009
Tested-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-19 02:06:45 -07:00

419 lines
17 KiB
C

/*
* Copyright (c) 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/
#include "wch_common.h"
#define PCIE_UART_MAX 28
struct pci_board wch_pci_board_conf[] = {
// NONE
{
// VenID DevID SubVenID SubSysID
0x00, 0x00, 0x00, 0x00,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, "none", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 'n', -1, 0, 0, -1, 0, 0, NONE_BOARD },
},
},
// CH351_2S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_CH351, DEVICE_ID_WCH_CH351_2S, SUB_VENDOR_ID_WCH_CH351, SUB_DEVICE_ID_WCH_CH351_2S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, "CH351_2S", BOARDFLAG_REMAP,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH351_2S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH351_2S },
},
},
// CH352_2S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH352_2S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH352_2S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, "CH352_2S", BOARDFLAG_REMAP,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH352_2S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH352_2S },
},
},
// CH352_1S1P
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH352_1S1P, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH352_1S1P,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
1, 0, 0x00, 0x00, 0x00, 0x00, "CH352_1S1P", BOARDFLAG_REMAP,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH352_1S1P },
},
},
// CH353_4S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH353_4S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH353_4S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
4, 3, 0x0F, 0x00, 0x00, 0x00, "CH353_4S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH353_4S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH353_4S },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH353_4S },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH353_4S },
},
},
// CH353_2S1P
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH353_2S1P, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH353_2S1P,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
2, 3, 0x0F, 0x00, 0x00, 0x00, "CH353_2S1P", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH353_2S1P },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH353_2S1P },
},
},
// CH353_2S1PAR
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH353_2S1PAR, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH353_2S1PAR,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
2, 3, 0x0F, 0x00, 0x00, 0x00, "CH353_2S1PAR", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH353_2S1PAR },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH353_2S1PAR },
},
},
// CH355_4S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH355_4S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH355_4S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
4, 4, 0x20, 0x00, 0x00, 0x00, "CH355_4S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH355_4S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH355_4S },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH355_4S },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH355_4S },
},
},
// CH356_4S1P
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH356_4S1P, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH356_4S1P,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
4, 4, 0x3F, 0x00, 0x00, 0x00, "CH356_4S1P", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH356_4S1P },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH356_4S1P },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH356_4S1P },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH356_4S1P },
},
},
// CH356_6S(CH356+CH432(1P))
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH356_6S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH356_6S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
6, 4, 0x3F, 0x00, 0x00, 0x00, "CH356_6S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH356_6S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH356_6S },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH356_6S },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH356_6S },
{ 's', 4, 0, 8, -1, 0, 0, WCH_BOARD_CH356_6S },
{ 's', 4, 0x08, 8, -1, 0, 0, WCH_BOARD_CH356_6S },
},
},
// CH356_8S(CH356+CH432(2P))
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH356_8S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH356_8S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
8, 4, 0x3F, 0x00, 0x00, 0x00, "CH356_8S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH356_8S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH356_8S },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH356_8S },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH356_8S },
{ 's', 4, 0, 8, -1, 0, 0, WCH_BOARD_CH356_8S },
{ 's', 4, 0x08, 8, -1, 0, 0, WCH_BOARD_CH356_8S },
{ 's', 4, 0x10, 8, -1, 0, 0, WCH_BOARD_CH356_8S },
{ 's', 4, 0x18, 8, -1, 0, 0, WCH_BOARD_CH356_8S },
},
},
// CH357_4S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH357_4S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH357_4S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
4, 4, 0x6F, 0x00, 0x00, 0x00, "CH357_4S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH357_4S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH357_4S },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH357_4S },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH357_4S },
},
},
// CH358_4S1P
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH358_4S1P, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH358_4S1P,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
4, 4, 0x6F, 0x00, 0x00, 0x00, "CH358_4S1P", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH358_4S1P },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH358_4S1P },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH358_4S1P },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH358_4S1P },
},
},
// CH358_8S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH358_8S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH358_8S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
8, 4, 0x6F, 0x00, 0x00, 0x00, "CH358_8S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH358_8S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH358_8S },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH358_8S },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH358_8S },
{ 's', 0, 8, 8, -1, 0, 0, WCH_BOARD_CH358_8S },
{ 's', 1, 8, 8, -1, 0, 0, WCH_BOARD_CH358_8S },
{ 's', 2, 8, 8, -1, 0, 0, WCH_BOARD_CH358_8S },
{ 's', 3, 8, 8, -1, 0, 0, WCH_BOARD_CH358_8S },
},
},
// CH359_16S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH359_16S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH359_16S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
16, 4, 0x6F, 0x00, 0x00, 0x00, "CH359_16S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 1, 0, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 2, 0, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 3, 0, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 0, 8, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 1, 8, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 2, 8, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 3, 8, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 4, 0, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 4, 16, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 4, 32, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 4, 48, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 4, 8, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 4, 24, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 4, 40, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
{ 's', 4, 56, 8, -1, 0, 0, WCH_BOARD_CH359_16S },
},
},
// CH382_2S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCIE, DEVICE_ID_WCH_CH382_2S, SUB_VENDOR_ID_WCH_PCIE, SUB_DEVICE_ID_WCH_CH382_2S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
2, 0, 0xE9, 0x00, 0x00, 0x00, "CH382_2S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0xC0, 8, -1, 0, 0, WCH_BOARD_CH382_2S },
{ 's', 0, 0xC8, 8, -1, 0, 0, WCH_BOARD_CH382_2S },
},
},
// CH382_2S1P
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCIE, DEVICE_ID_WCH_CH382_2S1P, SUB_VENDOR_ID_WCH_PCIE, SUB_DEVICE_ID_WCH_CH382_2S1P,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
2, 0, 0xE9, 0x00, 0x00, 0x00, "CH382_2S1P", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0xC0, 8, -1, 0, 0, WCH_BOARD_CH382_2S1P },
{ 's', 0, 0xC8, 8, -1, 0, 0, WCH_BOARD_CH382_2S1P },
},
},
// CH384_4S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCIE, DEVICE_ID_WCH_CH384_4S, SUB_VENDOR_ID_WCH_PCIE, SUB_DEVICE_ID_WCH_CH384_4S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
4, 0, 0xE9, 0x00, 0x00, 0x00, "CH384_4S", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0xC0, 8, -1, 0, 0, WCH_BOARD_CH384_4S },
{ 's', 0, 0xC8, 8, -1, 0, 0, WCH_BOARD_CH384_4S },
{ 's', 0, 0xD0, 8, -1, 0, 0, WCH_BOARD_CH384_4S },
{ 's', 0, 0xD8, 8, -1, 0, 0, WCH_BOARD_CH384_4S },
},
},
// CH384_4S1P
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCIE, DEVICE_ID_WCH_CH384_4S1P, SUB_VENDOR_ID_WCH_PCIE, SUB_DEVICE_ID_WCH_CH384_4S1P,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
4, 0, 0xE9, 0x00, 0x00, 0x00, "CH384_4S1P", BOARDFLAG_NONE,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0xC0, 8, -1, 0, 0, WCH_BOARD_CH384_4S1P },
{ 's', 0, 0xC8, 8, -1, 0, 0, WCH_BOARD_CH384_4S1P },
{ 's', 0, 0xD0, 8, -1, 0, 0, WCH_BOARD_CH384_4S1P },
{ 's', 0, 0xD8, 8, -1, 0, 0, WCH_BOARD_CH384_4S1P },
},
},
// CH384_8S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCIE, DEVICE_ID_WCH_CH384_8S, SUB_VENDOR_ID_WCH_PCIE, SUB_DEVICE_ID_WCH_CH384_8S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
8, 0, 0xE0, 0x00, 0x00, 0x00, "CH384_8S", BOARDFLAG_CH384_8_PORTS,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH384_8S },
{ 's', 0, 0x10, 8, -1, 0, 0, WCH_BOARD_CH384_8S },
{ 's', 0, 0x20, 8, -1, 0, 0, WCH_BOARD_CH384_8S },
{ 's', 0, 0x30, 8, -1, 0, 0, WCH_BOARD_CH384_8S },
{ 's', 0, 0x08, 8, -1, 0, 0, WCH_BOARD_CH384_8S },
{ 's', 0, 0x18, 8, -1, 0, 0, WCH_BOARD_CH384_8S },
{ 's', 0, 0x28, 8, -1, 0, 0, WCH_BOARD_CH384_8S },
{ 's', 0, 0x38, 8, -1, 0, 0, WCH_BOARD_CH384_8S },
},
},
// CH384_28S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCIE, DEVICE_ID_WCH_CH384_28S, SUB_VENDOR_ID_WCH_PCIE, SUB_DEVICE_ID_WCH_CH384_28S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
PCIE_UART_MAX, 0, 0xE9, 0xE0, 0xE4, 0xE6, "CH384_28S", BOARDFLAG_CH384_28_PORTS,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0xC0, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0xC8, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0xD0, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0xD8, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x10, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x20, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x30, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x08, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x18, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x28, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x38, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x40, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x50, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x60, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x70, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x48, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x58, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x68, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x78, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x80, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x90, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0xA0, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0xB0, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x88, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0x98, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0xA8, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
{ 's', 0, 0xB8, 8, -1, 0, 0, WCH_BOARD_CH384_28S },
},
},
// CH365_32S
{
// VenID DevID SubVenID SubSysID
VENDOR_ID_WCH_PCI, DEVICE_ID_WCH_CH365_32S, SUB_VENDOR_ID_WCH_PCI, SUB_DEVICE_ID_WCH_CH365_32S,
// SerPort IntrBar IntrOffset IntrOffset1 IntrOffset2 IntrOffset3 Name BoardFlag
32, 1, 0x00, 0x00, 0x00, 0x00, "CH365_32S", BOARDFLAG_CH365_32_PORTS,
{
// type bar1 ofs1 len1 bar2 ofs2 len2 flags
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 0, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
{ 's', 0, 0x00, 8, -1, 0, 0, WCH_BOARD_CH365_32S },
},
},
};