summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorJan Weitzel <j.weitzel@phytec.de>2012-03-09 10:24:09 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-03-13 13:35:29 +0100
commit4088ab55881f559678c68c317f024ecc8e3db3c9 (patch)
tree963a7ca0eecda40f32488ac682d59b54aa337443 /drivers/base
parentef00106960f7a2d07777b2829ffa0495379d2966 (diff)
downloadbarebox-4088ab55881f559678c68c317f024ecc8e3db3c9.tar.gz
barebox-4088ab55881f559678c68c317f024ecc8e3db3c9.tar.xz
NET: Add support for ks8851_mll
Add support for KS8851 16bit MLL chip from Micrel Inc. Signed-off-by: Jan Weitzel <j.weitzel@phytec.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/resource.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/base/resource.c b/drivers/base/resource.c
index d2f7a07763..b31c7d7e1a 100644
--- a/drivers/base/resource.c
+++ b/drivers/base/resource.c
@@ -121,3 +121,36 @@ struct device_d *add_usb_ehci_device(int id, resource_size_t hccr,
}
EXPORT_SYMBOL(add_usb_ehci_device);
#endif
+
+#ifdef CONFIG_DRIVER_NET_KS8851_MLL
+struct device_d *add_ks8851_device(int id, resource_size_t addr,
+ resource_size_t addr_cmd, int flags, void *pdata)
+{
+ struct resource *res;
+ resource_size_t size;
+
+ switch (flags) {
+ case IORESOURCE_MEM_16BIT:
+ size = 2;
+ break;
+ case IORESOURCE_MEM_8BIT:
+ size = 1;
+ break;
+ default:
+ printf("ks8851: memory width flag missing\n");
+ return NULL;
+ }
+
+ res = xzalloc(sizeof(struct resource) * 2);
+
+ res[0].start = addr;
+ res[0].size = size;
+ res[0].flags = IORESOURCE_MEM | flags;
+ res[1].start = addr_cmd;
+ res[1].size = size;
+ res[1].flags = IORESOURCE_MEM | flags;
+
+ return add_generic_device_res("ks8851_mll", id, res, 2, pdata);
+}
+EXPORT_SYMBOL(add_ks8851_device);
+#endif