diff options
Diffstat (limited to 'arch/arm/mach-kirkwood')
-rw-r--r-- | arch/arm/mach-kirkwood/Kconfig | 21 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/addr-map.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-dnskw.c | 35 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-dockstar.c | 61 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-dt.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-iconnect.c | 48 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-iomega_ix2_200.c | 57 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-km_kirkwood.c | 57 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/common.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/common.h | 18 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/include/mach/bridge-regs.h | 20 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/include/mach/kirkwood.h | 112 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/irq.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/pcie.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/ts41x-setup.c | 3 |
16 files changed, 314 insertions, 167 deletions
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig index ca5c15a4e626..50bca5032b7e 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig | |||
@@ -94,6 +94,13 @@ config MACH_TS219_DT | |||
94 | or MV6282. If you have the wrong one, the buttons will not | 94 | or MV6282. If you have the wrong one, the buttons will not |
95 | work. | 95 | work. |
96 | 96 | ||
97 | config MACH_DOCKSTAR_DT | ||
98 | bool "Seagate FreeAgent Dockstar (Flattened Device Tree)" | ||
99 | select ARCH_KIRKWOOD_DT | ||
100 | help | ||
101 | Say 'Y' here if you want your kernel to support the | ||
102 | Seagate FreeAgent Dockstar (Flattened Device Tree). | ||
103 | |||
97 | config MACH_GOFLEXNET_DT | 104 | config MACH_GOFLEXNET_DT |
98 | bool "Seagate GoFlex Net (Flattened Device Tree)" | 105 | bool "Seagate GoFlex Net (Flattened Device Tree)" |
99 | select ARCH_KIRKWOOD_DT | 106 | select ARCH_KIRKWOOD_DT |
@@ -109,6 +116,20 @@ config MACH_LSXL_DT | |||
109 | Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using | 116 | Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using |
110 | Flattened Device Tree. | 117 | Flattened Device Tree. |
111 | 118 | ||
119 | config MACH_IOMEGA_IX2_200_DT | ||
120 | bool "Iomega StorCenter ix2-200 (Flattened Device Tree)" | ||
121 | select ARCH_KIRKWOOD_DT | ||
122 | help | ||
123 | Say 'Y' here if you want your kernel to support the | ||
124 | Iomega StorCenter ix2-200 (Flattened Device Tree). | ||
125 | |||
126 | config MACH_KM_KIRKWOOD_DT | ||
127 | bool "Keymile Kirkwood Reference Design (Flattened Device Tree)" | ||
128 | select ARCH_KIRKWOOD_DT | ||
129 | help | ||
130 | Say 'Y' here if you want your kernel to support the | ||
131 | Keymile Kirkwood Reference Desgin, using Flattened Device Tree. | ||
132 | |||
112 | config MACH_TS219 | 133 | config MACH_TS219 |
113 | bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" | 134 | bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" |
114 | help | 135 | help |
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile index 055c85a1cc46..294779f892d9 100644 --- a/arch/arm/mach-kirkwood/Makefile +++ b/arch/arm/mach-kirkwood/Makefile | |||
@@ -26,5 +26,8 @@ obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o | |||
26 | obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o | 26 | obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o |
27 | obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o | 27 | obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o |
28 | obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o | 28 | obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o |
29 | obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o | ||
29 | obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o | 30 | obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o |
30 | obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o | 31 | obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o |
32 | obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o | ||
33 | obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o | ||
diff --git a/arch/arm/mach-kirkwood/addr-map.c b/arch/arm/mach-kirkwood/addr-map.c index e9a7180863d9..8f0d162a1e1d 100644 --- a/arch/arm/mach-kirkwood/addr-map.c +++ b/arch/arm/mach-kirkwood/addr-map.c | |||
@@ -86,5 +86,6 @@ void __init kirkwood_setup_cpu_mbus(void) | |||
86 | /* | 86 | /* |
87 | * Setup MBUS dram target info. | 87 | * Setup MBUS dram target info. |
88 | */ | 88 | */ |
89 | orion_setup_cpu_mbus_target(&addr_map_cfg, DDR_WINDOW_CPU_BASE); | 89 | orion_setup_cpu_mbus_target(&addr_map_cfg, |
90 | (void __iomem *) DDR_WINDOW_CPU_BASE); | ||
90 | } | 91 | } |
diff --git a/arch/arm/mach-kirkwood/board-dnskw.c b/arch/arm/mach-kirkwood/board-dnskw.c index 4ab35065a144..43d16d6714b8 100644 --- a/arch/arm/mach-kirkwood/board-dnskw.c +++ b/arch/arm/mach-kirkwood/board-dnskw.c | |||
@@ -14,18 +14,8 @@ | |||
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/ata_platform.h> | ||
18 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
19 | #include <linux/of.h> | ||
20 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
21 | #include <linux/input.h> | ||
22 | #include <linux/gpio-fan.h> | ||
23 | #include <linux/leds.h> | ||
24 | #include <asm/mach-types.h> | ||
25 | #include <asm/mach/arch.h> | ||
26 | #include <asm/mach/map.h> | ||
27 | #include <mach/kirkwood.h> | ||
28 | #include <mach/bridge-regs.h> | ||
29 | #include "common.h" | 19 | #include "common.h" |
30 | #include "mpp.h" | 20 | #include "mpp.h" |
31 | 21 | ||
@@ -67,29 +57,6 @@ static unsigned int dnskw_mpp_config[] __initdata = { | |||
67 | 0 | 57 | 0 |
68 | }; | 58 | }; |
69 | 59 | ||
70 | /* Fan: ADDA AD045HB-G73 40mm 6000rpm@5v */ | ||
71 | static struct gpio_fan_speed dnskw_fan_speed[] = { | ||
72 | { 0, 0 }, | ||
73 | { 3000, 1 }, | ||
74 | { 6000, 2 }, | ||
75 | }; | ||
76 | static unsigned dnskw_fan_pins[] = {46, 45}; | ||
77 | |||
78 | static struct gpio_fan_platform_data dnskw_fan_data = { | ||
79 | .num_ctrl = ARRAY_SIZE(dnskw_fan_pins), | ||
80 | .ctrl = dnskw_fan_pins, | ||
81 | .num_speed = ARRAY_SIZE(dnskw_fan_speed), | ||
82 | .speed = dnskw_fan_speed, | ||
83 | }; | ||
84 | |||
85 | static struct platform_device dnskw_fan_device = { | ||
86 | .name = "gpio-fan", | ||
87 | .id = -1, | ||
88 | .dev = { | ||
89 | .platform_data = &dnskw_fan_data, | ||
90 | }, | ||
91 | }; | ||
92 | |||
93 | static void dnskw_power_off(void) | 60 | static void dnskw_power_off(void) |
94 | { | 61 | { |
95 | gpio_set_value(36, 1); | 62 | gpio_set_value(36, 1); |
@@ -114,8 +81,6 @@ void __init dnskw_init(void) | |||
114 | kirkwood_ehci_init(); | 81 | kirkwood_ehci_init(); |
115 | kirkwood_ge00_init(&dnskw_ge00_data); | 82 | kirkwood_ge00_init(&dnskw_ge00_data); |
116 | 83 | ||
117 | platform_device_register(&dnskw_fan_device); | ||
118 | |||
119 | /* Register power-off GPIO. */ | 84 | /* Register power-off GPIO. */ |
120 | if (gpio_request(36, "dnskw:power:off") == 0 | 85 | if (gpio_request(36, "dnskw:power:off") == 0 |
121 | && gpio_direction_output(36, 0) == 0) | 86 | && gpio_direction_output(36, 0) == 0) |
diff --git a/arch/arm/mach-kirkwood/board-dockstar.c b/arch/arm/mach-kirkwood/board-dockstar.c new file mode 100644 index 000000000000..f2fbb023e679 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-dockstar.c | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-kirkwood/board-dockstar.c | ||
3 | * | ||
4 | * Seagate FreeAgent Dockstar Board Init for drivers not converted to | ||
5 | * flattened device tree yet. | ||
6 | * | ||
7 | * This file is licensed under the terms of the GNU General Public | ||
8 | * License version 2. This program is licensed "as is" without any | ||
9 | * warranty of any kind, whether express or implied. | ||
10 | * | ||
11 | * Copied and modified for Seagate GoFlex Net support by | ||
12 | * Joshua Coombs <josh.coombs@gmail.com> based on ArchLinux ARM's | ||
13 | * GoFlex kernel patches. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/platform_device.h> | ||
20 | #include <linux/ata_platform.h> | ||
21 | #include <linux/mv643xx_eth.h> | ||
22 | #include <linux/of.h> | ||
23 | #include <linux/of_address.h> | ||
24 | #include <linux/of_fdt.h> | ||
25 | #include <linux/of_irq.h> | ||
26 | #include <linux/of_platform.h> | ||
27 | #include <linux/gpio.h> | ||
28 | #include <asm/mach-types.h> | ||
29 | #include <asm/mach/arch.h> | ||
30 | #include <asm/mach/map.h> | ||
31 | #include <mach/kirkwood.h> | ||
32 | #include <mach/bridge-regs.h> | ||
33 | #include <linux/platform_data/mmc-mvsdio.h> | ||
34 | #include "common.h" | ||
35 | #include "mpp.h" | ||
36 | |||
37 | static struct mv643xx_eth_platform_data dockstar_ge00_data = { | ||
38 | .phy_addr = MV643XX_ETH_PHY_ADDR(0), | ||
39 | }; | ||
40 | |||
41 | static unsigned int dockstar_mpp_config[] __initdata = { | ||
42 | MPP29_GPIO, /* USB Power Enable */ | ||
43 | MPP46_GPIO, /* LED green */ | ||
44 | MPP47_GPIO, /* LED orange */ | ||
45 | 0 | ||
46 | }; | ||
47 | |||
48 | void __init dockstar_dt_init(void) | ||
49 | { | ||
50 | /* | ||
51 | * Basic setup. Needs to be called early. | ||
52 | */ | ||
53 | kirkwood_mpp_conf(dockstar_mpp_config); | ||
54 | |||
55 | if (gpio_request(29, "USB Power Enable") != 0 || | ||
56 | gpio_direction_output(29, 1) != 0) | ||
57 | pr_err("can't setup GPIO 29 (USB Power Enable)\n"); | ||
58 | kirkwood_ehci_init(); | ||
59 | |||
60 | kirkwood_ge00_init(&dockstar_ge00_data); | ||
61 | } | ||
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index e4eb450de301..70c5a2882409 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
@@ -33,6 +33,7 @@ struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = { | |||
33 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), | 33 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), |
34 | OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), | 34 | OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), |
35 | OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL), | 35 | OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL), |
36 | OF_DEV_AUXDATA("marvell,orion-crypto", 0xf1030000, "mv_crypto", NULL), | ||
36 | {}, | 37 | {}, |
37 | }; | 38 | }; |
38 | 39 | ||
@@ -60,7 +61,6 @@ static void __init kirkwood_dt_init(void) | |||
60 | /* internal devices that every board has */ | 61 | /* internal devices that every board has */ |
61 | kirkwood_xor0_init(); | 62 | kirkwood_xor0_init(); |
62 | kirkwood_xor1_init(); | 63 | kirkwood_xor1_init(); |
63 | kirkwood_crypto_init(); | ||
64 | 64 | ||
65 | #ifdef CONFIG_KEXEC | 65 | #ifdef CONFIG_KEXEC |
66 | kexec_reinit = kirkwood_enable_pcie; | 66 | kexec_reinit = kirkwood_enable_pcie; |
@@ -81,12 +81,21 @@ static void __init kirkwood_dt_init(void) | |||
81 | if (of_machine_is_compatible("qnap,ts219")) | 81 | if (of_machine_is_compatible("qnap,ts219")) |
82 | qnap_dt_ts219_init(); | 82 | qnap_dt_ts219_init(); |
83 | 83 | ||
84 | if (of_machine_is_compatible("seagate,dockstar")) | ||
85 | dockstar_dt_init(); | ||
86 | |||
84 | if (of_machine_is_compatible("seagate,goflexnet")) | 87 | if (of_machine_is_compatible("seagate,goflexnet")) |
85 | goflexnet_init(); | 88 | goflexnet_init(); |
86 | 89 | ||
87 | if (of_machine_is_compatible("buffalo,lsxl")) | 90 | if (of_machine_is_compatible("buffalo,lsxl")) |
88 | lsxl_init(); | 91 | lsxl_init(); |
89 | 92 | ||
93 | if (of_machine_is_compatible("iom,ix2-200")) | ||
94 | iomega_ix2_200_init(); | ||
95 | |||
96 | if (of_machine_is_compatible("keymile,km_kirkwood")) | ||
97 | km_kirkwood_init(); | ||
98 | |||
90 | of_platform_populate(NULL, kirkwood_dt_match_table, | 99 | of_platform_populate(NULL, kirkwood_dt_match_table, |
91 | kirkwood_auxdata_lookup, NULL); | 100 | kirkwood_auxdata_lookup, NULL); |
92 | } | 101 | } |
@@ -98,8 +107,11 @@ static const char *kirkwood_dt_board_compat[] = { | |||
98 | "iom,iconnect", | 107 | "iom,iconnect", |
99 | "raidsonic,ib-nas62x0", | 108 | "raidsonic,ib-nas62x0", |
100 | "qnap,ts219", | 109 | "qnap,ts219", |
110 | "seagate,dockstar", | ||
101 | "seagate,goflexnet", | 111 | "seagate,goflexnet", |
102 | "buffalo,lsxl", | 112 | "buffalo,lsxl", |
113 | "iom,ix2-200", | ||
114 | "keymile,km_kirkwood", | ||
103 | NULL | 115 | NULL |
104 | }; | 116 | }; |
105 | 117 | ||
diff --git a/arch/arm/mach-kirkwood/board-iconnect.c b/arch/arm/mach-kirkwood/board-iconnect.c index d7a9198ed300..d084b1e2943a 100644 --- a/arch/arm/mach-kirkwood/board-iconnect.c +++ b/arch/arm/mach-kirkwood/board-iconnect.c | |||
@@ -16,11 +16,8 @@ | |||
16 | #include <linux/of_fdt.h> | 16 | #include <linux/of_fdt.h> |
17 | #include <linux/of_irq.h> | 17 | #include <linux/of_irq.h> |
18 | #include <linux/of_platform.h> | 18 | #include <linux/of_platform.h> |
19 | #include <linux/mtd/partitions.h> | ||
20 | #include <linux/mv643xx_eth.h> | 19 | #include <linux/mv643xx_eth.h> |
21 | #include <linux/gpio.h> | 20 | #include <linux/gpio.h> |
22 | #include <linux/input.h> | ||
23 | #include <linux/gpio_keys.h> | ||
24 | #include <asm/mach/arch.h> | 21 | #include <asm/mach/arch.h> |
25 | #include <mach/kirkwood.h> | 22 | #include <mach/kirkwood.h> |
26 | #include "common.h" | 23 | #include "common.h" |
@@ -44,57 +41,12 @@ static unsigned int iconnect_mpp_config[] __initdata = { | |||
44 | 0 | 41 | 0 |
45 | }; | 42 | }; |
46 | 43 | ||
47 | static struct mtd_partition iconnect_nand_parts[] = { | ||
48 | { | ||
49 | .name = "flash", | ||
50 | .offset = 0, | ||
51 | .size = MTDPART_SIZ_FULL, | ||
52 | }, | ||
53 | }; | ||
54 | |||
55 | /* yikes... theses are the original input buttons */ | ||
56 | /* but I'm not convinced by the sw event choices */ | ||
57 | static struct gpio_keys_button iconnect_buttons[] = { | ||
58 | { | ||
59 | .type = EV_SW, | ||
60 | .code = SW_LID, | ||
61 | .gpio = 12, | ||
62 | .desc = "Reset Button", | ||
63 | .active_low = 1, | ||
64 | .debounce_interval = 100, | ||
65 | }, { | ||
66 | .type = EV_SW, | ||
67 | .code = SW_TABLET_MODE, | ||
68 | .gpio = 35, | ||
69 | .desc = "OTB Button", | ||
70 | .active_low = 1, | ||
71 | .debounce_interval = 100, | ||
72 | }, | ||
73 | }; | ||
74 | |||
75 | static struct gpio_keys_platform_data iconnect_button_data = { | ||
76 | .buttons = iconnect_buttons, | ||
77 | .nbuttons = ARRAY_SIZE(iconnect_buttons), | ||
78 | }; | ||
79 | |||
80 | static struct platform_device iconnect_button_device = { | ||
81 | .name = "gpio-keys", | ||
82 | .id = -1, | ||
83 | .num_resources = 0, | ||
84 | .dev = { | ||
85 | .platform_data = &iconnect_button_data, | ||
86 | }, | ||
87 | }; | ||
88 | |||
89 | void __init iconnect_init(void) | 44 | void __init iconnect_init(void) |
90 | { | 45 | { |
91 | kirkwood_mpp_conf(iconnect_mpp_config); | 46 | kirkwood_mpp_conf(iconnect_mpp_config); |
92 | kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25); | ||
93 | 47 | ||
94 | kirkwood_ehci_init(); | 48 | kirkwood_ehci_init(); |
95 | kirkwood_ge00_init(&iconnect_ge00_data); | 49 | kirkwood_ge00_init(&iconnect_ge00_data); |
96 | |||
97 | platform_device_register(&iconnect_button_device); | ||
98 | } | 50 | } |
99 | 51 | ||
100 | static int __init iconnect_pci_init(void) | 52 | static int __init iconnect_pci_init(void) |
diff --git a/arch/arm/mach-kirkwood/board-iomega_ix2_200.c b/arch/arm/mach-kirkwood/board-iomega_ix2_200.c new file mode 100644 index 000000000000..158fb97d0397 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-iomega_ix2_200.c | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-kirkwood/board-iomega_ix2_200.c | ||
3 | * | ||
4 | * Iomega StorCenter ix2-200 | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/mv643xx_eth.h> | ||
15 | #include <linux/ethtool.h> | ||
16 | #include <mach/kirkwood.h> | ||
17 | #include "common.h" | ||
18 | #include "mpp.h" | ||
19 | |||
20 | static struct mv643xx_eth_platform_data iomega_ix2_200_ge00_data = { | ||
21 | .phy_addr = MV643XX_ETH_PHY_NONE, | ||
22 | .speed = SPEED_1000, | ||
23 | .duplex = DUPLEX_FULL, | ||
24 | }; | ||
25 | |||
26 | static unsigned int iomega_ix2_200_mpp_config[] __initdata = { | ||
27 | MPP12_GPIO, /* Reset Button */ | ||
28 | MPP14_GPIO, /* Power Button */ | ||
29 | MPP15_GPIO, /* Backup LED (blue) */ | ||
30 | MPP16_GPIO, /* Power LED (white) */ | ||
31 | MPP35_GPIO, /* OTB Button */ | ||
32 | MPP36_GPIO, /* Rebuild LED (white) */ | ||
33 | MPP37_GPIO, /* Health LED (red) */ | ||
34 | MPP38_GPIO, /* SATA LED brightness control 1 */ | ||
35 | MPP39_GPIO, /* SATA LED brightness control 2 */ | ||
36 | MPP40_GPIO, /* Backup LED brightness control 1 */ | ||
37 | MPP41_GPIO, /* Backup LED brightness control 2 */ | ||
38 | MPP42_GPIO, /* Power LED brightness control 1 */ | ||
39 | MPP43_GPIO, /* Power LED brightness control 2 */ | ||
40 | MPP44_GPIO, /* Health LED brightness control 1 */ | ||
41 | MPP45_GPIO, /* Health LED brightness control 2 */ | ||
42 | MPP46_GPIO, /* Rebuild LED brightness control 1 */ | ||
43 | MPP47_GPIO, /* Rebuild LED brightness control 2 */ | ||
44 | 0 | ||
45 | }; | ||
46 | |||
47 | void __init iomega_ix2_200_init(void) | ||
48 | { | ||
49 | /* | ||
50 | * Basic setup. Needs to be called early. | ||
51 | */ | ||
52 | kirkwood_mpp_conf(iomega_ix2_200_mpp_config); | ||
53 | |||
54 | kirkwood_ehci_init(); | ||
55 | |||
56 | kirkwood_ge01_init(&iomega_ix2_200_ge00_data); | ||
57 | } | ||
diff --git a/arch/arm/mach-kirkwood/board-km_kirkwood.c b/arch/arm/mach-kirkwood/board-km_kirkwood.c new file mode 100644 index 000000000000..f7d32834b757 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-km_kirkwood.c | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * Copyright 2012 2012 KEYMILE AG, CH-3097 Bern | ||
3 | * Valentin Longchamp <valentin.longchamp@keymile.com> | ||
4 | * | ||
5 | * arch/arm/mach-kirkwood/board-km_kirkwood.c | ||
6 | * | ||
7 | * Keymile km_kirkwood Reference Desing Init for drivers not converted to | ||
8 | * flattened device tree yet. | ||
9 | * | ||
10 | * This file is licensed under the terms of the GNU General Public | ||
11 | * License version 2. This program is licensed "as is" without any | ||
12 | * warranty of any kind, whether express or implied. | ||
13 | */ | ||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/mv643xx_eth.h> | ||
18 | #include <linux/clk.h> | ||
19 | #include <linux/clk-private.h> | ||
20 | #include "common.h" | ||
21 | #include "mpp.h" | ||
22 | |||
23 | static struct mv643xx_eth_platform_data km_kirkwood_ge00_data = { | ||
24 | .phy_addr = MV643XX_ETH_PHY_ADDR(0), | ||
25 | }; | ||
26 | |||
27 | static unsigned int km_kirkwood_mpp_config[] __initdata = { | ||
28 | MPP8_GPIO, /* I2C SDA */ | ||
29 | MPP9_GPIO, /* I2C SCL */ | ||
30 | 0 | ||
31 | }; | ||
32 | |||
33 | void __init km_kirkwood_init(void) | ||
34 | { | ||
35 | struct clk *sata_clk; | ||
36 | /* | ||
37 | * Basic setup. Needs to be called early. | ||
38 | */ | ||
39 | kirkwood_mpp_conf(km_kirkwood_mpp_config); | ||
40 | |||
41 | /* | ||
42 | * Our variant of kirkwood (integrated in the Bobcat) hangs on accessing | ||
43 | * SATA bits (14-15) of the Clock Gating Control Register. Since these | ||
44 | * devices are also not present in this variant, their clocks get | ||
45 | * disabled because unused when clk_disable_unused() gets called. | ||
46 | * That's why we change the flags to these clocks to CLK_IGNORE_UNUSED | ||
47 | */ | ||
48 | sata_clk = clk_get_sys("sata_mv.0", "0"); | ||
49 | if (!IS_ERR(sata_clk)) | ||
50 | sata_clk->flags |= CLK_IGNORE_UNUSED; | ||
51 | sata_clk = clk_get_sys("sata_mv.0", "1"); | ||
52 | if (!IS_ERR(sata_clk)) | ||
53 | sata_clk->flags |= CLK_IGNORE_UNUSED; | ||
54 | |||
55 | kirkwood_ehci_init(); | ||
56 | kirkwood_ge00_init(&km_kirkwood_ge00_data); | ||
57 | } | ||
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 5c38c94b79a2..3991077f58a2 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
@@ -42,7 +42,7 @@ | |||
42 | ****************************************************************************/ | 42 | ****************************************************************************/ |
43 | static struct map_desc kirkwood_io_desc[] __initdata = { | 43 | static struct map_desc kirkwood_io_desc[] __initdata = { |
44 | { | 44 | { |
45 | .virtual = KIRKWOOD_REGS_VIRT_BASE, | 45 | .virtual = (unsigned long) KIRKWOOD_REGS_VIRT_BASE, |
46 | .pfn = __phys_to_pfn(KIRKWOOD_REGS_PHYS_BASE), | 46 | .pfn = __phys_to_pfn(KIRKWOOD_REGS_PHYS_BASE), |
47 | .length = KIRKWOOD_REGS_SIZE, | 47 | .length = KIRKWOOD_REGS_SIZE, |
48 | .type = MT_DEVICE, | 48 | .type = MT_DEVICE, |
@@ -205,8 +205,7 @@ static struct clk *tclk; | |||
205 | 205 | ||
206 | static struct clk __init *kirkwood_register_gate(const char *name, u8 bit_idx) | 206 | static struct clk __init *kirkwood_register_gate(const char *name, u8 bit_idx) |
207 | { | 207 | { |
208 | return clk_register_gate(NULL, name, "tclk", 0, | 208 | return clk_register_gate(NULL, name, "tclk", 0, CLOCK_GATING_CTRL, |
209 | (void __iomem *)CLOCK_GATING_CTRL, | ||
210 | bit_idx, 0, &gating_lock); | 209 | bit_idx, 0, &gating_lock); |
211 | } | 210 | } |
212 | 211 | ||
@@ -215,8 +214,7 @@ static struct clk __init *kirkwood_register_gate_fn(const char *name, | |||
215 | void (*fn_en)(void), | 214 | void (*fn_en)(void), |
216 | void (*fn_dis)(void)) | 215 | void (*fn_dis)(void)) |
217 | { | 216 | { |
218 | return clk_register_gate_fn(NULL, name, "tclk", 0, | 217 | return clk_register_gate_fn(NULL, name, "tclk", 0, CLOCK_GATING_CTRL, |
219 | (void __iomem *)CLOCK_GATING_CTRL, | ||
220 | bit_idx, 0, &gating_lock, fn_en, fn_dis); | 218 | bit_idx, 0, &gating_lock, fn_en, fn_dis); |
221 | } | 219 | } |
222 | 220 | ||
diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h index 304dd1abfdca..bcffd7ca1ca2 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h | |||
@@ -82,6 +82,12 @@ void ib62x0_init(void); | |||
82 | static inline void ib62x0_init(void) {}; | 82 | static inline void ib62x0_init(void) {}; |
83 | #endif | 83 | #endif |
84 | 84 | ||
85 | #ifdef CONFIG_MACH_DOCKSTAR_DT | ||
86 | void dockstar_dt_init(void); | ||
87 | #else | ||
88 | static inline void dockstar_dt_init(void) {}; | ||
89 | #endif | ||
90 | |||
85 | #ifdef CONFIG_MACH_GOFLEXNET_DT | 91 | #ifdef CONFIG_MACH_GOFLEXNET_DT |
86 | void goflexnet_init(void); | 92 | void goflexnet_init(void); |
87 | #else | 93 | #else |
@@ -94,6 +100,18 @@ void lsxl_init(void); | |||
94 | static inline void lsxl_init(void) {}; | 100 | static inline void lsxl_init(void) {}; |
95 | #endif | 101 | #endif |
96 | 102 | ||
103 | #ifdef CONFIG_MACH_IOMEGA_IX2_200_DT | ||
104 | void iomega_ix2_200_init(void); | ||
105 | #else | ||
106 | static inline void iomega_ix2_200_init(void) {}; | ||
107 | #endif | ||
108 | |||
109 | #ifdef CONFIG_MACH_KM_KIRKWOOD_DT | ||
110 | void km_kirkwood_init(void); | ||
111 | #else | ||
112 | static inline void km_kirkwood_init(void) {}; | ||
113 | #endif | ||
114 | |||
97 | /* early init functions not converted to fdt yet */ | 115 | /* early init functions not converted to fdt yet */ |
98 | char *kirkwood_id(void); | 116 | char *kirkwood_id(void); |
99 | void kirkwood_l2_init(void); | 117 | void kirkwood_l2_init(void); |
diff --git a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h index a115142f8690..5c82b7dce4e2 100644 --- a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h +++ b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h | |||
@@ -13,37 +13,37 @@ | |||
13 | 13 | ||
14 | #include <mach/kirkwood.h> | 14 | #include <mach/kirkwood.h> |
15 | 15 | ||
16 | #define CPU_CONFIG (BRIDGE_VIRT_BASE | 0x0100) | 16 | #define CPU_CONFIG (BRIDGE_VIRT_BASE + 0x0100) |
17 | #define CPU_CONFIG_ERROR_PROP 0x00000004 | 17 | #define CPU_CONFIG_ERROR_PROP 0x00000004 |
18 | 18 | ||
19 | #define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104) | 19 | #define CPU_CONTROL (BRIDGE_VIRT_BASE + 0x0104) |
20 | #define CPU_RESET 0x00000002 | 20 | #define CPU_RESET 0x00000002 |
21 | 21 | ||
22 | #define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108) | 22 | #define RSTOUTn_MASK (BRIDGE_VIRT_BASE + 0x0108) |
23 | #define WDT_RESET_OUT_EN 0x00000002 | 23 | #define WDT_RESET_OUT_EN 0x00000002 |
24 | #define SOFT_RESET_OUT_EN 0x00000004 | 24 | #define SOFT_RESET_OUT_EN 0x00000004 |
25 | 25 | ||
26 | #define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c) | 26 | #define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE + 0x010c) |
27 | #define SOFT_RESET 0x00000001 | 27 | #define SOFT_RESET 0x00000001 |
28 | 28 | ||
29 | #define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110) | 29 | #define BRIDGE_CAUSE (BRIDGE_VIRT_BASE + 0x0110) |
30 | #define WDT_INT_REQ 0x0008 | 30 | #define WDT_INT_REQ 0x0008 |
31 | 31 | ||
32 | #define BRIDGE_INT_TIMER1_CLR (~0x0004) | 32 | #define BRIDGE_INT_TIMER1_CLR (~0x0004) |
33 | 33 | ||
34 | #define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200) | 34 | #define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE + 0x0200) |
35 | #define IRQ_CAUSE_LOW_OFF 0x0000 | 35 | #define IRQ_CAUSE_LOW_OFF 0x0000 |
36 | #define IRQ_MASK_LOW_OFF 0x0004 | 36 | #define IRQ_MASK_LOW_OFF 0x0004 |
37 | #define IRQ_CAUSE_HIGH_OFF 0x0010 | 37 | #define IRQ_CAUSE_HIGH_OFF 0x0010 |
38 | #define IRQ_MASK_HIGH_OFF 0x0014 | 38 | #define IRQ_MASK_HIGH_OFF 0x0014 |
39 | 39 | ||
40 | #define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300) | 40 | #define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE + 0x0300) |
41 | #define TIMER_PHYS_BASE (BRIDGE_PHYS_BASE | 0x0300) | 41 | #define TIMER_PHYS_BASE (BRIDGE_PHYS_BASE + 0x0300) |
42 | 42 | ||
43 | #define L2_CONFIG_REG (BRIDGE_VIRT_BASE | 0x0128) | 43 | #define L2_CONFIG_REG (BRIDGE_VIRT_BASE + 0x0128) |
44 | #define L2_WRITETHROUGH 0x00000010 | 44 | #define L2_WRITETHROUGH 0x00000010 |
45 | 45 | ||
46 | #define CLOCK_GATING_CTRL (BRIDGE_VIRT_BASE | 0x11c) | 46 | #define CLOCK_GATING_CTRL (BRIDGE_VIRT_BASE + 0x11c) |
47 | #define CGC_BIT_GE0 (0) | 47 | #define CGC_BIT_GE0 (0) |
48 | #define CGC_BIT_PEX0 (2) | 48 | #define CGC_BIT_PEX0 (2) |
49 | #define CGC_BIT_USB0 (3) | 49 | #define CGC_BIT_USB0 (3) |
diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirkwood/include/mach/kirkwood.h index af4f0000dcef..041653a04a9c 100644 --- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h +++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h | |||
@@ -45,7 +45,7 @@ | |||
45 | #define KIRKWOOD_PCIE_IO_SIZE SZ_64K | 45 | #define KIRKWOOD_PCIE_IO_SIZE SZ_64K |
46 | 46 | ||
47 | #define KIRKWOOD_REGS_PHYS_BASE 0xf1000000 | 47 | #define KIRKWOOD_REGS_PHYS_BASE 0xf1000000 |
48 | #define KIRKWOOD_REGS_VIRT_BASE 0xfed00000 | 48 | #define KIRKWOOD_REGS_VIRT_BASE IOMEM(0xfed00000) |
49 | #define KIRKWOOD_REGS_SIZE SZ_1M | 49 | #define KIRKWOOD_REGS_SIZE SZ_1M |
50 | 50 | ||
51 | #define KIRKWOOD_PCIE_MEM_PHYS_BASE 0xe0000000 | 51 | #define KIRKWOOD_PCIE_MEM_PHYS_BASE 0xe0000000 |
@@ -59,61 +59,61 @@ | |||
59 | /* | 59 | /* |
60 | * Register Map | 60 | * Register Map |
61 | */ | 61 | */ |
62 | #define DDR_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x00000) | 62 | #define DDR_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x00000) |
63 | #define DDR_WINDOW_CPU_BASE (DDR_VIRT_BASE | 0x1500) | 63 | #define DDR_WINDOW_CPU_BASE (DDR_VIRT_BASE + 0x1500) |
64 | #define DDR_OPERATION_BASE (DDR_VIRT_BASE | 0x1418) | 64 | #define DDR_OPERATION_BASE (DDR_VIRT_BASE + 0x1418) |
65 | 65 | ||
66 | #define DEV_BUS_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x10000) | 66 | #define DEV_BUS_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x10000) |
67 | #define DEV_BUS_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x10000) | 67 | #define DEV_BUS_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x10000) |
68 | #define SAMPLE_AT_RESET (DEV_BUS_VIRT_BASE | 0x0030) | 68 | #define SAMPLE_AT_RESET (DEV_BUS_VIRT_BASE + 0x0030) |
69 | #define DEVICE_ID (DEV_BUS_VIRT_BASE | 0x0034) | 69 | #define DEVICE_ID (DEV_BUS_VIRT_BASE + 0x0034) |
70 | #define GPIO_LOW_VIRT_BASE (DEV_BUS_VIRT_BASE | 0x0100) | 70 | #define GPIO_LOW_VIRT_BASE (DEV_BUS_VIRT_BASE + 0x0100) |
71 | #define GPIO_HIGH_VIRT_BASE (DEV_BUS_VIRT_BASE | 0x0140) | 71 | #define GPIO_HIGH_VIRT_BASE (DEV_BUS_VIRT_BASE + 0x0140) |
72 | #define RTC_PHYS_BASE (DEV_BUS_PHYS_BASE | 0x0300) | 72 | #define RTC_PHYS_BASE (DEV_BUS_PHYS_BASE + 0x0300) |
73 | #define SPI_PHYS_BASE (DEV_BUS_PHYS_BASE | 0x0600) | 73 | #define SPI_PHYS_BASE (DEV_BUS_PHYS_BASE + 0x0600) |
74 | #define I2C_PHYS_BASE (DEV_BUS_PHYS_BASE | 0x1000) | 74 | #define I2C_PHYS_BASE (DEV_BUS_PHYS_BASE + 0x1000) |
75 | #define UART0_PHYS_BASE (DEV_BUS_PHYS_BASE | 0x2000) | 75 | #define UART0_PHYS_BASE (DEV_BUS_PHYS_BASE + 0x2000) |
76 | #define UART0_VIRT_BASE (DEV_BUS_VIRT_BASE | 0x2000) | 76 | #define UART0_VIRT_BASE (DEV_BUS_VIRT_BASE + 0x2000) |
77 | #define UART1_PHYS_BASE (DEV_BUS_PHYS_BASE | 0x2100) | 77 | #define UART1_PHYS_BASE (DEV_BUS_PHYS_BASE + 0x2100) |
78 | #define UART1_VIRT_BASE (DEV_BUS_VIRT_BASE | 0x2100) | 78 | #define UART1_VIRT_BASE (DEV_BUS_VIRT_BASE + 0x2100) |
79 | 79 | ||
80 | #define BRIDGE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x20000) | 80 | #define BRIDGE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x20000) |
81 | #define BRIDGE_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x20000) | 81 | #define BRIDGE_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x20000) |
82 | 82 | ||
83 | #define CRYPTO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x30000) | 83 | #define CRYPTO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x30000) |
84 | 84 | ||
85 | #define PCIE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x40000) | 85 | #define PCIE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x40000) |
86 | #define PCIE_LINK_CTRL (PCIE_VIRT_BASE | 0x70) | 86 | #define PCIE_LINK_CTRL (PCIE_VIRT_BASE + 0x70) |
87 | #define PCIE_STATUS (PCIE_VIRT_BASE | 0x1a04) | 87 | #define PCIE_STATUS (PCIE_VIRT_BASE + 0x1a04) |
88 | #define PCIE1_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x44000) | 88 | #define PCIE1_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x44000) |
89 | #define PCIE1_LINK_CTRL (PCIE1_VIRT_BASE | 0x70) | 89 | #define PCIE1_LINK_CTRL (PCIE1_VIRT_BASE + 0x70) |
90 | #define PCIE1_STATUS (PCIE1_VIRT_BASE | 0x1a04) | 90 | #define PCIE1_STATUS (PCIE1_VIRT_BASE + 0x1a04) |
91 | 91 | ||
92 | #define USB_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x50000) | 92 | #define USB_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x50000) |
93 | 93 | ||
94 | #define XOR0_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x60800) | 94 | #define XOR0_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x60800) |
95 | #define XOR0_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x60800) | 95 | #define XOR0_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x60800) |
96 | #define XOR1_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x60900) | 96 | #define XOR1_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x60900) |
97 | #define XOR1_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x60900) | 97 | #define XOR1_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x60900) |
98 | #define XOR0_HIGH_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x60A00) | 98 | #define XOR0_HIGH_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x60A00) |
99 | #define XOR0_HIGH_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x60A00) | 99 | #define XOR0_HIGH_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x60A00) |
100 | #define XOR1_HIGH_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x60B00) | 100 | #define XOR1_HIGH_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x60B00) |
101 | #define XOR1_HIGH_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x60B00) | 101 | #define XOR1_HIGH_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x60B00) |
102 | 102 | ||
103 | #define GE00_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x70000) | 103 | #define GE00_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x70000) |
104 | #define GE01_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x74000) | 104 | #define GE01_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x74000) |
105 | 105 | ||
106 | #define SATA_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x80000) | 106 | #define SATA_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x80000) |
107 | #define SATA_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x80000) | 107 | #define SATA_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0x80000) |
108 | #define SATA0_IF_CTRL (SATA_VIRT_BASE | 0x2050) | 108 | #define SATA0_IF_CTRL (SATA_VIRT_BASE + 0x2050) |
109 | #define SATA0_PHY_MODE_2 (SATA_VIRT_BASE | 0x2330) | 109 | #define SATA0_PHY_MODE_2 (SATA_VIRT_BASE + 0x2330) |
110 | #define SATA1_IF_CTRL (SATA_VIRT_BASE | 0x4050) | 110 | #define SATA1_IF_CTRL (SATA_VIRT_BASE + 0x4050) |
111 | #define SATA1_PHY_MODE_2 (SATA_VIRT_BASE | 0x4330) | 111 | #define SATA1_PHY_MODE_2 (SATA_VIRT_BASE + 0x4330) |
112 | 112 | ||
113 | #define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000) | 113 | #define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0x90000) |
114 | 114 | ||
115 | #define AUDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0xA0000) | 115 | #define AUDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE + 0xA0000) |
116 | #define AUDIO_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0xA0000) | 116 | #define AUDIO_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE + 0xA0000) |
117 | 117 | ||
118 | /* | 118 | /* |
119 | * Supported devices and revisions. | 119 | * Supported devices and revisions. |
diff --git a/arch/arm/mach-kirkwood/irq.c b/arch/arm/mach-kirkwood/irq.c index 20149a7fd280..884703535a0a 100644 --- a/arch/arm/mach-kirkwood/irq.c +++ b/arch/arm/mach-kirkwood/irq.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/gpio.h> | 10 | #include <linux/gpio.h> |
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/irq.h> | 12 | #include <linux/irq.h> |
13 | #include <linux/io.h> | ||
13 | #include <mach/bridge-regs.h> | 14 | #include <mach/bridge-regs.h> |
14 | #include <plat/orion-gpio.h> | 15 | #include <plat/orion-gpio.h> |
15 | #include <plat/irq.h> | 16 | #include <plat/irq.h> |
@@ -30,14 +31,14 @@ static int __initdata gpio1_irqs[4] = { | |||
30 | 31 | ||
31 | void __init kirkwood_init_irq(void) | 32 | void __init kirkwood_init_irq(void) |
32 | { | 33 | { |
33 | orion_irq_init(0, (void __iomem *)(IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF)); | 34 | orion_irq_init(0, IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF); |
34 | orion_irq_init(32, (void __iomem *)(IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF)); | 35 | orion_irq_init(32, IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF); |
35 | 36 | ||
36 | /* | 37 | /* |
37 | * Initialize gpiolib for GPIOs 0-49. | 38 | * Initialize gpiolib for GPIOs 0-49. |
38 | */ | 39 | */ |
39 | orion_gpio_init(NULL, 0, 32, (void __iomem *)GPIO_LOW_VIRT_BASE, 0, | 40 | orion_gpio_init(NULL, 0, 32, GPIO_LOW_VIRT_BASE, 0, |
40 | IRQ_KIRKWOOD_GPIO_START, gpio0_irqs); | 41 | IRQ_KIRKWOOD_GPIO_START, gpio0_irqs); |
41 | orion_gpio_init(NULL, 32, 18, (void __iomem *)GPIO_HIGH_VIRT_BASE, 0, | 42 | orion_gpio_init(NULL, 32, 18, GPIO_HIGH_VIRT_BASE, 0, |
42 | IRQ_KIRKWOOD_GPIO_START + 32, gpio1_irqs); | 43 | IRQ_KIRKWOOD_GPIO_START + 32, gpio1_irqs); |
43 | } | 44 | } |
diff --git a/arch/arm/mach-kirkwood/pcie.c b/arch/arm/mach-kirkwood/pcie.c index 532d8acb38f9..ec544918b12c 100644 --- a/arch/arm/mach-kirkwood/pcie.c +++ b/arch/arm/mach-kirkwood/pcie.c | |||
@@ -47,8 +47,8 @@ void kirkwood_enable_pcie(void) | |||
47 | void kirkwood_pcie_id(u32 *dev, u32 *rev) | 47 | void kirkwood_pcie_id(u32 *dev, u32 *rev) |
48 | { | 48 | { |
49 | kirkwood_enable_pcie(); | 49 | kirkwood_enable_pcie(); |
50 | *dev = orion_pcie_dev_id((void __iomem *)PCIE_VIRT_BASE); | 50 | *dev = orion_pcie_dev_id(PCIE_VIRT_BASE); |
51 | *rev = orion_pcie_rev((void __iomem *)PCIE_VIRT_BASE); | 51 | *rev = orion_pcie_rev(PCIE_VIRT_BASE); |
52 | } | 52 | } |
53 | 53 | ||
54 | struct pcie_port { | 54 | struct pcie_port { |
@@ -133,7 +133,7 @@ static struct pci_ops pcie_ops = { | |||
133 | 133 | ||
134 | static void __init pcie0_ioresources_init(struct pcie_port *pp) | 134 | static void __init pcie0_ioresources_init(struct pcie_port *pp) |
135 | { | 135 | { |
136 | pp->base = (void __iomem *)PCIE_VIRT_BASE; | 136 | pp->base = PCIE_VIRT_BASE; |
137 | pp->irq = IRQ_KIRKWOOD_PCIE; | 137 | pp->irq = IRQ_KIRKWOOD_PCIE; |
138 | 138 | ||
139 | /* | 139 | /* |
@@ -147,7 +147,7 @@ static void __init pcie0_ioresources_init(struct pcie_port *pp) | |||
147 | 147 | ||
148 | static void __init pcie1_ioresources_init(struct pcie_port *pp) | 148 | static void __init pcie1_ioresources_init(struct pcie_port *pp) |
149 | { | 149 | { |
150 | pp->base = (void __iomem *)PCIE1_VIRT_BASE; | 150 | pp->base = PCIE1_VIRT_BASE; |
151 | pp->irq = IRQ_KIRKWOOD_PCIE1; | 151 | pp->irq = IRQ_KIRKWOOD_PCIE1; |
152 | 152 | ||
153 | /* | 153 | /* |
@@ -255,11 +255,11 @@ static struct hw_pci kirkwood_pci __initdata = { | |||
255 | .map_irq = kirkwood_pcie_map_irq, | 255 | .map_irq = kirkwood_pcie_map_irq, |
256 | }; | 256 | }; |
257 | 257 | ||
258 | static void __init add_pcie_port(int index, unsigned long base) | 258 | static void __init add_pcie_port(int index, void __iomem *base) |
259 | { | 259 | { |
260 | printk(KERN_INFO "Kirkwood PCIe port %d: ", index); | 260 | printk(KERN_INFO "Kirkwood PCIe port %d: ", index); |
261 | 261 | ||
262 | if (orion_pcie_link_up((void __iomem *)base)) { | 262 | if (orion_pcie_link_up(base)) { |
263 | printk(KERN_INFO "link up\n"); | 263 | printk(KERN_INFO "link up\n"); |
264 | pcie_port_map[num_pcie_ports++] = index; | 264 | pcie_port_map[num_pcie_ports++] = index; |
265 | } else | 265 | } else |
diff --git a/arch/arm/mach-kirkwood/ts41x-setup.c b/arch/arm/mach-kirkwood/ts41x-setup.c index 5bbca2680442..367a9400f532 100644 --- a/arch/arm/mach-kirkwood/ts41x-setup.c +++ b/arch/arm/mach-kirkwood/ts41x-setup.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/gpio.h> | 20 | #include <linux/gpio.h> |
21 | #include <linux/gpio_keys.h> | 21 | #include <linux/gpio_keys.h> |
22 | #include <linux/input.h> | 22 | #include <linux/input.h> |
23 | #include <linux/io.h> | ||
23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <mach/kirkwood.h> | 26 | #include <mach/kirkwood.h> |
@@ -161,7 +162,7 @@ static int __init ts41x_pci_init(void) | |||
161 | * (Marvell 88sx7042/sata_mv) is known to stop working | 162 | * (Marvell 88sx7042/sata_mv) is known to stop working |
162 | * after a few minutes. | 163 | * after a few minutes. |
163 | */ | 164 | */ |
164 | orion_pcie_reset((void __iomem *)PCIE_VIRT_BASE); | 165 | orion_pcie_reset(PCIE_VIRT_BASE); |
165 | 166 | ||
166 | kirkwood_pcie_id(&dev, &rev); | 167 | kirkwood_pcie_id(&dev, &rev); |
167 | if (dev == MV88F6282_DEV_ID) | 168 | if (dev == MV88F6282_DEV_ID) |