board-edosk7705.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * arch/sh/boards/renesas/edosk7705/setup.c
  3. *
  4. * Copyright (C) 2000 Kazumoto Kojima
  5. *
  6. * Hitachi SolutionEngine Support.
  7. *
  8. * Modified for edosk7705 development
  9. * board by S. Dunn, 2003.
  10. */
  11. #include <linux/init.h>
  12. #include <linux/irq.h>
  13. #include <linux/platform_device.h>
  14. #include <linux/interrupt.h>
  15. #include <linux/smc91x.h>
  16. #include <linux/sh_intc.h>
  17. #include <asm/machvec.h>
  18. #include <asm/sizes.h>
  19. #define SMC_IOBASE 0xA2000000
  20. #define SMC_IO_OFFSET 0x300
  21. #define SMC_IOADDR (SMC_IOBASE + SMC_IO_OFFSET)
  22. #define ETHERNET_IRQ evt2irq(0x320)
  23. static void __init sh_edosk7705_init_irq(void)
  24. {
  25. make_imask_irq(ETHERNET_IRQ);
  26. }
  27. /* eth initialization functions */
  28. static struct smc91x_platdata smc91x_info = {
  29. .flags = SMC91X_USE_16BIT | SMC91X_IO_SHIFT_1 | IORESOURCE_IRQ_LOWLEVEL,
  30. };
  31. static struct resource smc91x_res[] = {
  32. [0] = {
  33. .start = SMC_IOADDR,
  34. .end = SMC_IOADDR + SZ_32 - 1,
  35. .flags = IORESOURCE_MEM,
  36. },
  37. [1] = {
  38. .start = ETHERNET_IRQ,
  39. .end = ETHERNET_IRQ,
  40. .flags = IORESOURCE_IRQ ,
  41. }
  42. };
  43. static struct platform_device smc91x_dev = {
  44. .name = "smc91x",
  45. .id = -1,
  46. .num_resources = ARRAY_SIZE(smc91x_res),
  47. .resource = smc91x_res,
  48. .dev = {
  49. .platform_data = &smc91x_info,
  50. },
  51. };
  52. /* platform init code */
  53. static struct platform_device *edosk7705_devices[] __initdata = {
  54. &smc91x_dev,
  55. };
  56. static int __init init_edosk7705_devices(void)
  57. {
  58. return platform_add_devices(edosk7705_devices,
  59. ARRAY_SIZE(edosk7705_devices));
  60. }
  61. device_initcall(init_edosk7705_devices);
  62. /*
  63. * The Machine Vector
  64. */
  65. static struct sh_machine_vector mv_edosk7705 __initmv = {
  66. .mv_name = "EDOSK7705",
  67. .mv_init_irq = sh_edosk7705_init_irq,
  68. };