board-edosk7705.c revision 95d210ce6b23ec8916f97ec0cc7eb4d5fa80e0b3
11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * arch/sh/boards/renesas/edosk7705/setup.c 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2000 Kazumoto Kojima 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Hitachi SolutionEngine Support. 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified for edosk7705 development 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * board by S. Dunn, 2003. 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/init.h> 12866ef8f48f2272ce8d84156c91964d730666ab33Paul Mundt#include <linux/irq.h> 13c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#include <linux/platform_device.h> 14c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#include <linux/interrupt.h> 15c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#include <linux/smc91x.h> 16c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#include <asm/machvec.h> 17c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#include <asm/sizes.h> 18c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt 19c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#define SMC_IOBASE 0xA2000000 20c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#define SMC_IO_OFFSET 0x300 21c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#define SMC_IOADDR (SMC_IOBASE + SMC_IO_OFFSET) 22c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt 23c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt#define ETHERNET_IRQ 0x09 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 252c7834a6f15fe6c50ed4766f1bb6f9183b9e2740Paul Mundtstatic void __init sh_edosk7705_init_irq(void) 262c7834a6f15fe6c50ed4766f1bb6f9183b9e2740Paul Mundt{ 27c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt make_imask_irq(ETHERNET_IRQ); 282c7834a6f15fe6c50ed4766f1bb6f9183b9e2740Paul Mundt} 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 30c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt/* eth initialization functions */ 31c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundtstatic struct smc91x_platdata smc91x_info = { 32c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .flags = SMC91X_USE_16BIT | SMC91X_IO_SHIFT_1 | IORESOURCE_IRQ_LOWLEVEL, 33c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt}; 34c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt 35c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundtstatic struct resource smc91x_res[] = { 36c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt [0] = { 37c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .start = SMC_IOADDR, 38c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .end = SMC_IOADDR + SZ_32 - 1, 39c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .flags = IORESOURCE_MEM, 40c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt }, 41c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt [1] = { 42c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .start = ETHERNET_IRQ, 43c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .end = ETHERNET_IRQ, 44c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .flags = IORESOURCE_IRQ , 45c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt } 46c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt}; 47c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt 48c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundtstatic struct platform_device smc91x_dev = { 49c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .name = "smc91x", 50c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .id = -1, 51c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .num_resources = ARRAY_SIZE(smc91x_res), 52c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .resource = smc91x_res, 53c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt 54c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .dev = { 55c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt .platform_data = &smc91x_info, 56c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt }, 57c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt}; 58c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt 59c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt/* platform init code */ 60c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundtstatic struct platform_device *edosk7705_devices[] __initdata = { 61c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt &smc91x_dev, 62c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt}; 63c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt 64c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundtstatic int __init init_edosk7705_devices(void) 65c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt{ 66c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt return platform_add_devices(edosk7705_devices, 67c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt ARRAY_SIZE(edosk7705_devices)); 68c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt} 6995d210ce6b23ec8916f97ec0cc7eb4d5fa80e0b3Nobuhiro Iwamatsudevice_initcall(init_edosk7705_devices); 70c1cfed3c3a190b4ce1d5a4510d9dfd3d42176fbaPaul Mundt 711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * The Machine Vector 731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 7482f81f4784479df17a80caff4a7156da0a2f7deaPaul Mundtstatic struct sh_machine_vector mv_edosk7705 __initmv = { 752c7834a6f15fe6c50ed4766f1bb6f9183b9e2740Paul Mundt .mv_name = "EDOSK7705", 761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds .mv_nr_irqs = 80, 772c7834a6f15fe6c50ed4766f1bb6f9183b9e2740Paul Mundt .mv_init_irq = sh_edosk7705_init_irq, 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 79