Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
e6b18912
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
e6b18912
编写于
4月 01, 2008
作者:
P
Paul Mackerras
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'powerpc-next' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc
上级
99d8be05
ee0a3f56
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
1433 addition
and
1 deletion
+1433
-1
arch/powerpc/boot/Makefile
arch/powerpc/boot/Makefile
+1
-0
arch/powerpc/boot/dts/ksi8560.dts
arch/powerpc/boot/dts/ksi8560.dts
+267
-0
arch/powerpc/boot/wrapper
arch/powerpc/boot/wrapper
+1
-1
arch/powerpc/configs/ksi8560_defconfig
arch/powerpc/configs/ksi8560_defconfig
+899
-0
arch/powerpc/platforms/85xx/Kconfig
arch/powerpc/platforms/85xx/Kconfig
+7
-0
arch/powerpc/platforms/85xx/Makefile
arch/powerpc/platforms/85xx/Makefile
+1
-0
arch/powerpc/platforms/85xx/ksi8560.c
arch/powerpc/platforms/85xx/ksi8560.c
+257
-0
未找到文件。
arch/powerpc/boot/Makefile
浏览文件 @
e6b18912
...
...
@@ -256,6 +256,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm8555
image-$(CONFIG_TQM8560)
+=
cuImage.tqm8560
image-$(CONFIG_SBC8548)
+=
cuImage.sbc8548
image-$(CONFIG_SBC8560)
+=
cuImage.sbc8560
image-$(CONFIG_KSI8560)
+=
cuImage.ksi8560
# Board ports in arch/powerpc/platform/embedded6xx/Kconfig
image-$(CONFIG_STORCENTER)
+=
cuImage.storcenter
...
...
arch/powerpc/boot/dts/ksi8560.dts
0 → 100644
浏览文件 @
e6b18912
/*
*
Device
Tree
Source
for
Emerson
KSI8560
*
*
Author
:
Alexandr
Smirnov
<
asmirnov
@
ru
.
mvista
.
com
>
*
*
Based
on
mpc8560ads
.
dts
*
*
2008
(
c
)
MontaVista
,
Software
,
Inc
.
This
file
is
licensed
under
*
the
terms
of
the
GNU
General
Public
License
version
2.
This
program
*
is
licensed
"as is"
without
any
warranty
of
any
kind
,
whether
express
*
or
implied
.
*
*/
/
dts
-
v1
/;
/
{
model
=
"KSI8560"
;
compatible
=
"emerson,KSI8560"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
aliases
{
ethernet0
=
&
enet0
;
ethernet1
=
&
enet1
;
ethernet2
=
&
enet2
;
};
cpus
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
PowerPC
,
8560
@
0
{
device_type
=
"cpu"
;
reg
=
<
0
>;
d
-
cache
-
line
-
size
=
<
32
>;
i
-
cache
-
line
-
size
=
<
32
>;
d
-
cache
-
size
=
<
0x8000
>;
/*
L1
,
32
K
*/
i
-
cache
-
size
=
<
0x8000
>;
/*
L1
,
32
K
*/
timebase
-
frequency
=
<
0
>;
/*
From
U
-
boot
*/
bus
-
frequency
=
<
0
>;
/*
From
U
-
boot
*/
clock
-
frequency
=
<
0
>;
/*
From
U
-
boot
*/
};
};
memory
{
device_type
=
"memory"
;
reg
=
<
0x00000000
0x10000000
>;
/*
Fixed
by
bootwrapper
*/
};
soc
@
fdf00000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
device_type
=
"soc"
;
ranges
=
<
0x00000000
0xfdf00000
0x00100000
>;
bus
-
frequency
=
<
0
>;
/*
Fixed
by
bootwrapper
*/
memory
-
controller
@
2000
{
compatible
=
"fsl,8540-memory-controller"
;
reg
=
<
0x2000
0x1000
>;
interrupt
-
parent
=
<&
MPIC
>;
interrupts
=
<
0x12
0x2
>;
};
l2
-
cache
-
controller
@
20000
{
compatible
=
"fsl,8540-l2-cache-controller"
;
reg
=
<
0x20000
0x1000
>;
cache
-
line
-
size
=
<
0x20
>;
/*
32
bytes
*/
cache
-
size
=
<
0x40000
>;
/*
L2
,
256
K
*/
interrupt
-
parent
=
<&
MPIC
>;
interrupts
=
<
0x10
0x2
>;
};
i2c
@
3000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
cell
-
index
=
<
0
>;
compatible
=
"fsl-i2c"
;
reg
=
<
0x3000
0x100
>;
interrupts
=
<
0x2b
0x2
>;
interrupt
-
parent
=
<&
MPIC
>;
dfsrr
;
};
mdio
@
24520
{
/*
For
TSECs
*/
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
compatible
=
"fsl,gianfar-mdio"
;
reg
=
<
0x24520
0x20
>;
PHY1
:
ethernet
-
phy
@
1
{
interrupt
-
parent
=
<&
MPIC
>;
reg
=
<
0x1
>;
device_type
=
"ethernet-phy"
;
};
PHY2
:
ethernet
-
phy
@
2
{
interrupt
-
parent
=
<&
MPIC
>;
reg
=
<
0x2
>;
device_type
=
"ethernet-phy"
;
};
};
enet0
:
ethernet
@
24000
{
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
0x24000
0x1000
>;
/*
Mac
address
filled
in
by
bootwrapper
*/
local
-
mac
-
address
=
[
00
00
00
00
00
00
];
interrupts
=
<
0x1d
0x2
0x1e
0x2
0x22
0x2
>;
interrupt
-
parent
=
<&
MPIC
>;
phy
-
handle
=
<&
PHY1
>;
};
enet1
:
ethernet
@
25000
{
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
0x25000
0x1000
>;
/*
Mac
address
filled
in
by
bootwrapper
*/
local
-
mac
-
address
=
[
00
00
00
00
00
00
];
interrupts
=
<
0x23
0x2
0x24
0x2
0x28
0x2
>;
interrupt
-
parent
=
<&
MPIC
>;
phy
-
handle
=
<&
PHY2
>;
};
MPIC
:
pic
@
40000
{
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
interrupt
-
controller
;
reg
=
<
0x40000
0x40000
>;
device_type
=
"open-pic"
;
};
cpm
@
919
c0
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
compatible
=
"fsl,mpc8560-cpm"
,
"fsl,cpm2"
;
reg
=
<
0x919c0
0x30
>;
ranges
;
muram
@
80000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
ranges
=
<
0x0
0x80000
0x10000
>;
data
@
0
{
compatible
=
"fsl,cpm-muram-data"
;
reg
=
<
0x0
0x4000
0x9000
0x2000
>;
};
};
brg
@
919f0
{
compatible
=
"fsl,mpc8560-brg"
,
"fsl,cpm2-brg"
,
"fsl,cpm-brg"
;
reg
=
<
0x919f0
0x10
0x915f0
0x10
>;
clock
-
frequency
=
<
165000000
>;
/*
166
MHz
*/
};
CPMPIC
:
pic
@
90
c00
{
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
interrupt
-
controller
;
interrupts
=
<
0x2e
0x2
>;
interrupt
-
parent
=
<&
MPIC
>;
reg
=
<
0x90c00
0x80
>;
compatible
=
"fsl,mpc8560-cpm-pic"
,
"fsl,cpm2-pic"
;
};
serial
@
91
a00
{
device_type
=
"serial"
;
compatible
=
"fsl,mpc8560-scc-uart"
,
"fsl,cpm2-scc-uart"
;
reg
=
<
0x91a00
0x20
0x88000
0x100
>;
fsl
,
cpm
-
brg
=
<
1
>;
fsl
,
cpm
-
command
=
<
0x800000
>;
current
-
speed
=
<
0x1c200
>;
interrupts
=
<
0x28
0x8
>;
interrupt
-
parent
=
<&
CPMPIC
>;
};
serial
@
91
a20
{
device_type
=
"serial"
;
compatible
=
"fsl,mpc8560-scc-uart"
,
"fsl,cpm2-scc-uart"
;
reg
=
<
0x91a20
0x20
0x88100
0x100
>;
fsl
,
cpm
-
brg
=
<
2
>;
fsl
,
cpm
-
command
=
<
0x4a00000
>;
current
-
speed
=
<
0x1c200
>;
interrupts
=
<
0x29
0x8
>;
interrupt
-
parent
=
<&
CPMPIC
>;
};
mdio
@
90
d00
{
/*
For
FCCs
*/
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
compatible
=
"fsl,cpm2-mdio-bitbang"
;
reg
=
<
0x90d00
0x14
>;
fsl
,
mdio
-
pin
=
<
24
>;
fsl
,
mdc
-
pin
=
<
25
>;
PHY0
:
ethernet
-
phy
@
0
{
interrupt
-
parent
=
<&
MPIC
>;
reg
=
<
0x0
>;
device_type
=
"ethernet-phy"
;
};
};
enet2
:
ethernet
@
91300
{
device_type
=
"network"
;
compatible
=
"fsl,mpc8560-fcc-enet"
,
"fsl,cpm2-fcc-enet"
;
reg
=
<
0x91300
0x20
0x88400
0x100
0x91390
0x1
>;
/*
Mac
address
filled
in
by
bootwrapper
*/
local
-
mac
-
address
=
[
00
00
00
00
00
00
];
fsl
,
cpm
-
command
=
<
0x12000300
>;
interrupts
=
<
0x20
0x8
>;
interrupt
-
parent
=
<&
CPMPIC
>;
phy
-
handle
=
<&
PHY0
>;
};
};
};
localbus
@
fdf05000
{
#
address
-
cells
=
<
2
>;
#
size
-
cells
=
<
1
>;
compatible
=
"fsl,mpc8560-localbus"
;
reg
=
<
0xfdf05000
0x68
>;
ranges
=
<
0x0
0x0
0xe0000000
0x00800000
0x4
0x0
0xe8080000
0x00080000
>;
flash
@
0
,
0
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
compatible
=
"jedec-flash"
;
reg
=
<
0x0
0x0
0x800000
>;
bank
-
width
=
<
0x2
>;
partition
@
0
{
label
=
"Primary Kernel"
;
reg
=
<
0x0
0x180000
>;
};
partition
@
180000
{
label
=
"Primary Filesystem"
;
reg
=
<
0x180000
0x580000
>;
};
partition
@
700000
{
label
=
"Monitor"
;
reg
=
<
0x300000
0x100000
>;
read
-
only
;
};
};
cpld
@
4
,
0
{
compatible
=
"emerson,KSI8560-cpld"
;
reg
=
<
0x4
0x0
0x80000
>;
};
};
chosen
{
linux
,
stdout
-
path
=
"/soc/cpm/serial@91a00"
;
};
};
arch/powerpc/boot/wrapper
浏览文件 @
e6b18912
...
...
@@ -174,7 +174,7 @@ cuboot*)
*
-mpc83
*
)
platformo
=
$object
/cuboot-83xx.o
;;
*
-tqm8541
|
*
-mpc8560
*
|
*
-tqm8560
|
*
-tqm8555
)
*
-tqm8541
|
*
-mpc8560
*
|
*
-tqm8560
|
*
-tqm8555
|
*
-ksi8560
*
)
platformo
=
$object
/cuboot-85xx-cpm2.o
;;
*
-mpc85
*
|
*
-tqm8540
|
*
-sbc85
*
)
...
...
arch/powerpc/configs/ksi8560_defconfig
0 → 100644
浏览文件 @
e6b18912
此差异已折叠。
点击以展开。
arch/powerpc/platforms/85xx/Kconfig
浏览文件 @
e6b18912
...
...
@@ -46,6 +46,13 @@ config MPC85xx_DS
help
This option enables support for the MPC85xx DS (MPC8544 DS) board
config KSI8560
bool "Emerson KSI8560"
select PPC_CPM_NEW_BINDING
select DEFAULT_UIMAGE
help
This option enables support for the Emerson KSI8560 board
config STX_GP3
bool "Silicon Turnkey Express GP3"
help
...
...
arch/powerpc/platforms/85xx/Makefile
浏览文件 @
e6b18912
...
...
@@ -10,3 +10,4 @@ obj-$(CONFIG_STX_GP3) += stx_gp3.o
obj-$(CONFIG_TQM85xx)
+=
tqm85xx.o
obj-$(CONFIG_SBC8560)
+=
sbc8560.o
obj-$(CONFIG_SBC8548)
+=
sbc8548.o
obj-$(CONFIG_KSI8560)
+=
ksi8560.o
arch/powerpc/platforms/85xx/ksi8560.c
0 → 100644
浏览文件 @
e6b18912
/*
* Board setup routines for the Emerson KSI8560
*
* Author: Alexandr Smirnov <asmirnov@ru.mvista.com>
*
* Based on mpc85xx_ads.c maintained by Kumar Gala
*
* 2008 (c) MontaVista, Software, Inc. This file is licensed under
* the terms of the GNU General Public License version 2. This program
* is licensed "as is" without any warranty of any kind, whether express
* or implied.
*
*/
#include <linux/stddef.h>
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/kdev_t.h>
#include <linux/delay.h>
#include <linux/seq_file.h>
#include <linux/of_platform.h>
#include <asm/system.h>
#include <asm/time.h>
#include <asm/machdep.h>
#include <asm/pci-bridge.h>
#include <asm/mpic.h>
#include <mm/mmu_decl.h>
#include <asm/udbg.h>
#include <asm/prom.h>
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
#include <asm/cpm2.h>
#include <sysdev/cpm2_pic.h>
#define KSI8560_CPLD_HVR 0x04
/* Hardware Version Register */
#define KSI8560_CPLD_PVR 0x08
/* PLD Version Register */
#define KSI8560_CPLD_RCR1 0x30
/* Reset Command Register 1 */
#define KSI8560_CPLD_RCR1_CPUHR 0x80
/* CPU Hard Reset */
static
void
__iomem
*
cpld_base
=
NULL
;
static
void
machine_restart
(
char
*
cmd
)
{
if
(
cpld_base
)
out_8
(
cpld_base
+
KSI8560_CPLD_RCR1
,
KSI8560_CPLD_RCR1_CPUHR
);
else
printk
(
KERN_ERR
"Can't find CPLD base, hang forever
\n
"
);
for
(;;);
}
static
void
cpm2_cascade
(
unsigned
int
irq
,
struct
irq_desc
*
desc
)
{
int
cascade_irq
;
while
((
cascade_irq
=
cpm2_get_irq
())
>=
0
)
generic_handle_irq
(
cascade_irq
);
desc
->
chip
->
eoi
(
irq
);
}
static
void
__init
ksi8560_pic_init
(
void
)
{
struct
mpic
*
mpic
;
struct
resource
r
;
struct
device_node
*
np
;
#ifdef CONFIG_CPM2
int
irq
;
#endif
np
=
of_find_node_by_type
(
NULL
,
"open-pic"
);
if
(
np
==
NULL
)
{
printk
(
KERN_ERR
"Could not find open-pic node
\n
"
);
return
;
}
if
(
of_address_to_resource
(
np
,
0
,
&
r
))
{
printk
(
KERN_ERR
"Could not map mpic register space
\n
"
);
of_node_put
(
np
);
return
;
}
mpic
=
mpic_alloc
(
np
,
r
.
start
,
MPIC_PRIMARY
|
MPIC_WANTS_RESET
|
MPIC_BIG_ENDIAN
,
0
,
256
,
" OpenPIC "
);
BUG_ON
(
mpic
==
NULL
);
of_node_put
(
np
);
mpic_init
(
mpic
);
#ifdef CONFIG_CPM2
/* Setup CPM2 PIC */
np
=
of_find_compatible_node
(
NULL
,
NULL
,
"fsl,cpm2-pic"
);
if
(
np
==
NULL
)
{
printk
(
KERN_ERR
"PIC init: can not find fsl,cpm2-pic node
\n
"
);
return
;
}
irq
=
irq_of_parse_and_map
(
np
,
0
);
cpm2_pic_init
(
np
);
of_node_put
(
np
);
set_irq_chained_handler
(
irq
,
cpm2_cascade
);
setup_irq
(
0
,
NULL
);
#endif
}
#ifdef CONFIG_CPM2
/*
* Setup I/O ports
*/
struct
cpm_pin
{
int
port
,
pin
,
flags
;
};
static
struct
cpm_pin
__initdata
ksi8560_pins
[]
=
{
/* SCC1 */
{
3
,
29
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
3
,
30
,
CPM_PIN_OUTPUT
|
CPM_PIN_SECONDARY
},
{
3
,
31
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
/* SCC2 */
{
3
,
26
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
3
,
27
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
3
,
28
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
/* FCC1 */
{
0
,
14
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
{
0
,
15
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
{
0
,
16
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
{
0
,
17
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
{
0
,
18
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
0
,
19
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
0
,
20
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
0
,
21
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
0
,
26
,
CPM_PIN_INPUT
|
CPM_PIN_SECONDARY
},
{
0
,
27
,
CPM_PIN_INPUT
|
CPM_PIN_SECONDARY
},
{
0
,
28
,
CPM_PIN_OUTPUT
|
CPM_PIN_SECONDARY
},
{
0
,
29
,
CPM_PIN_OUTPUT
|
CPM_PIN_SECONDARY
},
{
0
,
30
,
CPM_PIN_INPUT
|
CPM_PIN_SECONDARY
},
{
0
,
31
,
CPM_PIN_INPUT
|
CPM_PIN_SECONDARY
},
{
2
,
23
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
/* CLK9 */
{
2
,
22
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
/* CLK10 */
};
static
void
__init
init_ioports
(
void
)
{
int
i
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
ksi8560_pins
);
i
++
)
{
struct
cpm_pin
*
pin
=
&
ksi8560_pins
[
i
];
cpm2_set_pin
(
pin
->
port
,
pin
->
pin
,
pin
->
flags
);
}
cpm2_clk_setup
(
CPM_CLK_SCC1
,
CPM_BRG1
,
CPM_CLK_RX
);
cpm2_clk_setup
(
CPM_CLK_SCC1
,
CPM_BRG1
,
CPM_CLK_TX
);
cpm2_clk_setup
(
CPM_CLK_SCC2
,
CPM_BRG2
,
CPM_CLK_RX
);
cpm2_clk_setup
(
CPM_CLK_SCC2
,
CPM_BRG2
,
CPM_CLK_TX
);
cpm2_clk_setup
(
CPM_CLK_FCC1
,
CPM_CLK9
,
CPM_CLK_RX
);
cpm2_clk_setup
(
CPM_CLK_FCC1
,
CPM_CLK10
,
CPM_CLK_TX
);
}
#endif
/*
* Setup the architecture
*/
static
void
__init
ksi8560_setup_arch
(
void
)
{
struct
device_node
*
cpld
;
cpld
=
of_find_compatible_node
(
NULL
,
NULL
,
"emerson,KSI8560-cpld"
);
if
(
cpld
)
cpld_base
=
of_iomap
(
cpld
,
0
);
else
printk
(
KERN_ERR
"Can't find CPLD in device tree
\n
"
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"ksi8560_setup_arch()"
,
0
);
#ifdef CONFIG_CPM2
cpm2_reset
();
init_ioports
();
#endif
}
static
void
ksi8560_show_cpuinfo
(
struct
seq_file
*
m
)
{
uint
pvid
,
svid
,
phid1
;
uint
memsize
=
total_memory
;
pvid
=
mfspr
(
SPRN_PVR
);
svid
=
mfspr
(
SPRN_SVR
);
seq_printf
(
m
,
"Vendor
\t\t
: Emerson Network Power
\n
"
);
seq_printf
(
m
,
"Board
\t\t
: KSI8560
\n
"
);
if
(
cpld_base
)
{
seq_printf
(
m
,
"Hardware rev
\t
: %d
\n
"
,
in_8
(
cpld_base
+
KSI8560_CPLD_HVR
));
seq_printf
(
m
,
"CPLD rev
\t
: %d
\n
"
,
in_8
(
cpld_base
+
KSI8560_CPLD_PVR
));
}
else
seq_printf
(
m
,
"Unknown Hardware and CPLD revs
\n
"
);
seq_printf
(
m
,
"PVR
\t\t
: 0x%x
\n
"
,
pvid
);
seq_printf
(
m
,
"SVR
\t\t
: 0x%x
\n
"
,
svid
);
/* Display cpu Pll setting */
phid1
=
mfspr
(
SPRN_HID1
);
seq_printf
(
m
,
"PLL setting
\t
: 0x%x
\n
"
,
((
phid1
>>
24
)
&
0x3f
));
/* Display the amount of memory */
seq_printf
(
m
,
"Memory
\t\t
: %d MB
\n
"
,
memsize
/
(
1024
*
1024
));
}
static
struct
of_device_id
__initdata
of_bus_ids
[]
=
{
{
.
type
=
"soc"
,
},
{
.
name
=
"cpm"
,
},
{
.
name
=
"localbus"
,
},
{},
};
static
int
__init
declare_of_platform_devices
(
void
)
{
of_platform_bus_probe
(
NULL
,
of_bus_ids
,
NULL
);
return
0
;
}
machine_device_initcall
(
ksi8560
,
declare_of_platform_devices
);
/*
* Called very early, device-tree isn't unflattened
*/
static
int
__init
ksi8560_probe
(
void
)
{
unsigned
long
root
=
of_get_flat_dt_root
();
return
of_flat_dt_is_compatible
(
root
,
"emerson,KSI8560"
);
}
define_machine
(
ksi8560
)
{
.
name
=
"KSI8560"
,
.
probe
=
ksi8560_probe
,
.
setup_arch
=
ksi8560_setup_arch
,
.
init_IRQ
=
ksi8560_pic_init
,
.
show_cpuinfo
=
ksi8560_show_cpuinfo
,
.
get_irq
=
mpic_get_irq
,
.
restart
=
machine_restart
,
.
calibrate_decr
=
generic_calibrate_decr
,
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录