board-edosk7705.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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 <asm/machvec.h>
  17. #include <asm/sizes.h>
  18. #define SMC_IOBASE 0xA2000000
  19. #define SMC_IO_OFFSET 0x300
  20. #define SMC_IOADDR (SMC_IOBASE + SMC_IO_OFFSET)
  21. #define ETHERNET_IRQ 0x09
  22. static void __init sh_edosk7705_init_irq(void)
  23. {
  24. make_imask_irq(ETHERNET_IRQ);
  25. }
  26. /* eth initialization functions */
  27. static struct smc91x_platdata smc91x_info = {
  28. .flags = SMC91X_USE_16BIT | SMC91X_IO_SHIFT_1 | IORESOURCE_IRQ_LOWLEVEL,
  29. };
  30. static struct resource smc91x_res[] = {
  31. [0] = {
  32. .start = SMC_IOADDR,
  33. .end = SMC_IOADDR + SZ_32 - 1,
  34. .flags = IORESOURCE_MEM,
  35. },
  36. [1] = {
  37. .start = ETHERNET_IRQ,
  38. .end = ETHERNET_IRQ,
  39. .flags = IORESOURCE_IRQ ,
  40. }
  41. };
  42. static struct platform_device smc91x_dev = {
  43. .name = "smc91x",
  44. .id = -1,
  45. .num_resources = ARRAY_SIZE(smc91x_res),
  46. .resource = smc91x_res,
  47. .dev = {
  48. .platform_data = &smc91x_info,
  49. },
  50. };
  51. /* platform init code */
  52. static struct platform_device *edosk7705_devices[] __initdata = {
  53. &smc91x_dev,
  54. };
  55. static int __init init_edosk7705_devices(void)
  56. {
  57. return platform_add_devices(edosk7705_devices,
  58. ARRAY_SIZE(edosk7705_devices));
  59. }
  60. device_initcall(init_edosk7705_devices);
  61. /*
  62. * The Machine Vector
  63. */
  64. static struct sh_machine_vector mv_edosk7705 __initmv = {
  65. .mv_name = "EDOSK7705",
  66. .mv_nr_irqs = 80,
  67. .mv_init_irq = sh_edosk7705_init_irq,
  68. };