Skip to content

Commit

Permalink
Merge git://git.kernel.org/pub/scm/linux/kernel/git/nico/orion
Browse files Browse the repository at this point in the history
  • Loading branch information
Russell King committed Nov 7, 2010
2 parents c947f69 + 7350f41 commit 725278e
Show file tree
Hide file tree
Showing 13 changed files with 29 additions and 42 deletions.
7 changes: 3 additions & 4 deletions arch/arm/mach-kirkwood/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -854,10 +854,9 @@ int __init kirkwood_find_tclk(void)

kirkwood_pcie_id(&dev, &rev);

if ((dev == MV88F6281_DEV_ID && (rev == MV88F6281_REV_A0 ||
rev == MV88F6281_REV_A1)) ||
(dev == MV88F6282_DEV_ID))
return 200000000;
if (dev == MV88F6281_DEV_ID || dev == MV88F6282_DEV_ID)
if (((readl(SAMPLE_AT_RESET) >> 21) & 1) == 0)
return 200000000;

return 166666667;
}
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-kirkwood/d2net_v2-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,5 +225,5 @@ MACHINE_START(D2NET_V2, "LaCie d2 Network v2")
.init_machine = d2net_v2_init,
.map_io = kirkwood_map_io,
.init_irq = kirkwood_init_irq,
.timer = &lacie_v2_timer,
.timer = &kirkwood_timer,
MACHINE_END
14 changes: 0 additions & 14 deletions arch/arm/mach-kirkwood/lacie_v2-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,17 +111,3 @@ void __init lacie_v2_hdd_power_init(int hdd_num)
pr_err("Failed to power up HDD%d\n", i + 1);
}
}

/*****************************************************************************
* Timer
****************************************************************************/

static void lacie_v2_timer_init(void)
{
kirkwood_tclk = 166666667;
orion_time_init(IRQ_KIRKWOOD_BRIDGE, kirkwood_tclk);
}

struct sys_timer lacie_v2_timer = {
.init = lacie_v2_timer_init,
};
2 changes: 0 additions & 2 deletions arch/arm/mach-kirkwood/lacie_v2-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,4 @@ void lacie_v2_register_flash(void);
void lacie_v2_register_i2c_devices(void);
void lacie_v2_hdd_power_init(int hdd_num);

extern struct sys_timer lacie_v2_timer;

#endif
4 changes: 1 addition & 3 deletions arch/arm/mach-kirkwood/mpp.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ void __init kirkwood_mpp_conf(unsigned int *mpp_list)
}
printk("\n");

while (*mpp_list) {
for ( ; *mpp_list; mpp_list++) {
unsigned int num = MPP_NUM(*mpp_list);
unsigned int sel = MPP_SEL(*mpp_list);
int shift, gpio_mode;
Expand Down Expand Up @@ -88,8 +88,6 @@ void __init kirkwood_mpp_conf(unsigned int *mpp_list)
if (sel != 0)
gpio_mode = 0;
orion_gpio_set_valid(num, gpio_mode);

mpp_list++;
}

printk(KERN_DEBUG " final MPP regs:");
Expand Down
6 changes: 3 additions & 3 deletions arch/arm/mach-kirkwood/netspace_v2-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ MACHINE_START(NETSPACE_V2, "LaCie Network Space v2")
.init_machine = netspace_v2_init,
.map_io = kirkwood_map_io,
.init_irq = kirkwood_init_irq,
.timer = &lacie_v2_timer,
.timer = &kirkwood_timer,
MACHINE_END
#endif

Expand All @@ -272,7 +272,7 @@ MACHINE_START(INETSPACE_V2, "LaCie Internet Space v2")
.init_machine = netspace_v2_init,
.map_io = kirkwood_map_io,
.init_irq = kirkwood_init_irq,
.timer = &lacie_v2_timer,
.timer = &kirkwood_timer,
MACHINE_END
#endif

Expand All @@ -282,6 +282,6 @@ MACHINE_START(NETSPACE_MAX_V2, "LaCie Network Space Max v2")
.init_machine = netspace_v2_init,
.map_io = kirkwood_map_io,
.init_irq = kirkwood_init_irq,
.timer = &lacie_v2_timer,
.timer = &kirkwood_timer,
MACHINE_END
#endif
4 changes: 2 additions & 2 deletions arch/arm/mach-kirkwood/netxbig_v2-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ MACHINE_START(NET2BIG_V2, "LaCie 2Big Network v2")
.init_machine = netxbig_v2_init,
.map_io = kirkwood_map_io,
.init_irq = kirkwood_init_irq,
.timer = &lacie_v2_timer,
.timer = &kirkwood_timer,
MACHINE_END
#endif

Expand All @@ -413,6 +413,6 @@ MACHINE_START(NET5BIG_V2, "LaCie 5Big Network v2")
.init_machine = netxbig_v2_init,
.map_io = kirkwood_map_io,
.init_irq = kirkwood_init_irq,
.timer = &lacie_v2_timer,
.timer = &kirkwood_timer,
MACHINE_END
#endif
14 changes: 13 additions & 1 deletion arch/arm/mach-kirkwood/ts41x-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@
#include "mpp.h"
#include "tsx1x-common.h"

/* for the PCIe reset workaround */
#include <plat/pcie.h>


#define QNAP_TS41X_JUMPER_JP1 45

static struct i2c_board_info __initdata qnap_ts41x_i2c_rtc = {
Expand Down Expand Up @@ -140,8 +144,16 @@ static void __init qnap_ts41x_init(void)

static int __init ts41x_pci_init(void)
{
if (machine_is_ts41x())
if (machine_is_ts41x()) {
/*
* Without this explicit reset, the PCIe SATA controller
* (Marvell 88sx7042/sata_mv) is known to stop working
* after a few minutes.
*/
orion_pcie_reset((void __iomem *)PCIE_VIRT_BASE);

kirkwood_pcie_init(KW_PCIE0);
}

return 0;
}
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mach-mv78xx0/mpp.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ void __init mv78xx0_mpp_conf(unsigned int *mpp_list)
}
printk("\n");

while (*mpp_list) {
for ( ; *mpp_list; mpp_list++) {
unsigned int num = MPP_NUM(*mpp_list);
unsigned int sel = MPP_SEL(*mpp_list);
int shift, gpio_mode;
Expand Down Expand Up @@ -83,8 +83,6 @@ void __init mv78xx0_mpp_conf(unsigned int *mpp_list)
if (sel != 0)
gpio_mode = 0;
orion_gpio_set_valid(num, gpio_mode);

mpp_list++;
}

printk(KERN_DEBUG " final MPP regs:");
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mach-orion5x/mpp.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ void __init orion5x_mpp_conf(struct orion5x_mpp_mode *mode)
/* Initialize gpiolib. */
orion_gpio_init();

while (mode->mpp >= 0) {
for ( ; mode->mpp >= 0; mode++) {
u32 *reg;
int num_type;
int shift;
Expand Down Expand Up @@ -160,8 +160,6 @@ void __init orion5x_mpp_conf(struct orion5x_mpp_mode *mode)
orion_gpio_set_unused(mode->mpp);

orion_gpio_set_valid(mode->mpp, !!(mode->type == MPP_GPIO));

mode++;
}

writel(mpp_0_7_ctrl, MPP_0_7_CTRL);
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-orion5x/ts78xx-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ static struct platform_nand_data ts78xx_ts_nand_data = {
static struct resource ts78xx_ts_nand_resources = {
.start = TS_NAND_DATA,
.end = TS_NAND_DATA + 4,
.flags = IORESOURCE_IO,
.flags = IORESOURCE_MEM,
};

static struct platform_device ts78xx_ts_nand_device = {
Expand Down
3 changes: 3 additions & 0 deletions arch/arm/plat-orion/include/plat/pcie.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@
#ifndef __PLAT_PCIE_H
#define __PLAT_PCIE_H

struct pci_bus;

u32 orion_pcie_dev_id(void __iomem *base);
u32 orion_pcie_rev(void __iomem *base);
int orion_pcie_link_up(void __iomem *base);
int orion_pcie_x4_mode(void __iomem *base);
int orion_pcie_get_local_bus_nr(void __iomem *base);
void orion_pcie_set_local_bus_nr(void __iomem *base, int nr);
void orion_pcie_reset(void __iomem *base);
void orion_pcie_setup(void __iomem *base,
struct mbus_dram_target_info *dram);
int orion_pcie_rd_conf(void __iomem *base, struct pci_bus *bus,
Expand Down
5 changes: 0 additions & 5 deletions arch/arm/plat-orion/pcie.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,11 +181,6 @@ void __init orion_pcie_setup(void __iomem *base,
u16 cmd;
u32 mask;

/*
* soft reset PCIe unit
*/
orion_pcie_reset(base);

/*
* Point PCIe unit MBUS decode windows to DRAM space.
*/
Expand Down

0 comments on commit 725278e

Please sign in to comment.