Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 112511
b: refs/heads/master
c: b2b3dc2
h: refs/heads/master
i:
  112509: 3a4294b
  112507: bda8900
  112503: d1304ea
  112495: 7947f76
  112479: e8eb343
  112447: 996fb84
  112383: 4eb0d39
v: v3
  • Loading branch information
Ronen Shitrit authored and Nicolas Pitre committed Sep 25, 2008
1 parent 2beed13 commit 237c049
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 79d4dd77f0d86e4315887edaa5dfabb0c2081ba7
refs/heads/master: b2b3dc2fc41ef441610d0140f0f5ccacbd43f40c
43 changes: 34 additions & 9 deletions trunk/arch/arm/mach-kirkwood/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -532,6 +532,12 @@ int kirkwood_tclk;

int __init kirkwood_find_tclk(void)
{
u32 dev, rev;

kirkwood_pcie_id(&dev, &rev);
if (dev == MV88F6281_DEV_ID && rev == MV88F6281_REV_A0)
return 200000000;

return 166666667;
}

Expand All @@ -549,18 +555,37 @@ struct sys_timer kirkwood_timer = {
/*****************************************************************************
* General
****************************************************************************/
/*
* Identify device ID and revision.
*/
static char * __init kirkwood_id(void)
{
switch (readl(DEVICE_ID) & 0x3) {
case 0:
return "88F6180";
case 1:
return "88F6192";
case 2:
return "88F6281";
u32 dev, rev;

kirkwood_pcie_id(&dev, &rev);

if (dev == MV88F6281_DEV_ID) {
if (rev == MV88F6281_REV_Z0)
return "MV88F6281-Z0";
else if (rev == MV88F6281_REV_A0)
return "MV88F6281-A0";
else
return "MV88F6281-Rev-Unsupported";
} else if (dev == MV88F6192_DEV_ID) {
if (rev == MV88F6192_REV_Z0)
return "MV88F6192-Z0";
else if (rev == MV88F6192_REV_A0)
return "MV88F6192-A0";
else
return "MV88F6192-Rev-Unsupported";
} else if (dev == MV88F6180_DEV_ID) {
if (rev == MV88F6180_REV_A0)
return "MV88F6180-Rev-A0";
else
return "MV88F6180-Rev-Unsupported";
} else {
return "Device-Unknown";
}

return "unknown 88F6000 variant";
}

static int __init is_l2_writethrough(void)
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/arm/mach-kirkwood/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ void kirkwood_setup_pcie_io_win(int window, u32 base, u32 size,
void kirkwood_setup_pcie_mem_win(int window, u32 base, u32 size,
int maj, int min);

void kirkwood_pcie_id(u32 *dev, u32 *rev);

void kirkwood_ehci_init(void);
void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data);
void kirkwood_pcie_init(void);
Expand Down
14 changes: 14 additions & 0 deletions trunk/arch/arm/mach-kirkwood/include/mach/kirkwood.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,20 @@
#define L2_CONFIG_REG (BRIDGE_VIRT_BASE | 0x0128)
#define L2_WRITETHROUGH 0x00000010

/*
* Supported devices and revisions.
*/
#define MV88F6281_DEV_ID 0x6281
#define MV88F6281_REV_Z0 0
#define MV88F6281_REV_A0 2

#define MV88F6192_DEV_ID 0x6192
#define MV88F6192_REV_Z0 0
#define MV88F6192_REV_A0 2

#define MV88F6180_DEV_ID 0x6180
#define MV88F6180_REV_A0 2

/*
* Register Map
*/
Expand Down
6 changes: 6 additions & 0 deletions trunk/arch/arm/mach-kirkwood/pcie.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@

#define PCIE_BASE ((void __iomem *)PCIE_VIRT_BASE)

void __init kirkwood_pcie_id(u32 *dev, u32 *rev)
{
*dev = orion_pcie_dev_id(PCIE_BASE);
*rev = orion_pcie_rev(PCIE_BASE);
}

static int pcie_valid_config(int bus, int dev)
{
/*
Expand Down

0 comments on commit 237c049

Please sign in to comment.