diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts | 105 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/Kconfig | 7 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/Makefile.boot | 1 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-dt.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-iomega_ix2_200.c | 57 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/common.h | 6 |
7 files changed, 181 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts new file mode 100644 index 00000000000..865aeec40a2 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts | |||
@@ -0,0 +1,105 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "Iomega StorCenter ix2-200"; | ||
7 | compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x10000000>; | ||
12 | }; | ||
13 | |||
14 | chosen { | ||
15 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
16 | }; | ||
17 | |||
18 | ocp@f1000000 { | ||
19 | i2c@11000 { | ||
20 | status = "okay"; | ||
21 | |||
22 | lm63: lm63@4c { | ||
23 | compatible = "national,lm63"; | ||
24 | reg = <0x4c>; | ||
25 | }; | ||
26 | }; | ||
27 | |||
28 | serial@12000 { | ||
29 | clock-frequency = <200000000>; | ||
30 | status = "ok"; | ||
31 | }; | ||
32 | |||
33 | nand@3000000 { | ||
34 | status = "okay"; | ||
35 | |||
36 | partition@0 { | ||
37 | label = "u-boot"; | ||
38 | reg = <0x0000000 0x100000>; | ||
39 | read-only; | ||
40 | }; | ||
41 | |||
42 | partition@a0000 { | ||
43 | label = "env"; | ||
44 | reg = <0xa0000 0x20000>; | ||
45 | read-only; | ||
46 | }; | ||
47 | |||
48 | partition@100000 { | ||
49 | label = "uImage"; | ||
50 | reg = <0x100000 0x300000>; | ||
51 | }; | ||
52 | |||
53 | partition@400000 { | ||
54 | label = "uInitrd"; | ||
55 | reg = <0x540000 0x1000000>; | ||
56 | }; | ||
57 | }; | ||
58 | sata@80000 { | ||
59 | status = "okay"; | ||
60 | nr-ports = <2>; | ||
61 | }; | ||
62 | |||
63 | }; | ||
64 | gpio-leds { | ||
65 | compatible = "gpio-leds"; | ||
66 | |||
67 | power_led { | ||
68 | label = "status:white:power_led"; | ||
69 | gpios = <&gpio0 16 0>; | ||
70 | linux,default-trigger = "default-on"; | ||
71 | }; | ||
72 | health_led1 { | ||
73 | label = "status:red:health_led"; | ||
74 | gpios = <&gpio1 5 0>; | ||
75 | }; | ||
76 | health_led2 { | ||
77 | label = "status:white:health_led"; | ||
78 | gpios = <&gpio1 4 0>; | ||
79 | }; | ||
80 | backup_led { | ||
81 | label = "status:blue:backup_led"; | ||
82 | gpios = <&gpio0 15 0>; | ||
83 | }; | ||
84 | }; | ||
85 | gpio-keys { | ||
86 | compatible = "gpio-keys"; | ||
87 | #address-cells = <1>; | ||
88 | #size-cells = <0>; | ||
89 | Power { | ||
90 | label = "Power Button"; | ||
91 | linux,code = <116>; | ||
92 | gpios = <&gpio0 14 1>; | ||
93 | }; | ||
94 | Reset { | ||
95 | label = "Reset Button"; | ||
96 | linux,code = <0x198>; | ||
97 | gpios = <&gpio0 12 1>; | ||
98 | }; | ||
99 | OTB { | ||
100 | label = "OTB Button"; | ||
101 | linux,code = <133>; | ||
102 | gpios = <&gpio1 3 1>; | ||
103 | }; | ||
104 | }; | ||
105 | }; | ||
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig index ca5c15a4e62..76bc8473f1a 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig | |||
@@ -109,6 +109,13 @@ config MACH_LSXL_DT | |||
109 | Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using | 109 | Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using |
110 | Flattened Device Tree. | 110 | Flattened Device Tree. |
111 | 111 | ||
112 | config MACH_IOMEGA_IX2_200_DT | ||
113 | bool "Iomega StorCenter ix2-200 (Flattened Device Tree)" | ||
114 | select ARCH_KIRKWOOD_DT | ||
115 | help | ||
116 | Say 'Y' here if you want your kernel to support the | ||
117 | Iomega StorCenter ix2-200 (Flattened Device Tree). | ||
118 | |||
112 | config MACH_TS219 | 119 | config MACH_TS219 |
113 | bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" | 120 | bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" |
114 | help | 121 | help |
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile index 055c85a1cc4..f5484dcca9f 100644 --- a/arch/arm/mach-kirkwood/Makefile +++ b/arch/arm/mach-kirkwood/Makefile | |||
@@ -28,3 +28,4 @@ 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_GOFLEXNET_DT) += board-goflexnet.o | 29 | obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o |
30 | obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o | 30 | obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o |
31 | obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o | ||
diff --git a/arch/arm/mach-kirkwood/Makefile.boot b/arch/arm/mach-kirkwood/Makefile.boot index a13299d758e..32fe7263006 100644 --- a/arch/arm/mach-kirkwood/Makefile.boot +++ b/arch/arm/mach-kirkwood/Makefile.boot | |||
@@ -12,3 +12,4 @@ dtb-$(CONFIG_MACH_TS219_DT) += kirkwood-ts219-6282.dtb | |||
12 | dtb-$(CONFIG_MACH_GOFLEXNET_DT) += kirkwood-goflexnet.dtb | 12 | dtb-$(CONFIG_MACH_GOFLEXNET_DT) += kirkwood-goflexnet.dtb |
13 | dtb-$(CONFIG_MACH_LSXL_DT) += kirkwood-lschlv2.dtb | 13 | dtb-$(CONFIG_MACH_LSXL_DT) += kirkwood-lschlv2.dtb |
14 | dtb-$(CONFIG_MACH_LSXL_DT) += kirkwood-lsxhl.dtb | 14 | dtb-$(CONFIG_MACH_LSXL_DT) += kirkwood-lsxhl.dtb |
15 | dtb-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += kirkwood-iomega_ix2_200.dtb | ||
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index e4eb450de30..9b3ec175e40 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
@@ -87,6 +87,9 @@ static void __init kirkwood_dt_init(void) | |||
87 | if (of_machine_is_compatible("buffalo,lsxl")) | 87 | if (of_machine_is_compatible("buffalo,lsxl")) |
88 | lsxl_init(); | 88 | lsxl_init(); |
89 | 89 | ||
90 | if (of_machine_is_compatible("iom,ix2-200")) | ||
91 | iomega_ix2_200_init(); | ||
92 | |||
90 | of_platform_populate(NULL, kirkwood_dt_match_table, | 93 | of_platform_populate(NULL, kirkwood_dt_match_table, |
91 | kirkwood_auxdata_lookup, NULL); | 94 | kirkwood_auxdata_lookup, NULL); |
92 | } | 95 | } |
@@ -100,6 +103,7 @@ static const char *kirkwood_dt_board_compat[] = { | |||
100 | "qnap,ts219", | 103 | "qnap,ts219", |
101 | "seagate,goflexnet", | 104 | "seagate,goflexnet", |
102 | "buffalo,lsxl", | 105 | "buffalo,lsxl", |
106 | "iom,ix2-200", | ||
103 | NULL | 107 | NULL |
104 | }; | 108 | }; |
105 | 109 | ||
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 00000000000..158fb97d039 --- /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/common.h b/arch/arm/mach-kirkwood/common.h index 304dd1abfdc..d5d406469b7 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h | |||
@@ -94,6 +94,12 @@ void lsxl_init(void); | |||
94 | static inline void lsxl_init(void) {}; | 94 | static inline void lsxl_init(void) {}; |
95 | #endif | 95 | #endif |
96 | 96 | ||
97 | #ifdef CONFIG_MACH_IOMEGA_IX2_200_DT | ||
98 | void iomega_ix2_200_init(void); | ||
99 | #else | ||
100 | static inline void iomega_ix2_200_init(void) {}; | ||
101 | #endif | ||
102 | |||
97 | /* early init functions not converted to fdt yet */ | 103 | /* early init functions not converted to fdt yet */ |
98 | char *kirkwood_id(void); | 104 | char *kirkwood_id(void); |
99 | void kirkwood_l2_init(void); | 105 | void kirkwood_l2_init(void); |