summaryrefslogtreecommitdiff
path: root/target/linux/cns21xx/patches-3.7/204-cns21xx-add-gec-device.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/cns21xx/patches-3.7/204-cns21xx-add-gec-device.patch')
-rw-r--r--target/linux/cns21xx/patches-3.7/204-cns21xx-add-gec-device.patch178
1 files changed, 0 insertions, 178 deletions
diff --git a/target/linux/cns21xx/patches-3.7/204-cns21xx-add-gec-device.patch b/target/linux/cns21xx/patches-3.7/204-cns21xx-add-gec-device.patch
deleted file mode 100644
index 910913b..0000000
--- a/target/linux/cns21xx/patches-3.7/204-cns21xx-add-gec-device.patch
+++ /dev/null
@@ -1,178 +0,0 @@
---- a/arch/arm/mach-cns21xx/Kconfig
-+++ b/arch/arm/mach-cns21xx/Kconfig
-@@ -3,6 +3,9 @@ if ARCH_CNS21XX
- menu "Cavium Networks CNS21xx based machines"
- endmenu
-
-+config CNS21XX_DEV_GEC
-+ def_bool n
-+
- config CNS21XX_DEV_USB
- def_bool n
-
---- a/arch/arm/mach-cns21xx/Makefile
-+++ b/arch/arm/mach-cns21xx/Makefile
-@@ -7,6 +7,7 @@
- obj-y := core.o devices.o gpio.o irq.o mm.o time.o
-
- # devices
-+obj-$(CONFIG_CNS21XX_DEV_GEC) += dev-gec.o
- obj-$(CONFIG_CNS21XX_DEV_USB) += dev-usb.o
- obj-$(CONFIG_CNS21XX_DEV_SPI_MASTER) += dev-spi-master.o
-
---- /dev/null
-+++ b/arch/arm/mach-cns21xx/dev-gec.c
-@@ -0,0 +1,98 @@
-+/*
-+ * Copyright (c) 2010-2012 Gabor Juhos <juhosg@openwrt.org>
-+ *
-+ * This file is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License, Version 2, as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#include <linux/init.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/platform_device.h>
-+#include <linux/etherdevice.h>
-+
-+#include <asm/sizes.h>
-+#include <mach/cns21xx.h>
-+#include <mach/irqs.h>
-+
-+#include "dev-gec.h"
-+
-+static u8 cns21xx_ethaddr[ETH_ALEN];
-+struct cns21xx_gec_plat_data cns21xx_gec_data;
-+
-+static struct resource cns21xx_gec_resources[] = {
-+ {
-+ .start = CNS21XX_NIC_BASE,
-+ .end = CNS21XX_NIC_BASE + SZ_4K - 1,
-+ .flags = IORESOURCE_MEM,
-+ }, {
-+ .name = CNS21XX_GEC_STATUS_IRQ_NAME,
-+ .start = CNS21XX_IRQ_NIC_STATUS,
-+ .end = CNS21XX_IRQ_NIC_STATUS,
-+ .flags = IORESOURCE_IRQ,
-+ }, {
-+ .name = CNS21XX_GEC_RXRC_IRQ_NAME,
-+ .start = CNS21XX_IRQ_NIC_RXRC,
-+ .end = CNS21XX_IRQ_NIC_RXRC,
-+ .flags = IORESOURCE_IRQ,
-+ }, {
-+ .name = CNS21XX_GEC_RXQF_IRQ_NAME,
-+ .start = CNS21XX_IRQ_NIC_RXQF,
-+ .end = CNS21XX_IRQ_NIC_RXQF,
-+ .flags = IORESOURCE_IRQ,
-+ }, {
-+ .name = CNS21XX_GEC_TXTC_IRQ_NAME,
-+ .start = CNS21XX_IRQ_NIC_TXTC,
-+ .end = CNS21XX_IRQ_NIC_TXTC,
-+ .flags = IORESOURCE_IRQ,
-+ }, {
-+ .name = CNS21XX_GEC_TXQE_IRQ_NAME,
-+ .start = CNS21XX_IRQ_NIC_TXQE,
-+ .end = CNS21XX_IRQ_NIC_TXQE,
-+ .flags = IORESOURCE_IRQ,
-+ }
-+};
-+
-+static u64 cns21xx_gec_dmamask = DMA_BIT_MASK(32);
-+static struct platform_device cns21xx_gec_device = {
-+ .name = "cns21xx-gec",
-+ .id = -1,
-+ .resource = cns21xx_gec_resources,
-+ .num_resources = ARRAY_SIZE(cns21xx_gec_resources),
-+ .dev = {
-+ .dma_mask = &cns21xx_gec_dmamask,
-+ .coherent_dma_mask = DMA_BIT_MASK(32),
-+ .platform_data = &cns21xx_gec_data,
-+ },
-+};
-+
-+static int __init cns21xx_ethaddr_setup(char *str)
-+{
-+ int t;
-+
-+ t = sscanf(str, "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
-+ &cns21xx_ethaddr[0], &cns21xx_ethaddr[1],
-+ &cns21xx_ethaddr[2], &cns21xx_ethaddr[3],
-+ &cns21xx_ethaddr[4], &cns21xx_ethaddr[5]);
-+
-+ if (t != ETH_ALEN)
-+ pr_err("cns21xx: failed to parse mac address \"%s\"\n", str);
-+
-+ return 1;
-+}
-+
-+__setup("ethaddr=", cns21xx_ethaddr_setup);
-+
-+__init int cns21xx_register_gec(void)
-+{
-+ if (cns21xx_gec_data.mac_addr == NULL)
-+ cns21xx_gec_data.mac_addr = cns21xx_ethaddr;
-+
-+ if (!is_valid_ether_addr(cns21xx_gec_data.mac_addr)) {
-+ random_ether_addr(cns21xx_gec_data.mac_addr);
-+ pr_debug("cns21xx: using random MAC address \"%s\"\n",
-+ cns21xx_gec_data.mac_addr);
-+ }
-+
-+ return platform_device_register(&cns21xx_gec_device);
-+}
---- /dev/null
-+++ b/arch/arm/mach-cns21xx/dev-gec.h
-@@ -0,0 +1,18 @@
-+/*
-+ * Copyright (c) 2010-2012 Gabor Juhos <juhosg@openwrt.org>
-+ *
-+ * This file is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License, Version 2, as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#ifndef _CNS21XX_DEV_GEC_H
-+#define _CNS21XX_DEV_GEC_H
-+
-+#include <mach/cns21xx_gec_platform.h>
-+
-+extern struct cns21xx_gec_plat_data cns21xx_gec_data;
-+
-+__init int cns21xx_register_gec(void);
-+
-+#endif /* _CNS21XX_DEV_GEC_H */
---- /dev/null
-+++ b/arch/arm/mach-cns21xx/include/mach/cns21xx_gec_platform.h
-@@ -0,0 +1,31 @@
-+/*
-+ * Copyright (c) 2010-2012 Gabor Juhos <juhosg@openwrt.org>
-+ *
-+ * This file is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License, Version 2, as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#ifndef _CNS21XX_GEC_PLATFORM_H
-+#define _CNS21XX_GEC_PLATFORM_H
-+
-+#define CNS21XX_GEC_STATUS_IRQ_NAME "status"
-+#define CNS21XX_GEC_RXRC_IRQ_NAME "rxrc"
-+#define CNS21XX_GEC_RXQF_IRQ_NAME "rxqf"
-+#define CNS21XX_GEC_TXTC_IRQ_NAME "txtc"
-+#define CNS21XX_GEC_TXQE_IRQ_NAME "txqe"
-+
-+enum cns21xx_gec_phy_type {
-+ CNS21XX_GEC_PHY_TYPE_INTERNAL = 0,
-+ CNS21XX_GEC_PHY_TYPE_VSC8601,
-+ CNS21XX_GEC_PHY_TYPE_IP101A,
-+ CNS21XX_GEC_PHY_TYPE_IP1001,
-+};
-+
-+struct cns21xx_gec_plat_data {
-+ u8 *mac_addr;
-+ enum cns21xx_gec_phy_type phy_type;
-+ u8 phy_addr;
-+};
-+
-+#endif /* _CNS21XX_GEC_PLATFORM_H */