From: Michael Schmitz <schmitzmic@googlemail.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-m68k@vger.kernel.org, debian-68k@lists.debian.org
Subject: [PATCH] m68k/atari: EtherNAT patch series - resent as attachments
Date: Mon, 02 Apr 2012 13:15:36 +1200 [thread overview]
Message-ID: <4F78FDB8.5060004@gmail.com> (raw)
In-Reply-To: <4F77C245.5090002@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1758 bytes --]
Hi All,
due to patch file mangling in my previous mails, here's the whole series
again, as attachments. Apply in order, to Geert's git tree as of March 20.
Cheers,
Michael
>
> The following patch is one in a series of patches in relation to
> getting interrupt-driven Ethernet and USB drivers supported on the
> Atari Falcon EtherNAT board. Whoever does have a Falcon with EtherNAT
> (and CT60, preferably) running Linux please try out this patch series
> to help testing these drivers. For convenience of testing, build the
> Ethernet and USB drivers as modules please.
>
> Patches are relative to Geert's v3.3.0 (commit
> 29c8d8820b6eba2fb6cb2702fd06095a48083595).
>
> Part 1 (this): make room for the EtherNAT interrupts - they appear at
> vectors 0xc3 (USB ISP1160) and 0xc4 (SMC91C111)
> Part 2: add platform data for the ISP1160 driver, fix the 91C111
> interrupt source number (the 91C111 platform data had been added quite
> some time ago)
> Part 3: make sure the platform devices are added only if the EtherNAT
> card is actually present
> Part 4: add usb/isp116x.h header to fix compile errors introduced in 2)
> Part 5: add Kconfig flag necessary to enable compilation of the
> ISP1160 driver
>
> Both functions of the EtherNAT are correctly detected with this patch
> series. Some mysterious hardware fault in my Falcon does prevent the
> card to function properly, however (though at least the 91C111 part
> with timer polling did use to work in thee past).
>
> The card interrupts are not being enabled by these patches yet. I need
> to discuss with Geert the best way of enabling them as close to the
> module loading time as possible.
>
> Cheers,
>
> Michael
>
> Signed-off-by: Michael Schmitz <schmitz@debian.org>
>
[-- Attachment #2: 3.3.0-ethernat-1.diff --]
[-- Type: text/x-patch, Size: 1180 bytes --]
arch/m68k/include/asm/atariints.h | 2 +-
arch/m68k/include/asm/irq.h | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/m68k/include/asm/atariints.h b/arch/m68k/include/asm/atariints.h
index 656bbbf..4e82683 100644
--- a/arch/m68k/include/asm/atariints.h
+++ b/arch/m68k/include/asm/atariints.h
@@ -30,7 +30,7 @@
#define TTMFP_SOURCE_BASE 24
#define SCC_SOURCE_BASE 40
#define VME_SOURCE_BASE 56
-#define VME_MAX_SOURCES 16
+#define VME_MAX_SOURCES 152
#define NUM_ATARI_SOURCES (VME_SOURCE_BASE+VME_MAX_SOURCES-STMFP_SOURCE_BASE)
diff --git a/arch/m68k/include/asm/irq.h b/arch/m68k/include/asm/irq.h
index c1155f0..e905b3f 100644
--- a/arch/m68k/include/asm/irq.h
+++ b/arch/m68k/include/asm/irq.h
@@ -9,9 +9,9 @@
*/
#if defined(CONFIG_COLDFIRE)
#define NR_IRQS 256
-#elif defined(CONFIG_VME) || defined(CONFIG_SUN3) || defined(CONFIG_SUN3X)
+#elif defined(CONFIG_VME) || defined(CONFIG_SUN3) || defined(CONFIG_SUN3X) || defined(CONFIG_ATARI)
#define NR_IRQS 200
-#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC)
+#elif defined(CONFIG_MAC)
#define NR_IRQS 72
#elif defined(CONFIG_Q40)
#define NR_IRQS 43
[-- Attachment #3: 3.3.0-ethernat-2.diff --]
[-- Type: text/x-patch, Size: 2256 bytes --]
arch/m68k/atari/config.c | 63 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 61 insertions(+), 2 deletions(-)
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index af78731..12a76ab 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -663,7 +663,7 @@ static void atari_get_hardware_list(struct seq_file *m)
*/
#define ATARI_ETHERNAT_PHYS_ADDR 0x80000000
-#define ATARI_ETHERNAT_IRQ 0xc3
+#define ATARI_ETHERNAT_IRQ 196
static struct resource smc91x_resources[] = {
[0] = {
@@ -687,8 +687,67 @@ static struct platform_device smc91x_device = {
.resource = smc91x_resources,
};
+#define ATARI_USB_PHYS_ADDR 0x80000010
+#define ATARI_USB_IRQ 195
+
+static struct resource isp1160_resources[] = {
+ [0] = {
+ .name = "isp1160-data",
+ .start = ATARI_USB_PHYS_ADDR,
+ .end = ATARI_USB_PHYS_ADDR + 0x1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .name = "isp1160-regs",
+ .start = ATARI_USB_PHYS_ADDR + 0x2,
+ .end = ATARI_USB_PHYS_ADDR + 0x3,
+ .flags = IORESOURCE_MEM,
+ },
+ [2] = {
+ .name = "isp1160-irq",
+ .start = ATARI_USB_IRQ,
+ .end = ATARI_USB_IRQ,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static void isp1160_delay(struct device *dev, int delay)
+{
+ ndelay(delay);
+}
+
+/* (DataBusWidth16|AnalogOCEnable|DREQOutputPolarity|DownstreamPort15KRSel ) */
+static struct isp116x_platform_data isp1160_platform_data = {
+ /* Enable internal resistors on downstream ports */
+ .sel15Kres = 1,
+ /* On-chip overcurrent protection */
+ .oc_enable = 1,
+ /* INT output polarity */
+ .int_act_high = 1,
+ /* INT edge or level triggered */
+ .int_edge_triggered = 0,
+
+ /* WAKEUP pin connected - NOT SUPPORTED */
+ /* .remote_wakeup_connected = 0, */
+ /* Wakeup by devices on usb bus enabled */
+ .remote_wakeup_enable = 0,
+ .delay = isp1160_delay,
+};
+
+static struct platform_device isp1160_device = {
+ .name = "isp116x-hcd",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(isp1160_resources),
+ .resource = isp1160_resources,
+ .dev = {
+ .platform_data = &isp1160_platform_data,
+ },
+
+};
+
static struct platform_device *atari_platform_devices[] __initdata = {
- &smc91x_device
+ &smc91x_device,
+ &isp1160_device
};
int __init atari_platform_init(void)
[-- Attachment #4: 3.3.0-ethernat-3.diff --]
[-- Type: text/x-patch, Size: 861 bytes --]
arch/m68k/atari/config.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index 12a76ab..92bf83a 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -752,7 +752,18 @@ static struct platform_device *atari_platform_devices[] __initdata = {
int __init atari_platform_init(void)
{
- return platform_add_devices(atari_platform_devices, ARRAY_SIZE(atari_platform_devices));
+ int rv = -ENODEV;
+ unsigned char *enatc_virt;
+
+ if (!MACH_IS_ATARI)
+ return -ENODEV;
+
+ enatc_virt = (unsigned char *)ioremap((ATARI_ETHERNAT_PHYS_ADDR+0x23), 0xf);
+ if (hwreg_present(enatc_virt))
+ rv = platform_add_devices(atari_platform_devices, ARRAY_SIZE(atari_platform_devices));
+ iounmap(enatc_virt);
+
+ return rv;
}
arch_initcall(atari_platform_init);
[-- Attachment #5: 3.3.0-ethernat-4.diff --]
[-- Type: text/x-patch, Size: 439 bytes --]
arch/m68k/atari/config.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index 92bf83a..aceebc2 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -32,6 +32,7 @@
#include <linux/delay.h>
#include <linux/ioport.h>
#include <linux/platform_device.h>
+#include <linux/usb/isp116x.h>
#include <linux/vt_kern.h>
#include <linux/module.h>
[-- Attachment #6: 3.3.0-ethernat-5.diff --]
[-- Type: text/x-patch, Size: 537 bytes --]
arch/m68k/Kconfig.machine | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/m68k/Kconfig.machine b/arch/m68k/Kconfig.machine
index 7cdf6b0..8c31cdf 100644
--- a/arch/m68k/Kconfig.machine
+++ b/arch/m68k/Kconfig.machine
@@ -15,6 +15,7 @@ config ATARI
bool "Atari support"
depends on MMU
select MMU_MOTOROLA if MMU
+ select USB_ARCH_HAS_OHCI if USB_SUPPORT
help
This option enables support for the 68000-based Atari series of
computers (including the TT, Falcon and Medusa). If you plan to use
[-- Attachment #7: 3.3.0-ethernat-6.diff --]
[-- Type: text/x-patch, Size: 566 bytes --]
drivers/net/ethernet/smsc/smc91x.h | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ethernet/smsc/smc91x.h b/drivers/net/ethernet/smsc/smc91x.h
index 799d494..987755c 100644
--- a/drivers/net/ethernet/smsc/smc91x.h
+++ b/drivers/net/ethernet/smsc/smc91x.h
@@ -255,6 +255,8 @@ SMC_outw(u16 val, void __iomem *ioaddr, int reg)
#define RPC_LSA_DEFAULT RPC_LED_100_10
#define RPC_LSB_DEFAULT RPC_LED_TX_RX
+#define SMC_IRQ_FLAGS (IRQF_SHARED)
+
#define SMC_DYNAMIC_BUS_CONFIG
#elif defined(CONFIG_ARCH_MSM)
next prev parent reply other threads:[~2012-04-02 1:15 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-20 18:57 [PATCH] m68k/atari: EtherNEC - Convert ETHER_ADDR_LEN uses to ETH_ALEN Geert Uytterhoeven
2012-02-27 7:07 ` [PATCH] m68k/atari: EtherNEC - rewrite to use mainstream ne.c Michael Schmitz
2012-03-07 10:09 ` Geert Uytterhoeven
2012-03-07 18:42 ` Michael Schmitz
2012-04-01 3:02 ` [PATCH 3/5] m68k/atari: EtherNAT - register EtherNAT platform devices only when probed Michael Schmitz
2012-04-01 3:05 ` [PATCH 4/5] m68k/atari: EtherNAT - fix dumb compile error Michael Schmitz
2012-04-01 3:10 ` [PATCH 5/5] m68k/atari: EtherNAT - enable USB HCD config option on Atari Michael Schmitz
2012-04-01 4:57 ` [PATCH 6/5] m68k/atari: EtherNAT - use correct irq flag in atari_91C111 Michael Schmitz
2012-04-01 5:57 ` [PATCH 6/5] m68k/atari: set up timer D and register dummy handler if either EtherNEC or EtherNAT found Michael Schmitz
2012-03-09 3:11 ` [PATCH] m68k/atari: EtherNEC - rewrite to use mainstream ne.c Paul Gortmaker
2012-03-09 4:58 ` Michael Schmitz
2012-03-09 6:35 ` Geert Uytterhoeven
2012-03-09 13:32 ` Paul Gortmaker
2012-03-11 6:31 ` Michael Schmitz
2012-04-01 8:49 ` [PATCH] m68k/atari: EtherNEC - rewrite to use mainstream ne.c, take two Michael Schmitz
2012-04-03 22:52 ` David Miller
2012-04-04 20:46 ` Paul Gortmaker
2012-04-05 9:28 ` Geert Uytterhoeven
2012-04-05 13:24 ` Paul Gortmaker
2012-04-05 14:21 ` Geert Uytterhoeven
2012-04-05 22:10 ` Michael Schmitz
2012-04-06 8:28 ` Geert Uytterhoeven
2012-04-05 9:44 ` Michael Schmitz
2012-04-01 2:49 ` [PATCH 1/5] m68k/atari: EtherNAT - change number of Atari interrupts to make room for EtherNAT interrupts Michael Schmitz
2012-04-01 20:39 ` Geert Uytterhoeven
2012-04-01 22:44 ` Michael Schmitz
2012-04-02 7:35 ` Geert Uytterhoeven
2012-04-02 22:29 ` Michael Schmitz
2012-04-03 21:15 ` Michael Schmitz
2012-04-03 21:54 ` Thorsten Glaser
2012-04-03 22:21 ` Michael Schmitz
2012-04-03 22:31 ` Thorsten Glaser
2012-04-03 23:16 ` Michael Schmitz
2012-04-06 21:43 ` Michael Schmitz
2012-04-01 21:00 ` Andreas Schwab
2012-04-01 21:46 ` Thorsten Glaser
2012-04-01 22:27 ` Michael Schmitz
2012-04-02 1:15 ` Michael Schmitz [this message]
2012-04-01 2:58 ` [PATCH 2/5] m68k/atari: EtherNAT - add ISP1160 platform data Michael Schmitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F78FDB8.5060004@gmail.com \
--to=schmitzmic@googlemail.com \
--cc=debian-68k@lists.debian.org \
--cc=geert@linux-m68k.org \
--cc=linux-m68k@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox