diff options
| -rw-r--r-- | arch/arm/mach-kirkwood/common.c | 7 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/d2net_v2-setup.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/lacie_v2-common.c | 14 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/lacie_v2-common.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/mpp.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/netspace_v2-setup.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/netxbig_v2-setup.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/ts41x-setup.c | 14 | ||||
| -rw-r--r-- | arch/arm/mach-mv78xx0/mpp.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-orion5x/mpp.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-orion5x/ts78xx-setup.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-orion/include/plat/pcie.h | 3 | ||||
| -rw-r--r-- | arch/arm/plat-orion/pcie.c | 5 |
13 files changed, 29 insertions, 42 deletions
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 51ff23b72d3a..3688123b5ad8 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
| @@ -854,10 +854,9 @@ int __init kirkwood_find_tclk(void) | |||
| 854 | 854 | ||
| 855 | kirkwood_pcie_id(&dev, &rev); | 855 | kirkwood_pcie_id(&dev, &rev); |
| 856 | 856 | ||
| 857 | if ((dev == MV88F6281_DEV_ID && (rev == MV88F6281_REV_A0 || | 857 | if (dev == MV88F6281_DEV_ID || dev == MV88F6282_DEV_ID) |
| 858 | rev == MV88F6281_REV_A1)) || | 858 | if (((readl(SAMPLE_AT_RESET) >> 21) & 1) == 0) |
| 859 | (dev == MV88F6282_DEV_ID)) | 859 | return 200000000; |
| 860 | return 200000000; | ||
| 861 | 860 | ||
| 862 | return 166666667; | 861 | return 166666667; |
| 863 | } | 862 | } |
diff --git a/arch/arm/mach-kirkwood/d2net_v2-setup.c b/arch/arm/mach-kirkwood/d2net_v2-setup.c index 4aa86e4a152c..a31c9499ab36 100644 --- a/arch/arm/mach-kirkwood/d2net_v2-setup.c +++ b/arch/arm/mach-kirkwood/d2net_v2-setup.c | |||
| @@ -225,5 +225,5 @@ MACHINE_START(D2NET_V2, "LaCie d2 Network v2") | |||
| 225 | .init_machine = d2net_v2_init, | 225 | .init_machine = d2net_v2_init, |
| 226 | .map_io = kirkwood_map_io, | 226 | .map_io = kirkwood_map_io, |
| 227 | .init_irq = kirkwood_init_irq, | 227 | .init_irq = kirkwood_init_irq, |
| 228 | .timer = &lacie_v2_timer, | 228 | .timer = &kirkwood_timer, |
| 229 | MACHINE_END | 229 | MACHINE_END |
diff --git a/arch/arm/mach-kirkwood/lacie_v2-common.c b/arch/arm/mach-kirkwood/lacie_v2-common.c index d3ea1b6c8a02..285edab776e9 100644 --- a/arch/arm/mach-kirkwood/lacie_v2-common.c +++ b/arch/arm/mach-kirkwood/lacie_v2-common.c | |||
| @@ -111,17 +111,3 @@ void __init lacie_v2_hdd_power_init(int hdd_num) | |||
| 111 | pr_err("Failed to power up HDD%d\n", i + 1); | 111 | pr_err("Failed to power up HDD%d\n", i + 1); |
| 112 | } | 112 | } |
| 113 | } | 113 | } |
| 114 | |||
| 115 | /***************************************************************************** | ||
| 116 | * Timer | ||
| 117 | ****************************************************************************/ | ||
| 118 | |||
| 119 | static void lacie_v2_timer_init(void) | ||
| 120 | { | ||
| 121 | kirkwood_tclk = 166666667; | ||
| 122 | orion_time_init(IRQ_KIRKWOOD_BRIDGE, kirkwood_tclk); | ||
| 123 | } | ||
| 124 | |||
| 125 | struct sys_timer lacie_v2_timer = { | ||
| 126 | .init = lacie_v2_timer_init, | ||
| 127 | }; | ||
diff --git a/arch/arm/mach-kirkwood/lacie_v2-common.h b/arch/arm/mach-kirkwood/lacie_v2-common.h index af521315b87b..fc64f578536e 100644 --- a/arch/arm/mach-kirkwood/lacie_v2-common.h +++ b/arch/arm/mach-kirkwood/lacie_v2-common.h | |||
| @@ -13,6 +13,4 @@ void lacie_v2_register_flash(void); | |||
| 13 | void lacie_v2_register_i2c_devices(void); | 13 | void lacie_v2_register_i2c_devices(void); |
| 14 | void lacie_v2_hdd_power_init(int hdd_num); | 14 | void lacie_v2_hdd_power_init(int hdd_num); |
| 15 | 15 | ||
| 16 | extern struct sys_timer lacie_v2_timer; | ||
| 17 | |||
| 18 | #endif | 16 | #endif |
diff --git a/arch/arm/mach-kirkwood/mpp.c b/arch/arm/mach-kirkwood/mpp.c index 065187d177c6..27901f702feb 100644 --- a/arch/arm/mach-kirkwood/mpp.c +++ b/arch/arm/mach-kirkwood/mpp.c | |||
| @@ -59,7 +59,7 @@ void __init kirkwood_mpp_conf(unsigned int *mpp_list) | |||
| 59 | } | 59 | } |
| 60 | printk("\n"); | 60 | printk("\n"); |
| 61 | 61 | ||
| 62 | while (*mpp_list) { | 62 | for ( ; *mpp_list; mpp_list++) { |
| 63 | unsigned int num = MPP_NUM(*mpp_list); | 63 | unsigned int num = MPP_NUM(*mpp_list); |
| 64 | unsigned int sel = MPP_SEL(*mpp_list); | 64 | unsigned int sel = MPP_SEL(*mpp_list); |
| 65 | int shift, gpio_mode; | 65 | int shift, gpio_mode; |
| @@ -88,8 +88,6 @@ void __init kirkwood_mpp_conf(unsigned int *mpp_list) | |||
| 88 | if (sel != 0) | 88 | if (sel != 0) |
| 89 | gpio_mode = 0; | 89 | gpio_mode = 0; |
| 90 | orion_gpio_set_valid(num, gpio_mode); | 90 | orion_gpio_set_valid(num, gpio_mode); |
| 91 | |||
| 92 | mpp_list++; | ||
| 93 | } | 91 | } |
| 94 | 92 | ||
| 95 | printk(KERN_DEBUG " final MPP regs:"); | 93 | printk(KERN_DEBUG " final MPP regs:"); |
diff --git a/arch/arm/mach-kirkwood/netspace_v2-setup.c b/arch/arm/mach-kirkwood/netspace_v2-setup.c index 5ea66f1f4178..65ee21fd2f3b 100644 --- a/arch/arm/mach-kirkwood/netspace_v2-setup.c +++ b/arch/arm/mach-kirkwood/netspace_v2-setup.c | |||
| @@ -262,7 +262,7 @@ MACHINE_START(NETSPACE_V2, "LaCie Network Space v2") | |||
| 262 | .init_machine = netspace_v2_init, | 262 | .init_machine = netspace_v2_init, |
| 263 | .map_io = kirkwood_map_io, | 263 | .map_io = kirkwood_map_io, |
| 264 | .init_irq = kirkwood_init_irq, | 264 | .init_irq = kirkwood_init_irq, |
| 265 | .timer = &lacie_v2_timer, | 265 | .timer = &kirkwood_timer, |
| 266 | MACHINE_END | 266 | MACHINE_END |
| 267 | #endif | 267 | #endif |
| 268 | 268 | ||
| @@ -272,7 +272,7 @@ MACHINE_START(INETSPACE_V2, "LaCie Internet Space v2") | |||
| 272 | .init_machine = netspace_v2_init, | 272 | .init_machine = netspace_v2_init, |
| 273 | .map_io = kirkwood_map_io, | 273 | .map_io = kirkwood_map_io, |
| 274 | .init_irq = kirkwood_init_irq, | 274 | .init_irq = kirkwood_init_irq, |
| 275 | .timer = &lacie_v2_timer, | 275 | .timer = &kirkwood_timer, |
| 276 | MACHINE_END | 276 | MACHINE_END |
| 277 | #endif | 277 | #endif |
| 278 | 278 | ||
| @@ -282,6 +282,6 @@ MACHINE_START(NETSPACE_MAX_V2, "LaCie Network Space Max v2") | |||
| 282 | .init_machine = netspace_v2_init, | 282 | .init_machine = netspace_v2_init, |
| 283 | .map_io = kirkwood_map_io, | 283 | .map_io = kirkwood_map_io, |
| 284 | .init_irq = kirkwood_init_irq, | 284 | .init_irq = kirkwood_init_irq, |
| 285 | .timer = &lacie_v2_timer, | 285 | .timer = &kirkwood_timer, |
| 286 | MACHINE_END | 286 | MACHINE_END |
| 287 | #endif | 287 | #endif |
diff --git a/arch/arm/mach-kirkwood/netxbig_v2-setup.c b/arch/arm/mach-kirkwood/netxbig_v2-setup.c index a1b45d501aef..93afd3c8bfd8 100644 --- a/arch/arm/mach-kirkwood/netxbig_v2-setup.c +++ b/arch/arm/mach-kirkwood/netxbig_v2-setup.c | |||
| @@ -403,7 +403,7 @@ MACHINE_START(NET2BIG_V2, "LaCie 2Big Network v2") | |||
| 403 | .init_machine = netxbig_v2_init, | 403 | .init_machine = netxbig_v2_init, |
| 404 | .map_io = kirkwood_map_io, | 404 | .map_io = kirkwood_map_io, |
| 405 | .init_irq = kirkwood_init_irq, | 405 | .init_irq = kirkwood_init_irq, |
| 406 | .timer = &lacie_v2_timer, | 406 | .timer = &kirkwood_timer, |
| 407 | MACHINE_END | 407 | MACHINE_END |
| 408 | #endif | 408 | #endif |
| 409 | 409 | ||
| @@ -413,6 +413,6 @@ MACHINE_START(NET5BIG_V2, "LaCie 5Big Network v2") | |||
| 413 | .init_machine = netxbig_v2_init, | 413 | .init_machine = netxbig_v2_init, |
| 414 | .map_io = kirkwood_map_io, | 414 | .map_io = kirkwood_map_io, |
| 415 | .init_irq = kirkwood_init_irq, | 415 | .init_irq = kirkwood_init_irq, |
| 416 | .timer = &lacie_v2_timer, | 416 | .timer = &kirkwood_timer, |
| 417 | MACHINE_END | 417 | MACHINE_END |
| 418 | #endif | 418 | #endif |
diff --git a/arch/arm/mach-kirkwood/ts41x-setup.c b/arch/arm/mach-kirkwood/ts41x-setup.c index 8be09a0ce4ac..3587a281d993 100644 --- a/arch/arm/mach-kirkwood/ts41x-setup.c +++ b/arch/arm/mach-kirkwood/ts41x-setup.c | |||
| @@ -27,6 +27,10 @@ | |||
| 27 | #include "mpp.h" | 27 | #include "mpp.h" |
| 28 | #include "tsx1x-common.h" | 28 | #include "tsx1x-common.h" |
| 29 | 29 | ||
| 30 | /* for the PCIe reset workaround */ | ||
| 31 | #include <plat/pcie.h> | ||
| 32 | |||
| 33 | |||
| 30 | #define QNAP_TS41X_JUMPER_JP1 45 | 34 | #define QNAP_TS41X_JUMPER_JP1 45 |
| 31 | 35 | ||
| 32 | static struct i2c_board_info __initdata qnap_ts41x_i2c_rtc = { | 36 | static struct i2c_board_info __initdata qnap_ts41x_i2c_rtc = { |
| @@ -140,8 +144,16 @@ static void __init qnap_ts41x_init(void) | |||
| 140 | 144 | ||
| 141 | static int __init ts41x_pci_init(void) | 145 | static int __init ts41x_pci_init(void) |
| 142 | { | 146 | { |
| 143 | if (machine_is_ts41x()) | 147 | if (machine_is_ts41x()) { |
| 148 | /* | ||
| 149 | * Without this explicit reset, the PCIe SATA controller | ||
| 150 | * (Marvell 88sx7042/sata_mv) is known to stop working | ||
| 151 | * after a few minutes. | ||
| 152 | */ | ||
| 153 | orion_pcie_reset((void __iomem *)PCIE_VIRT_BASE); | ||
| 154 | |||
| 144 | kirkwood_pcie_init(KW_PCIE0); | 155 | kirkwood_pcie_init(KW_PCIE0); |
| 156 | } | ||
| 145 | 157 | ||
| 146 | return 0; | 158 | return 0; |
| 147 | } | 159 | } |
diff --git a/arch/arm/mach-mv78xx0/mpp.c b/arch/arm/mach-mv78xx0/mpp.c index 354ac514eb89..84db2dfc475c 100644 --- a/arch/arm/mach-mv78xx0/mpp.c +++ b/arch/arm/mach-mv78xx0/mpp.c | |||
| @@ -54,7 +54,7 @@ void __init mv78xx0_mpp_conf(unsigned int *mpp_list) | |||
| 54 | } | 54 | } |
| 55 | printk("\n"); | 55 | printk("\n"); |
| 56 | 56 | ||
| 57 | while (*mpp_list) { | 57 | for ( ; *mpp_list; mpp_list++) { |
| 58 | unsigned int num = MPP_NUM(*mpp_list); | 58 | unsigned int num = MPP_NUM(*mpp_list); |
| 59 | unsigned int sel = MPP_SEL(*mpp_list); | 59 | unsigned int sel = MPP_SEL(*mpp_list); |
| 60 | int shift, gpio_mode; | 60 | int shift, gpio_mode; |
| @@ -83,8 +83,6 @@ void __init mv78xx0_mpp_conf(unsigned int *mpp_list) | |||
| 83 | if (sel != 0) | 83 | if (sel != 0) |
| 84 | gpio_mode = 0; | 84 | gpio_mode = 0; |
| 85 | orion_gpio_set_valid(num, gpio_mode); | 85 | orion_gpio_set_valid(num, gpio_mode); |
| 86 | |||
| 87 | mpp_list++; | ||
| 88 | } | 86 | } |
| 89 | 87 | ||
| 90 | printk(KERN_DEBUG " final MPP regs:"); | 88 | printk(KERN_DEBUG " final MPP regs:"); |
diff --git a/arch/arm/mach-orion5x/mpp.c b/arch/arm/mach-orion5x/mpp.c index bc4c3b9aaf83..db485d3b8144 100644 --- a/arch/arm/mach-orion5x/mpp.c +++ b/arch/arm/mach-orion5x/mpp.c | |||
| @@ -127,7 +127,7 @@ void __init orion5x_mpp_conf(struct orion5x_mpp_mode *mode) | |||
| 127 | /* Initialize gpiolib. */ | 127 | /* Initialize gpiolib. */ |
| 128 | orion_gpio_init(); | 128 | orion_gpio_init(); |
| 129 | 129 | ||
| 130 | while (mode->mpp >= 0) { | 130 | for ( ; mode->mpp >= 0; mode++) { |
| 131 | u32 *reg; | 131 | u32 *reg; |
| 132 | int num_type; | 132 | int num_type; |
| 133 | int shift; | 133 | int shift; |
| @@ -160,8 +160,6 @@ void __init orion5x_mpp_conf(struct orion5x_mpp_mode *mode) | |||
| 160 | orion_gpio_set_unused(mode->mpp); | 160 | orion_gpio_set_unused(mode->mpp); |
| 161 | 161 | ||
| 162 | orion_gpio_set_valid(mode->mpp, !!(mode->type == MPP_GPIO)); | 162 | orion_gpio_set_valid(mode->mpp, !!(mode->type == MPP_GPIO)); |
| 163 | |||
| 164 | mode++; | ||
| 165 | } | 163 | } |
| 166 | 164 | ||
| 167 | writel(mpp_0_7_ctrl, MPP_0_7_CTRL); | 165 | writel(mpp_0_7_ctrl, MPP_0_7_CTRL); |
diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c index 16f1bd5324be..c1c1cd04bdde 100644 --- a/arch/arm/mach-orion5x/ts78xx-setup.c +++ b/arch/arm/mach-orion5x/ts78xx-setup.c | |||
| @@ -239,7 +239,7 @@ static struct platform_nand_data ts78xx_ts_nand_data = { | |||
| 239 | static struct resource ts78xx_ts_nand_resources = { | 239 | static struct resource ts78xx_ts_nand_resources = { |
| 240 | .start = TS_NAND_DATA, | 240 | .start = TS_NAND_DATA, |
| 241 | .end = TS_NAND_DATA + 4, | 241 | .end = TS_NAND_DATA + 4, |
| 242 | .flags = IORESOURCE_IO, | 242 | .flags = IORESOURCE_MEM, |
| 243 | }; | 243 | }; |
| 244 | 244 | ||
| 245 | static struct platform_device ts78xx_ts_nand_device = { | 245 | static struct platform_device ts78xx_ts_nand_device = { |
diff --git a/arch/arm/plat-orion/include/plat/pcie.h b/arch/arm/plat-orion/include/plat/pcie.h index 3ebfef72b4e7..cc99163e73fd 100644 --- a/arch/arm/plat-orion/include/plat/pcie.h +++ b/arch/arm/plat-orion/include/plat/pcie.h | |||
| @@ -11,12 +11,15 @@ | |||
| 11 | #ifndef __PLAT_PCIE_H | 11 | #ifndef __PLAT_PCIE_H |
| 12 | #define __PLAT_PCIE_H | 12 | #define __PLAT_PCIE_H |
| 13 | 13 | ||
| 14 | struct pci_bus; | ||
| 15 | |||
| 14 | u32 orion_pcie_dev_id(void __iomem *base); | 16 | u32 orion_pcie_dev_id(void __iomem *base); |
| 15 | u32 orion_pcie_rev(void __iomem *base); | 17 | u32 orion_pcie_rev(void __iomem *base); |
| 16 | int orion_pcie_link_up(void __iomem *base); | 18 | int orion_pcie_link_up(void __iomem *base); |
| 17 | int orion_pcie_x4_mode(void __iomem *base); | 19 | int orion_pcie_x4_mode(void __iomem *base); |
| 18 | int orion_pcie_get_local_bus_nr(void __iomem *base); | 20 | int orion_pcie_get_local_bus_nr(void __iomem *base); |
| 19 | void orion_pcie_set_local_bus_nr(void __iomem *base, int nr); | 21 | void orion_pcie_set_local_bus_nr(void __iomem *base, int nr); |
| 22 | void orion_pcie_reset(void __iomem *base); | ||
| 20 | void orion_pcie_setup(void __iomem *base, | 23 | void orion_pcie_setup(void __iomem *base, |
| 21 | struct mbus_dram_target_info *dram); | 24 | struct mbus_dram_target_info *dram); |
| 22 | int orion_pcie_rd_conf(void __iomem *base, struct pci_bus *bus, | 25 | int orion_pcie_rd_conf(void __iomem *base, struct pci_bus *bus, |
diff --git a/arch/arm/plat-orion/pcie.c b/arch/arm/plat-orion/pcie.c index 779553a1595e..af2d733c50b5 100644 --- a/arch/arm/plat-orion/pcie.c +++ b/arch/arm/plat-orion/pcie.c | |||
| @@ -182,11 +182,6 @@ void __init orion_pcie_setup(void __iomem *base, | |||
| 182 | u32 mask; | 182 | u32 mask; |
| 183 | 183 | ||
| 184 | /* | 184 | /* |
| 185 | * soft reset PCIe unit | ||
| 186 | */ | ||
| 187 | orion_pcie_reset(base); | ||
| 188 | |||
| 189 | /* | ||
| 190 | * Point PCIe unit MBUS decode windows to DRAM space. | 185 | * Point PCIe unit MBUS decode windows to DRAM space. |
| 191 | */ | 186 | */ |
| 192 | orion_pcie_setup_wins(base, dram); | 187 | orion_pcie_setup_wins(base, dram); |
