Blame view

arch/arm/mach-omap2/board-am3517crane.c 2.71 KB
1cb125caf   Srinath   omap: AM3517/05: ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  /*
   * Support for AM3517/05 Craneboard
   * http://www.mistralsolutions.com/products/craneboard.php
   *
   * Copyright (C) 2010 Mistral Solutions Pvt Ltd. <www.mistralsolutions.com>
   * Author: R.Srinath <srinath@mistralsolutions.com>
   *
   * Based on mach-omap2/board-am3517evm.c
   *
   * This program is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License as  published by the
   * Free Software Foundation version 2.
   *
   * This program is distributed "as is" WITHOUT ANY WARRANTY of any kind,
   * whether express or implied; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * General Public License for more details.
   */
  
  #include <linux/kernel.h>
  #include <linux/init.h>
840b92968   Srinath   arm: omap: craneb...
22
  #include <linux/gpio.h>
1cb125caf   Srinath   omap: AM3517/05: ...
23
24
25
26
27
28
29
  
  #include <mach/hardware.h>
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
  #include <asm/mach/map.h>
  
  #include <plat/board.h>
4e65331c6   Tony Lindgren   ARM: 7159/1: OMAP...
30
  #include "common.h"
840b92968   Srinath   arm: omap: craneb...
31
  #include <plat/usb.h>
1cb125caf   Srinath   omap: AM3517/05: ...
32
33
  
  #include "mux.h"
840b92968   Srinath   arm: omap: craneb...
34
35
36
37
  #include "control.h"
  
  #define GPIO_USB_POWER		35
  #define GPIO_USB_NRESET		38
1cb125caf   Srinath   omap: AM3517/05: ...
38
39
40
41
42
43
44
45
46
  
  /* Board initialization */
  static struct omap_board_config_kernel am3517_crane_config[] __initdata = {
  };
  
  #ifdef CONFIG_OMAP_MUX
  static struct omap_board_mux board_mux[] __initdata = {
  	{ .reg_offset = OMAP_MUX_TERMINATOR },
  };
1cb125caf   Srinath   omap: AM3517/05: ...
47
  #endif
181b250cf   Keshava Munegowda   arm: omap: usb: c...
48
49
50
51
  static struct usbhs_omap_board_data usbhs_bdata __initdata = {
  	.port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
  	.port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,
  	.port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
840b92968   Srinath   arm: omap: craneb...
52
53
54
55
56
57
  
  	.phy_reset  = true,
  	.reset_gpio_port[0]  = GPIO_USB_NRESET,
  	.reset_gpio_port[1]  = -EINVAL,
  	.reset_gpio_port[2]  = -EINVAL
  };
1cb125caf   Srinath   omap: AM3517/05: ...
58
59
  static void __init am3517_crane_init(void)
  {
840b92968   Srinath   arm: omap: craneb...
60
  	int ret;
1cb125caf   Srinath   omap: AM3517/05: ...
61
62
  	omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
  	omap_serial_init();
a4ca9dbe4   Tony Lindgren   ARM: OMAP: Move o...
63
  	omap_sdrc_init(NULL, NULL);
840b92968   Srinath   arm: omap: craneb...
64

e41cccfe7   Tony Lindgren   omap2+: Minimize ...
65
66
  	omap_board_config = am3517_crane_config;
  	omap_board_config_size = ARRAY_SIZE(am3517_crane_config);
840b92968   Srinath   arm: omap: craneb...
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  	/* Configure GPIO for EHCI port */
  	if (omap_mux_init_gpio(GPIO_USB_NRESET, OMAP_PIN_OUTPUT)) {
  		pr_err("Can not configure mux for GPIO_USB_NRESET %d
  ",
  			GPIO_USB_NRESET);
  		return;
  	}
  
  	if (omap_mux_init_gpio(GPIO_USB_POWER, OMAP_PIN_OUTPUT)) {
  		pr_err("Can not configure mux for GPIO_USB_POWER %d
  ",
  			GPIO_USB_POWER);
  		return;
  	}
bc593f5d7   Igor Grinberg   arm: omap2plus: G...
81
82
  	ret = gpio_request_one(GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH,
  			       "usb_ehci_enable");
840b92968   Srinath   arm: omap: craneb...
83
84
85
86
87
  	if (ret < 0) {
  		pr_err("Can not request GPIO %d
  ", GPIO_USB_POWER);
  		return;
  	}
9e64bb1e9   Keshava Munegowda   arm: omap: usb: I...
88
  	usbhs_init(&usbhs_bdata);
1cb125caf   Srinath   omap: AM3517/05: ...
89
90
91
  }
  
  MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
5e52b435b   Nicolas Pitre   ARM: mach-omap2: ...
92
  	.atag_offset	= 0x100,
1cb125caf   Srinath   omap: AM3517/05: ...
93
  	.reserve	= omap_reserve,
3dc3bad6f   Russell King - ARM Linux   ARM: OMAP2: use e...
94
  	.map_io		= omap3_map_io,
8f5b5a41e   Tony Lindgren   ARM: OMAP: Introd...
95
  	.init_early	= am35xx_init_early,
741e3a89d   Tony Lindgren   omap: Use separat...
96
  	.init_irq	= omap3_init_irq,
6b2f55d78   Marc Zyngier   ARM: omap2plus: c...
97
  	.handle_irq	= omap3_intc_handle_irq,
1cb125caf   Srinath   omap: AM3517/05: ...
98
  	.init_machine	= am3517_crane_init,
e74984e46   Tony Lindgren   omap: Set separat...
99
  	.timer		= &omap3_timer,
baa958834   Russell King   ARM: restart: oma...
100
  	.restart	= omap_prcm_restart,
1cb125caf   Srinath   omap: AM3517/05: ...
101
  MACHINE_END