11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * m32r_sio.h 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Driver for M32R serial ports 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Based on drivers/char/serial.c, by Linus Torvalds, Theodore Ts'o. 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Based on drivers/serial/8250.h. 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2001 Russell King. 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2004 Hirokazu Takata <takata at linux-m32r.org> 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This program is free software; you can redistribute it and/or modify 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * it under the terms of the GNU General Public License as published by 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * the Free Software Foundation; either version 2 of the License, or 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * (at your option) any later version. 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 188bc87dc999d57d7d2ab92ab203ff7e94e860d8faJiri Slaby#include <linux/pci.h> 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct m32r_sio_probe { 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct module *owner; 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int (*pci_init_one)(struct pci_dev *dev); 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds void (*pci_remove_one)(struct pci_dev *dev); 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds void (*pnp_init)(void); 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsint m32r_sio_register_probe(struct m32r_sio_probe *probe); 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid m32r_sio_unregister_probe(struct m32r_sio_probe *probe); 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid m32r_sio_get_irq_map(unsigned int *map); 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid m32r_sio_suspend_port(int line); 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid m32r_sio_resume_port(int line); 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct old_serial_port { 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned int uart; 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned int baud_base; 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned int port; 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned int irq; 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned int flags; 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char io_type; 406881761e63ac95fda3073443781ea928682fa600Al Viro unsigned char __iomem *iomem_base; 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short iomem_reg_shift; 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _INLINE_ inline 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PROBE_RSA (1 << 0) 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PROBE_ANY (~0) 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HIGH_BITS_OFFSET ((sizeof(long)-sizeof(int))*8) 50