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
m68k
platform
coldfire
m5272.c
Go to the documentation of this file.
1
/***************************************************************************/
2
3
/*
4
* linux/arch/m68knommu/platform/5272/config.c
5
*
6
* Copyright (C) 1999-2002, Greg Ungerer (
[email protected]
)
7
* Copyright (C) 2001-2002, SnapGear Inc. (www.snapgear.com)
8
*/
9
10
/***************************************************************************/
11
12
#include <linux/kernel.h>
13
#include <
linux/param.h
>
14
#include <
linux/init.h
>
15
#include <
linux/io.h
>
16
#include <
linux/phy.h
>
17
#include <
linux/phy_fixed.h
>
18
#include <asm/machdep.h>
19
#include <
asm/coldfire.h
>
20
#include <
asm/mcfsim.h
>
21
#include <
asm/mcfuart.h
>
22
23
/***************************************************************************/
24
25
/*
26
* Some platforms need software versions of the GPIO data registers.
27
*/
28
unsigned
short
ppdata
;
29
unsigned
char
ledbank
= 0xff;
30
31
/***************************************************************************/
32
33
static
void
__init
m5272_uarts_init(
void
)
34
{
35
u32
v
;
36
37
/* Enable the output lines for the serial ports */
38
v =
readl
(
MCFSIM_PBCNT
);
39
v = (v & ~0x000000ff) | 0x00000055;
40
writel
(v,
MCFSIM_PBCNT
);
41
42
v =
readl
(
MCFSIM_PDCNT
);
43
v = (v & ~0x000003fc) | 0x000002a8;
44
writel
(v,
MCFSIM_PDCNT
);
45
}
46
47
/***************************************************************************/
48
49
static
void
m5272_cpu_reset(
void
)
50
{
51
local_irq_disable
();
52
/* Set watchdog to reset, and enabled */
53
__raw_writew
(0,
MCFSIM_WIRR
);
54
__raw_writew
(1,
MCFSIM_WRRR
);
55
__raw_writew
(0,
MCFSIM_WCR
);
56
for
(;;)
57
/* wait for watchdog to timeout */
;
58
}
59
60
/***************************************************************************/
61
62
void
__init
config_BSP
(
char
*commandp,
int
size
)
63
{
64
#if defined (CONFIG_MOD5272)
65
/* Set base of device vectors to be 64 */
66
writeb
(0x40,
MCFSIM_PIVR
);
67
#endif
68
69
#if defined(CONFIG_NETtel) || defined(CONFIG_SCALES)
70
/* Copy command line from FLASH to local buffer... */
71
memcpy
(commandp, (
char
*) 0xf0004000, size);
72
commandp[size-1] = 0;
73
#elif defined(CONFIG_CANCam)
74
/* Copy command line from FLASH to local buffer... */
75
memcpy
(commandp, (
char
*) 0xf0010000, size);
76
commandp[size-1] = 0;
77
#endif
78
79
mach_reset
= m5272_cpu_reset;
80
mach_sched_init
=
hw_timer_init
;
81
}
82
83
/***************************************************************************/
84
85
/*
86
* Some 5272 based boards have the FEC ethernet diectly connected to
87
* an ethernet switch. In this case we need to use the fixed phy type,
88
* and we need to declare it early in boot.
89
*/
90
static
struct
fixed_phy_status
nettel_fixed_phy_status
__initdata
= {
91
.link = 1,
92
.speed = 100,
93
.duplex = 0,
94
};
95
96
/***************************************************************************/
97
98
static
int
__init
init_BSP(
void
)
99
{
100
m5272_uarts_init();
101
fixed_phy_add
(
PHY_POLL
, 0, &nettel_fixed_phy_status);
102
return
0;
103
}
104
105
arch_initcall
(init_BSP);
106
107
/***************************************************************************/
Generated on Thu Jan 10 2013 13:08:27 for Linux Kernel by
1.8.2