Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-mv78xx0
db78x00-bp-setup.c
Go to the documentation of this file.
1
/*
2
* arch/arm/mach-mv78xx0/db78x00-bp-setup.c
3
*
4
* Marvell DB-78x00-BP Development Board Setup
5
*
6
* This file is licensed under the terms of the GNU General Public
7
* License version 2. This program is licensed "as is" without any
8
* warranty of any kind, whether express or implied.
9
*/
10
11
#include <linux/kernel.h>
12
#include <
linux/init.h
>
13
#include <
linux/platform_device.h
>
14
#include <
linux/ata_platform.h
>
15
#include <
linux/mv643xx_eth.h
>
16
#include <linux/ethtool.h>
17
#include <linux/i2c.h>
18
#include <
mach/mv78xx0.h
>
19
#include <
asm/mach-types.h
>
20
#include <
asm/mach/arch.h
>
21
#include "
common.h
"
22
23
static
struct
mv643xx_eth_platform_data
db78x00_ge00_data = {
24
.phy_addr =
MV643XX_ETH_PHY_ADDR
(8),
25
};
26
27
static
struct
mv643xx_eth_platform_data
db78x00_ge01_data = {
28
.phy_addr =
MV643XX_ETH_PHY_ADDR
(9),
29
};
30
31
static
struct
mv643xx_eth_platform_data
db78x00_ge10_data = {
32
.phy_addr =
MV643XX_ETH_PHY_ADDR
(10),
33
};
34
35
static
struct
mv643xx_eth_platform_data
db78x00_ge11_data = {
36
.phy_addr =
MV643XX_ETH_PHY_ADDR
(11),
37
};
38
39
static
struct
mv_sata_platform_data
db78x00_sata_data = {
40
.n_ports = 2,
41
};
42
43
static
struct
i2c_board_info
__initdata
db78x00_i2c_rtc = {
44
I2C_BOARD_INFO
(
"ds1338"
, 0x68),
45
};
46
47
48
static
void
__init
db78x00_init(
void
)
49
{
50
/*
51
* Basic MV78xx0 setup. Needs to be called early.
52
*/
53
mv78xx0_init
();
54
55
/*
56
* Partition on-chip peripherals between the two CPU cores.
57
*/
58
if
(
mv78xx0_core_index
() == 0) {
59
mv78xx0_ehci0_init
();
60
mv78xx0_ehci1_init
();
61
mv78xx0_ehci2_init
();
62
mv78xx0_ge00_init
(&db78x00_ge00_data);
63
mv78xx0_ge01_init
(&db78x00_ge01_data);
64
mv78xx0_ge10_init
(&db78x00_ge10_data);
65
mv78xx0_ge11_init
(&db78x00_ge11_data);
66
mv78xx0_sata_init
(&db78x00_sata_data);
67
mv78xx0_uart0_init
();
68
mv78xx0_uart2_init
();
69
mv78xx0_i2c_init
();
70
i2c_register_board_info
(0, &db78x00_i2c_rtc, 1);
71
}
else
{
72
mv78xx0_uart1_init
();
73
mv78xx0_uart3_init
();
74
}
75
}
76
77
static
int
__init
db78x00_pci_init(
void
)
78
{
79
if
(machine_is_db78x00_bp()) {
80
/*
81
* Assign the x16 PCIe slot on the board to CPU core
82
* #0, and let CPU core #1 have the four x1 slots.
83
*/
84
if
(
mv78xx0_core_index
() == 0)
85
mv78xx0_pcie_init
(0, 1);
86
else
87
mv78xx0_pcie_init
(1, 0);
88
}
89
90
return
0;
91
}
92
subsys_initcall
(db78x00_pci_init);
93
94
MACHINE_START
(DB78X00_BP,
"Marvell DB-78x00-BP Development Board"
)
95
/* Maintainer: Lennert Buytenhek <
[email protected]
> */
96
.atag_offset = 0x100,
97
.init_machine = db78x00_init,
98
.map_io =
mv78xx0_map_io
,
99
.init_early =
mv78xx0_init_early
,
100
.init_irq =
mv78xx0_init_irq
,
101
.timer = &
mv78xx0_timer
,
102
.restart =
mv78xx0_restart
,
103
MACHINE_END
Generated on Thu Jan 10 2013 12:59:57 for Linux Kernel by
1.8.2