1 /* 2 * parport.h: platform-specific PC-style parport initialisation 3 * 4 * Copyright (C) 1999, 2000 Tim Waugh <tim@cyberelk.demon.co.uk> 5 * 6 * This file should only be included by drivers/parport/parport_pc.c. 7 */ 8 9 #ifndef _ASM_POWERPC_PARPORT_H 10 #define _ASM_POWERPC_PARPORT_H 11 #ifdef __KERNEL__ 12 13 #include <asm/prom.h> 14 15 static int parport_pc_find_nonpci_ports (int autoirq, int autodma) 16 { 17 struct device_node *np; 18 const u32 *prop; 19 u32 io1, io2; 20 int propsize; 21 int count = 0; 22 int virq; 23 24 for (np = NULL; (np = of_find_compatible_node(np, 25 "parallel", 26 "pnpPNP,400")) != NULL;) { 27 prop = of_get_property(np, "reg", &propsize); 28 if (!prop || propsize > 6*sizeof(u32)) 29 continue; 30 io1 = prop[1]; io2 = prop[2]; 31 32 virq = irq_of_parse_and_map(np, 0); 33 if (virq == NO_IRQ) 34 continue; 35 36 if (parport_pc_probe_port(io1, io2, virq, autodma, NULL, 0) 37 != NULL) 38 count++; 39 } 40 return count; 41 } 42 43 #endif /* __KERNEL__ */ 44 #endif /* !(_ASM_POWERPC_PARPORT_H) */ 45