diff options
Diffstat (limited to 'arch/sparc/include/asm')
-rw-r--r-- | arch/sparc/include/asm/device.h | 11 | ||||
-rw-r--r-- | arch/sparc/include/asm/floppy_64.h | 10 | ||||
-rw-r--r-- | arch/sparc/include/asm/of_device.h | 38 | ||||
-rw-r--r-- | arch/sparc/include/asm/of_platform.h | 18 | ||||
-rw-r--r-- | arch/sparc/include/asm/parport.h | 12 | ||||
-rw-r--r-- | arch/sparc/include/asm/prom.h | 10 |
6 files changed, 25 insertions, 74 deletions
diff --git a/arch/sparc/include/asm/device.h b/arch/sparc/include/asm/device.h index d4c452147412..daa6a8a5e9cd 100644 --- a/arch/sparc/include/asm/device.h +++ b/arch/sparc/include/asm/device.h | |||
@@ -6,18 +6,25 @@ | |||
6 | #ifndef _ASM_SPARC_DEVICE_H | 6 | #ifndef _ASM_SPARC_DEVICE_H |
7 | #define _ASM_SPARC_DEVICE_H | 7 | #define _ASM_SPARC_DEVICE_H |
8 | 8 | ||
9 | #include <asm/openprom.h> | ||
10 | |||
9 | struct device_node; | 11 | struct device_node; |
10 | struct of_device; | 12 | struct platform_device; |
11 | 13 | ||
12 | struct dev_archdata { | 14 | struct dev_archdata { |
13 | void *iommu; | 15 | void *iommu; |
14 | void *stc; | 16 | void *stc; |
15 | void *host_controller; | 17 | void *host_controller; |
16 | struct of_device *op; | 18 | struct platform_device *op; |
17 | int numa_node; | 19 | int numa_node; |
18 | }; | 20 | }; |
19 | 21 | ||
22 | extern void of_propagate_archdata(struct platform_device *bus); | ||
23 | |||
20 | struct pdev_archdata { | 24 | struct pdev_archdata { |
25 | struct resource resource[PROMREG_MAX]; | ||
26 | unsigned int irqs[PROMINTR_MAX]; | ||
27 | int num_irqs; | ||
21 | }; | 28 | }; |
22 | 29 | ||
23 | #endif /* _ASM_SPARC_DEVICE_H */ | 30 | #endif /* _ASM_SPARC_DEVICE_H */ |
diff --git a/arch/sparc/include/asm/floppy_64.h b/arch/sparc/include/asm/floppy_64.h index 8fac3ab22f36..6597ce874d78 100644 --- a/arch/sparc/include/asm/floppy_64.h +++ b/arch/sparc/include/asm/floppy_64.h | |||
@@ -43,7 +43,7 @@ struct sun_flpy_controller { | |||
43 | /* You'll only ever find one controller on an Ultra anyways. */ | 43 | /* You'll only ever find one controller on an Ultra anyways. */ |
44 | static struct sun_flpy_controller *sun_fdc = (struct sun_flpy_controller *)-1; | 44 | static struct sun_flpy_controller *sun_fdc = (struct sun_flpy_controller *)-1; |
45 | unsigned long fdc_status; | 45 | unsigned long fdc_status; |
46 | static struct of_device *floppy_op = NULL; | 46 | static struct platform_device *floppy_op = NULL; |
47 | 47 | ||
48 | struct sun_floppy_ops { | 48 | struct sun_floppy_ops { |
49 | unsigned char (*fd_inb) (unsigned long port); | 49 | unsigned char (*fd_inb) (unsigned long port); |
@@ -548,7 +548,7 @@ static unsigned long __init sun_floppy_init(void) | |||
548 | { | 548 | { |
549 | static int initialized = 0; | 549 | static int initialized = 0; |
550 | struct device_node *dp; | 550 | struct device_node *dp; |
551 | struct of_device *op; | 551 | struct platform_device *op; |
552 | const char *prop; | 552 | const char *prop; |
553 | char state[128]; | 553 | char state[128]; |
554 | 554 | ||
@@ -567,7 +567,7 @@ static unsigned long __init sun_floppy_init(void) | |||
567 | } | 567 | } |
568 | if (op) { | 568 | if (op) { |
569 | floppy_op = op; | 569 | floppy_op = op; |
570 | FLOPPY_IRQ = op->irqs[0]; | 570 | FLOPPY_IRQ = op->archdata.irqs[0]; |
571 | } else { | 571 | } else { |
572 | struct device_node *ebus_dp; | 572 | struct device_node *ebus_dp; |
573 | void __iomem *auxio_reg; | 573 | void __iomem *auxio_reg; |
@@ -593,7 +593,7 @@ static unsigned long __init sun_floppy_init(void) | |||
593 | if (state_prop && !strncmp(state_prop, "disabled", 8)) | 593 | if (state_prop && !strncmp(state_prop, "disabled", 8)) |
594 | return 0; | 594 | return 0; |
595 | 595 | ||
596 | FLOPPY_IRQ = op->irqs[0]; | 596 | FLOPPY_IRQ = op->archdata.irqs[0]; |
597 | 597 | ||
598 | /* Make sure the high density bit is set, some systems | 598 | /* Make sure the high density bit is set, some systems |
599 | * (most notably Ultra5/Ultra10) come up with it clear. | 599 | * (most notably Ultra5/Ultra10) come up with it clear. |
@@ -661,7 +661,7 @@ static unsigned long __init sun_floppy_init(void) | |||
661 | config = 0; | 661 | config = 0; |
662 | for (dp = ebus_dp->child; dp; dp = dp->sibling) { | 662 | for (dp = ebus_dp->child; dp; dp = dp->sibling) { |
663 | if (!strcmp(dp->name, "ecpp")) { | 663 | if (!strcmp(dp->name, "ecpp")) { |
664 | struct of_device *ecpp_op; | 664 | struct platform_device *ecpp_op; |
665 | 665 | ||
666 | ecpp_op = of_find_device_by_node(dp); | 666 | ecpp_op = of_find_device_by_node(dp); |
667 | if (ecpp_op) | 667 | if (ecpp_op) |
diff --git a/arch/sparc/include/asm/of_device.h b/arch/sparc/include/asm/of_device.h deleted file mode 100644 index f320246a0586..000000000000 --- a/arch/sparc/include/asm/of_device.h +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | #ifndef _ASM_SPARC_OF_DEVICE_H | ||
2 | #define _ASM_SPARC_OF_DEVICE_H | ||
3 | #ifdef __KERNEL__ | ||
4 | |||
5 | #include <linux/device.h> | ||
6 | #include <linux/of.h> | ||
7 | #include <linux/mod_devicetable.h> | ||
8 | #include <asm/openprom.h> | ||
9 | |||
10 | /* | ||
11 | * The of_device is a kind of "base class" that is a superset of | ||
12 | * struct device for use by devices attached to an OF node and | ||
13 | * probed using OF properties. | ||
14 | */ | ||
15 | struct of_device | ||
16 | { | ||
17 | struct device dev; | ||
18 | struct resource resource[PROMREG_MAX]; | ||
19 | unsigned int irqs[PROMINTR_MAX]; | ||
20 | int num_irqs; | ||
21 | |||
22 | void *sysdata; | ||
23 | |||
24 | int slot; | ||
25 | int portid; | ||
26 | int clock_freq; | ||
27 | }; | ||
28 | |||
29 | extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name); | ||
30 | extern void of_iounmap(struct resource *res, void __iomem *base, unsigned long size); | ||
31 | |||
32 | extern void of_propagate_archdata(struct of_device *bus); | ||
33 | |||
34 | /* This is just here during the transition */ | ||
35 | #include <linux/of_platform.h> | ||
36 | |||
37 | #endif /* __KERNEL__ */ | ||
38 | #endif /* _ASM_SPARC_OF_DEVICE_H */ | ||
diff --git a/arch/sparc/include/asm/of_platform.h b/arch/sparc/include/asm/of_platform.h deleted file mode 100644 index 90da99059f83..000000000000 --- a/arch/sparc/include/asm/of_platform.h +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | #ifndef ___ASM_SPARC_OF_PLATFORM_H | ||
2 | #define ___ASM_SPARC_OF_PLATFORM_H | ||
3 | /* | ||
4 | * Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp. | ||
5 | * <benh@kernel.crashing.org> | ||
6 | * Modified for Sparc by merging parts of asm/of_device.h | ||
7 | * by Stephen Rothwell | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License | ||
11 | * as published by the Free Software Foundation; either version | ||
12 | * 2 of the License, or (at your option) any later version. | ||
13 | * | ||
14 | */ | ||
15 | |||
16 | #define of_bus_type of_platform_bus_type /* for compatibility */ | ||
17 | |||
18 | #endif | ||
diff --git a/arch/sparc/include/asm/parport.h b/arch/sparc/include/asm/parport.h index c333b8d0949b..4f7afa01b2ae 100644 --- a/arch/sparc/include/asm/parport.h +++ b/arch/sparc/include/asm/parport.h | |||
@@ -103,7 +103,7 @@ static inline unsigned int get_dma_residue(unsigned int dmanr) | |||
103 | return ebus_dma_residue(&sparc_ebus_dmas[dmanr].info); | 103 | return ebus_dma_residue(&sparc_ebus_dmas[dmanr].info); |
104 | } | 104 | } |
105 | 105 | ||
106 | static int __devinit ecpp_probe(struct of_device *op, const struct of_device_id *match) | 106 | static int __devinit ecpp_probe(struct platform_device *op, const struct of_device_id *match) |
107 | { | 107 | { |
108 | unsigned long base = op->resource[0].start; | 108 | unsigned long base = op->resource[0].start; |
109 | unsigned long config = op->resource[1].start; | 109 | unsigned long config = op->resource[1].start; |
@@ -116,7 +116,7 @@ static int __devinit ecpp_probe(struct of_device *op, const struct of_device_id | |||
116 | parent = op->dev.of_node->parent; | 116 | parent = op->dev.of_node->parent; |
117 | if (!strcmp(parent->name, "dma")) { | 117 | if (!strcmp(parent->name, "dma")) { |
118 | p = parport_pc_probe_port(base, base + 0x400, | 118 | p = parport_pc_probe_port(base, base + 0x400, |
119 | op->irqs[0], PARPORT_DMA_NOFIFO, | 119 | op->archdata.irqs[0], PARPORT_DMA_NOFIFO, |
120 | op->dev.parent->parent, 0); | 120 | op->dev.parent->parent, 0); |
121 | if (!p) | 121 | if (!p) |
122 | return -ENOMEM; | 122 | return -ENOMEM; |
@@ -166,7 +166,7 @@ static int __devinit ecpp_probe(struct of_device *op, const struct of_device_id | |||
166 | 0, PTR_LPT_REG_DIR); | 166 | 0, PTR_LPT_REG_DIR); |
167 | 167 | ||
168 | p = parport_pc_probe_port(base, base + 0x400, | 168 | p = parport_pc_probe_port(base, base + 0x400, |
169 | op->irqs[0], | 169 | op->archdata.irqs[0], |
170 | slot, | 170 | slot, |
171 | op->dev.parent, | 171 | op->dev.parent, |
172 | 0); | 172 | 0); |
@@ -192,7 +192,7 @@ out_err: | |||
192 | return err; | 192 | return err; |
193 | } | 193 | } |
194 | 194 | ||
195 | static int __devexit ecpp_remove(struct of_device *op) | 195 | static int __devexit ecpp_remove(struct platform_device *op) |
196 | { | 196 | { |
197 | struct parport *p = dev_get_drvdata(&op->dev); | 197 | struct parport *p = dev_get_drvdata(&op->dev); |
198 | int slot = p->dma; | 198 | int slot = p->dma; |
@@ -243,9 +243,7 @@ static struct of_platform_driver ecpp_driver = { | |||
243 | 243 | ||
244 | static int parport_pc_find_nonpci_ports(int autoirq, int autodma) | 244 | static int parport_pc_find_nonpci_ports(int autoirq, int autodma) |
245 | { | 245 | { |
246 | of_register_driver(&ecpp_driver, &of_bus_type); | 246 | return of_register_platform_driver(&ecpp_driver); |
247 | |||
248 | return 0; | ||
249 | } | 247 | } |
250 | 248 | ||
251 | #endif /* !(_ASM_SPARC64_PARPORT_H */ | 249 | #endif /* !(_ASM_SPARC64_PARPORT_H */ |
diff --git a/arch/sparc/include/asm/prom.h b/arch/sparc/include/asm/prom.h index f845828ca4c6..291f12575edd 100644 --- a/arch/sparc/include/asm/prom.h +++ b/arch/sparc/include/asm/prom.h | |||
@@ -43,20 +43,22 @@ extern int of_getintprop_default(struct device_node *np, | |||
43 | extern int of_find_in_proplist(const char *list, const char *match, int len); | 43 | extern int of_find_in_proplist(const char *list, const char *match, int len); |
44 | #ifdef CONFIG_NUMA | 44 | #ifdef CONFIG_NUMA |
45 | extern int of_node_to_nid(struct device_node *dp); | 45 | extern int of_node_to_nid(struct device_node *dp); |
46 | #else | 46 | #define of_node_to_nid of_node_to_nid |
47 | #define of_node_to_nid(dp) (-1) | ||
48 | #endif | 47 | #endif |
49 | 48 | ||
50 | extern void prom_build_devicetree(void); | 49 | extern void prom_build_devicetree(void); |
51 | extern void of_populate_present_mask(void); | 50 | extern void of_populate_present_mask(void); |
52 | extern void of_fill_in_cpu_data(void); | 51 | extern void of_fill_in_cpu_data(void); |
53 | 52 | ||
53 | struct resource; | ||
54 | extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name); | ||
55 | extern void of_iounmap(struct resource *res, void __iomem *base, unsigned long size); | ||
56 | |||
54 | /* These routines are here to provide compatibility with how powerpc | 57 | /* These routines are here to provide compatibility with how powerpc |
55 | * handles IRQ mapping for OF device nodes. We precompute and permanently | 58 | * handles IRQ mapping for OF device nodes. We precompute and permanently |
56 | * register them in the of_device objects, whereas powerpc computes them | 59 | * register them in the platform_device objects, whereas powerpc computes them |
57 | * on request. | 60 | * on request. |
58 | */ | 61 | */ |
59 | extern unsigned int irq_of_parse_and_map(struct device_node *node, int index); | ||
60 | static inline void irq_dispose_mapping(unsigned int virq) | 62 | static inline void irq_dispose_mapping(unsigned int virq) |
61 | { | 63 | { |
62 | } | 64 | } |