Skip to content

Commit

Permalink
sh: mach-edosk7705: update for this century, kill off PIO trapping.
Browse files Browse the repository at this point in the history
The only reason this board needs to do PIO trapping is for ethernet,
which happens to follow the same scheme as its bigger brother the
edosk7760. With ethernet properly supported through the platform device,
we can kill off the left over PIO abortion.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Oct 29, 2010
1 parent db2d037 commit c1cfed3
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 82 deletions.
2 changes: 1 addition & 1 deletion arch/sh/boards/mach-edosk7705/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# Makefile for the EDOSK7705 specific parts of the kernel
#

obj-y := setup.o io.o
obj-y := setup.o
71 changes: 0 additions & 71 deletions arch/sh/boards/mach-edosk7705/io.c

This file was deleted.

63 changes: 53 additions & 10 deletions arch/sh/boards/mach-edosk7705/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,70 @@
*/
#include <linux/init.h>
#include <linux/irq.h>
#include <asm/machvec.h>
#include <linux/platform_device.h>
#include <linux/interrupt.h>
#include <linux/smc91x.h>
#include <mach/edosk7705.h>
#include <asm/machvec.h>
#include <asm/sizes.h>

#define SMC_IOBASE 0xA2000000
#define SMC_IO_OFFSET 0x300
#define SMC_IOADDR (SMC_IOBASE + SMC_IO_OFFSET)

#define ETHERNET_IRQ 0x09

static void __init sh_edosk7705_init_irq(void)
{
/* This is the Ethernet interrupt */
make_imask_irq(0x09);
make_imask_irq(ETHERNET_IRQ);
}

/* eth initialization functions */
static struct smc91x_platdata smc91x_info = {
.flags = SMC91X_USE_16BIT | SMC91X_IO_SHIFT_1 | IORESOURCE_IRQ_LOWLEVEL,
};

static struct resource smc91x_res[] = {
[0] = {
.start = SMC_IOADDR,
.end = SMC_IOADDR + SZ_32 - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = ETHERNET_IRQ,
.end = ETHERNET_IRQ,
.flags = IORESOURCE_IRQ ,
}
};

static struct platform_device smc91x_dev = {
.name = "smc91x",
.id = -1,
.num_resources = ARRAY_SIZE(smc91x_res),
.resource = smc91x_res,

.dev = {
.platform_data = &smc91x_info,
},
};

/* platform init code */
static struct platform_device *edosk7705_devices[] __initdata = {
&smc91x_dev,
};

static int __init init_edosk7705_devices(void)
{
return platform_add_devices(edosk7705_devices,
ARRAY_SIZE(edosk7705_devices));
}
__initcall(init_edosk7705_devices);

/*
* The Machine Vector
*/
static struct sh_machine_vector mv_edosk7705 __initmv = {
.mv_name = "EDOSK7705",
.mv_nr_irqs = 80,

.mv_inb = sh_edosk7705_inb,
.mv_outb = sh_edosk7705_outb,

.mv_insb = sh_edosk7705_insb,
.mv_outsb = sh_edosk7705_outsb,

.mv_init_irq = sh_edosk7705_init_irq,
};

0 comments on commit c1cfed3

Please sign in to comment.