-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/…
…git/vitb/linux-2.6-PQ
- Loading branch information
Showing
11 changed files
with
1,165 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,223 @@ | ||
/* | ||
* MPC8272 ADS Device Tree Source | ||
* | ||
* Copyright 2005 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. | ||
*/ | ||
|
||
/ { | ||
model = "MPC8272ADS"; | ||
compatible = "MPC8260ADS"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
linux,phandle = <100>; | ||
|
||
cpus { | ||
#cpus = <1>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
linux,phandle = <200>; | ||
|
||
PowerPC,8272@0 { | ||
device_type = "cpu"; | ||
reg = <0>; | ||
d-cache-line-size = <20>; // 32 bytes | ||
i-cache-line-size = <20>; // 32 bytes | ||
d-cache-size = <4000>; // L1, 16K | ||
i-cache-size = <4000>; // L1, 16K | ||
timebase-frequency = <0>; | ||
bus-frequency = <0>; | ||
clock-frequency = <0>; | ||
32-bit; | ||
linux,phandle = <201>; | ||
linux,boot-cpu; | ||
}; | ||
}; | ||
|
||
interrupt-controller@f8200000 { | ||
linux,phandle = <f8200000>; | ||
#address-cells = <0>; | ||
#interrupt-cells = <2>; | ||
interrupt-controller; | ||
reg = <f8200000 f8200004>; | ||
built-in; | ||
device_type = "pci-pic"; | ||
}; | ||
memory { | ||
device_type = "memory"; | ||
linux,phandle = <300>; | ||
reg = <00000000 4000000 f4500000 00000020>; | ||
}; | ||
|
||
soc8272@f0000000 { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
#interrupt-cells = <2>; | ||
device_type = "soc"; | ||
ranges = < 0 0 2 00000000 f0000000 00053000>; | ||
reg = <f0000000 0>; | ||
|
||
mdio@0 { | ||
device_type = "mdio"; | ||
compatible = "fs_enet"; | ||
reg = <0 0>; | ||
linux,phandle = <24520>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
ethernet-phy@0 { | ||
linux,phandle = <2452000>; | ||
interrupt-parent = <10c00>; | ||
interrupts = <19 1>; | ||
reg = <0>; | ||
bitbang = [ 12 12 13 02 02 01 ]; | ||
device_type = "ethernet-phy"; | ||
}; | ||
ethernet-phy@1 { | ||
linux,phandle = <2452001>; | ||
interrupt-parent = <10c00>; | ||
interrupts = <19 1>; | ||
bitbang = [ 12 12 13 02 02 01 ]; | ||
reg = <3>; | ||
device_type = "ethernet-phy"; | ||
}; | ||
}; | ||
|
||
ethernet@24000 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
device_type = "network"; | ||
device-id = <2>; | ||
compatible = "fs_enet"; | ||
model = "FCC"; | ||
reg = <11300 20 8400 100 11380 30>; | ||
mac-address = [ 00 11 2F 99 43 54 ]; | ||
interrupts = <20 2>; | ||
interrupt-parent = <10c00>; | ||
phy-handle = <2452000>; | ||
rx-clock = <13>; | ||
tx-clock = <12>; | ||
}; | ||
|
||
ethernet@25000 { | ||
device_type = "network"; | ||
device-id = <3>; | ||
compatible = "fs_enet"; | ||
model = "FCC"; | ||
reg = <11320 20 8500 100 113b0 30>; | ||
mac-address = [ 00 11 2F 99 44 54 ]; | ||
interrupts = <21 2>; | ||
interrupt-parent = <10c00>; | ||
phy-handle = <2452001>; | ||
rx-clock = <17>; | ||
tx-clock = <18>; | ||
}; | ||
|
||
cpm@f0000000 { | ||
linux,phandle = <f0000000>; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
#interrupt-cells = <2>; | ||
device_type = "cpm"; | ||
model = "CPM2"; | ||
ranges = <00000000 00000000 3ffff>; | ||
reg = <10d80 3280>; | ||
command-proc = <119c0>; | ||
brg-frequency = <17D7840>; | ||
cpm_clk = <BEBC200>; | ||
|
||
scc@11a00 { | ||
device_type = "serial"; | ||
compatible = "cpm_uart"; | ||
model = "SCC"; | ||
device-id = <2>; | ||
reg = <11a00 20 8000 100>; | ||
current-speed = <1c200>; | ||
interrupts = <28 2>; | ||
interrupt-parent = <10c00>; | ||
clock-setup = <0 00ffffff>; | ||
rx-clock = <1>; | ||
tx-clock = <1>; | ||
}; | ||
|
||
scc@11a60 { | ||
device_type = "serial"; | ||
compatible = "cpm_uart"; | ||
model = "SCC"; | ||
device-id = <5>; | ||
reg = <11a60 20 8300 100>; | ||
current-speed = <1c200>; | ||
interrupts = <2b 2>; | ||
interrupt-parent = <10c00>; | ||
clock-setup = <1b ffffff00>; | ||
rx-clock = <4>; | ||
tx-clock = <4>; | ||
}; | ||
|
||
}; | ||
interrupt-controller@10c00 { | ||
linux,phandle = <10c00>; | ||
#address-cells = <0>; | ||
#interrupt-cells = <2>; | ||
interrupt-controller; | ||
reg = <10c00 80>; | ||
built-in; | ||
device_type = "cpm-pic"; | ||
compatible = "CPM2"; | ||
}; | ||
pci@0500 { | ||
linux,phandle = <0500>; | ||
#interrupt-cells = <1>; | ||
#size-cells = <2>; | ||
#address-cells = <3>; | ||
compatible = "8272"; | ||
device_type = "pci"; | ||
reg = <10430 4dc>; | ||
clock-frequency = <3f940aa>; | ||
interrupt-map-mask = <f800 0 0 7>; | ||
interrupt-map = < | ||
|
||
/* IDSEL 0x16 */ | ||
b000 0 0 1 f8200000 40 0 | ||
b000 0 0 2 f8200000 41 0 | ||
b000 0 0 3 f8200000 42 0 | ||
b000 0 0 4 f8200000 43 0 | ||
|
||
/* IDSEL 0x17 */ | ||
b800 0 0 1 f8200000 43 0 | ||
b800 0 0 2 f8200000 40 0 | ||
b800 0 0 3 f8200000 41 0 | ||
b800 0 0 4 f8200000 42 0 | ||
|
||
/* IDSEL 0x18 */ | ||
c000 0 0 1 f8200000 42 0 | ||
c000 0 0 2 f8200000 43 0 | ||
c000 0 0 3 f8200000 40 0 | ||
c000 0 0 4 f8200000 41 0>; | ||
interrupt-parent = <10c00>; | ||
interrupts = <14 3>; | ||
bus-range = <0 0>; | ||
ranges = <02000000 0 80000000 80000000 0 40000000 | ||
01000000 0 00000000 f6000000 0 02000000>; | ||
}; | ||
|
||
/* May need to remove if on a part without crypto engine */ | ||
crypto@30000 { | ||
device_type = "crypto"; | ||
model = "SEC2"; | ||
compatible = "talitos"; | ||
reg = <30000 10000>; | ||
interrupts = <b 0>; | ||
interrupt-parent = <10c00>; | ||
num-channels = <4>; | ||
channel-fifo-len = <18>; | ||
exec-units-mask = <0000007e>; | ||
/* desc mask is for rev1.x, we need runtime fixup for >=2.x */ | ||
descriptor-types-mask = <01010ebf>; | ||
}; | ||
|
||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
menu "Platform support" | ||
depends on PPC_82xx | ||
|
||
choice | ||
prompt "Machine Type" | ||
default MPC82xx_ADS | ||
|
||
config MPC82xx_ADS | ||
bool "Freescale MPC82xx ADS" | ||
select DEFAULT_UIMAGE | ||
select PQ2ADS | ||
select 8272 | ||
select 8260 | ||
select CPM2 | ||
select FSL_SOC | ||
help | ||
This option enables support for the MPC8272 ADS board | ||
|
||
endchoice | ||
|
||
endmenu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# | ||
# Makefile for the PowerPC 82xx linux kernel. | ||
# | ||
obj-$(CONFIG_PPC_82xx) += mpc82xx.o | ||
obj-$(CONFIG_MPC82xx_ADS) += mpc82xx_ads.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#ifndef _PPC_KERNEL_M82XX_PCI_H | ||
#define _PPC_KERNEL_M82XX_PCI_H | ||
|
||
/* | ||
* 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. | ||
*/ | ||
|
||
#include <asm/m8260_pci.h> | ||
|
||
#define SIU_INT_IRQ1 ((uint)0x13 + CPM_IRQ_OFFSET) | ||
|
||
#ifndef _IO_BASE | ||
#define _IO_BASE isa_io_base | ||
#endif | ||
|
||
#endif /* _PPC_KERNEL_M8260_PCI_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
/* | ||
* MPC82xx setup and early boot code plus other random bits. | ||
* | ||
* Author: Vitaly Bordug <vbordug@ru.mvista.com> | ||
* | ||
* Copyright (c) 2006 MontaVista Software, 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. | ||
*/ | ||
|
||
#include <linux/config.h> | ||
#include <linux/stddef.h> | ||
#include <linux/kernel.h> | ||
#include <linux/init.h> | ||
#include <linux/errno.h> | ||
#include <linux/reboot.h> | ||
#include <linux/pci.h> | ||
#include <linux/interrupt.h> | ||
#include <linux/kdev_t.h> | ||
#include <linux/major.h> | ||
#include <linux/console.h> | ||
#include <linux/delay.h> | ||
#include <linux/seq_file.h> | ||
#include <linux/root_dev.h> | ||
#include <linux/initrd.h> | ||
#include <linux/module.h> | ||
#include <linux/fsl_devices.h> | ||
#include <linux/fs_uart_pd.h> | ||
|
||
#include <asm/system.h> | ||
#include <asm/pgtable.h> | ||
#include <asm/page.h> | ||
#include <asm/atomic.h> | ||
#include <asm/time.h> | ||
#include <asm/io.h> | ||
#include <asm/machdep.h> | ||
#include <asm/bootinfo.h> | ||
#include <asm/pci-bridge.h> | ||
#include <asm/mpc8260.h> | ||
#include <asm/irq.h> | ||
#include <mm/mmu_decl.h> | ||
#include <asm/prom.h> | ||
#include <asm/cpm2.h> | ||
#include <asm/udbg.h> | ||
#include <asm/i8259.h> | ||
#include <linux/fs_enet_pd.h> | ||
|
||
#include <sysdev/fsl_soc.h> | ||
#include <sysdev/cpm2_pic.h> | ||
|
||
#include "pq2ads_pd.h" | ||
|
||
static int __init get_freq(char *name, unsigned long *val) | ||
{ | ||
struct device_node *cpu; | ||
unsigned int *fp; | ||
int found = 0; | ||
|
||
/* The cpu node should have timebase and clock frequency properties */ | ||
cpu = of_find_node_by_type(NULL, "cpu"); | ||
|
||
if (cpu) { | ||
fp = (unsigned int *)get_property(cpu, name, NULL); | ||
if (fp) { | ||
found = 1; | ||
*val = *fp++; | ||
} | ||
|
||
of_node_put(cpu); | ||
} | ||
|
||
return found; | ||
} | ||
|
||
void __init m82xx_calibrate_decr(void) | ||
{ | ||
ppc_tb_freq = 125000000; | ||
if (!get_freq("bus-frequency", &ppc_tb_freq)) { | ||
printk(KERN_ERR "WARNING: Estimating decrementer frequency " | ||
"(not found)\n"); | ||
} | ||
ppc_tb_freq /= 4; | ||
ppc_proc_freq = 1000000000; | ||
if (!get_freq("clock-frequency", &ppc_proc_freq)) | ||
printk(KERN_ERR "WARNING: Estimating processor frequency" | ||
"(not found)\n"); | ||
} | ||
|
||
void mpc82xx_ads_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: Freescale Semiconductor\n"); | ||
seq_printf(m, "Machine\t\t: %s\n", CPUINFO_MACHINE); | ||
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)); | ||
} |
Oops, something went wrong.