1 /* 2 * Definitions for Device tree / OpenFirmware handling on X86 3 * 4 * based on arch/powerpc/include/asm/prom.h which is 5 * Copyright (C) 1996-2005 Paul Mackerras. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 10 * 2 of the License, or (at your option) any later version. 11 */ 12 13 #ifndef _ASM_X86_PROM_H 14 #define _ASM_X86_PROM_H 15 #ifndef __ASSEMBLY__ 16 17 #include <linux/of.h> 18 #include <linux/types.h> 19 #include <linux/pci.h> 20 21 #include <asm/irq.h> 22 #include <asm/atomic.h> 23 #include <asm/setup.h> 24 #include <asm/irq_controller.h> 25 26 #ifdef CONFIG_OF 27 extern int of_ioapic; 28 extern u64 initial_dtb; 29 extern void add_dtb(u64 data); 30 extern void x86_add_irq_domains(void); 31 void __cpuinit x86_of_pci_init(void); 32 void x86_dtb_init(void); 33 34 static inline struct device_node *pci_device_to_OF_node(struct pci_dev *pdev) 35 { 36 return pdev ? pdev->dev.of_node : NULL; 37 } 38 39 static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) 40 { 41 return pci_device_to_OF_node(bus->self); 42 } 43 44 #else 45 static inline void add_dtb(u64 data) { } 46 static inline void x86_add_irq_domains(void) { } 47 static inline void x86_of_pci_init(void) { } 48 static inline void x86_dtb_init(void) { } 49 #define of_ioapic 0 50 #endif 51 52 extern char cmd_line[COMMAND_LINE_SIZE]; 53 54 #define pci_address_to_pio pci_address_to_pio 55 unsigned long pci_address_to_pio(phys_addr_t addr); 56 57 /** 58 * irq_dispose_mapping - Unmap an interrupt 59 * @virq: linux virq number of the interrupt to unmap 60 * 61 * FIXME: We really should implement proper virq handling like power, 62 * but that's going to be major surgery. 63 */ 64 static inline void irq_dispose_mapping(unsigned int virq) { } 65 66 #define HAVE_ARCH_DEVTREE_FIXUPS 67 68 #endif /* __ASSEMBLY__ */ 69 #endif 70