sh: smsc911x support for the rsk7203 board

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Thursday, June 18, 2009 - 3:04 pm

Gitweb:     http://git.kernel.org/linus/724cfb944007b7f8d346523a7810b53a35921bc5
Commit:     724cfb944007b7f8d346523a7810b53a35921bc5
Parent:     03347e2592078a90df818670fddf97a33eec70fb
Author:     Magnus Damm <damm@igel.co.jp>
AuthorDate: Tue Apr 28 08:02:13 2009 +0000
Committer:  Paul Mundt <lethal@linux-sh.org>
CommitDate: Tue Jun 16 05:57:07 2009 +0900

    sh: smsc911x support for the rsk7203 board
    
    This patch adds support for the LAN9118 ethernet on rsk7203.
    
    The LAN9118 controller is hooked up using a 16-bit data bus,
    but the rsk7203 board does not swap the byte lanes as needed
    between the sh7203 processor and the the ethernet controller.
    
    In the processor the CS memory window is configured in 16-bit
    mode but the smsc911x driver is told to do 32-bit accesses to
    improve performance. The SMSC911X_SWAP_FIFO flag is used
    to tell the driver to do software byte swapping of fifo data.
    
    Signed-off-by: Magnus Damm <damm@igel.co.jp>
    Acked-by: Steve Glendinning <steve.glendinning@smsc.com>
    Signed-off-by: Paul Mundt <lethal@linux-sh.org>
---
 arch/sh/boards/mach-rsk/devices-rsk7203.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/arch/sh/boards/mach-rsk/devices-rsk7203.c b/arch/sh/boards/mach-rsk/devices-rsk7203.c
index d8a65ea..4af3a77 100644
--- a/arch/sh/boards/mach-rsk/devices-rsk7203.c
+++ b/arch/sh/boards/mach-rsk/devices-rsk7203.c
@@ -26,13 +26,13 @@ static struct smsc911x_platform_config smsc911x_config = {
 	.phy_interface	= PHY_INTERFACE_MODE_MII,
 	.irq_polarity	= SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
 	.irq_type	= SMSC911X_IRQ_TYPE_OPEN_DRAIN,
-	.flags		= SMSC911X_USE_16BIT,
+	.flags		= SMSC911X_USE_32BIT | SMSC911X_SWAP_FIFO,
 };
 
 static struct resource smsc911x_resources[] = {
 	[0] = {
 		.start		= 0x24000000,
-		.end		= 0x24000000 + 0x100,
+		.end		= 0x240000ff,
 		.flags		= IORESOURCE_MEM,
 	},
 	[1] = {
@@ -99,6 +99,10 @@ static int __init rsk7203_devices_setup(void)
 	gpio_request(GPIO_FN_TXD0, NULL);
 	gpio_request(GPIO_FN_RXD0, NULL);
 
+	/* Setup LAN9118: CS1 in 16-bit Big Endian Mode, IRQ0 at Port B */
+	ctrl_outl(0x36db0400, 0xfffc0008); /* CS1BCR */
+	gpio_request(GPIO_FN_IRQ0_PB, NULL);
+
 	return platform_add_devices(rsk7203_devices,
 				    ARRAY_SIZE(rsk7203_devices));
 }
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
sh: smsc911x support for the rsk7203 board, Linux Kernel Mailing ..., (Thu Jun 18, 3:04 pm)