From fb7cd9d9acfb52dc1b9fbd5079445e4732667bbc Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sun, 25 Jun 2006 23:18:36 -0700 Subject: [SPARC]: Add of_set_property() interface. Signed-off-by: David S. Miller --- include/asm-sparc/prom.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'include/asm-sparc') diff --git a/include/asm-sparc/prom.h b/include/asm-sparc/prom.h index c5e3d26eabd3..e9b8047470fe 100644 --- a/include/asm-sparc/prom.h +++ b/include/asm-sparc/prom.h @@ -35,6 +35,7 @@ struct property { int length; void *value; struct property *next; + unsigned long _flags; }; struct device_node { @@ -60,6 +61,12 @@ struct device_node { void *data; }; +/* flag descriptions */ +#define OF_DYNAMIC 1 /* node and properties were allocated via kmalloc */ + +#define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) +#define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) + static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_entry *de) { dn->pde = de; @@ -88,6 +95,7 @@ extern struct property *of_find_property(struct device_node *np, extern int of_device_is_compatible(struct device_node *device, const char *); extern void *of_get_property(struct device_node *node, const char *name, int *lenp); +extern int of_set_property(struct device_node *node, const char *name, void *val, int len); extern int of_getintprop_default(struct device_node *np, const char *name, int def); -- cgit v1.2.2 From 87b385da1f5a5f4a12a28e00fe597bcde8d6fea3 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sun, 25 Jun 2006 23:18:57 -0700 Subject: [SPARC]: Add unique device_node IDs and a ".node" property. Signed-off-by: David S. Miller --- include/asm-sparc/prom.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/asm-sparc') diff --git a/include/asm-sparc/prom.h b/include/asm-sparc/prom.h index e9b8047470fe..f9cf44c07164 100644 --- a/include/asm-sparc/prom.h +++ b/include/asm-sparc/prom.h @@ -36,6 +36,7 @@ struct property { void *value; struct property *next; unsigned long _flags; + unsigned int unique_id; }; struct device_node { @@ -59,6 +60,7 @@ struct device_node { struct kref kref; unsigned long _flags; void *data; + unsigned int unique_id; }; /* flag descriptions */ -- cgit v1.2.2 From 749805dc10e955b0170573061f9522a6a21cbae0 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sun, 25 Jun 2006 23:24:24 -0700 Subject: [SPARC]: Add iomap interfaces. Signed-off-by: David S. Miller --- include/asm-sparc/io.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'include/asm-sparc') diff --git a/include/asm-sparc/io.h b/include/asm-sparc/io.h index a42df208d590..cab0b851b8b1 100644 --- a/include/asm-sparc/io.h +++ b/include/asm-sparc/io.h @@ -249,6 +249,22 @@ extern void __iomem *ioremap(unsigned long offset, unsigned long size); #define ioremap_nocache(X,Y) ioremap((X),(Y)) extern void iounmap(volatile void __iomem *addr); +#define ioread8(X) readb(X) +#define ioread16(X) readw(X) +#define ioread32(X) readl(X) +#define iowrite8(val,X) writeb(val,X) +#define iowrite16(val,X) writew(val,X) +#define iowrite32(val,X) writel(val,X) + +/* Create a virtual mapping cookie for an IO port range */ +extern void __iomem *ioport_map(unsigned long port, unsigned int nr); +extern void ioport_unmap(void __iomem *); + +/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */ +struct pci_dev; +extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max); +extern void pci_iounmap(struct pci_dev *dev, void __iomem *); + /* * Bus number may be in res->flags... somewhere. */ -- cgit v1.2.2