linux/arch/mn10300/include/asm/pci.h
<<
>>
Prefs
   1/* MN10300 PCI definitions
   2 *
   3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public Licence
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the Licence, or (at your option) any later version.
  10 */
  11#ifndef _ASM_PCI_H
  12#define _ASM_PCI_H
  13
  14#ifdef __KERNEL__
  15#include <linux/mm.h>           /* for struct page */
  16
  17#if 0
  18#define __pcbdebug(FMT, ADDR, ...) \
  19        printk(KERN_DEBUG "PCIBRIDGE[%08x]: "FMT"\n", \
  20               (u32)(ADDR), ##__VA_ARGS__)
  21
  22#define __pcidebug(FMT, BUS, DEVFN, WHERE,...)          \
  23do {                                                    \
  24        printk(KERN_DEBUG "PCI[%02x:%02x.%x + %02x]: "FMT"\n",  \
  25               (BUS)->number,                                   \
  26               PCI_SLOT(DEVFN),                                 \
  27               PCI_FUNC(DEVFN),                                 \
  28               (u32)(WHERE), ##__VA_ARGS__);                    \
  29} while (0)
  30
  31#else
  32#define __pcbdebug(FMT, ADDR, ...)              do {} while (0)
  33#define __pcidebug(FMT, BUS, DEVFN, WHERE, ...) do {} while (0)
  34#endif
  35
  36/* Can be used to override the logic in pci_scan_bus for skipping
  37 * already-configured bus numbers - to be used for buggy BIOSes or
  38 * architectures with incomplete PCI setup by the loader */
  39
  40#ifdef CONFIG_PCI
  41#define pcibios_assign_all_busses()     1
  42extern void unit_pci_init(void);
  43#else
  44#define pcibios_assign_all_busses()     0
  45#endif
  46
  47#define PCIBIOS_MIN_IO          0xBE000004
  48#define PCIBIOS_MIN_MEM         0xB8000000
  49
  50void pcibios_set_master(struct pci_dev *dev);
  51
  52/* Dynamic DMA mapping stuff.
  53 * i386 has everything mapped statically.
  54 */
  55
  56#include <linux/types.h>
  57#include <linux/slab.h>
  58#include <asm/scatterlist.h>
  59#include <linux/string.h>
  60#include <asm/io.h>
  61
  62struct pci_dev;
  63
  64/* The PCI address space does equal the physical memory
  65 * address space.  The networking and block device layers use
  66 * this boolean for bounce buffer decisions.
  67 */
  68#define PCI_DMA_BUS_IS_PHYS     (1)
  69
  70/* Return the index of the PCI controller for device. */
  71static inline int pci_controller_num(struct pci_dev *dev)
  72{
  73        return 0;
  74}
  75
  76#define HAVE_PCI_MMAP
  77extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
  78                               enum pci_mmap_state mmap_state,
  79                               int write_combine);
  80
  81#endif /* __KERNEL__ */
  82
  83/* implement the pci_ DMA API in terms of the generic device dma_ one */
  84#include <asm-generic/pci-dma-compat.h>
  85
  86static inline struct resource *
  87pcibios_select_root(struct pci_dev *pdev, struct resource *res)
  88{
  89        struct resource *root = NULL;
  90
  91        if (res->flags & IORESOURCE_IO)
  92                root = &ioport_resource;
  93        if (res->flags & IORESOURCE_MEM)
  94                root = &iomem_resource;
  95
  96        return root;
  97}
  98
  99static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
 100{
 101        return channel ? 15 : 14;
 102}
 103
 104#include <asm-generic/pci_iomap.h>
 105
 106#endif /* _ASM_PCI_H */
 107