linux/drivers/tty/serial/8250/8250_lpss.c

// SPDX-License-Identifier: GPL-2.0
/*
 * 8250_lpss.c - Driver for UART on Intel Braswell and various other Intel SoCs
 *
 * Copyright (C) 2016 Intel Corporation
 * Author: Andy Shevchenko <[email protected]>
 */

#include <linux/bitops.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/rational.h>

#include <linux/dmaengine.h>
#include <linux/dma/dw.h>

#include "8250_dwlib.h"

#define PCI_DEVICE_ID_INTEL_QRK_UARTx

#define PCI_DEVICE_ID_INTEL_BYT_UART1
#define PCI_DEVICE_ID_INTEL_BYT_UART2

#define PCI_DEVICE_ID_INTEL_BSW_UART1
#define PCI_DEVICE_ID_INTEL_BSW_UART2

#define PCI_DEVICE_ID_INTEL_EHL_UART0
#define PCI_DEVICE_ID_INTEL_EHL_UART1
#define PCI_DEVICE_ID_INTEL_EHL_UART2
#define PCI_DEVICE_ID_INTEL_EHL_UART3
#define PCI_DEVICE_ID_INTEL_EHL_UART4
#define PCI_DEVICE_ID_INTEL_EHL_UART5

#define PCI_DEVICE_ID_INTEL_BDW_UART1
#define PCI_DEVICE_ID_INTEL_BDW_UART2

/* Intel LPSS specific registers */

#define BYT_PRV_CLK
#define BYT_PRV_CLK_EN
#define BYT_PRV_CLK_M_VAL_SHIFT
#define BYT_PRV_CLK_N_VAL_SHIFT
#define BYT_PRV_CLK_UPDATE

#define BYT_TX_OVF_INT
#define BYT_TX_OVF_INT_MASK

struct lpss8250;

struct lpss8250_board {};

struct lpss8250 {};

static inline struct lpss8250 *to_lpss8250(struct dw8250_port_data *data)
{}

static void byt_set_termios(struct uart_port *p, struct ktermios *termios,
			    const struct ktermios *old)
{}

static unsigned int byt_get_mctrl(struct uart_port *port)
{}

static int byt_serial_setup(struct lpss8250 *lpss, struct uart_port *port)
{}

static void byt_serial_exit(struct lpss8250 *lpss)
{}

static int ehl_serial_setup(struct lpss8250 *lpss, struct uart_port *port)
{}

static void ehl_serial_exit(struct lpss8250 *lpss)
{}

#ifdef CONFIG_SERIAL_8250_DMA
static const struct dw_dma_platform_data qrk_serial_dma_pdata =;

static void qrk_serial_setup_dma(struct lpss8250 *lpss, struct uart_port *port)
{}

static void qrk_serial_exit_dma(struct lpss8250 *lpss)
{}
#else	/* CONFIG_SERIAL_8250_DMA */
static void qrk_serial_setup_dma(struct lpss8250 *lpss, struct uart_port *port) {}
static void qrk_serial_exit_dma(struct lpss8250 *lpss) {}
#endif	/* !CONFIG_SERIAL_8250_DMA */

static int qrk_serial_setup(struct lpss8250 *lpss, struct uart_port *port)
{}

static void qrk_serial_exit(struct lpss8250 *lpss)
{}

static bool lpss8250_dma_filter(struct dma_chan *chan, void *param)
{}

static int lpss8250_dma_setup(struct lpss8250 *lpss, struct uart_8250_port *port)
{}

static int lpss8250_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{}

static void lpss8250_remove(struct pci_dev *pdev)
{}

static const struct lpss8250_board byt_board =;

static const struct lpss8250_board ehl_board =;

static const struct lpss8250_board qrk_board =;

static const struct pci_device_id pci_ids[] =;
MODULE_DEVICE_TABLE(pci, pci_ids);

static struct pci_driver lpss8250_pci_driver =;

module_pci_driver();

MODULE_AUTHOR();
MODULE_LICENSE();
MODULE_DESCRIPTION();