Blame view

kernel/linux-imx6_3.14.28/arch/sh/boards/board-edosk7705.c 1.63 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  /*
   * arch/sh/boards/renesas/edosk7705/setup.c
   *
   * Copyright (C) 2000  Kazumoto Kojima
   *
   * Hitachi SolutionEngine Support.
   *
   * Modified for edosk7705 development
   * board by S. Dunn, 2003.
   */
  #include <linux/init.h>
  #include <linux/irq.h>
  #include <linux/platform_device.h>
  #include <linux/interrupt.h>
  #include <linux/smc91x.h>
  #include <linux/sh_intc.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	evt2irq(0x320)
  
  static void __init sh_edosk7705_init_irq(void)
  {
  	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));
  }
  device_initcall(init_edosk7705_devices);
  
  /*
   * The Machine Vector
   */
  static struct sh_machine_vector mv_edosk7705 __initmv = {
  	.mv_name		= "EDOSK7705",
  	.mv_init_irq		= sh_edosk7705_init_irq,
  };