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

// SPDX-License-Identifier: GPL-2.0
/*
 *  Probe for 8250/16550-type ISAPNP serial ports.
 *
 *  Based on drivers/char/serial.c, by Linus Torvalds, Theodore Ts'o.
 *
 *  Copyright (C) 2001 Russell King, All Rights Reserved.
 *
 *  Ported to the Linux PnP Layer - (C) Adam Belay.
 */
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/pm.h>
#include <linux/pnp.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/property.h>
#include <linux/serial_core.h>
#include <linux/bitops.h>

#include <asm/byteorder.h>

#include "8250.h"

#define UNKNOWN_DEV
#define CIR_PORT

static const struct pnp_device_id pnp_dev_table[] =;

MODULE_DEVICE_TABLE(pnp, pnp_dev_table);

static const char *modem_names[] =;

static bool check_name(const char *name)
{}

static bool check_resources(struct pnp_dev *dev)
{}

/*
 * Given a complete unknown PnP device, try to use some heuristics to
 * detect modems. Currently use such heuristic set:
 *     - dev->name or dev->bus->name must contain "modem" substring;
 *     - device must have only one IO region (8 byte long) with base address
 *       0x2e8, 0x3e8, 0x2f8 or 0x3f8.
 *
 * Such detection looks very ugly, but can detect at least some of numerous
 * PnP modems, alternatively we must hardcode all modems in pnp_devices[]
 * table.
 */
static int serial_pnp_guess_board(struct pnp_dev *dev)
{}

static int
serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
{}

static void serial_pnp_remove(struct pnp_dev *dev)
{}

static int serial_pnp_suspend(struct device *dev)
{}

static int serial_pnp_resume(struct device *dev)
{}

static DEFINE_SIMPLE_DEV_PM_OPS(serial_pnp_pm_ops, serial_pnp_suspend, serial_pnp_resume);

static struct pnp_driver serial_pnp_driver =;

int serial8250_pnp_init(void)
{}

void serial8250_pnp_exit(void)
{}