Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c
10817 views
1
/*
2
* arch/arm/mach-mv78x00/rd78x00-masa-setup.c
3
*
4
* Marvell RD-78x00-mASA 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 <mach/mv78xx0.h>
18
#include <asm/mach-types.h>
19
#include <asm/mach/arch.h>
20
#include "common.h"
21
22
static struct mv643xx_eth_platform_data rd78x00_masa_ge00_data = {
23
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
24
};
25
26
static struct mv643xx_eth_platform_data rd78x00_masa_ge01_data = {
27
.phy_addr = MV643XX_ETH_PHY_ADDR(9),
28
};
29
30
static struct mv643xx_eth_platform_data rd78x00_masa_ge10_data = {
31
};
32
33
static struct mv643xx_eth_platform_data rd78x00_masa_ge11_data = {
34
};
35
36
static struct mv_sata_platform_data rd78x00_masa_sata_data = {
37
.n_ports = 2,
38
};
39
40
static void __init rd78x00_masa_init(void)
41
{
42
/*
43
* Basic MV78x00 setup. Needs to be called early.
44
*/
45
mv78xx0_init();
46
47
/*
48
* Partition on-chip peripherals between the two CPU cores.
49
*/
50
if (mv78xx0_core_index() == 0) {
51
mv78xx0_ehci0_init();
52
mv78xx0_ehci1_init();
53
mv78xx0_ge00_init(&rd78x00_masa_ge00_data);
54
mv78xx0_ge10_init(&rd78x00_masa_ge10_data);
55
mv78xx0_sata_init(&rd78x00_masa_sata_data);
56
mv78xx0_uart0_init();
57
mv78xx0_uart2_init();
58
} else {
59
mv78xx0_ehci2_init();
60
mv78xx0_ge01_init(&rd78x00_masa_ge01_data);
61
mv78xx0_ge11_init(&rd78x00_masa_ge11_data);
62
mv78xx0_uart1_init();
63
mv78xx0_uart3_init();
64
}
65
}
66
67
static int __init rd78x00_pci_init(void)
68
{
69
/*
70
* Assign all PCIe devices to CPU core #0.
71
*/
72
if (machine_is_rd78x00_masa() && mv78xx0_core_index() == 0)
73
mv78xx0_pcie_init(1, 1);
74
75
return 0;
76
}
77
subsys_initcall(rd78x00_pci_init);
78
79
MACHINE_START(RD78X00_MASA, "Marvell RD-78x00-MASA Development Board")
80
/* Maintainer: Lennert Buytenhek <[email protected]> */
81
.boot_params = 0x00000100,
82
.init_machine = rd78x00_masa_init,
83
.map_io = mv78xx0_map_io,
84
.init_early = mv78xx0_init_early,
85
.init_irq = mv78xx0_init_irq,
86
.timer = &mv78xx0_timer,
87
MACHINE_END
88
89