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
  47extern unsigned long pci_mem_start;
  48#define PCIBIOS_MIN_IO          0xBE000004
  49#define PCIBIOS_MIN_MEM         0xB8000000
  50
  51void pcibios_set_master(struct pci_dev *dev);
  52void pcibios_penalize_isa_irq(int irq);
  53
  54/* Dynamic DMA mapping stuff.
  55 * i386 has everything mapped statically.
  56 */
  57
  58#include <linux/types.h>
  59#include <linux/slab.h>
  60#include <asm/scatterlist.h>
  61#include <linux/string.h>
  62#include <asm/io.h>
  63
  64struct pci_dev;
  65
  66/* The PCI address space does equal the physical memory
  67 * address space.  The networking and block device layers use
  68 * this boolean for bounce buffer decisions.
  69 */
  70#define PCI_DMA_BUS_IS_PHYS     (1)
  71
  72/* Return the index of the PCI controller for device. */
  73static inline int pci_controller_num(struct pci_dev *dev)
  74{
  75        return 0;
  76}
  77
  78#define HAVE_PCI_MMAP
  79extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
  80                               enum pci_mmap_state mmap_state,
  81                               int write_combine);
  82
  83#endif /* __KERNEL__ */
  84
  85/* implement the pci_ DMA API in terms of the generic device dma_ one */
  86#include <asm-generic/pci-dma-compat.h>
  87
  88/**
  89 * pcibios_resource_to_bus - convert resource to PCI bus address
  90 * @dev: device which owns this resource
  91 * @region: converted bus-centric region (start,end)
  92 * @res: resource to convert
  93 *
  94 * Convert a resource to a PCI device bus address or bus window.
  95 */
  96extern void pcibios_resource_to_bus(struct pci_dev *dev,
  97                                    struct pci_bus_region *region,
  98                                    struct resource *res);
  99
 100extern void pcibios_bus_to_resource(struct pci_dev *dev,
 101                                    struct resource *res,
 102                                    struct pci_bus_region *region);
 103
 104static inline struct resource *
 105pcibios_select_root(struct pci_dev *pdev, struct resource *res)
 106{
 107        struct resource *root = NULL;
 108
 109        if (res->flags & IORESOURCE_IO)
 110                root = &ioport_resource;
 111        if (res->flags & IORESOURCE_MEM)
 112                root = &iomem_resource;
 113
 114        return root;
 115}
 116
 117static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
 118{
 119        return channel ? 15 : 14;
 120}
 121
 122#endif /* _ASM_PCI_H */
 123