Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
1f7d4f83
Commit
1f7d4f83
authored
Feb 07, 2008
by
Paul Mackerras
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-2.6.25' of
git://git.secretlab.ca/git/linux-2.6-mpc52xx
into for-2.6.25
parents
b370b082
25ae3a07
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
694 additions
and
79 deletions
+694
-79
arch/powerpc/Kconfig
arch/powerpc/Kconfig
+1
-1
arch/powerpc/boot/dts/mpc5121ads.dts
arch/powerpc/boot/dts/mpc5121ads.dts
+122
-0
arch/powerpc/platforms/512x/Kconfig
arch/powerpc/platforms/512x/Kconfig
+20
-0
arch/powerpc/platforms/512x/Makefile
arch/powerpc/platforms/512x/Makefile
+4
-0
arch/powerpc/platforms/512x/mpc5121_ads.c
arch/powerpc/platforms/512x/mpc5121_ads.c
+104
-0
arch/powerpc/platforms/Kconfig
arch/powerpc/platforms/Kconfig
+1
-0
arch/powerpc/platforms/Kconfig.cputype
arch/powerpc/platforms/Kconfig.cputype
+3
-3
arch/powerpc/platforms/Makefile
arch/powerpc/platforms/Makefile
+1
-0
drivers/serial/Kconfig
drivers/serial/Kconfig
+6
-6
drivers/serial/mpc52xx_uart.c
drivers/serial/mpc52xx_uart.c
+362
-69
include/asm-powerpc/mpc512x.h
include/asm-powerpc/mpc512x.h
+22
-0
include/asm-powerpc/mpc52xx_psc.h
include/asm-powerpc/mpc52xx_psc.h
+48
-0
No files found.
arch/powerpc/Kconfig
View file @
1f7d4f83
...
...
@@ -512,7 +512,7 @@ config PCI
bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
|| PPC_PS3 || 44x
default y if !40x && !CPM2 && !8xx && !PPC_83xx \
default y if !40x && !CPM2 && !8xx && !PPC_
MPC512x && !PPC_
83xx \
&& !PPC_85xx && !PPC_86xx
default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
default PCI_QSPAN if !4xx && !CPM2 && 8xx
...
...
arch/powerpc/boot/dts/mpc5121ads.dts
0 → 100644
View file @
1f7d4f83
/*
*
MPC5121E
MDS
Device
Tree
Source
*
*
Copyright
2007
Freescale
Semiconductor
Inc
.
*
*
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
;
either
version
2
of
the
License
,
or
(
at
your
*
option
)
any
later
version
.
*/
/
dts
-
v1
/;
/
{
model
=
"mpc5121ads"
;
compatible
=
"fsl,mpc5121ads"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
cpus
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
PowerPC
,
5121
@
0
{
device_type
=
"cpu"
;
reg
=
<
0
>;
d
-
cache
-
line
-
size
=
<
0x20
>;
//
32
bytes
i
-
cache
-
line
-
size
=
<
0x20
>;
//
32
bytes
d
-
cache
-
size
=
<
0x8000
>;
//
L1
,
32
K
i
-
cache
-
size
=
<
0x8000
>;
//
L1
,
32
K
timebase
-
frequency
=
<
49500000
>;//
49.5
MHz
(
csb
/
4
)
bus
-
frequency
=
<
198000000
>;
//
198
MHz
csb
bus
clock
-
frequency
=
<
396000000
>;
//
396
MHz
ppc
core
};
};
memory
{
device_type
=
"memory"
;
reg
=
<
0x00000000
0x10000000
>;
//
256
MB
at
0
};
localbus
@
80000020
{
compatible
=
"fsl,mpc5121ads-localbus"
;
#
address
-
cells
=
<
2
>;
#
size
-
cells
=
<
1
>;
reg
=
<
0x80000020
0x40
>;
ranges
=
<
0x0
0x0
0xfc000000
0x04000000
0x2
0x0
0x82000000
0x00008000
>;
flash
@
0
,
0
{
compatible
=
"cfi-flash"
;
reg
=
<
0
0x0
0x4000000
>;
bank
-
width
=
<
4
>;
device
-
width
=
<
1
>;
};
board
-
control
@
2
,
0
{
compatible
=
"fsl,mpc5121ads-cpld"
;
reg
=
<
0x2
0x0
0x8000
>;
};
};
soc
@
80000000
{
compatible
=
"fsl,mpc5121-immr"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
#
interrupt
-
cells
=
<
2
>;
ranges
=
<
0x0
0x80000000
0x400000
>;
reg
=
<
0x80000000
0x400000
>;
bus
-
frequency
=
<
66000000
>;
//
66
MHz
ips
bus
//
IPIC
//
interrupts
cell
=
<
intr
#,
sense
>
//
sense
values
match
linux
IORESOURCE_IRQ_
*
defines
:
//
sense
==
8
:
Level
,
low
assertion
//
sense
==
2
:
Edge
,
high
-
to
-
low
change
//
ipic
:
interrupt
-
controller
@
c00
{
compatible
=
"fsl,mpc5121-ipic"
,
"fsl,ipic"
;
interrupt
-
controller
;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
reg
=
<
0xc00
0x100
>;
};
//
512
x
PSCs
are
not
52
xx
PSCs
compatible
//
PSC3
serial
port
A
aka
ttyPSC0
serial
@
11300
{
device_type
=
"serial"
;
compatible
=
"fsl,mpc5121-psc-uart"
;
//
Logical
port
assignment
needed
until
driver
//
learns
to
use
aliases
port
-
number
=
<
0
>;
cell
-
index
=
<
3
>;
reg
=
<
0x11300
0x100
>;
interrupts
=
<
0x28
0x8
>;
//
actually
the
fifo
irq
interrupt
-
parent
=
<
&
ipic
>;
};
//
PSC4
serial
port
B
aka
ttyPSC1
serial
@
11400
{
device_type
=
"serial"
;
compatible
=
"fsl,mpc5121-psc-uart"
;
//
Logical
port
assignment
needed
until
driver
//
learns
to
use
aliases
port
-
number
=
<
1
>;
cell
-
index
=
<
4
>;
reg
=
<
0x11400
0x100
>;
interrupts
=
<
0x28
0x8
>;
//
actually
the
fifo
irq
interrupt
-
parent
=
<
&
ipic
>;
};
pscsfifo
@
11f00
{
compatible
=
"fsl,mpc5121-psc-fifo"
;
reg
=
<
0x11f00
0x100
>;
interrupts
=
<
0x28
0x8
>;
interrupt
-
parent
=
<
&
ipic
>;
};
};
};
arch/powerpc/platforms/512x/Kconfig
0 → 100644
View file @
1f7d4f83
config PPC_MPC512x
bool
select FSL_SOC
select IPIC
default n
config PPC_MPC5121
bool
select PPC_MPC512x
default n
config MPC5121_ADS
bool "Freescale MPC5121E ADS"
depends on PPC_MULTIPLATFORM && PPC32
select DEFAULT_UIMAGE
select WANT_DEVICE_TREE
select PPC_MPC5121
help
This option enables support for the MPC5121E ADS board.
default n
arch/powerpc/platforms/512x/Makefile
0 → 100644
View file @
1f7d4f83
#
# Makefile for the Freescale PowerPC 512x linux kernel.
#
obj-$(CONFIG_MPC5121_ADS)
+=
mpc5121_ads.o
arch/powerpc/platforms/512x/mpc5121_ads.c
0 → 100644
View file @
1f7d4f83
/*
* Copyright (C) 2007 Freescale Semiconductor, Inc. All rights reserved.
*
* Author: John Rigby, <jrigby@freescale.com>, Thur Mar 29 2007
*
* Description:
* MPC5121 ADS board setup
*
* This 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; either version 2 of the License, or
* (at your option) any later version.
*
*/
#include <linux/kernel.h>
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/of_platform.h>
#include <asm/machdep.h>
#include <asm/ipic.h>
#include <asm/prom.h>
#include <asm/time.h>
/**
* mpc512x_find_ips_freq - Find the IPS bus frequency for a device
* @node: device node
*
* Returns IPS bus frequency, or 0 if the bus frequency cannot be found.
*/
unsigned
long
mpc512x_find_ips_freq
(
struct
device_node
*
node
)
{
struct
device_node
*
np
;
const
unsigned
int
*
p_ips_freq
=
NULL
;
of_node_get
(
node
);
while
(
node
)
{
p_ips_freq
=
of_get_property
(
node
,
"bus-frequency"
,
NULL
);
if
(
p_ips_freq
)
break
;
np
=
of_get_parent
(
node
);
of_node_put
(
node
);
node
=
np
;
}
if
(
node
)
of_node_put
(
node
);
return
p_ips_freq
?
*
p_ips_freq
:
0
;
}
EXPORT_SYMBOL
(
mpc512x_find_ips_freq
);
static
struct
of_device_id
__initdata
of_bus_ids
[]
=
{
{
.
name
=
"soc"
,
},
{
.
name
=
"localbus"
,
},
{},
};
static
void
__init
mpc5121_ads_declare_of_platform_devices
(
void
)
{
/* Find every child of the SOC node and add it to of_platform */
if
(
of_platform_bus_probe
(
NULL
,
of_bus_ids
,
NULL
))
printk
(
KERN_ERR
__FILE__
": "
"Error while probing of_platform bus
\n
"
);
}
static
void
__init
mpc5121_ads_init_IRQ
(
void
)
{
struct
device_node
*
np
;
np
=
of_find_compatible_node
(
NULL
,
NULL
,
"fsl,ipic"
);
if
(
!
np
)
return
;
ipic_init
(
np
,
0
);
of_node_put
(
np
);
/*
* Initialize the default interrupt mapping priorities,
* in case the boot rom changed something on us.
*/
ipic_set_default_priority
();
}
/*
* Called very early, MMU is off, device-tree isn't unflattened
*/
static
int
__init
mpc5121_ads_probe
(
void
)
{
unsigned
long
root
=
of_get_flat_dt_root
();
return
of_flat_dt_is_compatible
(
root
,
"fsl,mpc5121ads"
);
}
define_machine
(
mpc5121_ads
)
{
.
name
=
"MPC5121 ADS"
,
.
probe
=
mpc5121_ads_probe
,
.
init
=
mpc5121_ads_declare_of_platform_devices
,
.
init_IRQ
=
mpc5121_ads_init_IRQ
,
.
get_irq
=
ipic_get_irq
,
.
calibrate_decr
=
generic_calibrate_decr
,
};
arch/powerpc/platforms/Kconfig
View file @
1f7d4f83
...
...
@@ -42,6 +42,7 @@ config CLASSIC32
source "arch/powerpc/platforms/pseries/Kconfig"
source "arch/powerpc/platforms/iseries/Kconfig"
source "arch/powerpc/platforms/chrp/Kconfig"
source "arch/powerpc/platforms/512x/Kconfig"
source "arch/powerpc/platforms/52xx/Kconfig"
source "arch/powerpc/platforms/powermac/Kconfig"
source "arch/powerpc/platforms/prep/Kconfig"
...
...
arch/powerpc/platforms/Kconfig.cputype
View file @
1f7d4f83
...
...
@@ -14,7 +14,7 @@ choice
There are five families of 32 bit PowerPC chips supported.
The most common ones are the desktop and server CPUs (601, 603,
604, 740, 750, 74xx) CPUs from Freescale and IBM, with their
embedded 52xx/82xx/83xx/86xx counterparts.
embedded 5
12x/5
2xx/82xx/83xx/86xx counterparts.
The other embeeded parts, namely 4xx, 8xx, e200 (55xx) and e500
(85xx) each form a family of their own that is not compatible
with the others.
...
...
@@ -22,7 +22,7 @@ choice
If unsure, select 52xx/6xx/7xx/74xx/82xx/83xx/86xx.
config 6xx
bool "52xx/6xx/7xx/74xx/82xx/83xx/86xx"
bool "5
12x/5
2xx/6xx/7xx/74xx/82xx/83xx/86xx"
select PPC_FPU
config PPC_85xx
...
...
@@ -225,7 +225,7 @@ config NR_CPUS
config NOT_COHERENT_CACHE
bool
depends on 4xx || 8xx || E200
depends on 4xx || 8xx || E200
|| PPC_MPC512x
default y
config CHECK_CACHE_COHERENCY
...
...
arch/powerpc/platforms/Makefile
View file @
1f7d4f83
...
...
@@ -11,6 +11,7 @@ endif
obj-$(CONFIG_PPC_CHRP)
+=
chrp/
obj-$(CONFIG_40x)
+=
40x/
obj-$(CONFIG_44x)
+=
44x/
obj-$(CONFIG_PPC_MPC512x)
+=
512x/
obj-$(CONFIG_PPC_MPC52xx)
+=
52xx/
obj-$(CONFIG_PPC_8xx)
+=
8xx/
obj-$(CONFIG_PPC_82xx)
+=
82xx/
...
...
drivers/serial/Kconfig
View file @
1f7d4f83
...
...
@@ -1138,17 +1138,17 @@ config SERIAL_SGI_L1_CONSOLE
say Y. Otherwise, say N.
config SERIAL_MPC52xx
tristate "Freescale MPC52xx family PSC serial support"
depends on PPC_MPC52xx
tristate "Freescale MPC52xx
/MPC512x
family PSC serial support"
depends on PPC_MPC52xx
|| PPC_MPC512x
select SERIAL_CORE
help
This driver
s support the MPC52x
x PSC serial ports. If you would
like to use them, you must answer Y or M to this option. Not that
This driver
supports MPC52xx and MPC512
x PSC serial ports. If you would
like to use them, you must answer Y or M to this option. Not
e
that
for use as console, it must be included in kernel and not as a
module.
config SERIAL_MPC52xx_CONSOLE
bool "Console on a Freescale MPC52xx family PSC serial port"
bool "Console on a Freescale MPC52xx
/MPC512x
family PSC serial port"
depends on SERIAL_MPC52xx=y
select SERIAL_CORE_CONSOLE
help
...
...
@@ -1156,7 +1156,7 @@ config SERIAL_MPC52xx_CONSOLE
of the Freescale MPC52xx family as a console.
config SERIAL_MPC52xx_CONSOLE_BAUD
int "Freescale MPC52xx family PSC serial port baud"
int "Freescale MPC52xx
/MPC512x
family PSC serial port baud"
depends on SERIAL_MPC52xx_CONSOLE=y
default "9600"
help
...
...
drivers/serial/mpc52xx_uart.c
View file @
1f7d4f83
This diff is collapsed.
Click to expand it.
include/asm-powerpc/mpc512x.h
0 → 100644
View file @
1f7d4f83
/*
* Copyright (C) 2007 Freescale Semiconductor, Inc. All rights reserved.
*
* Author: John Rigby, <jrigby@freescale.com>, Friday Apr 13 2007
*
* Description:
* MPC5121 Prototypes and definitions
*
* This 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; either version 2 of the License, or
* (at your option) any later version.
*
*/
#ifndef __ASM_POWERPC_MPC512x_H__
#define __ASM_POWERPC_MPC512x_H__
extern
unsigned
long
mpc512x_find_ips_freq
(
struct
device_node
*
node
);
#endif
/* __ASM_POWERPC_MPC512x_H__ */
include/asm-powerpc/mpc52xx_psc.h
View file @
1f7d4f83
...
...
@@ -190,5 +190,53 @@ struct mpc52xx_psc_fifo {
u16
tflwfptr
;
/* PSC + 0x9e */
};
#define MPC512x_PSC_FIFO_RESET_SLICE 0x80
#define MPC512x_PSC_FIFO_ENABLE_SLICE 0x01
#define MPC512x_PSC_FIFO_ENABLE_DMA 0x04
#define MPC512x_PSC_FIFO_EMPTY 0x1
#define MPC512x_PSC_FIFO_FULL 0x2
#define MPC512x_PSC_FIFO_ALARM 0x4
#define MPC512x_PSC_FIFO_URERR 0x8
#define MPC512x_PSC_FIFO_ORERR 0x01
#define MPC512x_PSC_FIFO_MEMERROR 0x02
struct
mpc512x_psc_fifo
{
u32
reserved1
[
10
];
u32
txcmd
;
/* PSC + 0x80 */
u32
txalarm
;
/* PSC + 0x84 */
u32
txsr
;
/* PSC + 0x88 */
u32
txisr
;
/* PSC + 0x8c */
u32
tximr
;
/* PSC + 0x90 */
u32
txcnt
;
/* PSC + 0x94 */
u32
txptr
;
/* PSC + 0x98 */
u32
txsz
;
/* PSC + 0x9c */
u32
reserved2
[
7
];
union
{
u8
txdata_8
;
u16
txdata_16
;
u32
txdata_32
;
}
txdata
;
/* PSC + 0xbc */
#define txdata_8 txdata.txdata_8
#define txdata_16 txdata.txdata_16
#define txdata_32 txdata.txdata_32
u32
rxcmd
;
/* PSC + 0xc0 */
u32
rxalarm
;
/* PSC + 0xc4 */
u32
rxsr
;
/* PSC + 0xc8 */
u32
rxisr
;
/* PSC + 0xcc */
u32
rximr
;
/* PSC + 0xd0 */
u32
rxcnt
;
/* PSC + 0xd4 */
u32
rxptr
;
/* PSC + 0xd8 */
u32
rxsz
;
/* PSC + 0xdc */
u32
reserved3
[
7
];
union
{
u8
rxdata_8
;
u16
rxdata_16
;
u32
rxdata_32
;
}
rxdata
;
/* PSC + 0xfc */
#define rxdata_8 rxdata.rxdata_8
#define rxdata_16 rxdata.rxdata_16
#define rxdata_32 rxdata.rxdata_32
};
#endif
/* __ASM_MPC52xx_PSC_H__ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment