diff options
86 files changed, 2500 insertions, 1322 deletions
diff --git a/Documentation/devicetree/bindings/arm/davinci.txt b/Documentation/devicetree/bindings/arm/davinci.txt new file mode 100644 index 000000000000..cfaeda4274e6 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/davinci.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | Texas Instruments DaVinci Platforms Device Tree Bindings | ||
2 | -------------------------------------------------------- | ||
3 | |||
4 | DA850/OMAP-L138/AM18x Evaluation Module (EVM) board | ||
5 | Required root node properties: | ||
6 | - compatible = "ti,da850-evm", "ti,da850"; | ||
7 | |||
8 | EnBW AM1808 based CMC board | ||
9 | Required root node properties: | ||
10 | - compatible = "enbw,cmc", "ti,da850; | ||
11 | |||
12 | Generic DaVinci Boards | ||
13 | ---------------------- | ||
14 | |||
15 | DA850/OMAP-L138/AM18x generic board | ||
16 | Required root node properties: | ||
17 | - compatible = "ti,da850"; | ||
diff --git a/Documentation/devicetree/bindings/gpio/leds-ns2.txt b/Documentation/devicetree/bindings/gpio/leds-ns2.txt new file mode 100644 index 000000000000..aef3aca34d2d --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/leds-ns2.txt | |||
@@ -0,0 +1,26 @@ | |||
1 | Binding for dual-GPIO LED found on Network Space v2 (and parents). | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "lacie,ns2-leds". | ||
5 | |||
6 | Each LED is represented as a sub-node of the ns2-leds device. | ||
7 | |||
8 | Required sub-node properties: | ||
9 | - cmd-gpio: Command LED GPIO. See OF device-tree GPIO specification. | ||
10 | - slow-gpio: Slow LED GPIO. See OF device-tree GPIO specification. | ||
11 | |||
12 | Optional sub-node properties: | ||
13 | - label: Name for this LED. If omitted, the label is taken from the node name. | ||
14 | - linux,default-trigger: Trigger assigned to the LED. | ||
15 | |||
16 | Example: | ||
17 | |||
18 | ns2-leds { | ||
19 | compatible = "lacie,ns2-leds"; | ||
20 | |||
21 | blue-sata { | ||
22 | label = "ns2:blue:sata"; | ||
23 | slow-gpio = <&gpio0 29 0>; | ||
24 | cmd-gpio = <&gpio0 30 0>; | ||
25 | }; | ||
26 | }; | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 29b85e6bd71d..d7d7c2fc5388 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -926,6 +926,7 @@ config ARCH_DAVINCI | |||
926 | select GENERIC_IRQ_CHIP | 926 | select GENERIC_IRQ_CHIP |
927 | select HAVE_IDE | 927 | select HAVE_IDE |
928 | select NEED_MACH_GPIO_H | 928 | select NEED_MACH_GPIO_H |
929 | select USE_OF | ||
929 | select ZONE_DMA | 930 | select ZONE_DMA |
930 | help | 931 | help |
931 | Support for TI's DaVinci platform. | 932 | Support for TI's DaVinci platform. |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 42917866fcde..f3f2f80cdf3b 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -55,11 +55,20 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ | |||
55 | kirkwood-ib62x0.dtb \ | 55 | kirkwood-ib62x0.dtb \ |
56 | kirkwood-iconnect.dtb \ | 56 | kirkwood-iconnect.dtb \ |
57 | kirkwood-iomega_ix2_200.dtb \ | 57 | kirkwood-iomega_ix2_200.dtb \ |
58 | kirkwood-is2.dtb \ | ||
58 | kirkwood-km_kirkwood.dtb \ | 59 | kirkwood-km_kirkwood.dtb \ |
59 | kirkwood-lschlv2.dtb \ | 60 | kirkwood-lschlv2.dtb \ |
60 | kirkwood-lsxhl.dtb \ | 61 | kirkwood-lsxhl.dtb \ |
62 | kirkwood-mplcec4.dtb \ | ||
63 | kirkwood-ns2.dtb \ | ||
64 | kirkwood-ns2lite.dtb \ | ||
65 | kirkwood-ns2max.dtb \ | ||
66 | kirkwood-ns2mini.dtb \ | ||
67 | kirkwood-nsa310.dtb \ | ||
68 | kirkwood-topkick.dtb \ | ||
61 | kirkwood-ts219-6281.dtb \ | 69 | kirkwood-ts219-6281.dtb \ |
62 | kirkwood-ts219-6282.dtb | 70 | kirkwood-ts219-6282.dtb \ |
71 | kirkwood-openblocks_a6.dtb | ||
63 | dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \ | 72 | dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \ |
64 | msm8960-cdp.dtb | 73 | msm8960-cdp.dtb |
65 | dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ | 74 | dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ |
@@ -94,11 +103,13 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | |||
94 | am335x-evm.dtb \ | 103 | am335x-evm.dtb \ |
95 | am335x-evmsk.dtb \ | 104 | am335x-evmsk.dtb \ |
96 | am335x-bone.dtb | 105 | am335x-bone.dtb |
106 | dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-ethernet-disk-mini-v2.dtb | ||
97 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb | 107 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb |
98 | dtb-$(CONFIG_ARCH_U8500) += snowball.dtb | 108 | dtb-$(CONFIG_ARCH_U8500) += snowball.dtb |
99 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ | 109 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ |
100 | r8a7740-armadillo800eva.dtb \ | 110 | r8a7740-armadillo800eva.dtb \ |
101 | sh73a0-kzm9g.dtb | 111 | sh73a0-kzm9g.dtb \ |
112 | sh7372-mackerel.dtb | ||
102 | dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \ | 113 | dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \ |
103 | spear1340-evb.dtb | 114 | spear1340-evb.dtb |
104 | dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \ | 115 | dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \ |
diff --git a/arch/arm/boot/dts/da850-enbw-cmc.dts b/arch/arm/boot/dts/da850-enbw-cmc.dts new file mode 100644 index 000000000000..422fdb3fcfc1 --- /dev/null +++ b/arch/arm/boot/dts/da850-enbw-cmc.dts | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | * Device Tree for AM1808 EnBW CMC board | ||
3 | * | ||
4 | * Copyright 2012 DENX Software Engineering GmbH | ||
5 | * Heiko Schocher <hs@denx.de> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | /dts-v1/; | ||
13 | /include/ "da850.dtsi" | ||
14 | |||
15 | / { | ||
16 | compatible = "enbw,cmc", "ti,da850"; | ||
17 | model = "EnBW CMC"; | ||
18 | |||
19 | soc { | ||
20 | serial0: serial@1c42000 { | ||
21 | status = "okay"; | ||
22 | }; | ||
23 | serial1: serial@1d0c000 { | ||
24 | status = "okay"; | ||
25 | }; | ||
26 | serial2: serial@1d0d000 { | ||
27 | status = "okay"; | ||
28 | }; | ||
29 | }; | ||
30 | }; | ||
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts new file mode 100644 index 000000000000..37dc5a3243b8 --- /dev/null +++ b/arch/arm/boot/dts/da850-evm.dts | |||
@@ -0,0 +1,28 @@ | |||
1 | /* | ||
2 | * Device Tree for DA850 EVM board | ||
3 | * | ||
4 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation, version 2. | ||
9 | */ | ||
10 | /dts-v1/; | ||
11 | /include/ "da850.dtsi" | ||
12 | |||
13 | / { | ||
14 | compatible = "ti,da850-evm", "ti,da850"; | ||
15 | model = "DA850/AM1808/OMAP-L138 EVM"; | ||
16 | |||
17 | soc { | ||
18 | serial0: serial@1c42000 { | ||
19 | status = "okay"; | ||
20 | }; | ||
21 | serial1: serial@1d0c000 { | ||
22 | status = "okay"; | ||
23 | }; | ||
24 | serial2: serial@1d0d000 { | ||
25 | status = "okay"; | ||
26 | }; | ||
27 | }; | ||
28 | }; | ||
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi new file mode 100644 index 000000000000..640ab75c20db --- /dev/null +++ b/arch/arm/boot/dts/da850.dtsi | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | * Copyright 2012 DENX Software Engineering GmbH | ||
3 | * Heiko Schocher <hs@denx.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published by the | ||
7 | * Free Software Foundation; either version 2 of the License, or (at your | ||
8 | * option) any later version. | ||
9 | */ | ||
10 | /include/ "skeleton.dtsi" | ||
11 | |||
12 | / { | ||
13 | arm { | ||
14 | #address-cells = <1>; | ||
15 | #size-cells = <1>; | ||
16 | ranges; | ||
17 | intc: interrupt-controller { | ||
18 | compatible = "ti,cp-intc"; | ||
19 | interrupt-controller; | ||
20 | #interrupt-cells = <1>; | ||
21 | ti,intc-size = <100>; | ||
22 | reg = <0xfffee000 0x2000>; | ||
23 | }; | ||
24 | }; | ||
25 | soc { | ||
26 | compatible = "simple-bus"; | ||
27 | model = "da850"; | ||
28 | #address-cells = <1>; | ||
29 | #size-cells = <1>; | ||
30 | ranges = <0x0 0x01c00000 0x400000>; | ||
31 | |||
32 | serial0: serial@1c42000 { | ||
33 | compatible = "ns16550a"; | ||
34 | reg = <0x42000 0x100>; | ||
35 | clock-frequency = <150000000>; | ||
36 | reg-shift = <2>; | ||
37 | interrupts = <25>; | ||
38 | interrupt-parent = <&intc>; | ||
39 | status = "disabled"; | ||
40 | }; | ||
41 | serial1: serial@1d0c000 { | ||
42 | compatible = "ns16550a"; | ||
43 | reg = <0x10c000 0x100>; | ||
44 | clock-frequency = <150000000>; | ||
45 | reg-shift = <2>; | ||
46 | interrupts = <53>; | ||
47 | interrupt-parent = <&intc>; | ||
48 | status = "disabled"; | ||
49 | }; | ||
50 | serial2: serial@1d0d000 { | ||
51 | compatible = "ns16550a"; | ||
52 | reg = <0x10d000 0x100>; | ||
53 | clock-frequency = <150000000>; | ||
54 | reg-shift = <2>; | ||
55 | interrupts = <61>; | ||
56 | interrupt-parent = <&intc>; | ||
57 | status = "disabled"; | ||
58 | }; | ||
59 | }; | ||
60 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-is2.dts b/arch/arm/boot/dts/kirkwood-is2.dts new file mode 100644 index 000000000000..0bdce0ad7277 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-is2.dts | |||
@@ -0,0 +1,30 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood-ns2-common.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "LaCie Internet Space v2"; | ||
7 | compatible = "lacie,inetspace_v2", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x8000000>; | ||
12 | }; | ||
13 | |||
14 | ocp@f1000000 { | ||
15 | sata@80000 { | ||
16 | status = "okay"; | ||
17 | nr-ports = <1>; | ||
18 | }; | ||
19 | }; | ||
20 | |||
21 | ns2-leds { | ||
22 | compatible = "lacie,ns2-leds"; | ||
23 | |||
24 | blue-sata { | ||
25 | label = "ns2:blue:sata"; | ||
26 | slow-gpio = <&gpio0 29 0>; | ||
27 | cmd-gpio = <&gpio0 30 0>; | ||
28 | }; | ||
29 | }; | ||
30 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-lsxl.dtsi b/arch/arm/boot/dts/kirkwood-lsxl.dtsi index 8fea375c734d..798e60eeedf3 100644 --- a/arch/arm/boot/dts/kirkwood-lsxl.dtsi +++ b/arch/arm/boot/dts/kirkwood-lsxl.dtsi | |||
@@ -94,4 +94,15 @@ | |||
94 | gpios = <&gpio1 16 1>; | 94 | gpios = <&gpio1 16 1>; |
95 | }; | 95 | }; |
96 | }; | 96 | }; |
97 | |||
98 | gpio_fan { | ||
99 | compatible = "gpio-fan"; | ||
100 | gpios = <&gpio0 19 1 | ||
101 | &gpio0 18 1>; | ||
102 | gpio-fan,speed-map = <0 3 | ||
103 | 1500 2 | ||
104 | 3250 1 | ||
105 | 5000 0>; | ||
106 | alarm-gpios = <&gpio1 8 0>; | ||
107 | }; | ||
97 | }; | 108 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-mplcec4.dts b/arch/arm/boot/dts/kirkwood-mplcec4.dts new file mode 100644 index 000000000000..ac3c080bed21 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-mplcec4.dts | |||
@@ -0,0 +1,119 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "MPL CEC4"; | ||
7 | compatible = "mpl,cec4-10", "mpl,cec4", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x20000000>; | ||
12 | }; | ||
13 | |||
14 | chosen { | ||
15 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
16 | }; | ||
17 | |||
18 | ocp@f1000000 { | ||
19 | i2c@11000 { | ||
20 | status = "okay"; | ||
21 | |||
22 | rtc@51 { | ||
23 | compatible = "nxp,pcf8563"; | ||
24 | reg = <0x51>; | ||
25 | }; | ||
26 | |||
27 | eeprom@57 { | ||
28 | compatible = "atmel,24c02"; | ||
29 | reg = <0x57>; | ||
30 | }; | ||
31 | |||
32 | }; | ||
33 | |||
34 | serial@12000 { | ||
35 | clock-frequency = <200000000>; | ||
36 | status = "ok"; | ||
37 | }; | ||
38 | |||
39 | nand@3000000 { | ||
40 | status = "okay"; | ||
41 | |||
42 | partition@0 { | ||
43 | label = "uboot"; | ||
44 | reg = <0x0000000 0x100000>; | ||
45 | }; | ||
46 | |||
47 | partition@100000 { | ||
48 | label = "env"; | ||
49 | reg = <0x100000 0x80000>; | ||
50 | }; | ||
51 | |||
52 | partition@180000 { | ||
53 | label = "fdt"; | ||
54 | reg = <0x180000 0x80000>; | ||
55 | }; | ||
56 | |||
57 | partition@200000 { | ||
58 | label = "kernel"; | ||
59 | reg = <0x200000 0x400000>; | ||
60 | }; | ||
61 | |||
62 | partition@600000 { | ||
63 | label = "rootfs"; | ||
64 | reg = <0x600000 0x1fa00000>; | ||
65 | }; | ||
66 | }; | ||
67 | |||
68 | rtc@10300 { | ||
69 | status = "disabled"; | ||
70 | }; | ||
71 | |||
72 | sata@80000 { | ||
73 | nr-ports = <2>; | ||
74 | status = "okay"; | ||
75 | |||
76 | }; | ||
77 | }; | ||
78 | |||
79 | gpio-leds { | ||
80 | compatible = "gpio-leds"; | ||
81 | |||
82 | health { | ||
83 | label = "status:green:health"; | ||
84 | gpios = <&gpio0 7 1>; | ||
85 | }; | ||
86 | |||
87 | user1o { | ||
88 | label = "user1:orange"; | ||
89 | gpios = <&gpio1 8 1>; | ||
90 | default-state = "on"; | ||
91 | }; | ||
92 | |||
93 | user1g { | ||
94 | label = "user1:green"; | ||
95 | gpios = <&gpio1 9 1>; | ||
96 | default-state = "on"; | ||
97 | }; | ||
98 | |||
99 | user0o { | ||
100 | label = "user0:orange"; | ||
101 | gpios = <&gpio1 12 1>; | ||
102 | default-state = "on"; | ||
103 | }; | ||
104 | |||
105 | user0g { | ||
106 | label = "user0:green"; | ||
107 | gpios = <&gpio1 13 1>; | ||
108 | default-state = "on"; | ||
109 | }; | ||
110 | |||
111 | misc { | ||
112 | label = "status:orange:misc"; | ||
113 | gpios = <&gpio1 14 1>; | ||
114 | default-state = "on"; | ||
115 | }; | ||
116 | |||
117 | }; | ||
118 | }; | ||
119 | |||
diff --git a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi new file mode 100644 index 000000000000..9bc6785ad228 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi | |||
@@ -0,0 +1,63 @@ | |||
1 | /include/ "kirkwood.dtsi" | ||
2 | |||
3 | / { | ||
4 | chosen { | ||
5 | bootargs = "console=ttyS0,115200n8"; | ||
6 | }; | ||
7 | |||
8 | ocp@f1000000 { | ||
9 | serial@12000 { | ||
10 | clock-frequency = <166666667>; | ||
11 | status = "okay"; | ||
12 | }; | ||
13 | |||
14 | spi@10600 { | ||
15 | status = "okay"; | ||
16 | |||
17 | flash@0 { | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <1>; | ||
20 | compatible = "mx25l4005a"; | ||
21 | reg = <0>; | ||
22 | spi-max-frequency = <20000000>; | ||
23 | mode = <0>; | ||
24 | |||
25 | partition@0 { | ||
26 | reg = <0x0 0x80000>; | ||
27 | label = "u-boot"; | ||
28 | }; | ||
29 | }; | ||
30 | }; | ||
31 | |||
32 | i2c@11000 { | ||
33 | status = "okay"; | ||
34 | |||
35 | eeprom@50 { | ||
36 | compatible = "at,24c04"; | ||
37 | pagesize = <16>; | ||
38 | reg = <0x50>; | ||
39 | }; | ||
40 | }; | ||
41 | }; | ||
42 | |||
43 | gpio_keys { | ||
44 | compatible = "gpio-keys"; | ||
45 | #address-cells = <1>; | ||
46 | #size-cells = <0>; | ||
47 | |||
48 | button@1 { | ||
49 | label = "Power push button"; | ||
50 | linux,code = <116>; | ||
51 | gpios = <&gpio1 0 0>; | ||
52 | }; | ||
53 | }; | ||
54 | |||
55 | gpio-leds { | ||
56 | compatible = "gpio-leds"; | ||
57 | |||
58 | red-fail { | ||
59 | label = "ns2:red:fail"; | ||
60 | gpios = <&gpio0 12 0>; | ||
61 | }; | ||
62 | }; | ||
63 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2.dts b/arch/arm/boot/dts/kirkwood-ns2.dts new file mode 100644 index 000000000000..f2d36ecf36d8 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2.dts | |||
@@ -0,0 +1,30 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood-ns2-common.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "LaCie Network Space v2"; | ||
7 | compatible = "lacie,netspace_v2", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x10000000>; | ||
12 | }; | ||
13 | |||
14 | ocp@f1000000 { | ||
15 | sata@80000 { | ||
16 | status = "okay"; | ||
17 | nr-ports = <1>; | ||
18 | }; | ||
19 | }; | ||
20 | |||
21 | ns2-leds { | ||
22 | compatible = "lacie,ns2-leds"; | ||
23 | |||
24 | blue-sata { | ||
25 | label = "ns2:blue:sata"; | ||
26 | slow-gpio = <&gpio0 29 0>; | ||
27 | cmd-gpio = <&gpio0 30 0>; | ||
28 | }; | ||
29 | }; | ||
30 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2lite.dts b/arch/arm/boot/dts/kirkwood-ns2lite.dts new file mode 100644 index 000000000000..b02eb4ea1bb4 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2lite.dts | |||
@@ -0,0 +1,30 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood-ns2-common.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "LaCie Network Space Lite v2"; | ||
7 | compatible = "lacie,netspace_lite_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x8000000>; | ||
12 | }; | ||
13 | |||
14 | ocp@f1000000 { | ||
15 | sata@80000 { | ||
16 | status = "okay"; | ||
17 | nr-ports = <1>; | ||
18 | }; | ||
19 | }; | ||
20 | |||
21 | gpio-leds { | ||
22 | compatible = "gpio-leds"; | ||
23 | |||
24 | blue-sata { | ||
25 | label = "ns2:blue:sata"; | ||
26 | gpios = <&gpio0 30 1>; | ||
27 | linux,default-trigger = "default-on"; | ||
28 | }; | ||
29 | }; | ||
30 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2max.dts b/arch/arm/boot/dts/kirkwood-ns2max.dts new file mode 100644 index 000000000000..bcec4d6cada7 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2max.dts | |||
@@ -0,0 +1,49 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood-ns2-common.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "LaCie Network Space Max v2"; | ||
7 | compatible = "lacie,netspace_max_v2", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x10000000>; | ||
12 | }; | ||
13 | |||
14 | ocp@f1000000 { | ||
15 | sata@80000 { | ||
16 | status = "okay"; | ||
17 | nr-ports = <2>; | ||
18 | }; | ||
19 | }; | ||
20 | |||
21 | gpio_fan { | ||
22 | compatible = "gpio-fan"; | ||
23 | gpios = <&gpio0 22 1 | ||
24 | &gpio0 7 1 | ||
25 | &gpio1 1 1 | ||
26 | &gpio0 23 1>; | ||
27 | gpio-fan,speed-map = | ||
28 | < 0 0 | ||
29 | 1500 15 | ||
30 | 1700 14 | ||
31 | 1800 13 | ||
32 | 2100 12 | ||
33 | 3100 11 | ||
34 | 3300 10 | ||
35 | 4300 9 | ||
36 | 5500 8>; | ||
37 | alarm-gpios = <&gpio0 25 1>; | ||
38 | }; | ||
39 | |||
40 | ns2-leds { | ||
41 | compatible = "lacie,ns2-leds"; | ||
42 | |||
43 | blue-sata { | ||
44 | label = "ns2:blue:sata"; | ||
45 | slow-gpio = <&gpio0 29 0>; | ||
46 | cmd-gpio = <&gpio0 30 0>; | ||
47 | }; | ||
48 | }; | ||
49 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2mini.dts b/arch/arm/boot/dts/kirkwood-ns2mini.dts new file mode 100644 index 000000000000..b79f5eb25589 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ns2mini.dts | |||
@@ -0,0 +1,49 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood-ns2-common.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "LaCie Network Space Mini v2"; | ||
7 | compatible = "lacie,netspace_mini_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x8000000>; | ||
12 | }; | ||
13 | |||
14 | ocp@f1000000 { | ||
15 | sata@80000 { | ||
16 | status = "okay"; | ||
17 | nr-ports = <1>; | ||
18 | }; | ||
19 | }; | ||
20 | |||
21 | gpio_fan { | ||
22 | compatible = "gpio-fan"; | ||
23 | gpios = <&gpio0 22 1 | ||
24 | &gpio0 7 1 | ||
25 | &gpio1 1 1 | ||
26 | &gpio0 23 1>; | ||
27 | gpio-fan,speed-map = | ||
28 | < 0 0 | ||
29 | 3000 15 | ||
30 | 3180 14 | ||
31 | 4140 13 | ||
32 | 4570 12 | ||
33 | 6760 11 | ||
34 | 7140 10 | ||
35 | 7980 9 | ||
36 | 9200 8>; | ||
37 | alarm-gpios = <&gpio0 25 1>; | ||
38 | }; | ||
39 | |||
40 | ns2-leds { | ||
41 | compatible = "lacie,ns2-leds"; | ||
42 | |||
43 | blue-sata { | ||
44 | label = "ns2:blue:sata"; | ||
45 | slow-gpio = <&gpio0 29 0>; | ||
46 | cmd-gpio = <&gpio0 30 0>; | ||
47 | }; | ||
48 | }; | ||
49 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-nsa310.dts b/arch/arm/boot/dts/kirkwood-nsa310.dts new file mode 100644 index 000000000000..5509f9659546 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-nsa310.dts | |||
@@ -0,0 +1,144 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "ZyXEL NSA310"; | ||
7 | compatible = "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x10000000>; | ||
12 | }; | ||
13 | |||
14 | chosen { | ||
15 | bootargs = "console=ttyS0,115200"; | ||
16 | }; | ||
17 | |||
18 | ocp@f1000000 { | ||
19 | |||
20 | serial@12000 { | ||
21 | clock-frequency = <200000000>; | ||
22 | status = "ok"; | ||
23 | }; | ||
24 | |||
25 | sata@80000 { | ||
26 | status = "okay"; | ||
27 | nr-ports = <2>; | ||
28 | }; | ||
29 | |||
30 | i2c@11000 { | ||
31 | status = "okay"; | ||
32 | }; | ||
33 | |||
34 | nand@3000000 { | ||
35 | status = "okay"; | ||
36 | chip-delay = <35>; | ||
37 | |||
38 | partition@0 { | ||
39 | label = "uboot"; | ||
40 | reg = <0x0000000 0x0100000>; | ||
41 | read-only; | ||
42 | }; | ||
43 | partition@100000 { | ||
44 | label = "uboot_env"; | ||
45 | reg = <0x0100000 0x0080000>; | ||
46 | }; | ||
47 | partition@180000 { | ||
48 | label = "key_store"; | ||
49 | reg = <0x0180000 0x0080000>; | ||
50 | }; | ||
51 | partition@200000 { | ||
52 | label = "info"; | ||
53 | reg = <0x0200000 0x0080000>; | ||
54 | }; | ||
55 | partition@280000 { | ||
56 | label = "etc"; | ||
57 | reg = <0x0280000 0x0a00000>; | ||
58 | }; | ||
59 | partition@c80000 { | ||
60 | label = "kernel_1"; | ||
61 | reg = <0x0c80000 0x0a00000>; | ||
62 | }; | ||
63 | partition@1680000 { | ||
64 | label = "rootfs1"; | ||
65 | reg = <0x1680000 0x2fc0000>; | ||
66 | }; | ||
67 | partition@4640000 { | ||
68 | label = "kernel_2"; | ||
69 | reg = <0x4640000 0x0a00000>; | ||
70 | }; | ||
71 | partition@5040000 { | ||
72 | label = "rootfs2"; | ||
73 | reg = <0x5040000 0x2fc0000>; | ||
74 | }; | ||
75 | }; | ||
76 | }; | ||
77 | |||
78 | gpio_keys { | ||
79 | compatible = "gpio-keys"; | ||
80 | #address-cells = <1>; | ||
81 | #size-cells = <0>; | ||
82 | |||
83 | button@1 { | ||
84 | label = "Power Button"; | ||
85 | linux,code = <116>; | ||
86 | gpios = <&gpio1 14 0>; | ||
87 | }; | ||
88 | button@2 { | ||
89 | label = "Copy Button"; | ||
90 | linux,code = <133>; | ||
91 | gpios = <&gpio1 5 1>; | ||
92 | }; | ||
93 | button@3 { | ||
94 | label = "Reset Button"; | ||
95 | linux,code = <0x198>; | ||
96 | gpios = <&gpio1 4 1>; | ||
97 | }; | ||
98 | }; | ||
99 | |||
100 | gpio-leds { | ||
101 | compatible = "gpio-leds"; | ||
102 | |||
103 | green-sys { | ||
104 | label = "nsa310:green:sys"; | ||
105 | gpios = <&gpio0 28 0>; | ||
106 | }; | ||
107 | red-sys { | ||
108 | label = "nsa310:red:sys"; | ||
109 | gpios = <&gpio0 29 0>; | ||
110 | }; | ||
111 | green-hdd { | ||
112 | label = "nsa310:green:hdd"; | ||
113 | gpios = <&gpio1 9 0>; | ||
114 | }; | ||
115 | red-hdd { | ||
116 | label = "nsa310:red:hdd"; | ||
117 | gpios = <&gpio1 10 0>; | ||
118 | }; | ||
119 | green-esata { | ||
120 | label = "nsa310:green:esata"; | ||
121 | gpios = <&gpio0 12 0>; | ||
122 | }; | ||
123 | red-esata { | ||
124 | label = "nsa310:red:esata"; | ||
125 | gpios = <&gpio0 13 0>; | ||
126 | }; | ||
127 | green-usb { | ||
128 | label = "nsa310:green:usb"; | ||
129 | gpios = <&gpio0 15 0>; | ||
130 | }; | ||
131 | red-usb { | ||
132 | label = "nsa310:red:usb"; | ||
133 | gpios = <&gpio0 16 0>; | ||
134 | }; | ||
135 | green-copy { | ||
136 | label = "nsa310:green:copy"; | ||
137 | gpios = <&gpio1 7 0>; | ||
138 | }; | ||
139 | red-copy { | ||
140 | label = "nsa310:red:copy"; | ||
141 | gpios = <&gpio1 8 0>; | ||
142 | }; | ||
143 | }; | ||
144 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a6.dts b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts new file mode 100644 index 000000000000..9a2606c8b78f --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts | |||
@@ -0,0 +1,39 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "Plat'Home OpenBlocksA6"; | ||
7 | compatible = "plathome,openblocks-a6", "marvell,kirkwood-88f6283", "marvell,kirkwood"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x20000000>; | ||
12 | }; | ||
13 | |||
14 | chosen { | ||
15 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
16 | }; | ||
17 | |||
18 | ocp@f1000000 { | ||
19 | serial@12000 { | ||
20 | clock-frequency = <200000000>; | ||
21 | status = "ok"; | ||
22 | }; | ||
23 | |||
24 | serial@12100 { | ||
25 | clock-frequency = <200000000>; | ||
26 | status = "ok"; | ||
27 | }; | ||
28 | |||
29 | nand@3000000 { | ||
30 | chip-delay = <25>; | ||
31 | status = "okay"; | ||
32 | }; | ||
33 | |||
34 | sata@80000 { | ||
35 | nr-ports = <1>; | ||
36 | status = "okay"; | ||
37 | }; | ||
38 | }; | ||
39 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-topkick.dts b/arch/arm/boot/dts/kirkwood-topkick.dts new file mode 100644 index 000000000000..c0de5a7f660d --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-topkick.dts | |||
@@ -0,0 +1,85 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /include/ "kirkwood.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "Univeral Scientific Industrial Co. Topkick-1281P2"; | ||
7 | compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "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 | serial@12000 { | ||
20 | clock-frequency = <200000000>; | ||
21 | status = "ok"; | ||
22 | }; | ||
23 | |||
24 | nand@3000000 { | ||
25 | status = "okay"; | ||
26 | |||
27 | partition@0 { | ||
28 | label = "u-boot"; | ||
29 | reg = <0x0000000 0x180000>; | ||
30 | }; | ||
31 | |||
32 | partition@180000 { | ||
33 | label = "u-boot env"; | ||
34 | reg = <0x0180000 0x20000>; | ||
35 | }; | ||
36 | |||
37 | partition@200000 { | ||
38 | label = "uImage"; | ||
39 | reg = <0x0200000 0x600000>; | ||
40 | }; | ||
41 | |||
42 | partition@800000 { | ||
43 | label = "uInitrd"; | ||
44 | reg = <0x0800000 0x1000000>; | ||
45 | }; | ||
46 | |||
47 | partition@1800000 { | ||
48 | label = "rootfs"; | ||
49 | reg = <0x1800000 0xe800000>; | ||
50 | }; | ||
51 | }; | ||
52 | |||
53 | sata@80000 { | ||
54 | status = "okay"; | ||
55 | nr-ports = <1>; | ||
56 | }; | ||
57 | }; | ||
58 | |||
59 | gpio-leds { | ||
60 | compatible = "gpio-leds"; | ||
61 | |||
62 | disk { | ||
63 | label = "topkick:yellow:disk"; | ||
64 | gpios = <&gpio0 21 1>; | ||
65 | linux,default-trigger = "ide-disk"; | ||
66 | }; | ||
67 | system2 { | ||
68 | label = "topkick:red:system"; | ||
69 | gpios = <&gpio1 5 1>; | ||
70 | }; | ||
71 | system { | ||
72 | label = "topkick:blue:system"; | ||
73 | gpios = <&gpio1 6 1>; | ||
74 | default-state = "on"; | ||
75 | }; | ||
76 | wifi { | ||
77 | label = "topkick:green:wifi"; | ||
78 | gpios = <&gpio1 7 1>; | ||
79 | }; | ||
80 | wifi2 { | ||
81 | label = "topkick:yellow:wifi"; | ||
82 | gpios = <&gpio1 16 1>; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
diff --git a/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts new file mode 100644 index 000000000000..5a3a58b7e18f --- /dev/null +++ b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
3 | * | ||
4 | * This file is licensed under the terms of the GNU General Public | ||
5 | * License version 2. This program is licensed "as is" without any | ||
6 | * warranty of any kind, whether express or implied. | ||
7 | */ | ||
8 | |||
9 | /dts-v1/; | ||
10 | /include/ "orion5x.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "LaCie Ethernet Disk mini V2"; | ||
14 | compatible = "lacie,ethernet-disk-mini-v2", "marvell-orion5x-88f5182", "marvell,orion5x"; | ||
15 | |||
16 | memory { | ||
17 | reg = <0x00000000 0x4000000>; /* 64 MB */ | ||
18 | }; | ||
19 | |||
20 | chosen { | ||
21 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
22 | }; | ||
23 | |||
24 | ocp@f1000000 { | ||
25 | serial@12000 { | ||
26 | clock-frequency = <166666667>; | ||
27 | status = "okay"; | ||
28 | }; | ||
29 | |||
30 | sata@80000 { | ||
31 | status = "okay"; | ||
32 | nr-ports = <2>; | ||
33 | }; | ||
34 | }; | ||
35 | |||
36 | gpio_keys { | ||
37 | compatible = "gpio-keys"; | ||
38 | #address-cells = <1>; | ||
39 | #size-cells = <0>; | ||
40 | button@1 { | ||
41 | label = "Power-on Switch"; | ||
42 | linux,code = <116>; /* KEY_POWER */ | ||
43 | gpios = <&gpio0 18 0>; | ||
44 | }; | ||
45 | }; | ||
46 | |||
47 | gpio_leds { | ||
48 | compatible = "gpio-leds"; | ||
49 | |||
50 | led@1 { | ||
51 | label = "power:blue"; | ||
52 | gpios = <&gpio0 16 1>; | ||
53 | }; | ||
54 | }; | ||
55 | }; | ||
diff --git a/arch/arm/boot/dts/orion5x.dtsi b/arch/arm/boot/dts/orion5x.dtsi new file mode 100644 index 000000000000..8aad00f81ed9 --- /dev/null +++ b/arch/arm/boot/dts/orion5x.dtsi | |||
@@ -0,0 +1,98 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
3 | * | ||
4 | * This file is licensed under the terms of the GNU General Public | ||
5 | * License version 2. This program is licensed "as is" without any | ||
6 | * warranty of any kind, whether express or implied. | ||
7 | */ | ||
8 | |||
9 | /include/ "skeleton.dtsi" | ||
10 | |||
11 | / { | ||
12 | model = "Marvell Orion5x SoC"; | ||
13 | compatible = "marvell,orion5x"; | ||
14 | interrupt-parent = <&intc>; | ||
15 | |||
16 | intc: interrupt-controller { | ||
17 | compatible = "marvell,orion-intc", "marvell,intc"; | ||
18 | interrupt-controller; | ||
19 | #interrupt-cells = <1>; | ||
20 | reg = <0xf1020204 0x04>; | ||
21 | }; | ||
22 | |||
23 | ocp@f1000000 { | ||
24 | compatible = "simple-bus"; | ||
25 | ranges = <0x00000000 0xf1000000 0x4000000 | ||
26 | 0xf2200000 0xf2200000 0x0000800>; | ||
27 | #address-cells = <1>; | ||
28 | #size-cells = <1>; | ||
29 | |||
30 | gpio0: gpio@10100 { | ||
31 | compatible = "marvell,orion-gpio"; | ||
32 | #gpio-cells = <2>; | ||
33 | gpio-controller; | ||
34 | reg = <0x10100 0x40>; | ||
35 | ngpio = <32>; | ||
36 | interrupts = <6>, <7>, <8>, <9>; | ||
37 | }; | ||
38 | |||
39 | serial@12000 { | ||
40 | compatible = "ns16550a"; | ||
41 | reg = <0x12000 0x100>; | ||
42 | reg-shift = <2>; | ||
43 | interrupts = <3>; | ||
44 | /* set clock-frequency in board dts */ | ||
45 | status = "disabled"; | ||
46 | }; | ||
47 | |||
48 | serial@12100 { | ||
49 | compatible = "ns16550a"; | ||
50 | reg = <0x12100 0x100>; | ||
51 | reg-shift = <2>; | ||
52 | interrupts = <4>; | ||
53 | /* set clock-frequency in board dts */ | ||
54 | status = "disabled"; | ||
55 | }; | ||
56 | |||
57 | spi@10600 { | ||
58 | compatible = "marvell,orion-spi"; | ||
59 | #address-cells = <1>; | ||
60 | #size-cells = <0>; | ||
61 | cell-index = <0>; | ||
62 | reg = <0x10600 0x28>; | ||
63 | status = "disabled"; | ||
64 | }; | ||
65 | |||
66 | wdt@20300 { | ||
67 | compatible = "marvell,orion-wdt"; | ||
68 | reg = <0x20300 0x28>; | ||
69 | status = "okay"; | ||
70 | }; | ||
71 | |||
72 | sata@80000 { | ||
73 | compatible = "marvell,orion-sata"; | ||
74 | reg = <0x80000 0x5000>; | ||
75 | interrupts = <29>; | ||
76 | status = "disabled"; | ||
77 | }; | ||
78 | |||
79 | i2c@11000 { | ||
80 | compatible = "marvell,mv64xxx-i2c"; | ||
81 | reg = <0x11000 0x20>; | ||
82 | #address-cells = <1>; | ||
83 | #size-cells = <0>; | ||
84 | interrupts = <5>; | ||
85 | clock-frequency = <100000>; | ||
86 | status = "disabled"; | ||
87 | }; | ||
88 | |||
89 | crypto@90000 { | ||
90 | compatible = "marvell,orion-crypto"; | ||
91 | reg = <0x90000 0x10000>, | ||
92 | <0xf2200000 0x800>; | ||
93 | reg-names = "regs", "sram"; | ||
94 | interrupts = <22>; | ||
95 | status = "okay"; | ||
96 | }; | ||
97 | }; | ||
98 | }; | ||
diff --git a/arch/arm/boot/dts/sh7372-mackerel.dts b/arch/arm/boot/dts/sh7372-mackerel.dts new file mode 100644 index 000000000000..286f0caef013 --- /dev/null +++ b/arch/arm/boot/dts/sh7372-mackerel.dts | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | * Device Tree Source for the mackerel board | ||
3 | * | ||
4 | * Copyright (C) 2012 Renesas Solutions Corp. | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /dts-v1/; | ||
12 | /include/ "skeleton.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "Mackerel (AP4 EVM 2nd)"; | ||
16 | compatible = "renesas,mackerel"; | ||
17 | |||
18 | memory { | ||
19 | device_type = "memory"; | ||
20 | reg = <0x40000000 0x10000000>; | ||
21 | }; | ||
22 | }; | ||
diff --git a/arch/arm/configs/ap4evb_defconfig b/arch/arm/configs/ap4evb_defconfig index 2eef85e3c9b9..66894f736d04 100644 --- a/arch/arm/configs/ap4evb_defconfig +++ b/arch/arm/configs/ap4evb_defconfig | |||
@@ -46,7 +46,6 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y | |||
46 | # CONFIG_HID_SUPPORT is not set | 46 | # CONFIG_HID_SUPPORT is not set |
47 | # CONFIG_USB_SUPPORT is not set | 47 | # CONFIG_USB_SUPPORT is not set |
48 | # CONFIG_DNOTIFY is not set | 48 | # CONFIG_DNOTIFY is not set |
49 | # CONFIG_INOTIFY_USER is not set | ||
50 | CONFIG_TMPFS=y | 49 | CONFIG_TMPFS=y |
51 | # CONFIG_MISC_FILESYSTEMS is not set | 50 | # CONFIG_MISC_FILESYSTEMS is not set |
52 | CONFIG_MAGIC_SYSRQ=y | 51 | CONFIG_MAGIC_SYSRQ=y |
diff --git a/arch/arm/configs/armadillo800eva_defconfig b/arch/arm/configs/armadillo800eva_defconfig index 3d764072dd54..2e1a82577207 100644 --- a/arch/arm/configs/armadillo800eva_defconfig +++ b/arch/arm/configs/armadillo800eva_defconfig | |||
@@ -21,7 +21,7 @@ CONFIG_MACH_ARMADILLO800EVA=y | |||
21 | # CONFIG_SH_TIMER_TMU is not set | 21 | # CONFIG_SH_TIMER_TMU is not set |
22 | CONFIG_ARM_THUMB=y | 22 | CONFIG_ARM_THUMB=y |
23 | CONFIG_CPU_BPREDICT_DISABLE=y | 23 | CONFIG_CPU_BPREDICT_DISABLE=y |
24 | # CONFIG_CACHE_L2X0 is not set | 24 | CONFIG_CACHE_L2X0=y |
25 | CONFIG_ARM_ERRATA_430973=y | 25 | CONFIG_ARM_ERRATA_430973=y |
26 | CONFIG_ARM_ERRATA_458693=y | 26 | CONFIG_ARM_ERRATA_458693=y |
27 | CONFIG_ARM_ERRATA_460075=y | 27 | CONFIG_ARM_ERRATA_460075=y |
diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig index 88ccde058ba4..f29223954af8 100644 --- a/arch/arm/configs/da8xx_omapl_defconfig +++ b/arch/arm/configs/da8xx_omapl_defconfig | |||
@@ -17,6 +17,7 @@ CONFIG_MODVERSIONS=y | |||
17 | CONFIG_ARCH_DAVINCI=y | 17 | CONFIG_ARCH_DAVINCI=y |
18 | CONFIG_ARCH_DAVINCI_DA830=y | 18 | CONFIG_ARCH_DAVINCI_DA830=y |
19 | CONFIG_ARCH_DAVINCI_DA850=y | 19 | CONFIG_ARCH_DAVINCI_DA850=y |
20 | CONFIG_MACH_DA8XX_DT=y | ||
20 | CONFIG_MACH_MITYOMAPL138=y | 21 | CONFIG_MACH_MITYOMAPL138=y |
21 | CONFIG_MACH_OMAPL138_HAWKBOARD=y | 22 | CONFIG_MACH_OMAPL138_HAWKBOARD=y |
22 | CONFIG_DAVINCI_RESET_CLOCKS=y | 23 | CONFIG_DAVINCI_RESET_CLOCKS=y |
@@ -26,6 +27,7 @@ CONFIG_PREEMPT=y | |||
26 | CONFIG_AEABI=y | 27 | CONFIG_AEABI=y |
27 | # CONFIG_OABI_COMPAT is not set | 28 | # CONFIG_OABI_COMPAT is not set |
28 | CONFIG_LEDS=y | 29 | CONFIG_LEDS=y |
30 | CONFIG_USE_OF=y | ||
29 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 31 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
30 | CONFIG_ZBOOT_ROM_BSS=0x0 | 32 | CONFIG_ZBOOT_ROM_BSS=0x0 |
31 | CONFIG_CPU_FREQ=y | 33 | CONFIG_CPU_FREQ=y |
@@ -75,6 +77,7 @@ CONFIG_SERIO_LIBPS2=y | |||
75 | CONFIG_SERIAL_8250=y | 77 | CONFIG_SERIAL_8250=y |
76 | CONFIG_SERIAL_8250_CONSOLE=y | 78 | CONFIG_SERIAL_8250_CONSOLE=y |
77 | CONFIG_SERIAL_8250_NR_UARTS=3 | 79 | CONFIG_SERIAL_8250_NR_UARTS=3 |
80 | CONFIG_SERIAL_OF_PLATFORM=y | ||
78 | CONFIG_I2C=y | 81 | CONFIG_I2C=y |
79 | CONFIG_I2C_CHARDEV=y | 82 | CONFIG_I2C_CHARDEV=y |
80 | CONFIG_I2C_DAVINCI=y | 83 | CONFIG_I2C_DAVINCI=y |
diff --git a/arch/arm/configs/dove_defconfig b/arch/arm/configs/dove_defconfig index 40db34cf2771..0b7ee92c5713 100644 --- a/arch/arm/configs/dove_defconfig +++ b/arch/arm/configs/dove_defconfig | |||
@@ -8,11 +8,19 @@ CONFIG_MODULE_UNLOAD=y | |||
8 | # CONFIG_BLK_DEV_BSG is not set | 8 | # CONFIG_BLK_DEV_BSG is not set |
9 | CONFIG_ARCH_DOVE=y | 9 | CONFIG_ARCH_DOVE=y |
10 | CONFIG_MACH_DOVE_DB=y | 10 | CONFIG_MACH_DOVE_DB=y |
11 | CONFIG_MACH_CM_A510=y | ||
12 | CONFIG_MACH_DOVE_DT=y | ||
11 | CONFIG_NO_HZ=y | 13 | CONFIG_NO_HZ=y |
12 | CONFIG_HIGH_RES_TIMERS=y | 14 | CONFIG_HIGH_RES_TIMERS=y |
13 | CONFIG_AEABI=y | 15 | CONFIG_AEABI=y |
14 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 16 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
15 | CONFIG_ZBOOT_ROM_BSS=0x0 | 17 | CONFIG_ZBOOT_ROM_BSS=0x0 |
18 | CONFIG_HIGHMEM=y | ||
19 | CONFIG_USE_OF=y | ||
20 | CONFIG_ATAGS=y | ||
21 | CONFIG_ARM_APPENDED_DTB=y | ||
22 | CONFIG_ARM_ATAG_DTB_COMPAT=y | ||
23 | CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y | ||
16 | CONFIG_VFP=y | 24 | CONFIG_VFP=y |
17 | CONFIG_NET=y | 25 | CONFIG_NET=y |
18 | CONFIG_PACKET=y | 26 | CONFIG_PACKET=y |
@@ -62,6 +70,9 @@ CONFIG_SERIAL_8250=y | |||
62 | CONFIG_SERIAL_8250_CONSOLE=y | 70 | CONFIG_SERIAL_8250_CONSOLE=y |
63 | # CONFIG_SERIAL_8250_PCI is not set | 71 | # CONFIG_SERIAL_8250_PCI is not set |
64 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | 72 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 |
73 | CONFIG_SERIAL_CORE=y | ||
74 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
75 | CONFIG_SERIAL_OF_PLATFORM=y | ||
65 | # CONFIG_HW_RANDOM is not set | 76 | # CONFIG_HW_RANDOM is not set |
66 | CONFIG_I2C=y | 77 | CONFIG_I2C=y |
67 | CONFIG_I2C_CHARDEV=y | 78 | CONFIG_I2C_CHARDEV=y |
@@ -74,6 +85,18 @@ CONFIG_USB_DEVICEFS=y | |||
74 | CONFIG_USB_EHCI_HCD=y | 85 | CONFIG_USB_EHCI_HCD=y |
75 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 86 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
76 | CONFIG_USB_STORAGE=y | 87 | CONFIG_USB_STORAGE=y |
88 | CONFIG_MMC=y | ||
89 | CONFIG_MMC_SDHCI=y | ||
90 | CONFIG_MMC_SDHCI_IO_ACCESSORS=y | ||
91 | CONFIG_MMC_SDHCI_PLTFM=y | ||
92 | CONFIG_MMC_SDHCI_DOVE=y | ||
93 | CONFIG_NEW_LEDS=y | ||
94 | CONFIG_LEDS_CLASS=y | ||
95 | CONFIG_LEDS_GPIO=y | ||
96 | CONFIG_LEDS_TRIGGERS=y | ||
97 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
98 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
99 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
77 | CONFIG_RTC_CLASS=y | 100 | CONFIG_RTC_CLASS=y |
78 | CONFIG_RTC_DRV_MV=y | 101 | CONFIG_RTC_DRV_MV=y |
79 | CONFIG_DMADEVICES=y | 102 | CONFIG_DMADEVICES=y |
@@ -122,6 +145,7 @@ CONFIG_CRYPTO_TWOFISH=y | |||
122 | CONFIG_CRYPTO_DEFLATE=y | 145 | CONFIG_CRYPTO_DEFLATE=y |
123 | CONFIG_CRYPTO_LZO=y | 146 | CONFIG_CRYPTO_LZO=y |
124 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 147 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
148 | CONFIG_CRYPTO_DEV_MV_CESA=y | ||
125 | CONFIG_CRC_CCITT=y | 149 | CONFIG_CRC_CCITT=y |
126 | CONFIG_CRC16=y | 150 | CONFIG_CRC16=y |
127 | CONFIG_LIBCRC32C=y | 151 | CONFIG_LIBCRC32C=y |
diff --git a/arch/arm/configs/g3evm_defconfig b/arch/arm/configs/g3evm_defconfig deleted file mode 100644 index 4a336ab5a0c0..000000000000 --- a/arch/arm/configs/g3evm_defconfig +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | ||
2 | CONFIG_SYSVIPC=y | ||
3 | CONFIG_IKCONFIG=y | ||
4 | CONFIG_IKCONFIG_PROC=y | ||
5 | CONFIG_LOG_BUF_SHIFT=16 | ||
6 | CONFIG_BLK_DEV_INITRD=y | ||
7 | CONFIG_SLAB=y | ||
8 | # CONFIG_BLK_DEV_BSG is not set | ||
9 | # CONFIG_IOSCHED_DEADLINE is not set | ||
10 | # CONFIG_IOSCHED_CFQ is not set | ||
11 | CONFIG_ARCH_SHMOBILE=y | ||
12 | CONFIG_ARCH_SH7367=y | ||
13 | CONFIG_MACH_G3EVM=y | ||
14 | CONFIG_AEABI=y | ||
15 | # CONFIG_OABI_COMPAT is not set | ||
16 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
17 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
18 | CONFIG_CMDLINE="console=ttySC1,115200 earlyprintk=sh-sci.1,115200" | ||
19 | CONFIG_KEXEC=y | ||
20 | CONFIG_PM=y | ||
21 | # CONFIG_SUSPEND is not set | ||
22 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
23 | # CONFIG_FIRMWARE_IN_KERNEL is not set | ||
24 | CONFIG_MTD=y | ||
25 | CONFIG_MTD_CONCAT=y | ||
26 | CONFIG_MTD_PARTITIONS=y | ||
27 | CONFIG_MTD_CHAR=y | ||
28 | CONFIG_MTD_BLOCK=y | ||
29 | CONFIG_MTD_CFI=y | ||
30 | CONFIG_MTD_CFI_INTELEXT=y | ||
31 | CONFIG_MTD_PHYSMAP=y | ||
32 | CONFIG_MTD_NAND=y | ||
33 | # CONFIG_BLK_DEV is not set | ||
34 | # CONFIG_MISC_DEVICES is not set | ||
35 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
36 | # CONFIG_INPUT_KEYBOARD is not set | ||
37 | # CONFIG_INPUT_MOUSE is not set | ||
38 | # CONFIG_SERIO is not set | ||
39 | CONFIG_SERIAL_SH_SCI=y | ||
40 | CONFIG_SERIAL_SH_SCI_NR_UARTS=8 | ||
41 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
42 | # CONFIG_LEGACY_PTYS is not set | ||
43 | # CONFIG_HW_RANDOM is not set | ||
44 | # CONFIG_HWMON is not set | ||
45 | # CONFIG_VGA_CONSOLE is not set | ||
46 | # CONFIG_HID_SUPPORT is not set | ||
47 | # CONFIG_USB_SUPPORT is not set | ||
48 | # CONFIG_DNOTIFY is not set | ||
49 | # CONFIG_INOTIFY_USER is not set | ||
50 | CONFIG_TMPFS=y | ||
51 | # CONFIG_MISC_FILESYSTEMS is not set | ||
52 | CONFIG_MAGIC_SYSRQ=y | ||
53 | CONFIG_DEBUG_KERNEL=y | ||
54 | # CONFIG_DETECT_SOFTLOCKUP is not set | ||
55 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
56 | # CONFIG_FTRACE is not set | ||
57 | # CONFIG_CRC32 is not set | ||
diff --git a/arch/arm/configs/g4evm_defconfig b/arch/arm/configs/g4evm_defconfig deleted file mode 100644 index 21c6d0307bc3..000000000000 --- a/arch/arm/configs/g4evm_defconfig +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | ||
2 | CONFIG_SYSVIPC=y | ||
3 | CONFIG_IKCONFIG=y | ||
4 | CONFIG_IKCONFIG_PROC=y | ||
5 | CONFIG_LOG_BUF_SHIFT=16 | ||
6 | CONFIG_BLK_DEV_INITRD=y | ||
7 | CONFIG_SLAB=y | ||
8 | # CONFIG_BLK_DEV_BSG is not set | ||
9 | # CONFIG_IOSCHED_DEADLINE is not set | ||
10 | # CONFIG_IOSCHED_CFQ is not set | ||
11 | CONFIG_ARCH_SHMOBILE=y | ||
12 | CONFIG_ARCH_SH7377=y | ||
13 | CONFIG_MACH_G4EVM=y | ||
14 | CONFIG_AEABI=y | ||
15 | # CONFIG_OABI_COMPAT is not set | ||
16 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
17 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
18 | CONFIG_CMDLINE="console=ttySC4,115200 earlyprintk=sh-sci.4,115200" | ||
19 | CONFIG_KEXEC=y | ||
20 | CONFIG_PM=y | ||
21 | # CONFIG_SUSPEND is not set | ||
22 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
23 | # CONFIG_FIRMWARE_IN_KERNEL is not set | ||
24 | CONFIG_MTD=y | ||
25 | CONFIG_MTD_CONCAT=y | ||
26 | CONFIG_MTD_PARTITIONS=y | ||
27 | CONFIG_MTD_CHAR=y | ||
28 | CONFIG_MTD_BLOCK=y | ||
29 | CONFIG_MTD_CFI=y | ||
30 | CONFIG_MTD_CFI_INTELEXT=y | ||
31 | CONFIG_MTD_PHYSMAP=y | ||
32 | CONFIG_MTD_NAND=y | ||
33 | # CONFIG_BLK_DEV is not set | ||
34 | # CONFIG_MISC_DEVICES is not set | ||
35 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
36 | # CONFIG_INPUT_KEYBOARD is not set | ||
37 | # CONFIG_INPUT_MOUSE is not set | ||
38 | # CONFIG_SERIO is not set | ||
39 | CONFIG_SERIAL_SH_SCI=y | ||
40 | CONFIG_SERIAL_SH_SCI_NR_UARTS=8 | ||
41 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | ||
42 | # CONFIG_LEGACY_PTYS is not set | ||
43 | # CONFIG_HW_RANDOM is not set | ||
44 | # CONFIG_HWMON is not set | ||
45 | # CONFIG_VGA_CONSOLE is not set | ||
46 | # CONFIG_HID_SUPPORT is not set | ||
47 | # CONFIG_USB_SUPPORT is not set | ||
48 | # CONFIG_DNOTIFY is not set | ||
49 | # CONFIG_INOTIFY_USER is not set | ||
50 | CONFIG_TMPFS=y | ||
51 | # CONFIG_MISC_FILESYSTEMS is not set | ||
52 | CONFIG_MAGIC_SYSRQ=y | ||
53 | CONFIG_DEBUG_KERNEL=y | ||
54 | # CONFIG_DETECT_SOFTLOCKUP is not set | ||
55 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
56 | # CONFIG_FTRACE is not set | ||
57 | # CONFIG_CRC32 is not set | ||
diff --git a/arch/arm/configs/imx_v4_v5_defconfig b/arch/arm/configs/imx_v4_v5_defconfig index f71302c3ac33..ebbfb27e0e74 100644 --- a/arch/arm/configs/imx_v4_v5_defconfig +++ b/arch/arm/configs/imx_v4_v5_defconfig | |||
@@ -123,6 +123,7 @@ CONFIG_REGULATOR_MC13892=y | |||
123 | CONFIG_MEDIA_SUPPORT=y | 123 | CONFIG_MEDIA_SUPPORT=y |
124 | CONFIG_VIDEO_DEV=y | 124 | CONFIG_VIDEO_DEV=y |
125 | CONFIG_V4L_PLATFORM_DRIVERS=y | 125 | CONFIG_V4L_PLATFORM_DRIVERS=y |
126 | CONFIG_MEDIA_CAMERA_SUPPORT=y | ||
126 | CONFIG_SOC_CAMERA=y | 127 | CONFIG_SOC_CAMERA=y |
127 | CONFIG_SOC_CAMERA_OV2640=y | 128 | CONFIG_SOC_CAMERA_OV2640=y |
128 | CONFIG_VIDEO_MX2=y | 129 | CONFIG_VIDEO_MX2=y |
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig index 44f117aab52c..69667133321f 100644 --- a/arch/arm/configs/imx_v6_v7_defconfig +++ b/arch/arm/configs/imx_v6_v7_defconfig | |||
@@ -145,15 +145,18 @@ CONFIG_GPIO_MC9S08DZ60=y | |||
145 | # CONFIG_HWMON is not set | 145 | # CONFIG_HWMON is not set |
146 | CONFIG_WATCHDOG=y | 146 | CONFIG_WATCHDOG=y |
147 | CONFIG_IMX2_WDT=y | 147 | CONFIG_IMX2_WDT=y |
148 | CONFIG_MFD_DA9052_I2C=y | ||
148 | CONFIG_MFD_MC13XXX_SPI=y | 149 | CONFIG_MFD_MC13XXX_SPI=y |
149 | CONFIG_MFD_MC13XXX_I2C=y | 150 | CONFIG_MFD_MC13XXX_I2C=y |
150 | CONFIG_REGULATOR=y | 151 | CONFIG_REGULATOR=y |
151 | CONFIG_REGULATOR_FIXED_VOLTAGE=y | 152 | CONFIG_REGULATOR_FIXED_VOLTAGE=y |
153 | CONFIG_REGULATOR_DA9052=y | ||
152 | CONFIG_REGULATOR_MC13783=y | 154 | CONFIG_REGULATOR_MC13783=y |
153 | CONFIG_REGULATOR_MC13892=y | 155 | CONFIG_REGULATOR_MC13892=y |
154 | CONFIG_MEDIA_SUPPORT=y | 156 | CONFIG_MEDIA_SUPPORT=y |
155 | CONFIG_VIDEO_DEV=y | 157 | CONFIG_VIDEO_DEV=y |
156 | CONFIG_V4L_PLATFORM_DRIVERS=y | 158 | CONFIG_V4L_PLATFORM_DRIVERS=y |
159 | CONFIG_MEDIA_CAMERA_SUPPORT=y | ||
157 | CONFIG_SOC_CAMERA=y | 160 | CONFIG_SOC_CAMERA=y |
158 | CONFIG_SOC_CAMERA_OV2640=y | 161 | CONFIG_SOC_CAMERA_OV2640=y |
159 | CONFIG_VIDEO_MX3=y | 162 | CONFIG_VIDEO_MX3=y |
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig index 74eee0c78f28..93f3794ba5cb 100644 --- a/arch/arm/configs/kirkwood_defconfig +++ b/arch/arm/configs/kirkwood_defconfig | |||
@@ -27,6 +27,14 @@ CONFIG_MACH_GOFLEXNET_DT=y | |||
27 | CONFIG_MACH_LSXL_DT=y | 27 | CONFIG_MACH_LSXL_DT=y |
28 | CONFIG_MACH_IOMEGA_IX2_200_DT=y | 28 | CONFIG_MACH_IOMEGA_IX2_200_DT=y |
29 | CONFIG_MACH_KM_KIRKWOOD_DT=y | 29 | CONFIG_MACH_KM_KIRKWOOD_DT=y |
30 | CONFIG_MACH_INETSPACE_V2_DT=y | ||
31 | CONFIG_MACH_MPLCEC4_DT=y | ||
32 | CONFIG_MACH_NETSPACE_V2_DT=y | ||
33 | CONFIG_MACH_NETSPACE_MAX_V2_DT=y | ||
34 | CONFIG_MACH_NETSPACE_LITE_V2_DT=y | ||
35 | CONFIG_MACH_NETSPACE_MINI_V2_DT=y | ||
36 | CONFIG_MACH_OPENBLOCKS_A6_DT=y | ||
37 | CONFIG_MACH_TOPKICK_DT=y | ||
30 | CONFIG_MACH_TS219=y | 38 | CONFIG_MACH_TS219=y |
31 | CONFIG_MACH_TS41X=y | 39 | CONFIG_MACH_TS41X=y |
32 | CONFIG_MACH_DOCKSTAR=y | 40 | CONFIG_MACH_DOCKSTAR=y |
@@ -40,6 +48,7 @@ CONFIG_MACH_D2NET_V2=y | |||
40 | CONFIG_MACH_NET2BIG_V2=y | 48 | CONFIG_MACH_NET2BIG_V2=y |
41 | CONFIG_MACH_NET5BIG_V2=y | 49 | CONFIG_MACH_NET5BIG_V2=y |
42 | CONFIG_MACH_T5325=y | 50 | CONFIG_MACH_T5325=y |
51 | CONFIG_MACH_NSA310_DT=y | ||
43 | # CONFIG_CPU_FEROCEON_OLD_ID is not set | 52 | # CONFIG_CPU_FEROCEON_OLD_ID is not set |
44 | CONFIG_PREEMPT=y | 53 | CONFIG_PREEMPT=y |
45 | CONFIG_AEABI=y | 54 | CONFIG_AEABI=y |
diff --git a/arch/arm/configs/kota2_defconfig b/arch/arm/configs/kota2_defconfig index b7735d6347ac..fa83db1ef0eb 100644 --- a/arch/arm/configs/kota2_defconfig +++ b/arch/arm/configs/kota2_defconfig | |||
@@ -112,7 +112,6 @@ CONFIG_LEDS_GPIO=y | |||
112 | CONFIG_LEDS_RENESAS_TPU=y | 112 | CONFIG_LEDS_RENESAS_TPU=y |
113 | CONFIG_LEDS_TRIGGERS=y | 113 | CONFIG_LEDS_TRIGGERS=y |
114 | # CONFIG_DNOTIFY is not set | 114 | # CONFIG_DNOTIFY is not set |
115 | # CONFIG_INOTIFY_USER is not set | ||
116 | CONFIG_TMPFS=y | 115 | CONFIG_TMPFS=y |
117 | # CONFIG_MISC_FILESYSTEMS is not set | 116 | # CONFIG_MISC_FILESYSTEMS is not set |
118 | CONFIG_MAGIC_SYSRQ=y | 117 | CONFIG_MAGIC_SYSRQ=y |
diff --git a/arch/arm/configs/kzm9g_defconfig b/arch/arm/configs/kzm9g_defconfig index c88b57886e79..afbae287436b 100644 --- a/arch/arm/configs/kzm9g_defconfig +++ b/arch/arm/configs/kzm9g_defconfig | |||
@@ -74,6 +74,8 @@ CONFIG_KEYBOARD_GPIO=y | |||
74 | # CONFIG_INPUT_MOUSE is not set | 74 | # CONFIG_INPUT_MOUSE is not set |
75 | CONFIG_INPUT_TOUCHSCREEN=y | 75 | CONFIG_INPUT_TOUCHSCREEN=y |
76 | CONFIG_TOUCHSCREEN_ST1232=y | 76 | CONFIG_TOUCHSCREEN_ST1232=y |
77 | CONFIG_INPUT_MISC=y | ||
78 | CONFIG_INPUT_ADXL34X=y | ||
77 | # CONFIG_LEGACY_PTYS is not set | 79 | # CONFIG_LEGACY_PTYS is not set |
78 | CONFIG_SERIAL_SH_SCI=y | 80 | CONFIG_SERIAL_SH_SCI=y |
79 | CONFIG_SERIAL_SH_SCI_NR_UARTS=9 | 81 | CONFIG_SERIAL_SH_SCI_NR_UARTS=9 |
@@ -119,8 +121,9 @@ CONFIG_DMADEVICES=y | |||
119 | CONFIG_SH_DMAE=y | 121 | CONFIG_SH_DMAE=y |
120 | CONFIG_ASYNC_TX_DMA=y | 122 | CONFIG_ASYNC_TX_DMA=y |
121 | CONFIG_STAGING=y | 123 | CONFIG_STAGING=y |
124 | CONFIG_SENSORS_AK8975=y | ||
125 | CONFIG_IIO=y | ||
122 | # CONFIG_DNOTIFY is not set | 126 | # CONFIG_DNOTIFY is not set |
123 | CONFIG_INOTIFY_USER=y | ||
124 | CONFIG_VFAT_FS=y | 127 | CONFIG_VFAT_FS=y |
125 | CONFIG_TMPFS=y | 128 | CONFIG_TMPFS=y |
126 | # CONFIG_MISC_FILESYSTEMS is not set | 129 | # CONFIG_MISC_FILESYSTEMS is not set |
diff --git a/arch/arm/configs/mackerel_defconfig b/arch/arm/configs/mackerel_defconfig index 306a2e2d3622..2098ce155542 100644 --- a/arch/arm/configs/mackerel_defconfig +++ b/arch/arm/configs/mackerel_defconfig | |||
@@ -70,17 +70,31 @@ CONFIG_SERIAL_SH_SCI_NR_UARTS=8 | |||
70 | CONFIG_SERIAL_SH_SCI_CONSOLE=y | 70 | CONFIG_SERIAL_SH_SCI_CONSOLE=y |
71 | # CONFIG_LEGACY_PTYS is not set | 71 | # CONFIG_LEGACY_PTYS is not set |
72 | # CONFIG_HW_RANDOM is not set | 72 | # CONFIG_HW_RANDOM is not set |
73 | CONFIG_I2C=y | ||
74 | CONFIG_I2C_SH_MOBILE=y | ||
73 | # CONFIG_HWMON is not set | 75 | # CONFIG_HWMON is not set |
74 | # CONFIG_MFD_SUPPORT is not set | 76 | # CONFIG_MFD_SUPPORT is not set |
75 | CONFIG_FB=y | 77 | CONFIG_FB=y |
76 | CONFIG_FB_MODE_HELPERS=y | 78 | CONFIG_FB_MODE_HELPERS=y |
77 | CONFIG_FB_SH_MOBILE_LCDC=y | 79 | CONFIG_FB_SH_MOBILE_LCDC=y |
80 | CONFIG_FB_SH_MOBILE_HDMI=y | ||
78 | CONFIG_FRAMEBUFFER_CONSOLE=y | 81 | CONFIG_FRAMEBUFFER_CONSOLE=y |
79 | CONFIG_LOGO=y | 82 | CONFIG_LOGO=y |
80 | # CONFIG_LOGO_LINUX_MONO is not set | 83 | # CONFIG_LOGO_LINUX_MONO is not set |
81 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 84 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
82 | # CONFIG_HID_SUPPORT is not set | 85 | # CONFIG_SND_SUPPORT_OLD_API is not set |
83 | # CONFIG_USB_SUPPORT is not set | 86 | # CONFIG_SND_VERBOSE_PROCFS is not set |
87 | # CONFIG_SND_DRIVERS is not set | ||
88 | # CONFIG_SND_ARM is not set | ||
89 | CONFIG_SND_SOC_SH4_FSI=y | ||
90 | CONFIG_USB=y | ||
91 | CONFIG_USB_RENESAS_USBHS_HCD=y | ||
92 | CONFIG_USB_RENESAS_USBHS=y | ||
93 | CONFIG_USB_STORAGE=y | ||
94 | CONFIG_USB_GADGET=y | ||
95 | CONFIG_USB_RENESAS_USBHS_UDC=y | ||
96 | CONFIG_DMADEVICES=y | ||
97 | CONFIG_SH_DMAE=y | ||
84 | CONFIG_EXT2_FS=y | 98 | CONFIG_EXT2_FS=y |
85 | CONFIG_EXT2_FS_XATTR=y | 99 | CONFIG_EXT2_FS_XATTR=y |
86 | CONFIG_EXT2_FS_POSIX_ACL=y | 100 | CONFIG_EXT2_FS_POSIX_ACL=y |
@@ -91,7 +105,6 @@ CONFIG_EXT3_FS=y | |||
91 | CONFIG_EXT3_FS_POSIX_ACL=y | 105 | CONFIG_EXT3_FS_POSIX_ACL=y |
92 | CONFIG_EXT3_FS_SECURITY=y | 106 | CONFIG_EXT3_FS_SECURITY=y |
93 | # CONFIG_DNOTIFY is not set | 107 | # CONFIG_DNOTIFY is not set |
94 | # CONFIG_INOTIFY_USER is not set | ||
95 | CONFIG_MSDOS_FS=y | 108 | CONFIG_MSDOS_FS=y |
96 | CONFIG_VFAT_FS=y | 109 | CONFIG_VFAT_FS=y |
97 | CONFIG_TMPFS=y | 110 | CONFIG_TMPFS=y |
diff --git a/arch/arm/configs/marzen_defconfig b/arch/arm/configs/marzen_defconfig index f79b55c512d0..5b8215f424c5 100644 --- a/arch/arm/configs/marzen_defconfig +++ b/arch/arm/configs/marzen_defconfig | |||
@@ -71,6 +71,8 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y | |||
71 | # CONFIG_HW_RANDOM is not set | 71 | # CONFIG_HW_RANDOM is not set |
72 | CONFIG_I2C=y | 72 | CONFIG_I2C=y |
73 | CONFIG_I2C_RCAR=y | 73 | CONFIG_I2C_RCAR=y |
74 | CONFIG_SPI=y | ||
75 | CONFIG_SPI_SH_HSPI=y | ||
74 | CONFIG_GPIO_SYSFS=y | 76 | CONFIG_GPIO_SYSFS=y |
75 | # CONFIG_HWMON is not set | 77 | # CONFIG_HWMON is not set |
76 | CONFIG_THERMAL=y | 78 | CONFIG_THERMAL=y |
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig index cd5e6ba9a54d..952430d9e2d9 100644 --- a/arch/arm/configs/orion5x_defconfig +++ b/arch/arm/configs/orion5x_defconfig | |||
@@ -1,7 +1,8 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_NO_HZ=y | ||
4 | CONFIG_HIGH_RES_TIMERS=y | ||
3 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
4 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
5 | CONFIG_EXPERT=y | 6 | CONFIG_EXPERT=y |
6 | # CONFIG_SLUB_DEBUG is not set | 7 | # CONFIG_SLUB_DEBUG is not set |
7 | CONFIG_PROFILING=y | 8 | CONFIG_PROFILING=y |
@@ -10,6 +11,8 @@ CONFIG_KPROBES=y | |||
10 | CONFIG_MODULES=y | 11 | CONFIG_MODULES=y |
11 | CONFIG_MODULE_UNLOAD=y | 12 | CONFIG_MODULE_UNLOAD=y |
12 | # CONFIG_BLK_DEV_BSG is not set | 13 | # CONFIG_BLK_DEV_BSG is not set |
14 | CONFIG_PARTITION_ADVANCED=y | ||
15 | CONFIG_BSD_DISKLABEL=y | ||
13 | CONFIG_ARCH_ORION5X=y | 16 | CONFIG_ARCH_ORION5X=y |
14 | CONFIG_MACH_DB88F5281=y | 17 | CONFIG_MACH_DB88F5281=y |
15 | CONFIG_MACH_RD88F5182=y | 18 | CONFIG_MACH_RD88F5182=y |
@@ -24,7 +27,7 @@ CONFIG_MACH_TS409=y | |||
24 | CONFIG_MACH_WRT350N_V2=y | 27 | CONFIG_MACH_WRT350N_V2=y |
25 | CONFIG_MACH_TS78XX=y | 28 | CONFIG_MACH_TS78XX=y |
26 | CONFIG_MACH_MV2120=y | 29 | CONFIG_MACH_MV2120=y |
27 | CONFIG_MACH_EDMINI_V2=y | 30 | CONFIG_MACH_EDMINI_V2_DT=y |
28 | CONFIG_MACH_D2NET=y | 31 | CONFIG_MACH_D2NET=y |
29 | CONFIG_MACH_BIGDISK=y | 32 | CONFIG_MACH_BIGDISK=y |
30 | CONFIG_MACH_NET2BIG=y | 33 | CONFIG_MACH_NET2BIG=y |
@@ -33,17 +36,13 @@ CONFIG_MACH_WNR854T=y | |||
33 | CONFIG_MACH_RD88F5181L_GE=y | 36 | CONFIG_MACH_RD88F5181L_GE=y |
34 | CONFIG_MACH_RD88F5181L_FXO=y | 37 | CONFIG_MACH_RD88F5181L_FXO=y |
35 | CONFIG_MACH_RD88F6183AP_GE=y | 38 | CONFIG_MACH_RD88F6183AP_GE=y |
36 | CONFIG_NO_HZ=y | ||
37 | CONFIG_HIGH_RES_TIMERS=y | ||
38 | CONFIG_PREEMPT=y | 39 | CONFIG_PREEMPT=y |
39 | CONFIG_AEABI=y | 40 | CONFIG_AEABI=y |
40 | CONFIG_LEDS=y | ||
41 | CONFIG_LEDS_CPU=y | ||
42 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 41 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
43 | CONFIG_ZBOOT_ROM_BSS=0x0 | 42 | CONFIG_ZBOOT_ROM_BSS=0x0 |
43 | CONFIG_ARM_APPENDED_DTB=y | ||
44 | CONFIG_FPE_NWFPE=y | 44 | CONFIG_FPE_NWFPE=y |
45 | CONFIG_VFP=y | 45 | CONFIG_VFP=y |
46 | # CONFIG_SUSPEND is not set | ||
47 | CONFIG_NET=y | 46 | CONFIG_NET=y |
48 | CONFIG_PACKET=y | 47 | CONFIG_PACKET=y |
49 | CONFIG_UNIX=y | 48 | CONFIG_UNIX=y |
@@ -54,13 +53,10 @@ CONFIG_IP_PNP_DHCP=y | |||
54 | CONFIG_IP_PNP_BOOTP=y | 53 | CONFIG_IP_PNP_BOOTP=y |
55 | # CONFIG_IPV6 is not set | 54 | # CONFIG_IPV6 is not set |
56 | CONFIG_NET_DSA=y | 55 | CONFIG_NET_DSA=y |
57 | CONFIG_NET_DSA_MV88E6131=y | ||
58 | CONFIG_NET_DSA_MV88E6123_61_65=y | ||
59 | CONFIG_NET_PKTGEN=m | 56 | CONFIG_NET_PKTGEN=m |
60 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 57 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
61 | # CONFIG_FIRMWARE_IN_KERNEL is not set | 58 | # CONFIG_FIRMWARE_IN_KERNEL is not set |
62 | CONFIG_MTD=y | 59 | CONFIG_MTD=y |
63 | CONFIG_MTD_PARTITIONS=y | ||
64 | CONFIG_MTD_CMDLINE_PARTS=y | 60 | CONFIG_MTD_CMDLINE_PARTS=y |
65 | CONFIG_MTD_CHAR=y | 61 | CONFIG_MTD_CHAR=y |
66 | CONFIG_MTD_BLOCK=y | 62 | CONFIG_MTD_BLOCK=y |
@@ -82,12 +78,11 @@ CONFIG_CHR_DEV_SG=m | |||
82 | CONFIG_ATA=y | 78 | CONFIG_ATA=y |
83 | CONFIG_SATA_MV=y | 79 | CONFIG_SATA_MV=y |
84 | CONFIG_NETDEVICES=y | 80 | CONFIG_NETDEVICES=y |
85 | CONFIG_MARVELL_PHY=y | ||
86 | CONFIG_NET_ETHERNET=y | ||
87 | CONFIG_MII=y | 81 | CONFIG_MII=y |
88 | CONFIG_NET_PCI=y | 82 | CONFIG_NET_DSA_MV88E6131=y |
83 | CONFIG_NET_DSA_MV88E6123_61_65=y | ||
89 | CONFIG_MV643XX_ETH=y | 84 | CONFIG_MV643XX_ETH=y |
90 | # CONFIG_NETDEV_10000 is not set | 85 | CONFIG_MARVELL_PHY=y |
91 | # CONFIG_INPUT_MOUSEDEV is not set | 86 | # CONFIG_INPUT_MOUSEDEV is not set |
92 | CONFIG_INPUT_EVDEV=y | 87 | CONFIG_INPUT_EVDEV=y |
93 | # CONFIG_KEYBOARD_ATKBD is not set | 88 | # CONFIG_KEYBOARD_ATKBD is not set |
@@ -95,11 +90,12 @@ CONFIG_KEYBOARD_GPIO=y | |||
95 | # CONFIG_INPUT_MOUSE is not set | 90 | # CONFIG_INPUT_MOUSE is not set |
96 | # CONFIG_SERIO is not set | 91 | # CONFIG_SERIO is not set |
97 | # CONFIG_VT is not set | 92 | # CONFIG_VT is not set |
93 | CONFIG_LEGACY_PTY_COUNT=16 | ||
98 | CONFIG_SERIAL_8250=y | 94 | CONFIG_SERIAL_8250=y |
99 | CONFIG_SERIAL_8250_CONSOLE=y | 95 | CONFIG_SERIAL_8250_CONSOLE=y |
100 | # CONFIG_SERIAL_8250_PCI is not set | 96 | # CONFIG_SERIAL_8250_PCI is not set |
101 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | 97 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 |
102 | CONFIG_LEGACY_PTY_COUNT=16 | 98 | CONFIG_SERIAL_OF_PLATFORM=y |
103 | CONFIG_HW_RANDOM_TIMERIOMEM=m | 99 | CONFIG_HW_RANDOM_TIMERIOMEM=m |
104 | CONFIG_I2C=y | 100 | CONFIG_I2C=y |
105 | # CONFIG_I2C_COMPAT is not set | 101 | # CONFIG_I2C_COMPAT is not set |
@@ -109,10 +105,8 @@ CONFIG_GPIO_SYSFS=y | |||
109 | CONFIG_SENSORS_LM75=y | 105 | CONFIG_SENSORS_LM75=y |
110 | # CONFIG_VGA_ARB is not set | 106 | # CONFIG_VGA_ARB is not set |
111 | CONFIG_USB=y | 107 | CONFIG_USB=y |
112 | CONFIG_USB_DEVICEFS=y | ||
113 | CONFIG_USB_EHCI_HCD=y | 108 | CONFIG_USB_EHCI_HCD=y |
114 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 109 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
115 | CONFIG_USB_EHCI_TT_NEWSCHED=y | ||
116 | CONFIG_USB_PRINTER=y | 110 | CONFIG_USB_PRINTER=y |
117 | CONFIG_USB_STORAGE=y | 111 | CONFIG_USB_STORAGE=y |
118 | CONFIG_USB_STORAGE_DATAFAB=y | 112 | CONFIG_USB_STORAGE_DATAFAB=y |
@@ -140,7 +134,6 @@ CONFIG_EXT2_FS=y | |||
140 | CONFIG_EXT3_FS=y | 134 | CONFIG_EXT3_FS=y |
141 | # CONFIG_EXT3_FS_XATTR is not set | 135 | # CONFIG_EXT3_FS_XATTR is not set |
142 | CONFIG_EXT4_FS=m | 136 | CONFIG_EXT4_FS=m |
143 | CONFIG_INOTIFY=y | ||
144 | CONFIG_ISO9660_FS=m | 137 | CONFIG_ISO9660_FS=m |
145 | CONFIG_JOLIET=y | 138 | CONFIG_JOLIET=y |
146 | CONFIG_UDF_FS=m | 139 | CONFIG_UDF_FS=m |
@@ -150,25 +143,18 @@ CONFIG_TMPFS=y | |||
150 | CONFIG_JFFS2_FS=y | 143 | CONFIG_JFFS2_FS=y |
151 | CONFIG_CRAMFS=y | 144 | CONFIG_CRAMFS=y |
152 | CONFIG_NFS_FS=y | 145 | CONFIG_NFS_FS=y |
153 | CONFIG_NFS_V3=y | ||
154 | CONFIG_ROOT_NFS=y | 146 | CONFIG_ROOT_NFS=y |
155 | CONFIG_PARTITION_ADVANCED=y | ||
156 | CONFIG_BSD_DISKLABEL=y | ||
157 | CONFIG_NLS_CODEPAGE_437=y | 147 | CONFIG_NLS_CODEPAGE_437=y |
158 | CONFIG_NLS_CODEPAGE_850=y | 148 | CONFIG_NLS_CODEPAGE_850=y |
159 | CONFIG_NLS_ISO8859_1=y | 149 | CONFIG_NLS_ISO8859_1=y |
160 | CONFIG_NLS_ISO8859_2=y | 150 | CONFIG_NLS_ISO8859_2=y |
161 | CONFIG_MAGIC_SYSRQ=y | 151 | CONFIG_MAGIC_SYSRQ=y |
162 | CONFIG_DEBUG_FS=y | 152 | CONFIG_DEBUG_FS=y |
163 | CONFIG_DEBUG_KERNEL=y | ||
164 | # CONFIG_DEBUG_BUGVERBOSE is not set | 153 | # CONFIG_DEBUG_BUGVERBOSE is not set |
165 | CONFIG_DEBUG_INFO=y | 154 | CONFIG_DEBUG_INFO=y |
166 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
167 | CONFIG_LATENCYTOP=y | 155 | CONFIG_LATENCYTOP=y |
168 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
169 | # CONFIG_FTRACE is not set | 156 | # CONFIG_FTRACE is not set |
170 | CONFIG_DEBUG_USER=y | 157 | CONFIG_DEBUG_USER=y |
171 | CONFIG_DEBUG_ERRORS=y | ||
172 | CONFIG_DEBUG_LL=y | 158 | CONFIG_DEBUG_LL=y |
173 | CONFIG_CRYPTO_CBC=m | 159 | CONFIG_CRYPTO_CBC=m |
174 | CONFIG_CRYPTO_ECB=m | 160 | CONFIG_CRYPTO_ECB=m |
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig index f8eecb959413..0153950f6068 100644 --- a/arch/arm/mach-davinci/Kconfig +++ b/arch/arm/mach-davinci/Kconfig | |||
@@ -58,6 +58,14 @@ config ARCH_DAVINCI_TNETV107X | |||
58 | 58 | ||
59 | comment "DaVinci Board Type" | 59 | comment "DaVinci Board Type" |
60 | 60 | ||
61 | config MACH_DA8XX_DT | ||
62 | bool "Support DA8XX platforms using device tree" | ||
63 | default y | ||
64 | depends on ARCH_DAVINCI_DA8XX | ||
65 | help | ||
66 | Say y here to include support for TI DaVinci DA850 based using | ||
67 | Flattened Device Tree. More information at Documentation/devicetree | ||
68 | |||
61 | config MACH_DAVINCI_EVM | 69 | config MACH_DAVINCI_EVM |
62 | bool "TI DM644x EVM" | 70 | bool "TI DM644x EVM" |
63 | default ARCH_DAVINCI_DM644x | 71 | default ARCH_DAVINCI_DM644x |
diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefile index 2227effcb0e9..fb5c1aa98a63 100644 --- a/arch/arm/mach-davinci/Makefile +++ b/arch/arm/mach-davinci/Makefile | |||
@@ -22,6 +22,7 @@ obj-$(CONFIG_AINTC) += irq.o | |||
22 | obj-$(CONFIG_CP_INTC) += cp_intc.o | 22 | obj-$(CONFIG_CP_INTC) += cp_intc.o |
23 | 23 | ||
24 | # Board specific | 24 | # Board specific |
25 | obj-$(CONFIG_MACH_DA8XX_DT) += da8xx-dt.o | ||
25 | obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o | 26 | obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o |
26 | obj-$(CONFIG_MACH_SFFSDR) += board-sffsdr.o | 27 | obj-$(CONFIG_MACH_SFFSDR) += board-sffsdr.o |
27 | obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o | 28 | obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o |
diff --git a/arch/arm/mach-davinci/Makefile.boot b/arch/arm/mach-davinci/Makefile.boot index 04a6c4e67b14..5c5a95a9d7d2 100644 --- a/arch/arm/mach-davinci/Makefile.boot +++ b/arch/arm/mach-davinci/Makefile.boot | |||
@@ -11,3 +11,5 @@ else | |||
11 | params_phys-y := 0x80000100 | 11 | params_phys-y := 0x80000100 |
12 | initrd_phys-y := 0x80800000 | 12 | initrd_phys-y := 0x80800000 |
13 | endif | 13 | endif |
14 | |||
15 | dtb-$(CONFIG_MACH_DA8XX_DT) += da850-enbw-cmc.dtb da850-evm.dtb | ||
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 32ee3f895967..d4f4dbfc0e59 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
@@ -11,39 +11,40 @@ | |||
11 | * is licensed "as is" without any warranty of any kind, whether express | 11 | * is licensed "as is" without any warranty of any kind, whether express |
12 | * or implied. | 12 | * or implied. |
13 | */ | 13 | */ |
14 | #include <linux/kernel.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/console.h> | 14 | #include <linux/console.h> |
15 | #include <linux/delay.h> | ||
16 | #include <linux/gpio.h> | ||
17 | #include <linux/gpio_keys.h> | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/kernel.h> | ||
17 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
18 | #include <linux/i2c/at24.h> | 21 | #include <linux/i2c/at24.h> |
19 | #include <linux/i2c/pca953x.h> | 22 | #include <linux/i2c/pca953x.h> |
20 | #include <linux/input.h> | 23 | #include <linux/input.h> |
24 | #include <linux/input/tps6507x-ts.h> | ||
21 | #include <linux/mfd/tps6507x.h> | 25 | #include <linux/mfd/tps6507x.h> |
22 | #include <linux/gpio.h> | ||
23 | #include <linux/gpio_keys.h> | ||
24 | #include <linux/platform_device.h> | ||
25 | #include <linux/mtd/mtd.h> | 26 | #include <linux/mtd/mtd.h> |
26 | #include <linux/mtd/nand.h> | 27 | #include <linux/mtd/nand.h> |
27 | #include <linux/mtd/partitions.h> | 28 | #include <linux/mtd/partitions.h> |
28 | #include <linux/mtd/physmap.h> | 29 | #include <linux/mtd/physmap.h> |
30 | #include <linux/platform_device.h> | ||
31 | #include <linux/platform_data/mtd-davinci.h> | ||
32 | #include <linux/platform_data/mtd-davinci-aemif.h> | ||
33 | #include <linux/platform_data/spi-davinci.h> | ||
34 | #include <linux/platform_data/uio_pruss.h> | ||
29 | #include <linux/regulator/machine.h> | 35 | #include <linux/regulator/machine.h> |
30 | #include <linux/regulator/tps6507x.h> | 36 | #include <linux/regulator/tps6507x.h> |
31 | #include <linux/input/tps6507x-ts.h> | ||
32 | #include <linux/spi/spi.h> | 37 | #include <linux/spi/spi.h> |
33 | #include <linux/spi/flash.h> | 38 | #include <linux/spi/flash.h> |
34 | #include <linux/delay.h> | ||
35 | #include <linux/wl12xx.h> | 39 | #include <linux/wl12xx.h> |
36 | 40 | ||
37 | #include <asm/mach-types.h> | ||
38 | #include <asm/mach/arch.h> | ||
39 | #include <asm/system_info.h> | ||
40 | |||
41 | #include <mach/cp_intc.h> | 41 | #include <mach/cp_intc.h> |
42 | #include <mach/da8xx.h> | 42 | #include <mach/da8xx.h> |
43 | #include <linux/platform_data/mtd-davinci.h> | ||
44 | #include <mach/mux.h> | 43 | #include <mach/mux.h> |
45 | #include <linux/platform_data/mtd-davinci-aemif.h> | 44 | |
46 | #include <linux/platform_data/spi-davinci.h> | 45 | #include <asm/mach-types.h> |
46 | #include <asm/mach/arch.h> | ||
47 | #include <asm/system_info.h> | ||
47 | 48 | ||
48 | #include <media/tvp514x.h> | 49 | #include <media/tvp514x.h> |
49 | #include <media/adv7343.h> | 50 | #include <media/adv7343.h> |
@@ -1516,6 +1517,11 @@ static __init void da850_evm_init(void) | |||
1516 | pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n", | 1517 | pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n", |
1517 | ret); | 1518 | ret); |
1518 | 1519 | ||
1520 | ret = da8xx_register_uio_pruss(); | ||
1521 | if (ret) | ||
1522 | pr_warn("da850_evm_init: pruss initialization failed: %d\n", | ||
1523 | ret); | ||
1524 | |||
1519 | /* Handle board specific muxing for LCD here */ | 1525 | /* Handle board specific muxing for LCD here */ |
1520 | ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); | 1526 | ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); |
1521 | if (ret) | 1527 | if (ret) |
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c new file mode 100644 index 000000000000..37c27af18fa0 --- /dev/null +++ b/arch/arm/mach-davinci/da8xx-dt.c | |||
@@ -0,0 +1,66 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * Modified from mach-omap/omap2/board-generic.c | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #include <linux/io.h> | ||
11 | #include <linux/of_irq.h> | ||
12 | #include <linux/of_platform.h> | ||
13 | #include <linux/irqdomain.h> | ||
14 | |||
15 | #include <asm/mach/arch.h> | ||
16 | |||
17 | #include <mach/common.h> | ||
18 | #include <mach/cp_intc.h> | ||
19 | #include <mach/da8xx.h> | ||
20 | |||
21 | #define DA8XX_NUM_UARTS 3 | ||
22 | |||
23 | void __init da8xx_uart_clk_enable(void) | ||
24 | { | ||
25 | int i; | ||
26 | for (i = 0; i < DA8XX_NUM_UARTS; i++) | ||
27 | davinci_serial_setup_clk(i, NULL); | ||
28 | } | ||
29 | |||
30 | static struct of_device_id da8xx_irq_match[] __initdata = { | ||
31 | { .compatible = "ti,cp-intc", .data = cp_intc_of_init, }, | ||
32 | { } | ||
33 | }; | ||
34 | |||
35 | static void __init da8xx_init_irq(void) | ||
36 | { | ||
37 | of_irq_init(da8xx_irq_match); | ||
38 | } | ||
39 | |||
40 | #ifdef CONFIG_ARCH_DAVINCI_DA850 | ||
41 | |||
42 | static void __init da850_init_machine(void) | ||
43 | { | ||
44 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
45 | |||
46 | da8xx_uart_clk_enable(); | ||
47 | } | ||
48 | |||
49 | static const char *da850_boards_compat[] __initdata = { | ||
50 | "enbw,cmc", | ||
51 | "ti,da850-evm", | ||
52 | "ti,da850", | ||
53 | NULL, | ||
54 | }; | ||
55 | |||
56 | DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x") | ||
57 | .map_io = da850_init, | ||
58 | .init_irq = da8xx_init_irq, | ||
59 | .timer = &davinci_timer, | ||
60 | .init_machine = da850_init_machine, | ||
61 | .dt_compat = da850_boards_compat, | ||
62 | .init_late = davinci_init_late, | ||
63 | .restart = da8xx_restart, | ||
64 | MACHINE_END | ||
65 | |||
66 | #endif | ||
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 485ce6c477f9..c606080b5dfa 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c | |||
@@ -100,6 +100,7 @@ static struct regulator_consumer_supply __initdata ldo3_consumer[] = { | |||
100 | REGULATOR_SUPPLY("vddcore", "s5p-mipi-csis.0"), /* MIPI */ | 100 | REGULATOR_SUPPLY("vddcore", "s5p-mipi-csis.0"), /* MIPI */ |
101 | REGULATOR_SUPPLY("vdd", "exynos4-hdmi"), /* HDMI */ | 101 | REGULATOR_SUPPLY("vdd", "exynos4-hdmi"), /* HDMI */ |
102 | REGULATOR_SUPPLY("vdd_pll", "exynos4-hdmi"), /* HDMI */ | 102 | REGULATOR_SUPPLY("vdd_pll", "exynos4-hdmi"), /* HDMI */ |
103 | REGULATOR_SUPPLY("vusb_a", "s3c-hsotg"), /* OTG */ | ||
103 | }; | 104 | }; |
104 | static struct regulator_consumer_supply __initdata ldo6_consumer[] = { | 105 | static struct regulator_consumer_supply __initdata ldo6_consumer[] = { |
105 | REGULATOR_SUPPLY("vddio", "s5p-mipi-csis.0"), /* MIPI */ | 106 | REGULATOR_SUPPLY("vddio", "s5p-mipi-csis.0"), /* MIPI */ |
@@ -110,6 +111,7 @@ static struct regulator_consumer_supply __initdata ldo7_consumer[] = { | |||
110 | static struct regulator_consumer_supply __initdata ldo8_consumer[] = { | 111 | static struct regulator_consumer_supply __initdata ldo8_consumer[] = { |
111 | REGULATOR_SUPPLY("vdd", "s5p-adc"), /* ADC */ | 112 | REGULATOR_SUPPLY("vdd", "s5p-adc"), /* ADC */ |
112 | REGULATOR_SUPPLY("vdd_osc", "exynos4-hdmi"), /* HDMI */ | 113 | REGULATOR_SUPPLY("vdd_osc", "exynos4-hdmi"), /* HDMI */ |
114 | REGULATOR_SUPPLY("vusb_d", "s3c-hsotg"), /* OTG */ | ||
113 | }; | 115 | }; |
114 | static struct regulator_consumer_supply __initdata ldo9_consumer[] = { | 116 | static struct regulator_consumer_supply __initdata ldo9_consumer[] = { |
115 | REGULATOR_SUPPLY("dvdd", "swb-a31"), /* AR6003 WLAN & CSR 8810 BT */ | 117 | REGULATOR_SUPPLY("dvdd", "swb-a31"), /* AR6003 WLAN & CSR 8810 BT */ |
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index b74422679126..318bd8df7fcc 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c | |||
@@ -51,6 +51,10 @@ | |||
51 | #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17) | 51 | #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17) |
52 | #define SDHC1_IRQ_GPIO IMX_GPIO_NR(2, 25) | 52 | #define SDHC1_IRQ_GPIO IMX_GPIO_NR(2, 25) |
53 | 53 | ||
54 | #define VERSION_MASK 0x7 | ||
55 | #define MOTHERBOARD_SHIFT 4 | ||
56 | #define EXPBOARD_SHIFT 0 | ||
57 | |||
54 | #define MOTHERBOARD_BIT2 (GPIO_PORTD + 31) | 58 | #define MOTHERBOARD_BIT2 (GPIO_PORTD + 31) |
55 | #define MOTHERBOARD_BIT1 (GPIO_PORTD + 30) | 59 | #define MOTHERBOARD_BIT1 (GPIO_PORTD + 30) |
56 | #define MOTHERBOARD_BIT0 (GPIO_PORTD + 29) | 60 | #define MOTHERBOARD_BIT0 (GPIO_PORTD + 29) |
@@ -237,7 +241,7 @@ static struct mx2_camera_platform_data visstrim_camera = { | |||
237 | static phys_addr_t mx2_camera_base __initdata; | 241 | static phys_addr_t mx2_camera_base __initdata; |
238 | #define MX2_CAMERA_BUF_SIZE SZ_8M | 242 | #define MX2_CAMERA_BUF_SIZE SZ_8M |
239 | 243 | ||
240 | static void __init visstrim_camera_init(void) | 244 | static void __init visstrim_analog_camera_init(void) |
241 | { | 245 | { |
242 | struct platform_device *pdev; | 246 | struct platform_device *pdev; |
243 | int dma; | 247 | int dma; |
@@ -474,6 +478,27 @@ static void __init visstrim_deinterlace_init(void) | |||
474 | return; | 478 | return; |
475 | } | 479 | } |
476 | 480 | ||
481 | /* Emma-PrP for format conversion */ | ||
482 | static void __init visstrim_emmaprp_init(void) | ||
483 | { | ||
484 | struct platform_device *pdev; | ||
485 | int dma; | ||
486 | |||
487 | pdev = imx27_add_mx2_emmaprp(); | ||
488 | if (IS_ERR(pdev)) | ||
489 | return; | ||
490 | |||
491 | /* | ||
492 | * Use the same memory area as the analog camera since both | ||
493 | * devices are, by nature, exclusive. | ||
494 | */ | ||
495 | dma = dma_declare_coherent_memory(&pdev->dev, | ||
496 | mx2_camera_base, mx2_camera_base, | ||
497 | MX2_CAMERA_BUF_SIZE, | ||
498 | DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE); | ||
499 | if (!(dma & DMA_MEMORY_MAP)) | ||
500 | pr_err("Failed to declare memory for emmaprp\n"); | ||
501 | } | ||
477 | 502 | ||
478 | /* Audio */ | 503 | /* Audio */ |
479 | static const struct snd_mx27vis_platform_data snd_mx27vis_pdata __initconst = { | 504 | static const struct snd_mx27vis_platform_data snd_mx27vis_pdata __initconst = { |
@@ -507,13 +532,14 @@ static void __init visstrim_m10_revision(void) | |||
507 | mo_version |= !gpio_get_value(MOTHERBOARD_BIT0); | 532 | mo_version |= !gpio_get_value(MOTHERBOARD_BIT0); |
508 | 533 | ||
509 | system_rev = 0x27000; | 534 | system_rev = 0x27000; |
510 | system_rev |= (mo_version << 4); | 535 | system_rev |= (mo_version << MOTHERBOARD_SHIFT); |
511 | system_rev |= exp_version; | 536 | system_rev |= (exp_version << EXPBOARD_SHIFT); |
512 | } | 537 | } |
513 | 538 | ||
514 | static void __init visstrim_m10_board_init(void) | 539 | static void __init visstrim_m10_board_init(void) |
515 | { | 540 | { |
516 | int ret; | 541 | int ret; |
542 | int mo_version; | ||
517 | 543 | ||
518 | imx27_soc_init(); | 544 | imx27_soc_init(); |
519 | visstrim_m10_revision(); | 545 | visstrim_m10_revision(); |
@@ -546,8 +572,24 @@ static void __init visstrim_m10_board_init(void) | |||
546 | platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0, | 572 | platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0, |
547 | &iclink_tvp5150, sizeof(iclink_tvp5150)); | 573 | &iclink_tvp5150, sizeof(iclink_tvp5150)); |
548 | gpio_led_register_device(0, &visstrim_m10_led_data); | 574 | gpio_led_register_device(0, &visstrim_m10_led_data); |
549 | visstrim_deinterlace_init(); | 575 | |
550 | visstrim_camera_init(); | 576 | /* Use mother board version to decide what video devices we shall use */ |
577 | mo_version = (system_rev >> MOTHERBOARD_SHIFT) & VERSION_MASK; | ||
578 | if (mo_version & 0x1) { | ||
579 | visstrim_emmaprp_init(); | ||
580 | |||
581 | /* | ||
582 | * Despite not being used, tvp5150 must be | ||
583 | * powered on to avoid I2C problems. To minimize | ||
584 | * power consupmtion keep reset enabled. | ||
585 | */ | ||
586 | gpio_set_value(TVP5150_PWDN, 1); | ||
587 | ndelay(1); | ||
588 | gpio_set_value(TVP5150_RSTN, 0); | ||
589 | } else { | ||
590 | visstrim_deinterlace_init(); | ||
591 | visstrim_analog_camera_init(); | ||
592 | } | ||
551 | visstrim_coda_init(); | 593 | visstrim_coda_init(); |
552 | } | 594 | } |
553 | 595 | ||
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig index 50bca5032b7e..d018ad4bcc3c 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig | |||
@@ -130,6 +130,63 @@ config MACH_KM_KIRKWOOD_DT | |||
130 | Say 'Y' here if you want your kernel to support the | 130 | Say 'Y' here if you want your kernel to support the |
131 | Keymile Kirkwood Reference Desgin, using Flattened Device Tree. | 131 | Keymile Kirkwood Reference Desgin, using Flattened Device Tree. |
132 | 132 | ||
133 | config MACH_INETSPACE_V2_DT | ||
134 | bool "LaCie Internet Space v2 NAS (Flattened Device Tree)" | ||
135 | select ARCH_KIRKWOOD_DT | ||
136 | help | ||
137 | Say 'Y' here if you want your kernel to support the LaCie | ||
138 | Internet Space v2 NAS, using Flattened Device Tree. | ||
139 | |||
140 | config MACH_MPLCEC4_DT | ||
141 | bool "MPL CEC4 (Flattened Device Tree)" | ||
142 | select ARCH_KIRKWOOD_DT | ||
143 | help | ||
144 | Say 'Y' here if you want your kernel to support the | ||
145 | MPL CEC4 (Flattened Device Tree). | ||
146 | |||
147 | config MACH_NETSPACE_V2_DT | ||
148 | bool "LaCie Network Space v2 NAS (Flattened Device Tree)" | ||
149 | select ARCH_KIRKWOOD_DT | ||
150 | help | ||
151 | Say 'Y' here if you want your kernel to support the LaCie | ||
152 | Network Space v2 NAS, using Flattened Device Tree. | ||
153 | |||
154 | config MACH_NETSPACE_MAX_V2_DT | ||
155 | bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)" | ||
156 | select ARCH_KIRKWOOD_DT | ||
157 | help | ||
158 | Say 'Y' here if you want your kernel to support the LaCie | ||
159 | Network Space Max v2 NAS, using Flattened Device Tree. | ||
160 | |||
161 | config MACH_NETSPACE_LITE_V2_DT | ||
162 | bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)" | ||
163 | select ARCH_KIRKWOOD_DT | ||
164 | help | ||
165 | Say 'Y' here if you want your kernel to support the LaCie | ||
166 | Network Space Lite v2 NAS, using Flattened Device Tree. | ||
167 | |||
168 | config MACH_NETSPACE_MINI_V2_DT | ||
169 | bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)" | ||
170 | select ARCH_KIRKWOOD_DT | ||
171 | help | ||
172 | Say 'Y' here if you want your kernel to support the LaCie | ||
173 | Network Space Mini v2 NAS (aka SafeBox), using Flattened | ||
174 | Device Tree. | ||
175 | |||
176 | config MACH_OPENBLOCKS_A6_DT | ||
177 | bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)" | ||
178 | select ARCH_KIRKWOOD_DT | ||
179 | help | ||
180 | Say 'Y' here if you want your kernel to support the | ||
181 | Plat'Home OpenBlocks A6 (Flattened Device Tree). | ||
182 | |||
183 | config MACH_TOPKICK_DT | ||
184 | bool "USI Topkick (Flattened Device Tree)" | ||
185 | select ARCH_KIRKWOOD_DT | ||
186 | help | ||
187 | Say 'Y' here if you want your kernel to support the | ||
188 | USI Topkick, using Flattened Device Tree | ||
189 | |||
133 | config MACH_TS219 | 190 | config MACH_TS219 |
134 | bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" | 191 | bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" |
135 | help | 192 | help |
@@ -216,6 +273,14 @@ config MACH_T5325 | |||
216 | Say 'Y' here if you want your kernel to support the | 273 | Say 'Y' here if you want your kernel to support the |
217 | HP t5325 Thin Client. | 274 | HP t5325 Thin Client. |
218 | 275 | ||
276 | config MACH_NSA310_DT | ||
277 | bool "ZyXEL NSA-310 (Flattened Device Tree)" | ||
278 | select ARCH_KIRKWOOD_DT | ||
279 | select ARM_ATAG_DTB_COMPAT | ||
280 | help | ||
281 | Say 'Y' here if you want your kernel to support the | ||
282 | ZyXEL NSA-310 board (Flattened Device Tree). | ||
283 | |||
219 | endmenu | 284 | endmenu |
220 | 285 | ||
221 | endif | 286 | endif |
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile index 294779f892d9..8d2e5a96247c 100644 --- a/arch/arm/mach-kirkwood/Makefile +++ b/arch/arm/mach-kirkwood/Makefile | |||
@@ -31,3 +31,12 @@ obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o | |||
31 | 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 | 32 | obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o |
33 | obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o | 33 | obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o |
34 | obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o | ||
35 | obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o | ||
36 | obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o | ||
37 | obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o | ||
38 | obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o | ||
39 | obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o | ||
40 | obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o | ||
41 | obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o | ||
42 | obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o | ||
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index e75fbdb533de..375f7d88551c 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
@@ -30,6 +30,8 @@ static struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = { | |||
30 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), | 30 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), |
31 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", | 31 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", |
32 | NULL), | 32 | NULL), |
33 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011100, "mv64xxx_i2c.1", | ||
34 | NULL), | ||
33 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), | 35 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), |
34 | OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), | 36 | OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), |
35 | OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL), | 37 | OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL), |
@@ -94,6 +96,25 @@ static void __init kirkwood_dt_init(void) | |||
94 | if (of_machine_is_compatible("keymile,km_kirkwood")) | 96 | if (of_machine_is_compatible("keymile,km_kirkwood")) |
95 | km_kirkwood_init(); | 97 | km_kirkwood_init(); |
96 | 98 | ||
99 | if (of_machine_is_compatible("lacie,inetspace_v2") || | ||
100 | of_machine_is_compatible("lacie,netspace_v2") || | ||
101 | of_machine_is_compatible("lacie,netspace_max_v2") || | ||
102 | of_machine_is_compatible("lacie,netspace_lite_v2") || | ||
103 | of_machine_is_compatible("lacie,netspace_mini_v2")) | ||
104 | ns2_init(); | ||
105 | |||
106 | if (of_machine_is_compatible("mpl,cec4")) | ||
107 | mplcec4_init(); | ||
108 | |||
109 | if (of_machine_is_compatible("plathome,openblocks-a6")) | ||
110 | openblocks_a6_init(); | ||
111 | |||
112 | if (of_machine_is_compatible("usi,topkick")) | ||
113 | usi_topkick_init(); | ||
114 | |||
115 | if (of_machine_is_compatible("zyxel,nsa310")) | ||
116 | nsa310_init(); | ||
117 | |||
97 | of_platform_populate(NULL, kirkwood_dt_match_table, | 118 | of_platform_populate(NULL, kirkwood_dt_match_table, |
98 | kirkwood_auxdata_lookup, NULL); | 119 | kirkwood_auxdata_lookup, NULL); |
99 | } | 120 | } |
@@ -110,6 +131,15 @@ static const char * const kirkwood_dt_board_compat[] = { | |||
110 | "buffalo,lsxl", | 131 | "buffalo,lsxl", |
111 | "iom,ix2-200", | 132 | "iom,ix2-200", |
112 | "keymile,km_kirkwood", | 133 | "keymile,km_kirkwood", |
134 | "lacie,inetspace_v2", | ||
135 | "lacie,netspace_max_v2", | ||
136 | "lacie,netspace_v2", | ||
137 | "lacie,netspace_lite_v2", | ||
138 | "lacie,netspace_mini_v2", | ||
139 | "mpl,cec4", | ||
140 | "plathome,openblocks-a6", | ||
141 | "usi,topkick", | ||
142 | "zyxel,nsa310", | ||
113 | NULL | 143 | NULL |
114 | }; | 144 | }; |
115 | 145 | ||
diff --git a/arch/arm/mach-kirkwood/board-lsxl.c b/arch/arm/mach-kirkwood/board-lsxl.c index 64e5cc6b6d5f..7e18cad9b796 100644 --- a/arch/arm/mach-kirkwood/board-lsxl.c +++ b/arch/arm/mach-kirkwood/board-lsxl.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/gpio-fan.h> | ||
20 | #include "common.h" | 19 | #include "common.h" |
21 | #include "mpp.h" | 20 | #include "mpp.h" |
22 | 21 | ||
@@ -45,51 +44,6 @@ static unsigned int lsxl_mpp_config[] __initdata = { | |||
45 | 0 | 44 | 0 |
46 | }; | 45 | }; |
47 | 46 | ||
48 | #define LSXL_GPIO_FAN_HIGH 18 | ||
49 | #define LSXL_GPIO_FAN_LOW 19 | ||
50 | #define LSXL_GPIO_FAN_LOCK 40 | ||
51 | |||
52 | static struct gpio_fan_alarm lsxl_alarm = { | ||
53 | .gpio = LSXL_GPIO_FAN_LOCK, | ||
54 | }; | ||
55 | |||
56 | static struct gpio_fan_speed lsxl_speeds[] = { | ||
57 | { | ||
58 | .rpm = 0, | ||
59 | .ctrl_val = 3, | ||
60 | }, { | ||
61 | .rpm = 1500, | ||
62 | .ctrl_val = 1, | ||
63 | }, { | ||
64 | .rpm = 3250, | ||
65 | .ctrl_val = 2, | ||
66 | }, { | ||
67 | .rpm = 5000, | ||
68 | .ctrl_val = 0, | ||
69 | } | ||
70 | }; | ||
71 | |||
72 | static int lsxl_gpio_list[] = { | ||
73 | LSXL_GPIO_FAN_HIGH, LSXL_GPIO_FAN_LOW, | ||
74 | }; | ||
75 | |||
76 | static struct gpio_fan_platform_data lsxl_fan_data = { | ||
77 | .num_ctrl = ARRAY_SIZE(lsxl_gpio_list), | ||
78 | .ctrl = lsxl_gpio_list, | ||
79 | .alarm = &lsxl_alarm, | ||
80 | .num_speed = ARRAY_SIZE(lsxl_speeds), | ||
81 | .speed = lsxl_speeds, | ||
82 | }; | ||
83 | |||
84 | static struct platform_device lsxl_fan_device = { | ||
85 | .name = "gpio-fan", | ||
86 | .id = -1, | ||
87 | .num_resources = 0, | ||
88 | .dev = { | ||
89 | .platform_data = &lsxl_fan_data, | ||
90 | }, | ||
91 | }; | ||
92 | |||
93 | /* | 47 | /* |
94 | * On the LS-XHL/LS-CHLv2, the shutdown process is following: | 48 | * On the LS-XHL/LS-CHLv2, the shutdown process is following: |
95 | * - Userland monitors key events until the power switch goes to off position | 49 | * - Userland monitors key events until the power switch goes to off position |
@@ -120,7 +74,6 @@ void __init lsxl_init(void) | |||
120 | kirkwood_ehci_init(); | 74 | kirkwood_ehci_init(); |
121 | kirkwood_ge00_init(&lsxl_ge00_data); | 75 | kirkwood_ge00_init(&lsxl_ge00_data); |
122 | kirkwood_ge01_init(&lsxl_ge01_data); | 76 | kirkwood_ge01_init(&lsxl_ge01_data); |
123 | platform_device_register(&lsxl_fan_device); | ||
124 | 77 | ||
125 | /* register power-off method */ | 78 | /* register power-off method */ |
126 | pm_power_off = lsxl_power_off; | 79 | pm_power_off = lsxl_power_off; |
diff --git a/arch/arm/mach-kirkwood/board-mplcec4.c b/arch/arm/mach-kirkwood/board-mplcec4.c new file mode 100644 index 000000000000..e78a227468e6 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-mplcec4.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 MPL AG, Switzerland | ||
3 | * Stefan Peter <s.peter@mpl.ch> | ||
4 | * | ||
5 | * arch/arm/mach-kirkwood/board-mplcec4.c | ||
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 | |||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/mv643xx_eth.h> | ||
15 | #include <linux/platform_data/mmc-mvsdio.h> | ||
16 | #include "common.h" | ||
17 | #include "mpp.h" | ||
18 | |||
19 | static struct mv643xx_eth_platform_data mplcec4_ge00_data = { | ||
20 | .phy_addr = MV643XX_ETH_PHY_ADDR(1), | ||
21 | }; | ||
22 | |||
23 | static struct mv643xx_eth_platform_data mplcec4_ge01_data = { | ||
24 | .phy_addr = MV643XX_ETH_PHY_ADDR(2), | ||
25 | }; | ||
26 | |||
27 | static unsigned int mplcec4_mpp_config[] __initdata = { | ||
28 | MPP0_NF_IO2, | ||
29 | MPP1_NF_IO3, | ||
30 | MPP2_NF_IO4, | ||
31 | MPP3_NF_IO5, | ||
32 | MPP4_NF_IO6, | ||
33 | MPP5_NF_IO7, | ||
34 | MPP6_SYSRST_OUTn, | ||
35 | MPP7_GPO, /* Status LED Green High Active */ | ||
36 | MPP10_UART0_TXD, | ||
37 | MPP11_UART0_RXD, | ||
38 | MPP12_SD_CLK, | ||
39 | MPP13_SD_CMD, /* Alt UART1_TXD */ | ||
40 | MPP14_SD_D0, /* Alt UART1_RXD */ | ||
41 | MPP15_SD_D1, | ||
42 | MPP16_SD_D2, | ||
43 | MPP17_SD_D3, | ||
44 | MPP18_NF_IO0, | ||
45 | MPP19_NF_IO1, | ||
46 | MPP28_GPIO, /* Input SYS_POR_DET (active High) */ | ||
47 | MPP29_GPIO, /* Input SYS_RTC_INT (active High) */ | ||
48 | MPP34_SATA1_ACTn, | ||
49 | MPP35_SATA0_ACTn, | ||
50 | MPP40_GPIO, /* LED User1 orange */ | ||
51 | MPP41_GPIO, /* LED User1 green */ | ||
52 | MPP44_GPIO, /* LED User0 orange */ | ||
53 | MPP45_GPIO, /* LED User0 green */ | ||
54 | MPP46_GPIO, /* Status LED Yellow High Active */ | ||
55 | MPP47_GPIO, /* SD_CD# (in/IRQ)*/ | ||
56 | 0 | ||
57 | }; | ||
58 | |||
59 | |||
60 | static struct mvsdio_platform_data mplcec4_mvsdio_data = { | ||
61 | .gpio_card_detect = 47, /* MPP47 used as SD card detect */ | ||
62 | }; | ||
63 | |||
64 | |||
65 | |||
66 | void __init mplcec4_init(void) | ||
67 | { | ||
68 | /* | ||
69 | * Basic setup. Needs to be called early. | ||
70 | */ | ||
71 | kirkwood_mpp_conf(mplcec4_mpp_config); | ||
72 | kirkwood_ehci_init(); | ||
73 | kirkwood_ge00_init(&mplcec4_ge00_data); | ||
74 | kirkwood_ge01_init(&mplcec4_ge01_data); | ||
75 | kirkwood_sdio_init(&mplcec4_mvsdio_data); | ||
76 | kirkwood_pcie_init(KW_PCIE0); | ||
77 | } | ||
78 | |||
79 | |||
80 | |||
diff --git a/arch/arm/mach-kirkwood/board-ns2.c b/arch/arm/mach-kirkwood/board-ns2.c new file mode 100644 index 000000000000..78596c4f76d2 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-ns2.c | |||
@@ -0,0 +1,87 @@ | |||
1 | /* | ||
2 | * Copyright 2012 (C), Simon Guinot <simon.guinot@sequanux.org> | ||
3 | * | ||
4 | * arch/arm/mach-kirkwood/board-ns2.c | ||
5 | * | ||
6 | * LaCie Network Space v2 board (and parents) initialization for drivers | ||
7 | * not converted to flattened device tree yet. | ||
8 | * | ||
9 | * This file is licensed under the terms of the GNU General Public | ||
10 | * License version 2. This program is licensed "as is" without any | ||
11 | * warranty of any kind, whether express or implied. | ||
12 | */ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/platform_device.h> | ||
17 | #include <linux/mv643xx_eth.h> | ||
18 | #include <linux/gpio.h> | ||
19 | #include <linux/of.h> | ||
20 | #include "common.h" | ||
21 | #include "mpp.h" | ||
22 | |||
23 | static struct mv643xx_eth_platform_data ns2_ge00_data = { | ||
24 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), | ||
25 | }; | ||
26 | |||
27 | static unsigned int ns2_mpp_config[] __initdata = { | ||
28 | MPP0_SPI_SCn, | ||
29 | MPP1_SPI_MOSI, | ||
30 | MPP2_SPI_SCK, | ||
31 | MPP3_SPI_MISO, | ||
32 | MPP4_NF_IO6, | ||
33 | MPP5_NF_IO7, | ||
34 | MPP6_SYSRST_OUTn, | ||
35 | MPP7_GPO, /* Fan speed (bit 1) */ | ||
36 | MPP8_TW0_SDA, | ||
37 | MPP9_TW0_SCK, | ||
38 | MPP10_UART0_TXD, | ||
39 | MPP11_UART0_RXD, | ||
40 | MPP12_GPO, /* Red led */ | ||
41 | MPP14_GPIO, /* USB fuse */ | ||
42 | MPP16_GPIO, /* SATA 0 power */ | ||
43 | MPP17_GPIO, /* SATA 1 power */ | ||
44 | MPP18_NF_IO0, | ||
45 | MPP19_NF_IO1, | ||
46 | MPP20_SATA1_ACTn, | ||
47 | MPP21_SATA0_ACTn, | ||
48 | MPP22_GPIO, /* Fan speed (bit 0) */ | ||
49 | MPP23_GPIO, /* Fan power */ | ||
50 | MPP24_GPIO, /* USB mode select */ | ||
51 | MPP25_GPIO, /* Fan rotation fail */ | ||
52 | MPP26_GPIO, /* USB device vbus */ | ||
53 | MPP28_GPIO, /* USB enable host vbus */ | ||
54 | MPP29_GPIO, /* Blue led (slow register) */ | ||
55 | MPP30_GPIO, /* Blue led (command register) */ | ||
56 | MPP31_GPIO, /* Board power off */ | ||
57 | MPP32_GPIO, /* Power button (0 = Released, 1 = Pushed) */ | ||
58 | MPP33_GPO, /* Fan speed (bit 2) */ | ||
59 | 0 | ||
60 | }; | ||
61 | |||
62 | #define NS2_GPIO_POWER_OFF 31 | ||
63 | |||
64 | static void ns2_power_off(void) | ||
65 | { | ||
66 | gpio_set_value(NS2_GPIO_POWER_OFF, 1); | ||
67 | } | ||
68 | |||
69 | void __init ns2_init(void) | ||
70 | { | ||
71 | /* | ||
72 | * Basic setup. Needs to be called early. | ||
73 | */ | ||
74 | kirkwood_mpp_conf(ns2_mpp_config); | ||
75 | |||
76 | kirkwood_ehci_init(); | ||
77 | if (of_machine_is_compatible("lacie,netspace_lite_v2") || | ||
78 | of_machine_is_compatible("lacie,netspace_mini_v2")) | ||
79 | ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); | ||
80 | kirkwood_ge00_init(&ns2_ge00_data); | ||
81 | |||
82 | if (gpio_request(NS2_GPIO_POWER_OFF, "power-off") == 0 && | ||
83 | gpio_direction_output(NS2_GPIO_POWER_OFF, 0) == 0) | ||
84 | pm_power_off = ns2_power_off; | ||
85 | else | ||
86 | pr_err("ns2: failed to configure power-off GPIO\n"); | ||
87 | } | ||
diff --git a/arch/arm/mach-kirkwood/board-nsa310.c b/arch/arm/mach-kirkwood/board-nsa310.c new file mode 100644 index 000000000000..027ce83f3fe5 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-nsa310.c | |||
@@ -0,0 +1,105 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-kirkwood/nsa-310-setup.c | ||
3 | * | ||
4 | * ZyXEL NSA-310 Setup | ||
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/i2c.h> | ||
14 | #include <linux/gpio.h> | ||
15 | |||
16 | #include <asm/mach-types.h> | ||
17 | #include <asm/mach/arch.h> | ||
18 | #include <mach/kirkwood.h> | ||
19 | #include "common.h" | ||
20 | #include "mpp.h" | ||
21 | |||
22 | #define NSA310_GPIO_USB_POWER_OFF 21 | ||
23 | #define NSA310_GPIO_POWER_OFF 48 | ||
24 | |||
25 | static unsigned int nsa310_mpp_config[] __initdata = { | ||
26 | MPP12_GPIO, /* led esata green */ | ||
27 | MPP13_GPIO, /* led esata red */ | ||
28 | MPP15_GPIO, /* led usb green */ | ||
29 | MPP16_GPIO, /* led usb red */ | ||
30 | MPP21_GPIO, /* control usb power off */ | ||
31 | MPP28_GPIO, /* led sys green */ | ||
32 | MPP29_GPIO, /* led sys red */ | ||
33 | MPP36_GPIO, /* key reset */ | ||
34 | MPP37_GPIO, /* key copy */ | ||
35 | MPP39_GPIO, /* led copy green */ | ||
36 | MPP40_GPIO, /* led copy red */ | ||
37 | MPP41_GPIO, /* led hdd green */ | ||
38 | MPP42_GPIO, /* led hdd red */ | ||
39 | MPP44_GPIO, /* ?? */ | ||
40 | MPP46_GPIO, /* key power */ | ||
41 | MPP48_GPIO, /* control power off */ | ||
42 | 0 | ||
43 | }; | ||
44 | |||
45 | static struct i2c_board_info __initdata nsa310_i2c_info[] = { | ||
46 | { I2C_BOARD_INFO("adt7476", 0x2e) }, | ||
47 | }; | ||
48 | |||
49 | static void nsa310_power_off(void) | ||
50 | { | ||
51 | gpio_set_value(NSA310_GPIO_POWER_OFF, 1); | ||
52 | } | ||
53 | |||
54 | static int __init nsa310_gpio_request(unsigned int gpio, unsigned long flags, | ||
55 | const char *label) | ||
56 | { | ||
57 | int err; | ||
58 | |||
59 | err = gpio_request_one(gpio, flags, label); | ||
60 | if (err) | ||
61 | pr_err("NSA-310: can't setup GPIO%u (%s), err=%d\n", | ||
62 | gpio, label, err); | ||
63 | |||
64 | return err; | ||
65 | } | ||
66 | |||
67 | static void __init nsa310_gpio_init(void) | ||
68 | { | ||
69 | int err; | ||
70 | |||
71 | err = nsa310_gpio_request(NSA310_GPIO_POWER_OFF, GPIOF_OUT_INIT_LOW, | ||
72 | "Power Off"); | ||
73 | if (!err) | ||
74 | pm_power_off = nsa310_power_off; | ||
75 | |||
76 | nsa310_gpio_request(NSA310_GPIO_USB_POWER_OFF, GPIOF_OUT_INIT_LOW, | ||
77 | "USB Power Off"); | ||
78 | } | ||
79 | |||
80 | void __init nsa310_init(void) | ||
81 | { | ||
82 | u32 dev, rev; | ||
83 | |||
84 | kirkwood_mpp_conf(nsa310_mpp_config); | ||
85 | |||
86 | nsa310_gpio_init(); | ||
87 | |||
88 | /* this can be removed once the mainline kirkwood.dtsi gets | ||
89 | * the ehci configuration by default */ | ||
90 | kirkwood_ehci_init(); | ||
91 | |||
92 | kirkwood_pcie_id(&dev, &rev); | ||
93 | |||
94 | i2c_register_board_info(0, ARRAY_AND_SIZE(nsa310_i2c_info)); | ||
95 | } | ||
96 | |||
97 | static int __init nsa310_pci_init(void) | ||
98 | { | ||
99 | if (of_machine_is_compatible("zyxel,nsa310")) | ||
100 | kirkwood_pcie_init(KW_PCIE0); | ||
101 | |||
102 | return 0; | ||
103 | } | ||
104 | |||
105 | subsys_initcall(nsa310_pci_init); | ||
diff --git a/arch/arm/mach-kirkwood/board-openblocks_a6.c b/arch/arm/mach-kirkwood/board-openblocks_a6.c new file mode 100644 index 000000000000..e807e8cfdd44 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-openblocks_a6.c | |||
@@ -0,0 +1,71 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> | ||
3 | * | ||
4 | * arch/arm/mach-kirkwood/board-openblocks_a6.c | ||
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/mv643xx_eth.h> | ||
14 | #include <linux/clk.h> | ||
15 | #include <linux/clk-private.h> | ||
16 | #include "common.h" | ||
17 | #include "mpp.h" | ||
18 | |||
19 | static struct mv643xx_eth_platform_data openblocks_ge00_data = { | ||
20 | .phy_addr = MV643XX_ETH_PHY_ADDR(0), | ||
21 | }; | ||
22 | |||
23 | static unsigned int openblocks_a6_mpp_config[] __initdata = { | ||
24 | MPP0_NF_IO2, | ||
25 | MPP1_NF_IO3, | ||
26 | MPP2_NF_IO4, | ||
27 | MPP3_NF_IO5, | ||
28 | MPP4_NF_IO6, | ||
29 | MPP5_NF_IO7, | ||
30 | MPP6_SYSRST_OUTn, | ||
31 | MPP8_UART1_RTS, | ||
32 | MPP9_UART1_CTS, | ||
33 | MPP10_UART0_TXD, | ||
34 | MPP11_UART0_RXD, | ||
35 | MPP13_UART1_TXD, | ||
36 | MPP14_UART1_RXD, | ||
37 | MPP15_UART0_RTS, | ||
38 | MPP16_UART0_CTS, | ||
39 | MPP18_NF_IO0, | ||
40 | MPP19_NF_IO1, | ||
41 | MPP20_GPIO, /* DIP SW0 */ | ||
42 | MPP21_GPIO, /* DIP SW1 */ | ||
43 | MPP22_GPIO, /* DIP SW2 */ | ||
44 | MPP23_GPIO, /* DIP SW3 */ | ||
45 | MPP24_GPIO, /* GPIO 0 */ | ||
46 | MPP25_GPIO, /* GPIO 1 */ | ||
47 | MPP26_GPIO, /* GPIO 2 */ | ||
48 | MPP27_GPIO, /* GPIO 3 */ | ||
49 | MPP28_GPIO, /* GPIO 4 */ | ||
50 | MPP29_GPIO, /* GPIO 5 */ | ||
51 | MPP30_GPIO, /* GPIO 6 */ | ||
52 | MPP31_GPIO, /* GPIO 7 */ | ||
53 | MPP36_TW1_SDA, | ||
54 | MPP37_TW1_SCK, | ||
55 | MPP38_GPIO, /* INIT */ | ||
56 | MPP39_GPIO, /* USB OC */ | ||
57 | MPP41_GPIO, /* LED: Red */ | ||
58 | MPP42_GPIO, /* LED: Yellow */ | ||
59 | MPP43_GPIO, /* LED: Green */ | ||
60 | 0, | ||
61 | }; | ||
62 | |||
63 | void __init openblocks_a6_init(void) | ||
64 | { | ||
65 | /* | ||
66 | * Basic setup. Needs to be called early. | ||
67 | */ | ||
68 | kirkwood_mpp_conf(openblocks_a6_mpp_config); | ||
69 | kirkwood_ehci_init(); | ||
70 | kirkwood_ge00_init(&openblocks_ge00_data); | ||
71 | } | ||
diff --git a/arch/arm/mach-kirkwood/board-usi_topkick.c b/arch/arm/mach-kirkwood/board-usi_topkick.c new file mode 100644 index 000000000000..e2ec9d891fe3 --- /dev/null +++ b/arch/arm/mach-kirkwood/board-usi_topkick.c | |||
@@ -0,0 +1,82 @@ | |||
1 | /* | ||
2 | * Copyright 2012 (C), Jason Cooper <jason@lakedaemon.net> | ||
3 | * | ||
4 | * arch/arm/mach-kirkwood/board-usi_topkick.c | ||
5 | * | ||
6 | * USI Topkick Init for drivers not converted to flattened device tree yet. | ||
7 | * | ||
8 | * This file is licensed under the terms of the GNU General Public | ||
9 | * License version 2. This program is licensed "as is" without any | ||
10 | * warranty of any kind, whether express or implied. | ||
11 | */ | ||
12 | |||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/mv643xx_eth.h> | ||
16 | #include <linux/gpio.h> | ||
17 | #include <linux/platform_data/mmc-mvsdio.h> | ||
18 | #include "common.h" | ||
19 | #include "mpp.h" | ||
20 | |||
21 | static struct mv643xx_eth_platform_data topkick_ge00_data = { | ||
22 | .phy_addr = MV643XX_ETH_PHY_ADDR(0), | ||
23 | }; | ||
24 | |||
25 | static struct mvsdio_platform_data topkick_mvsdio_data = { | ||
26 | /* unfortunately the CD signal has not been connected */ | ||
27 | }; | ||
28 | |||
29 | /* | ||
30 | * GPIO LED layout | ||
31 | * | ||
32 | * /-SYS_LED(2) | ||
33 | * | | ||
34 | * | /-DISK_LED | ||
35 | * | | | ||
36 | * | | /-WLAN_LED(2) | ||
37 | * | | | | ||
38 | * [SW] [*] [*] [*] | ||
39 | */ | ||
40 | |||
41 | /* | ||
42 | * Switch positions | ||
43 | * | ||
44 | * /-SW_LEFT | ||
45 | * | | ||
46 | * | /-SW_IDLE | ||
47 | * | | | ||
48 | * | | /-SW_RIGHT | ||
49 | * | | | | ||
50 | * PS [L] [I] [R] LEDS | ||
51 | */ | ||
52 | |||
53 | static unsigned int topkick_mpp_config[] __initdata = { | ||
54 | MPP21_GPIO, /* DISK_LED (low active) - yellow */ | ||
55 | MPP36_GPIO, /* SATA0 power enable (high active) */ | ||
56 | MPP37_GPIO, /* SYS_LED2 (low active) - red */ | ||
57 | MPP38_GPIO, /* SYS_LED (low active) - blue */ | ||
58 | MPP39_GPIO, /* WLAN_LED (low active) - green */ | ||
59 | MPP43_GPIO, /* SW_LEFT (low active) */ | ||
60 | MPP44_GPIO, /* SW_RIGHT (low active) */ | ||
61 | MPP45_GPIO, /* SW_IDLE (low active) */ | ||
62 | MPP46_GPIO, /* SW_LEFT (low active) */ | ||
63 | MPP48_GPIO, /* WLAN_LED2 (low active) - yellow */ | ||
64 | 0 | ||
65 | }; | ||
66 | |||
67 | #define TOPKICK_SATA0_PWR_ENABLE 36 | ||
68 | |||
69 | void __init usi_topkick_init(void) | ||
70 | { | ||
71 | /* | ||
72 | * Basic setup. Needs to be called early. | ||
73 | */ | ||
74 | kirkwood_mpp_conf(topkick_mpp_config); | ||
75 | |||
76 | /* SATA0 power enable */ | ||
77 | gpio_set_value(TOPKICK_SATA0_PWR_ENABLE, 1); | ||
78 | |||
79 | kirkwood_ehci_init(); | ||
80 | kirkwood_ge00_init(&topkick_ge00_data); | ||
81 | kirkwood_sdio_init(&topkick_mvsdio_data); | ||
82 | } | ||
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index f0fc25bd3ffe..5303be62b311 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
@@ -266,6 +266,7 @@ void __init kirkwood_clk_init(void) | |||
266 | orion_clkdev_add("1", "pcie", pex1); | 266 | orion_clkdev_add("1", "pcie", pex1); |
267 | orion_clkdev_add(NULL, "kirkwood-i2s", audio); | 267 | orion_clkdev_add(NULL, "kirkwood-i2s", audio); |
268 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit); | 268 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit); |
269 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".1", runit); | ||
269 | 270 | ||
270 | /* Marvell says runit is used by SPI, UART, NAND, TWSI, ..., | 271 | /* Marvell says runit is used by SPI, UART, NAND, TWSI, ..., |
271 | * so should never be gated. | 272 | * so should never be gated. |
diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h index 6088e9227889..5ffa57f08c80 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h | |||
@@ -113,6 +113,40 @@ void km_kirkwood_init(void); | |||
113 | static inline void km_kirkwood_init(void) {}; | 113 | static inline void km_kirkwood_init(void) {}; |
114 | #endif | 114 | #endif |
115 | 115 | ||
116 | #ifdef CONFIG_MACH_MPLCEC4_DT | ||
117 | void mplcec4_init(void); | ||
118 | #else | ||
119 | static inline void mplcec4_init(void) {}; | ||
120 | #endif | ||
121 | |||
122 | #if defined(CONFIG_MACH_INETSPACE_V2_DT) || \ | ||
123 | defined(CONFIG_MACH_NETSPACE_V2_DT) || \ | ||
124 | defined(CONFIG_MACH_NETSPACE_MAX_V2_DT) || \ | ||
125 | defined(CONFIG_MACH_NETSPACE_LITE_V2_DT) || \ | ||
126 | defined(CONFIG_MACH_NETSPACE_MINI_V2_DT) | ||
127 | void ns2_init(void); | ||
128 | #else | ||
129 | static inline void ns2_init(void) {}; | ||
130 | #endif | ||
131 | |||
132 | #ifdef CONFIG_MACH_NSA310_DT | ||
133 | void nsa310_init(void); | ||
134 | #else | ||
135 | static inline void nsa310_init(void) {}; | ||
136 | #endif | ||
137 | |||
138 | #ifdef CONFIG_MACH_OPENBLOCKS_A6_DT | ||
139 | void openblocks_a6_init(void); | ||
140 | #else | ||
141 | static inline void openblocks_a6_init(void) {}; | ||
142 | #endif | ||
143 | |||
144 | #ifdef CONFIG_MACH_TOPKICK_DT | ||
145 | void usi_topkick_init(void); | ||
146 | #else | ||
147 | static inline void usi_topkick_init(void) {}; | ||
148 | #endif | ||
149 | |||
116 | /* early init functions not converted to fdt yet */ | 150 | /* early init functions not converted to fdt yet */ |
117 | char *kirkwood_id(void); | 151 | char *kirkwood_id(void); |
118 | void kirkwood_l2_init(void); | 152 | void kirkwood_l2_init(void); |
diff --git a/arch/arm/mach-mmp/Kconfig b/arch/arm/mach-mmp/Kconfig index 178d4daa5e1d..ebdda8346a26 100644 --- a/arch/arm/mach-mmp/Kconfig +++ b/arch/arm/mach-mmp/Kconfig | |||
@@ -89,6 +89,8 @@ config MACH_MMP_DT | |||
89 | select CPU_PXA168 | 89 | select CPU_PXA168 |
90 | select CPU_PXA910 | 90 | select CPU_PXA910 |
91 | select USE_OF | 91 | select USE_OF |
92 | select PINCTRL | ||
93 | select PINCTRL_SINGLE | ||
92 | help | 94 | help |
93 | Include support for Marvell MMP2 based platforms using | 95 | Include support for Marvell MMP2 based platforms using |
94 | the device tree. Needn't select any other machine while | 96 | the device tree. Needn't select any other machine while |
@@ -99,6 +101,8 @@ config MACH_MMP2_DT | |||
99 | depends on !CPU_MOHAWK | 101 | depends on !CPU_MOHAWK |
100 | select CPU_MMP2 | 102 | select CPU_MMP2 |
101 | select USE_OF | 103 | select USE_OF |
104 | select PINCTRL | ||
105 | select PINCTRL_SINGLE | ||
102 | help | 106 | help |
103 | Include support for Marvell MMP2 based platforms using | 107 | Include support for Marvell MMP2 based platforms using |
104 | the device tree. | 108 | the device tree. |
diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-omap1/board-fsample.c index e067f221f0f9..560a7dcf0a56 100644 --- a/arch/arm/mach-omap1/board-fsample.c +++ b/arch/arm/mach-omap1/board-fsample.c | |||
@@ -307,8 +307,7 @@ static void __init omap_fsample_init(void) | |||
307 | 307 | ||
308 | fsample_init_smc91x(); | 308 | fsample_init_smc91x(); |
309 | 309 | ||
310 | if (gpio_request(FSAMPLE_NAND_RB_GPIO_PIN, "NAND ready") < 0) | 310 | BUG_ON(gpio_request(FSAMPLE_NAND_RB_GPIO_PIN, "NAND ready") < 0); |
311 | BUG(); | ||
312 | gpio_direction_input(FSAMPLE_NAND_RB_GPIO_PIN); | 311 | gpio_direction_input(FSAMPLE_NAND_RB_GPIO_PIN); |
313 | 312 | ||
314 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); | 313 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); |
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c index 9134b646f01b..4953cf7a5123 100644 --- a/arch/arm/mach-omap1/board-h2.c +++ b/arch/arm/mach-omap1/board-h2.c | |||
@@ -412,8 +412,7 @@ static void __init h2_init(void) | |||
412 | 412 | ||
413 | h2_nand_resource.end = h2_nand_resource.start = OMAP_CS2B_PHYS; | 413 | h2_nand_resource.end = h2_nand_resource.start = OMAP_CS2B_PHYS; |
414 | h2_nand_resource.end += SZ_4K - 1; | 414 | h2_nand_resource.end += SZ_4K - 1; |
415 | if (gpio_request(H2_NAND_RB_GPIO_PIN, "NAND ready") < 0) | 415 | BUG_ON(gpio_request(H2_NAND_RB_GPIO_PIN, "NAND ready") < 0); |
416 | BUG(); | ||
417 | gpio_direction_input(H2_NAND_RB_GPIO_PIN); | 416 | gpio_direction_input(H2_NAND_RB_GPIO_PIN); |
418 | 417 | ||
419 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); | 418 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index bf213d1d8075..563ba167bb16 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
@@ -406,8 +406,7 @@ static void __init h3_init(void) | |||
406 | 406 | ||
407 | nand_resource.end = nand_resource.start = OMAP_CS2B_PHYS; | 407 | nand_resource.end = nand_resource.start = OMAP_CS2B_PHYS; |
408 | nand_resource.end += SZ_4K - 1; | 408 | nand_resource.end += SZ_4K - 1; |
409 | if (gpio_request(H3_NAND_RB_GPIO_PIN, "NAND ready") < 0) | 409 | BUG_ON(gpio_request(H3_NAND_RB_GPIO_PIN, "NAND ready") < 0); |
410 | BUG(); | ||
411 | gpio_direction_input(H3_NAND_RB_GPIO_PIN); | 410 | gpio_direction_input(H3_NAND_RB_GPIO_PIN); |
412 | 411 | ||
413 | /* GPIO10 Func_MUX_CTRL reg bit 29:27, Configure V2 to mode1 as GPIO */ | 412 | /* GPIO10 Func_MUX_CTRL reg bit 29:27, Configure V2 to mode1 as GPIO */ |
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c index 9a7e483ed6fd..27f8d12ec222 100644 --- a/arch/arm/mach-omap1/board-perseus2.c +++ b/arch/arm/mach-omap1/board-perseus2.c | |||
@@ -275,8 +275,7 @@ static void __init omap_perseus2_init(void) | |||
275 | 275 | ||
276 | perseus2_init_smc91x(); | 276 | perseus2_init_smc91x(); |
277 | 277 | ||
278 | if (gpio_request(P2_NAND_RB_GPIO_PIN, "NAND ready") < 0) | 278 | BUG_ON(gpio_request(P2_NAND_RB_GPIO_PIN, "NAND ready") < 0); |
279 | BUG(); | ||
280 | gpio_direction_input(P2_NAND_RB_GPIO_PIN); | 279 | gpio_direction_input(P2_NAND_RB_GPIO_PIN); |
281 | 280 | ||
282 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); | 281 | omap_cfg_reg(L3_1610_FLASH_CS2B_OE); |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index d669e227e00c..2265e5826883 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -270,14 +270,14 @@ config MACH_NOKIA_N8X0 | |||
270 | select OMAP_PACKAGE_ZAC | 270 | select OMAP_PACKAGE_ZAC |
271 | 271 | ||
272 | config MACH_NOKIA_RM680 | 272 | config MACH_NOKIA_RM680 |
273 | bool "Nokia RM-680/696 board" | 273 | bool "Nokia N950 (RM-680) / N9 (RM-696) phones" |
274 | depends on ARCH_OMAP3 | 274 | depends on ARCH_OMAP3 |
275 | default y | 275 | default y |
276 | select MACH_NOKIA_RM696 | 276 | select MACH_NOKIA_RM696 |
277 | select OMAP_PACKAGE_CBB | 277 | select OMAP_PACKAGE_CBB |
278 | 278 | ||
279 | config MACH_NOKIA_RX51 | 279 | config MACH_NOKIA_RX51 |
280 | bool "Nokia RX-51 board" | 280 | bool "Nokia N900 (RX-51) phone" |
281 | depends on ARCH_OMAP3 | 281 | depends on ARCH_OMAP3 |
282 | default y | 282 | default y |
283 | select OMAP_PACKAGE_CBB | 283 | select OMAP_PACKAGE_CBB |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 11c57af01a88..b455ffc12ebe 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -295,4 +295,4 @@ endif | |||
295 | emac-$(CONFIG_TI_DAVINCI_EMAC) := am35xx-emac.o | 295 | emac-$(CONFIG_TI_DAVINCI_EMAC) := am35xx-emac.o |
296 | obj-y += $(emac-m) $(emac-y) | 296 | obj-y += $(emac-m) $(emac-y) |
297 | 297 | ||
298 | obj-y += common-board-devices.o twl-common.o | 298 | obj-y += common-board-devices.o twl-common.o dss-common.o |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index 85dfa71e0dc6..1cc6696594fd 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -36,9 +36,6 @@ | |||
36 | 36 | ||
37 | #include "common.h" | 37 | #include "common.h" |
38 | #include "omap4-keypad.h" | 38 | #include "omap4-keypad.h" |
39 | #include <video/omapdss.h> | ||
40 | #include <video/omap-panel-nokia-dsi.h> | ||
41 | #include <video/omap-panel-picodlp.h> | ||
42 | #include <linux/wl12xx.h> | 39 | #include <linux/wl12xx.h> |
43 | #include <linux/platform_data/omap-abe-twl6040.h> | 40 | #include <linux/platform_data/omap-abe-twl6040.h> |
44 | 41 | ||
@@ -48,17 +45,13 @@ | |||
48 | #include "hsmmc.h" | 45 | #include "hsmmc.h" |
49 | #include "control.h" | 46 | #include "control.h" |
50 | #include "common-board-devices.h" | 47 | #include "common-board-devices.h" |
48 | #include "dss-common.h" | ||
51 | 49 | ||
52 | #define ETH_KS8851_IRQ 34 | 50 | #define ETH_KS8851_IRQ 34 |
53 | #define ETH_KS8851_POWER_ON 48 | 51 | #define ETH_KS8851_POWER_ON 48 |
54 | #define ETH_KS8851_QUART 138 | 52 | #define ETH_KS8851_QUART 138 |
55 | #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184 | 53 | #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184 |
56 | #define OMAP4_SFH7741_ENABLE_GPIO 188 | 54 | #define OMAP4_SFH7741_ENABLE_GPIO 188 |
57 | #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */ | ||
58 | #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ | ||
59 | #define HDMI_GPIO_HPD 63 /* Hotplug detect */ | ||
60 | #define DISPLAY_SEL_GPIO 59 /* LCD2/PicoDLP switch */ | ||
61 | #define DLP_POWER_ON_GPIO 40 | ||
62 | 55 | ||
63 | #define GPIO_WIFI_PMENA 54 | 56 | #define GPIO_WIFI_PMENA 54 |
64 | #define GPIO_WIFI_IRQ 53 | 57 | #define GPIO_WIFI_IRQ 53 |
@@ -607,154 +600,6 @@ static void __init omap_sfh7741prox_init(void) | |||
607 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); | 600 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); |
608 | } | 601 | } |
609 | 602 | ||
610 | static struct nokia_dsi_panel_data dsi1_panel = { | ||
611 | .name = "taal", | ||
612 | .reset_gpio = 102, | ||
613 | .use_ext_te = false, | ||
614 | .ext_te_gpio = 101, | ||
615 | .esd_interval = 0, | ||
616 | .pin_config = { | ||
617 | .num_pins = 6, | ||
618 | .pins = { 0, 1, 2, 3, 4, 5 }, | ||
619 | }, | ||
620 | }; | ||
621 | |||
622 | static struct omap_dss_device sdp4430_lcd_device = { | ||
623 | .name = "lcd", | ||
624 | .driver_name = "taal", | ||
625 | .type = OMAP_DISPLAY_TYPE_DSI, | ||
626 | .data = &dsi1_panel, | ||
627 | .phy.dsi = { | ||
628 | .module = 0, | ||
629 | }, | ||
630 | .channel = OMAP_DSS_CHANNEL_LCD, | ||
631 | }; | ||
632 | |||
633 | static struct nokia_dsi_panel_data dsi2_panel = { | ||
634 | .name = "taal", | ||
635 | .reset_gpio = 104, | ||
636 | .use_ext_te = false, | ||
637 | .ext_te_gpio = 103, | ||
638 | .esd_interval = 0, | ||
639 | .pin_config = { | ||
640 | .num_pins = 6, | ||
641 | .pins = { 0, 1, 2, 3, 4, 5 }, | ||
642 | }, | ||
643 | }; | ||
644 | |||
645 | static struct omap_dss_device sdp4430_lcd2_device = { | ||
646 | .name = "lcd2", | ||
647 | .driver_name = "taal", | ||
648 | .type = OMAP_DISPLAY_TYPE_DSI, | ||
649 | .data = &dsi2_panel, | ||
650 | .phy.dsi = { | ||
651 | |||
652 | .module = 1, | ||
653 | }, | ||
654 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
655 | }; | ||
656 | |||
657 | static struct omap_dss_hdmi_data sdp4430_hdmi_data = { | ||
658 | .ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD, | ||
659 | .ls_oe_gpio = HDMI_GPIO_LS_OE, | ||
660 | .hpd_gpio = HDMI_GPIO_HPD, | ||
661 | }; | ||
662 | |||
663 | static struct omap_dss_device sdp4430_hdmi_device = { | ||
664 | .name = "hdmi", | ||
665 | .driver_name = "hdmi_panel", | ||
666 | .type = OMAP_DISPLAY_TYPE_HDMI, | ||
667 | .channel = OMAP_DSS_CHANNEL_DIGIT, | ||
668 | .data = &sdp4430_hdmi_data, | ||
669 | }; | ||
670 | |||
671 | static struct picodlp_panel_data sdp4430_picodlp_pdata = { | ||
672 | .picodlp_adapter_id = 2, | ||
673 | .emu_done_gpio = 44, | ||
674 | .pwrgood_gpio = 45, | ||
675 | }; | ||
676 | |||
677 | static void sdp4430_picodlp_init(void) | ||
678 | { | ||
679 | int r; | ||
680 | const struct gpio picodlp_gpios[] = { | ||
681 | {DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW, | ||
682 | "DLP POWER ON"}, | ||
683 | {sdp4430_picodlp_pdata.emu_done_gpio, GPIOF_IN, | ||
684 | "DLP EMU DONE"}, | ||
685 | {sdp4430_picodlp_pdata.pwrgood_gpio, GPIOF_OUT_INIT_LOW, | ||
686 | "DLP PWRGOOD"}, | ||
687 | }; | ||
688 | |||
689 | r = gpio_request_array(picodlp_gpios, ARRAY_SIZE(picodlp_gpios)); | ||
690 | if (r) | ||
691 | pr_err("Cannot request PicoDLP GPIOs, error %d\n", r); | ||
692 | } | ||
693 | |||
694 | static int sdp4430_panel_enable_picodlp(struct omap_dss_device *dssdev) | ||
695 | { | ||
696 | gpio_set_value(DISPLAY_SEL_GPIO, 0); | ||
697 | gpio_set_value(DLP_POWER_ON_GPIO, 1); | ||
698 | |||
699 | return 0; | ||
700 | } | ||
701 | |||
702 | static void sdp4430_panel_disable_picodlp(struct omap_dss_device *dssdev) | ||
703 | { | ||
704 | gpio_set_value(DLP_POWER_ON_GPIO, 0); | ||
705 | gpio_set_value(DISPLAY_SEL_GPIO, 1); | ||
706 | } | ||
707 | |||
708 | static struct omap_dss_device sdp4430_picodlp_device = { | ||
709 | .name = "picodlp", | ||
710 | .driver_name = "picodlp_panel", | ||
711 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
712 | .phy.dpi.data_lines = 24, | ||
713 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
714 | .platform_enable = sdp4430_panel_enable_picodlp, | ||
715 | .platform_disable = sdp4430_panel_disable_picodlp, | ||
716 | .data = &sdp4430_picodlp_pdata, | ||
717 | }; | ||
718 | |||
719 | static struct omap_dss_device *sdp4430_dss_devices[] = { | ||
720 | &sdp4430_lcd_device, | ||
721 | &sdp4430_lcd2_device, | ||
722 | &sdp4430_hdmi_device, | ||
723 | &sdp4430_picodlp_device, | ||
724 | }; | ||
725 | |||
726 | static struct omap_dss_board_info sdp4430_dss_data = { | ||
727 | .num_devices = ARRAY_SIZE(sdp4430_dss_devices), | ||
728 | .devices = sdp4430_dss_devices, | ||
729 | .default_device = &sdp4430_lcd_device, | ||
730 | }; | ||
731 | |||
732 | static void __init omap_4430sdp_display_init(void) | ||
733 | { | ||
734 | int r; | ||
735 | |||
736 | /* Enable LCD2 by default (instead of Pico DLP) */ | ||
737 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, | ||
738 | "display_sel"); | ||
739 | if (r) | ||
740 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | ||
741 | |||
742 | sdp4430_picodlp_init(); | ||
743 | omap_display_init(&sdp4430_dss_data); | ||
744 | /* | ||
745 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
746 | * later have external pull up on the HDMI I2C lines | ||
747 | */ | ||
748 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
749 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
750 | else | ||
751 | omap_hdmi_init(0); | ||
752 | |||
753 | omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT); | ||
754 | omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT); | ||
755 | omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN); | ||
756 | } | ||
757 | |||
758 | #ifdef CONFIG_OMAP_MUX | 603 | #ifdef CONFIG_OMAP_MUX |
759 | static struct omap_board_mux board_mux[] __initdata = { | 604 | static struct omap_board_mux board_mux[] __initdata = { |
760 | OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | 605 | OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index f0715a369c44..53cb380b7877 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -21,6 +21,7 @@ | |||
21 | 21 | ||
22 | #include "common.h" | 22 | #include "common.h" |
23 | #include "common-board-devices.h" | 23 | #include "common-board-devices.h" |
24 | #include "dss-common.h" | ||
24 | 25 | ||
25 | #if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)) | 26 | #if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)) |
26 | #define intc_of_init NULL | 27 | #define intc_of_init NULL |
@@ -40,6 +41,15 @@ static void __init omap_generic_init(void) | |||
40 | omap_sdrc_init(NULL, NULL); | 41 | omap_sdrc_init(NULL, NULL); |
41 | 42 | ||
42 | of_platform_populate(NULL, omap_dt_match_table, NULL, NULL); | 43 | of_platform_populate(NULL, omap_dt_match_table, NULL, NULL); |
44 | |||
45 | /* | ||
46 | * HACK: call display setup code for selected boards to enable omapdss. | ||
47 | * This will be removed when omapdss supports DT. | ||
48 | */ | ||
49 | if (of_machine_is_compatible("ti,omap4-panda")) | ||
50 | omap4_panda_display_init_of(); | ||
51 | else if (of_machine_is_compatible("ti,omap4-sdp")) | ||
52 | omap_4430sdp_display_init_of(); | ||
43 | } | 53 | } |
44 | 54 | ||
45 | #ifdef CONFIG_SOC_OMAP2420 | 55 | #ifdef CONFIG_SOC_OMAP2420 |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 12a3a24d5bb5..5c8e9cee2c2e 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -37,9 +37,6 @@ | |||
37 | #include <asm/mach-types.h> | 37 | #include <asm/mach-types.h> |
38 | #include <asm/mach/arch.h> | 38 | #include <asm/mach/arch.h> |
39 | #include <asm/mach/map.h> | 39 | #include <asm/mach/map.h> |
40 | #include <video/omapdss.h> | ||
41 | |||
42 | #include <video/omap-panel-tfp410.h> | ||
43 | 40 | ||
44 | #include "common.h" | 41 | #include "common.h" |
45 | #include "soc.h" | 42 | #include "soc.h" |
@@ -48,14 +45,12 @@ | |||
48 | #include "control.h" | 45 | #include "control.h" |
49 | #include "mux.h" | 46 | #include "mux.h" |
50 | #include "common-board-devices.h" | 47 | #include "common-board-devices.h" |
48 | #include "dss-common.h" | ||
51 | 49 | ||
52 | #define GPIO_HUB_POWER 1 | 50 | #define GPIO_HUB_POWER 1 |
53 | #define GPIO_HUB_NRESET 62 | 51 | #define GPIO_HUB_NRESET 62 |
54 | #define GPIO_WIFI_PMENA 43 | 52 | #define GPIO_WIFI_PMENA 43 |
55 | #define GPIO_WIFI_IRQ 53 | 53 | #define GPIO_WIFI_IRQ 53 |
56 | #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */ | ||
57 | #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ | ||
58 | #define HDMI_GPIO_HPD 63 /* Hotplug detect */ | ||
59 | 54 | ||
60 | /* wl127x BT, FM, GPS connectivity chip */ | 55 | /* wl127x BT, FM, GPS connectivity chip */ |
61 | static struct ti_st_plat_data wilink_platform_data = { | 56 | static struct ti_st_plat_data wilink_platform_data = { |
@@ -409,68 +404,6 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
409 | #define board_mux NULL | 404 | #define board_mux NULL |
410 | #endif | 405 | #endif |
411 | 406 | ||
412 | /* Display DVI */ | ||
413 | #define PANDA_DVI_TFP410_POWER_DOWN_GPIO 0 | ||
414 | |||
415 | /* Using generic display panel */ | ||
416 | static struct tfp410_platform_data omap4_dvi_panel = { | ||
417 | .i2c_bus_num = 3, | ||
418 | .power_down_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
419 | }; | ||
420 | |||
421 | static struct omap_dss_device omap4_panda_dvi_device = { | ||
422 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
423 | .name = "dvi", | ||
424 | .driver_name = "tfp410", | ||
425 | .data = &omap4_dvi_panel, | ||
426 | .phy.dpi.data_lines = 24, | ||
427 | .reset_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
428 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
429 | }; | ||
430 | |||
431 | static struct omap_dss_hdmi_data omap4_panda_hdmi_data = { | ||
432 | .ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD, | ||
433 | .ls_oe_gpio = HDMI_GPIO_LS_OE, | ||
434 | .hpd_gpio = HDMI_GPIO_HPD, | ||
435 | }; | ||
436 | |||
437 | static struct omap_dss_device omap4_panda_hdmi_device = { | ||
438 | .name = "hdmi", | ||
439 | .driver_name = "hdmi_panel", | ||
440 | .type = OMAP_DISPLAY_TYPE_HDMI, | ||
441 | .channel = OMAP_DSS_CHANNEL_DIGIT, | ||
442 | .data = &omap4_panda_hdmi_data, | ||
443 | }; | ||
444 | |||
445 | static struct omap_dss_device *omap4_panda_dss_devices[] = { | ||
446 | &omap4_panda_dvi_device, | ||
447 | &omap4_panda_hdmi_device, | ||
448 | }; | ||
449 | |||
450 | static struct omap_dss_board_info omap4_panda_dss_data = { | ||
451 | .num_devices = ARRAY_SIZE(omap4_panda_dss_devices), | ||
452 | .devices = omap4_panda_dss_devices, | ||
453 | .default_device = &omap4_panda_dvi_device, | ||
454 | }; | ||
455 | |||
456 | static void __init omap4_panda_display_init(void) | ||
457 | { | ||
458 | |||
459 | omap_display_init(&omap4_panda_dss_data); | ||
460 | |||
461 | /* | ||
462 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
463 | * later have external pull up on the HDMI I2C lines | ||
464 | */ | ||
465 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
466 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
467 | else | ||
468 | omap_hdmi_init(0); | ||
469 | |||
470 | omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT); | ||
471 | omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT); | ||
472 | omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN); | ||
473 | } | ||
474 | 407 | ||
475 | static void omap4_panda_init_rev(void) | 408 | static void omap4_panda_init_rev(void) |
476 | { | 409 | { |
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c index cbcb1b2dc31f..0c777b75e484 100644 --- a/arch/arm/mach-omap2/board-rm680.c +++ b/arch/arm/mach-omap2/board-rm680.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Board support file for Nokia RM-680/696. | 2 | * Board support file for Nokia N950 (RM-680) / N9 (RM-696). |
3 | * | 3 | * |
4 | * Copyright (C) 2010 Nokia | 4 | * Copyright (C) 2010 Nokia |
5 | * | 5 | * |
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c index bf8f74b0ce3e..b67fe11d0d94 100644 --- a/arch/arm/mach-omap2/board-rx51.c +++ b/arch/arm/mach-omap2/board-rx51.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/mach-omap2/board-rx51.c | 2 | * Board support file for Nokia N900 (aka RX-51). |
3 | * | 3 | * |
4 | * Copyright (C) 2007, 2008 Nokia | 4 | * Copyright (C) 2007, 2008 Nokia |
5 | * | 5 | * |
diff --git a/arch/arm/mach-omap2/dss-common.c b/arch/arm/mach-omap2/dss-common.c new file mode 100644 index 000000000000..679a0478644f --- /dev/null +++ b/arch/arm/mach-omap2/dss-common.c | |||
@@ -0,0 +1,276 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Texas Instruments, Inc.. | ||
3 | * Author: Tomi Valkeinen <tomi.valkeinen@ti.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * version 2 as published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, but | ||
10 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | * General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
17 | * 02110-1301 USA | ||
18 | * | ||
19 | */ | ||
20 | |||
21 | /* | ||
22 | * NOTE: this is a transitional file to help with DT adaptation. | ||
23 | * This file will be removed when DSS supports DT. | ||
24 | */ | ||
25 | |||
26 | #include <linux/kernel.h> | ||
27 | #include <linux/gpio.h> | ||
28 | |||
29 | #include <video/omapdss.h> | ||
30 | #include <video/omap-panel-tfp410.h> | ||
31 | #include <video/omap-panel-nokia-dsi.h> | ||
32 | #include <video/omap-panel-picodlp.h> | ||
33 | |||
34 | #include <plat/cpu.h> | ||
35 | |||
36 | #include "dss-common.h" | ||
37 | #include "mux.h" | ||
38 | |||
39 | #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */ | ||
40 | #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ | ||
41 | #define HDMI_GPIO_HPD 63 /* Hotplug detect */ | ||
42 | |||
43 | /* Display DVI */ | ||
44 | #define PANDA_DVI_TFP410_POWER_DOWN_GPIO 0 | ||
45 | |||
46 | /* Using generic display panel */ | ||
47 | static struct tfp410_platform_data omap4_dvi_panel = { | ||
48 | .i2c_bus_num = 3, | ||
49 | .power_down_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
50 | }; | ||
51 | |||
52 | static struct omap_dss_device omap4_panda_dvi_device = { | ||
53 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
54 | .name = "dvi", | ||
55 | .driver_name = "tfp410", | ||
56 | .data = &omap4_dvi_panel, | ||
57 | .phy.dpi.data_lines = 24, | ||
58 | .reset_gpio = PANDA_DVI_TFP410_POWER_DOWN_GPIO, | ||
59 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
60 | }; | ||
61 | |||
62 | static struct omap_dss_hdmi_data omap4_panda_hdmi_data = { | ||
63 | .ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD, | ||
64 | .ls_oe_gpio = HDMI_GPIO_LS_OE, | ||
65 | .hpd_gpio = HDMI_GPIO_HPD, | ||
66 | }; | ||
67 | |||
68 | static struct omap_dss_device omap4_panda_hdmi_device = { | ||
69 | .name = "hdmi", | ||
70 | .driver_name = "hdmi_panel", | ||
71 | .type = OMAP_DISPLAY_TYPE_HDMI, | ||
72 | .channel = OMAP_DSS_CHANNEL_DIGIT, | ||
73 | .data = &omap4_panda_hdmi_data, | ||
74 | }; | ||
75 | |||
76 | static struct omap_dss_device *omap4_panda_dss_devices[] = { | ||
77 | &omap4_panda_dvi_device, | ||
78 | &omap4_panda_hdmi_device, | ||
79 | }; | ||
80 | |||
81 | static struct omap_dss_board_info omap4_panda_dss_data = { | ||
82 | .num_devices = ARRAY_SIZE(omap4_panda_dss_devices), | ||
83 | .devices = omap4_panda_dss_devices, | ||
84 | .default_device = &omap4_panda_dvi_device, | ||
85 | }; | ||
86 | |||
87 | void __init omap4_panda_display_init(void) | ||
88 | { | ||
89 | omap_display_init(&omap4_panda_dss_data); | ||
90 | |||
91 | /* | ||
92 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
93 | * later have external pull up on the HDMI I2C lines | ||
94 | */ | ||
95 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
96 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
97 | else | ||
98 | omap_hdmi_init(0); | ||
99 | |||
100 | omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT); | ||
101 | omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT); | ||
102 | omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN); | ||
103 | } | ||
104 | |||
105 | void __init omap4_panda_display_init_of(void) | ||
106 | { | ||
107 | omap_display_init(&omap4_panda_dss_data); | ||
108 | } | ||
109 | |||
110 | |||
111 | /* OMAP4 Blaze display data */ | ||
112 | |||
113 | #define DISPLAY_SEL_GPIO 59 /* LCD2/PicoDLP switch */ | ||
114 | #define DLP_POWER_ON_GPIO 40 | ||
115 | |||
116 | static struct nokia_dsi_panel_data dsi1_panel = { | ||
117 | .name = "taal", | ||
118 | .reset_gpio = 102, | ||
119 | .use_ext_te = false, | ||
120 | .ext_te_gpio = 101, | ||
121 | .esd_interval = 0, | ||
122 | .pin_config = { | ||
123 | .num_pins = 6, | ||
124 | .pins = { 0, 1, 2, 3, 4, 5 }, | ||
125 | }, | ||
126 | }; | ||
127 | |||
128 | static struct omap_dss_device sdp4430_lcd_device = { | ||
129 | .name = "lcd", | ||
130 | .driver_name = "taal", | ||
131 | .type = OMAP_DISPLAY_TYPE_DSI, | ||
132 | .data = &dsi1_panel, | ||
133 | .phy.dsi = { | ||
134 | .module = 0, | ||
135 | }, | ||
136 | .channel = OMAP_DSS_CHANNEL_LCD, | ||
137 | }; | ||
138 | |||
139 | static struct nokia_dsi_panel_data dsi2_panel = { | ||
140 | .name = "taal", | ||
141 | .reset_gpio = 104, | ||
142 | .use_ext_te = false, | ||
143 | .ext_te_gpio = 103, | ||
144 | .esd_interval = 0, | ||
145 | .pin_config = { | ||
146 | .num_pins = 6, | ||
147 | .pins = { 0, 1, 2, 3, 4, 5 }, | ||
148 | }, | ||
149 | }; | ||
150 | |||
151 | static struct omap_dss_device sdp4430_lcd2_device = { | ||
152 | .name = "lcd2", | ||
153 | .driver_name = "taal", | ||
154 | .type = OMAP_DISPLAY_TYPE_DSI, | ||
155 | .data = &dsi2_panel, | ||
156 | .phy.dsi = { | ||
157 | |||
158 | .module = 1, | ||
159 | }, | ||
160 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
161 | }; | ||
162 | |||
163 | static struct omap_dss_hdmi_data sdp4430_hdmi_data = { | ||
164 | .ct_cp_hpd_gpio = HDMI_GPIO_CT_CP_HPD, | ||
165 | .ls_oe_gpio = HDMI_GPIO_LS_OE, | ||
166 | .hpd_gpio = HDMI_GPIO_HPD, | ||
167 | }; | ||
168 | |||
169 | static struct omap_dss_device sdp4430_hdmi_device = { | ||
170 | .name = "hdmi", | ||
171 | .driver_name = "hdmi_panel", | ||
172 | .type = OMAP_DISPLAY_TYPE_HDMI, | ||
173 | .channel = OMAP_DSS_CHANNEL_DIGIT, | ||
174 | .data = &sdp4430_hdmi_data, | ||
175 | }; | ||
176 | |||
177 | static struct picodlp_panel_data sdp4430_picodlp_pdata = { | ||
178 | .picodlp_adapter_id = 2, | ||
179 | .emu_done_gpio = 44, | ||
180 | .pwrgood_gpio = 45, | ||
181 | }; | ||
182 | |||
183 | static void sdp4430_picodlp_init(void) | ||
184 | { | ||
185 | int r; | ||
186 | const struct gpio picodlp_gpios[] = { | ||
187 | {DLP_POWER_ON_GPIO, GPIOF_OUT_INIT_LOW, | ||
188 | "DLP POWER ON"}, | ||
189 | {sdp4430_picodlp_pdata.emu_done_gpio, GPIOF_IN, | ||
190 | "DLP EMU DONE"}, | ||
191 | {sdp4430_picodlp_pdata.pwrgood_gpio, GPIOF_OUT_INIT_LOW, | ||
192 | "DLP PWRGOOD"}, | ||
193 | }; | ||
194 | |||
195 | r = gpio_request_array(picodlp_gpios, ARRAY_SIZE(picodlp_gpios)); | ||
196 | if (r) | ||
197 | pr_err("Cannot request PicoDLP GPIOs, error %d\n", r); | ||
198 | } | ||
199 | |||
200 | static int sdp4430_panel_enable_picodlp(struct omap_dss_device *dssdev) | ||
201 | { | ||
202 | gpio_set_value(DISPLAY_SEL_GPIO, 0); | ||
203 | gpio_set_value(DLP_POWER_ON_GPIO, 1); | ||
204 | |||
205 | return 0; | ||
206 | } | ||
207 | |||
208 | static void sdp4430_panel_disable_picodlp(struct omap_dss_device *dssdev) | ||
209 | { | ||
210 | gpio_set_value(DLP_POWER_ON_GPIO, 0); | ||
211 | gpio_set_value(DISPLAY_SEL_GPIO, 1); | ||
212 | } | ||
213 | |||
214 | static struct omap_dss_device sdp4430_picodlp_device = { | ||
215 | .name = "picodlp", | ||
216 | .driver_name = "picodlp_panel", | ||
217 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
218 | .phy.dpi.data_lines = 24, | ||
219 | .channel = OMAP_DSS_CHANNEL_LCD2, | ||
220 | .platform_enable = sdp4430_panel_enable_picodlp, | ||
221 | .platform_disable = sdp4430_panel_disable_picodlp, | ||
222 | .data = &sdp4430_picodlp_pdata, | ||
223 | }; | ||
224 | |||
225 | static struct omap_dss_device *sdp4430_dss_devices[] = { | ||
226 | &sdp4430_lcd_device, | ||
227 | &sdp4430_lcd2_device, | ||
228 | &sdp4430_hdmi_device, | ||
229 | &sdp4430_picodlp_device, | ||
230 | }; | ||
231 | |||
232 | static struct omap_dss_board_info sdp4430_dss_data = { | ||
233 | .num_devices = ARRAY_SIZE(sdp4430_dss_devices), | ||
234 | .devices = sdp4430_dss_devices, | ||
235 | .default_device = &sdp4430_lcd_device, | ||
236 | }; | ||
237 | |||
238 | void __init omap_4430sdp_display_init(void) | ||
239 | { | ||
240 | int r; | ||
241 | |||
242 | /* Enable LCD2 by default (instead of Pico DLP) */ | ||
243 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, | ||
244 | "display_sel"); | ||
245 | if (r) | ||
246 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | ||
247 | |||
248 | sdp4430_picodlp_init(); | ||
249 | omap_display_init(&sdp4430_dss_data); | ||
250 | /* | ||
251 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
252 | * later have external pull up on the HDMI I2C lines | ||
253 | */ | ||
254 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
255 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
256 | else | ||
257 | omap_hdmi_init(0); | ||
258 | |||
259 | omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT); | ||
260 | omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT); | ||
261 | omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN); | ||
262 | } | ||
263 | |||
264 | void __init omap_4430sdp_display_init_of(void) | ||
265 | { | ||
266 | int r; | ||
267 | |||
268 | /* Enable LCD2 by default (instead of Pico DLP) */ | ||
269 | r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, | ||
270 | "display_sel"); | ||
271 | if (r) | ||
272 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | ||
273 | |||
274 | sdp4430_picodlp_init(); | ||
275 | omap_display_init(&sdp4430_dss_data); | ||
276 | } | ||
diff --git a/arch/arm/mach-omap2/dss-common.h b/arch/arm/mach-omap2/dss-common.h new file mode 100644 index 000000000000..915f6fff5106 --- /dev/null +++ b/arch/arm/mach-omap2/dss-common.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef __OMAP_DSS_COMMON__ | ||
2 | #define __OMAP_DSS_COMMON__ | ||
3 | |||
4 | /* | ||
5 | * NOTE: this is a transitional file to help with DT adaptation. | ||
6 | * This file will be removed when DSS supports DT. | ||
7 | */ | ||
8 | |||
9 | void __init omap4_panda_display_init(void); | ||
10 | void __init omap4_panda_display_init_of(void); | ||
11 | void __init omap_4430sdp_display_init(void); | ||
12 | void __init omap_4430sdp_display_init_of(void); | ||
13 | |||
14 | #endif | ||
diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig index 0673f0c10432..2cb2f06c20f5 100644 --- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig | |||
@@ -2,6 +2,13 @@ if ARCH_ORION5X | |||
2 | 2 | ||
3 | menu "Orion Implementations" | 3 | menu "Orion Implementations" |
4 | 4 | ||
5 | config ARCH_ORION5X_DT | ||
6 | bool "Marvell Orion5x Flattened Device Tree" | ||
7 | select USE_OF | ||
8 | help | ||
9 | Say 'Y' here if you want your kernel to support the | ||
10 | Marvell Orion5x using flattened device tree. | ||
11 | |||
5 | config MACH_DB88F5281 | 12 | config MACH_DB88F5281 |
6 | bool "Marvell Orion-2 Development Board" | 13 | bool "Marvell Orion-2 Development Board" |
7 | select I2C_BOARDINFO | 14 | select I2C_BOARDINFO |
@@ -96,12 +103,13 @@ config MACH_MV2120 | |||
96 | Say 'Y' here if you want your kernel to support the | 103 | Say 'Y' here if you want your kernel to support the |
97 | HP Media Vault mv2120 or mv5100. | 104 | HP Media Vault mv2120 or mv5100. |
98 | 105 | ||
99 | config MACH_EDMINI_V2 | 106 | config MACH_EDMINI_V2_DT |
100 | bool "LaCie Ethernet Disk mini V2" | 107 | bool "LaCie Ethernet Disk mini V2 (Flattened Device Tree)" |
101 | select I2C_BOARDINFO | 108 | select I2C_BOARDINFO |
109 | select ARCH_ORION5X_DT | ||
102 | help | 110 | help |
103 | Say 'Y' here if you want your kernel to support the | 111 | Say 'Y' here if you want your kernel to support the |
104 | LaCie Ethernet Disk mini V2. | 112 | LaCie Ethernet Disk mini V2 (Flattened Device Tree). |
105 | 113 | ||
106 | config MACH_D2NET | 114 | config MACH_D2NET |
107 | bool "LaCie d2 Network" | 115 | bool "LaCie d2 Network" |
diff --git a/arch/arm/mach-orion5x/Makefile b/arch/arm/mach-orion5x/Makefile index 7f18cdacd487..9e809a7c05c0 100644 --- a/arch/arm/mach-orion5x/Makefile +++ b/arch/arm/mach-orion5x/Makefile | |||
@@ -12,7 +12,6 @@ obj-$(CONFIG_MACH_TS409) += ts409-setup.o tsx09-common.o | |||
12 | obj-$(CONFIG_MACH_WRT350N_V2) += wrt350n-v2-setup.o | 12 | obj-$(CONFIG_MACH_WRT350N_V2) += wrt350n-v2-setup.o |
13 | obj-$(CONFIG_MACH_TS78XX) += ts78xx-setup.o | 13 | obj-$(CONFIG_MACH_TS78XX) += ts78xx-setup.o |
14 | obj-$(CONFIG_MACH_MV2120) += mv2120-setup.o | 14 | obj-$(CONFIG_MACH_MV2120) += mv2120-setup.o |
15 | obj-$(CONFIG_MACH_EDMINI_V2) += edmini_v2-setup.o | ||
16 | obj-$(CONFIG_MACH_D2NET) += d2net-setup.o | 15 | obj-$(CONFIG_MACH_D2NET) += d2net-setup.o |
17 | obj-$(CONFIG_MACH_BIGDISK) += d2net-setup.o | 16 | obj-$(CONFIG_MACH_BIGDISK) += d2net-setup.o |
18 | obj-$(CONFIG_MACH_NET2BIG) += net2big-setup.o | 17 | obj-$(CONFIG_MACH_NET2BIG) += net2big-setup.o |
@@ -22,3 +21,6 @@ obj-$(CONFIG_MACH_RD88F5181L_GE) += rd88f5181l-ge-setup.o | |||
22 | obj-$(CONFIG_MACH_RD88F5181L_FXO) += rd88f5181l-fxo-setup.o | 21 | obj-$(CONFIG_MACH_RD88F5181L_FXO) += rd88f5181l-fxo-setup.o |
23 | obj-$(CONFIG_MACH_RD88F6183AP_GE) += rd88f6183ap-ge-setup.o | 22 | obj-$(CONFIG_MACH_RD88F6183AP_GE) += rd88f6183ap-ge-setup.o |
24 | obj-$(CONFIG_MACH_LINKSTATION_LSCHL) += ls-chl-setup.o | 23 | obj-$(CONFIG_MACH_LINKSTATION_LSCHL) += ls-chl-setup.o |
24 | |||
25 | obj-$(CONFIG_ARCH_ORION5X_DT) += board-dt.o | ||
26 | obj-$(CONFIG_MACH_EDMINI_V2_DT) += edmini_v2-setup.o | ||
diff --git a/arch/arm/mach-orion5x/board-dt.c b/arch/arm/mach-orion5x/board-dt.c new file mode 100644 index 000000000000..32e5c211a89b --- /dev/null +++ b/arch/arm/mach-orion5x/board-dt.c | |||
@@ -0,0 +1,79 @@ | |||
1 | /* | ||
2 | * Copyright 2012 (C), Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
3 | * | ||
4 | * arch/arm/mach-orion5x/board-dt.c | ||
5 | * | ||
6 | * Flattened Device Tree board initialization | ||
7 | * | ||
8 | * This file is licensed under the terms of the GNU General Public | ||
9 | * License version 2. This program is licensed "as is" without any | ||
10 | * warranty of any kind, whether express or implied. | ||
11 | */ | ||
12 | |||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/of.h> | ||
16 | #include <linux/of_platform.h> | ||
17 | #include <asm/system_misc.h> | ||
18 | #include <asm/mach/arch.h> | ||
19 | #include <mach/orion5x.h> | ||
20 | #include <plat/irq.h> | ||
21 | #include "common.h" | ||
22 | |||
23 | struct of_dev_auxdata orion5x_auxdata_lookup[] __initdata = { | ||
24 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), | ||
25 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", | ||
26 | NULL), | ||
27 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), | ||
28 | OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), | ||
29 | OF_DEV_AUXDATA("marvell,orion-crypto", 0xf1090000, "mv_crypto", NULL), | ||
30 | {}, | ||
31 | }; | ||
32 | |||
33 | static void __init orion5x_dt_init(void) | ||
34 | { | ||
35 | char *dev_name; | ||
36 | u32 dev, rev; | ||
37 | |||
38 | orion5x_id(&dev, &rev, &dev_name); | ||
39 | printk(KERN_INFO "Orion ID: %s. TCLK=%d.\n", dev_name, orion5x_tclk); | ||
40 | |||
41 | /* | ||
42 | * Setup Orion address map | ||
43 | */ | ||
44 | orion5x_setup_cpu_mbus_bridge(); | ||
45 | |||
46 | /* Setup root of clk tree */ | ||
47 | clk_init(); | ||
48 | |||
49 | /* | ||
50 | * Don't issue "Wait for Interrupt" instruction if we are | ||
51 | * running on D0 5281 silicon. | ||
52 | */ | ||
53 | if (dev == MV88F5281_DEV_ID && rev == MV88F5281_REV_D0) { | ||
54 | printk(KERN_INFO "Orion: Applying 5281 D0 WFI workaround.\n"); | ||
55 | disable_hlt(); | ||
56 | } | ||
57 | |||
58 | if (of_machine_is_compatible("lacie,ethernet-disk-mini-v2")) | ||
59 | edmini_v2_init(); | ||
60 | |||
61 | of_platform_populate(NULL, of_default_bus_match_table, | ||
62 | orion5x_auxdata_lookup, NULL); | ||
63 | } | ||
64 | |||
65 | static const char *orion5x_dt_compat[] = { | ||
66 | "marvell,orion5x", | ||
67 | NULL, | ||
68 | }; | ||
69 | |||
70 | DT_MACHINE_START(ORION5X_DT, "Marvell Orion5x (Flattened Device Tree)") | ||
71 | /* Maintainer: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> */ | ||
72 | .map_io = orion5x_map_io, | ||
73 | .init_early = orion5x_init_early, | ||
74 | .init_irq = orion_dt_init_irq, | ||
75 | .timer = &orion5x_timer, | ||
76 | .init_machine = orion5x_dt_init, | ||
77 | .restart = orion5x_restart, | ||
78 | .dt_compat = orion5x_dt_compat, | ||
79 | MACHINE_END | ||
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index b3eb3da01160..550f92320afb 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
@@ -65,7 +65,7 @@ void __init orion5x_map_io(void) | |||
65 | ****************************************************************************/ | 65 | ****************************************************************************/ |
66 | static struct clk *tclk; | 66 | static struct clk *tclk; |
67 | 67 | ||
68 | static void __init clk_init(void) | 68 | void __init clk_init(void) |
69 | { | 69 | { |
70 | tclk = clk_register_fixed_rate(NULL, "tclk", NULL, CLK_IS_ROOT, | 70 | tclk = clk_register_fixed_rate(NULL, "tclk", NULL, CLK_IS_ROOT, |
71 | orion5x_tclk); | 71 | orion5x_tclk); |
@@ -236,7 +236,7 @@ struct sys_timer orion5x_timer = { | |||
236 | /* | 236 | /* |
237 | * Identify device ID and rev from PCIe configuration header space '0'. | 237 | * Identify device ID and rev from PCIe configuration header space '0'. |
238 | */ | 238 | */ |
239 | static void __init orion5x_id(u32 *dev, u32 *rev, char **dev_name) | 239 | void __init orion5x_id(u32 *dev, u32 *rev, char **dev_name) |
240 | { | 240 | { |
241 | orion5x_pcie_id(dev, rev); | 241 | orion5x_pcie_id(dev, rev); |
242 | 242 | ||
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h index 31bab92ce038..7db5cdd9c4b7 100644 --- a/arch/arm/mach-orion5x/common.h +++ b/arch/arm/mach-orion5x/common.h | |||
@@ -12,6 +12,8 @@ void orion5x_map_io(void); | |||
12 | void orion5x_init_early(void); | 12 | void orion5x_init_early(void); |
13 | void orion5x_init_irq(void); | 13 | void orion5x_init_irq(void); |
14 | void orion5x_init(void); | 14 | void orion5x_init(void); |
15 | void orion5x_id(u32 *dev, u32 *rev, char **dev_name); | ||
16 | void clk_init(void); | ||
15 | extern int orion5x_tclk; | 17 | extern int orion5x_tclk; |
16 | extern struct sys_timer orion5x_timer; | 18 | extern struct sys_timer orion5x_timer; |
17 | 19 | ||
@@ -54,6 +56,13 @@ int orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys); | |||
54 | struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys); | 56 | struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys); |
55 | int orion5x_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin); | 57 | int orion5x_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin); |
56 | 58 | ||
59 | /* board init functions for boards not fully converted to fdt */ | ||
60 | #ifdef CONFIG_MACH_EDMINI_V2_DT | ||
61 | void edmini_v2_init(void); | ||
62 | #else | ||
63 | static inline void edmini_v2_init(void) {}; | ||
64 | #endif | ||
65 | |||
57 | struct meminfo; | 66 | struct meminfo; |
58 | struct tag; | 67 | struct tag; |
59 | extern void __init tag_fixup_mem32(struct tag *, char **, struct meminfo *); | 68 | extern void __init tag_fixup_mem32(struct tag *, char **, struct meminfo *); |
diff --git a/arch/arm/mach-orion5x/edmini_v2-setup.c b/arch/arm/mach-orion5x/edmini_v2-setup.c index 355e962137c7..d675e727803d 100644 --- a/arch/arm/mach-orion5x/edmini_v2-setup.c +++ b/arch/arm/mach-orion5x/edmini_v2-setup.c | |||
@@ -115,69 +115,6 @@ static struct i2c_board_info __initdata edmini_v2_i2c_rtc = { | |||
115 | }; | 115 | }; |
116 | 116 | ||
117 | /***************************************************************************** | 117 | /***************************************************************************** |
118 | * Sata | ||
119 | ****************************************************************************/ | ||
120 | |||
121 | static struct mv_sata_platform_data edmini_v2_sata_data = { | ||
122 | .n_ports = 2, | ||
123 | }; | ||
124 | |||
125 | /***************************************************************************** | ||
126 | * GPIO LED (simple - doesn't use hardware blinking support) | ||
127 | ****************************************************************************/ | ||
128 | |||
129 | #define EDMINI_V2_GPIO_LED_POWER 16 | ||
130 | |||
131 | static struct gpio_led edmini_v2_leds[] = { | ||
132 | { | ||
133 | .name = "power:blue", | ||
134 | .gpio = EDMINI_V2_GPIO_LED_POWER, | ||
135 | .active_low = 1, | ||
136 | }, | ||
137 | }; | ||
138 | |||
139 | static struct gpio_led_platform_data edmini_v2_led_data = { | ||
140 | .num_leds = ARRAY_SIZE(edmini_v2_leds), | ||
141 | .leds = edmini_v2_leds, | ||
142 | }; | ||
143 | |||
144 | static struct platform_device edmini_v2_gpio_leds = { | ||
145 | .name = "leds-gpio", | ||
146 | .id = -1, | ||
147 | .dev = { | ||
148 | .platform_data = &edmini_v2_led_data, | ||
149 | }, | ||
150 | }; | ||
151 | |||
152 | /**************************************************************************** | ||
153 | * GPIO key | ||
154 | ****************************************************************************/ | ||
155 | |||
156 | #define EDMINI_V2_GPIO_KEY_POWER 18 | ||
157 | |||
158 | static struct gpio_keys_button edmini_v2_buttons[] = { | ||
159 | { | ||
160 | .code = KEY_POWER, | ||
161 | .gpio = EDMINI_V2_GPIO_KEY_POWER, | ||
162 | .desc = "Power Button", | ||
163 | .active_low = 0, | ||
164 | }, | ||
165 | }; | ||
166 | |||
167 | static struct gpio_keys_platform_data edmini_v2_button_data = { | ||
168 | .buttons = edmini_v2_buttons, | ||
169 | .nbuttons = ARRAY_SIZE(edmini_v2_buttons), | ||
170 | }; | ||
171 | |||
172 | static struct platform_device edmini_v2_gpio_buttons = { | ||
173 | .name = "gpio-keys", | ||
174 | .id = -1, | ||
175 | .dev = { | ||
176 | .platform_data = &edmini_v2_button_data, | ||
177 | }, | ||
178 | }; | ||
179 | |||
180 | /***************************************************************************** | ||
181 | * General Setup | 118 | * General Setup |
182 | ****************************************************************************/ | 119 | ****************************************************************************/ |
183 | static unsigned int edminiv2_mpp_modes[] __initdata = { | 120 | static unsigned int edminiv2_mpp_modes[] __initdata = { |
@@ -207,13 +144,8 @@ static unsigned int edminiv2_mpp_modes[] __initdata = { | |||
207 | 0, | 144 | 0, |
208 | }; | 145 | }; |
209 | 146 | ||
210 | static void __init edmini_v2_init(void) | 147 | void __init edmini_v2_init(void) |
211 | { | 148 | { |
212 | /* | ||
213 | * Setup basic Orion functions. Need to be called early. | ||
214 | */ | ||
215 | orion5x_init(); | ||
216 | |||
217 | orion5x_mpp_conf(edminiv2_mpp_modes); | 149 | orion5x_mpp_conf(edminiv2_mpp_modes); |
218 | 150 | ||
219 | /* | 151 | /* |
@@ -221,15 +153,10 @@ static void __init edmini_v2_init(void) | |||
221 | */ | 153 | */ |
222 | orion5x_ehci0_init(); | 154 | orion5x_ehci0_init(); |
223 | orion5x_eth_init(&edmini_v2_eth_data); | 155 | orion5x_eth_init(&edmini_v2_eth_data); |
224 | orion5x_i2c_init(); | ||
225 | orion5x_sata_init(&edmini_v2_sata_data); | ||
226 | orion5x_uart0_init(); | ||
227 | 156 | ||
228 | orion5x_setup_dev_boot_win(EDMINI_V2_NOR_BOOT_BASE, | 157 | orion5x_setup_dev_boot_win(EDMINI_V2_NOR_BOOT_BASE, |
229 | EDMINI_V2_NOR_BOOT_SIZE); | 158 | EDMINI_V2_NOR_BOOT_SIZE); |
230 | platform_device_register(&edmini_v2_nor_flash); | 159 | platform_device_register(&edmini_v2_nor_flash); |
231 | platform_device_register(&edmini_v2_gpio_leds); | ||
232 | platform_device_register(&edmini_v2_gpio_buttons); | ||
233 | 160 | ||
234 | pr_notice("edmini_v2: USB device port, flash write and power-off " | 161 | pr_notice("edmini_v2: USB device port, flash write and power-off " |
235 | "are not yet supported.\n"); | 162 | "are not yet supported.\n"); |
@@ -247,16 +174,3 @@ static void __init edmini_v2_init(void) | |||
247 | 174 | ||
248 | i2c_register_board_info(0, &edmini_v2_i2c_rtc, 1); | 175 | i2c_register_board_info(0, &edmini_v2_i2c_rtc, 1); |
249 | } | 176 | } |
250 | |||
251 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ | ||
252 | MACHINE_START(EDMINI_V2, "LaCie Ethernet Disk mini V2") | ||
253 | /* Maintainer: Christopher Moore <moore@free.fr> */ | ||
254 | .atag_offset = 0x100, | ||
255 | .init_machine = edmini_v2_init, | ||
256 | .map_io = orion5x_map_io, | ||
257 | .init_early = orion5x_init_early, | ||
258 | .init_irq = orion5x_init_irq, | ||
259 | .timer = &orion5x_timer, | ||
260 | .fixup = tag_fixup_mem32, | ||
261 | .restart = orion5x_restart, | ||
262 | MACHINE_END | ||
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig index 63e7ae3ee9e6..131c86284711 100644 --- a/arch/arm/mach-s3c64xx/Kconfig +++ b/arch/arm/mach-s3c64xx/Kconfig | |||
@@ -294,6 +294,7 @@ config MACH_WLF_CRAGG_6410 | |||
294 | select S3C64XX_SETUP_SDHCI | 294 | select S3C64XX_SETUP_SDHCI |
295 | select S3C64XX_SETUP_SPI | 295 | select S3C64XX_SETUP_SPI |
296 | select S3C64XX_SETUP_USB_PHY | 296 | select S3C64XX_SETUP_USB_PHY |
297 | select S3C_DEV_FB | ||
297 | select S3C_DEV_HSMMC | 298 | select S3C_DEV_HSMMC |
298 | select S3C_DEV_HSMMC1 | 299 | select S3C_DEV_HSMMC1 |
299 | select S3C_DEV_HSMMC2 | 300 | select S3C_DEV_HSMMC2 |
@@ -304,6 +305,7 @@ config MACH_WLF_CRAGG_6410 | |||
304 | select S3C_DEV_WDT | 305 | select S3C_DEV_WDT |
305 | select SAMSUNG_DEV_ADC | 306 | select SAMSUNG_DEV_ADC |
306 | select SAMSUNG_DEV_KEYPAD | 307 | select SAMSUNG_DEV_KEYPAD |
308 | select SAMSUNG_DEV_PWM | ||
307 | select SAMSUNG_GPIO_EXTRA128 | 309 | select SAMSUNG_GPIO_EXTRA128 |
308 | help | 310 | help |
309 | Machine support for the Wolfson Cragganmore S3C6410 variant. | 311 | Machine support for the Wolfson Cragganmore S3C6410 variant. |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 4e3fe57674c8..c6d8dba90623 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c | |||
@@ -20,6 +20,8 @@ | |||
20 | 20 | ||
21 | #include <linux/regulator/machine.h> | 21 | #include <linux/regulator/machine.h> |
22 | 22 | ||
23 | #include <sound/wm0010.h> | ||
24 | #include <sound/wm2200.h> | ||
23 | #include <sound/wm5100.h> | 25 | #include <sound/wm5100.h> |
24 | #include <sound/wm8996.h> | 26 | #include <sound/wm8996.h> |
25 | #include <sound/wm8962.h> | 27 | #include <sound/wm8962.h> |
@@ -33,14 +35,34 @@ static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = { | |||
33 | .line = S3C64XX_GPC(3), | 35 | .line = S3C64XX_GPC(3), |
34 | }; | 36 | }; |
35 | 37 | ||
38 | static struct wm0010_pdata wm0010_pdata = { | ||
39 | .gpio_reset = S3C64XX_GPN(6), | ||
40 | .reset_active_high = 1, /* Active high for Glenfarclas Rev 2 */ | ||
41 | }; | ||
42 | |||
36 | static struct spi_board_info wm1253_devs[] = { | 43 | static struct spi_board_info wm1253_devs[] = { |
37 | [0] = { | 44 | [0] = { |
38 | .modalias = "wm0010", | 45 | .modalias = "wm0010", |
46 | .max_speed_hz = 26 * 1000 * 1000, | ||
39 | .bus_num = 0, | 47 | .bus_num = 0, |
40 | .chip_select = 0, | 48 | .chip_select = 0, |
41 | .mode = SPI_MODE_0, | 49 | .mode = SPI_MODE_0, |
42 | .irq = S3C_EINT(5), | 50 | .irq = S3C_EINT(5), |
43 | .controller_data = &wm0010_spi_csinfo, | 51 | .controller_data = &wm0010_spi_csinfo, |
52 | .platform_data = &wm0010_pdata, | ||
53 | }, | ||
54 | }; | ||
55 | |||
56 | static struct spi_board_info balblair_devs[] = { | ||
57 | [0] = { | ||
58 | .modalias = "wm0010", | ||
59 | .max_speed_hz = 26 * 1000 * 1000, | ||
60 | .bus_num = 0, | ||
61 | .chip_select = 0, | ||
62 | .mode = SPI_MODE_0, | ||
63 | .irq = S3C_EINT(4), | ||
64 | .controller_data = &wm0010_spi_csinfo, | ||
65 | .platform_data = &wm0010_pdata, | ||
44 | }, | 66 | }, |
45 | }; | 67 | }; |
46 | 68 | ||
@@ -166,12 +188,13 @@ static struct regulator_init_data wm8994_ldo2 = { | |||
166 | 188 | ||
167 | static struct wm8994_pdata wm8994_pdata = { | 189 | static struct wm8994_pdata wm8994_pdata = { |
168 | .gpio_base = CODEC_GPIO_BASE, | 190 | .gpio_base = CODEC_GPIO_BASE, |
191 | .micb2_delay = 150, | ||
169 | .gpio_defaults = { | 192 | .gpio_defaults = { |
170 | 0x3, /* IRQ out, active high, CMOS */ | 193 | 0x3, /* IRQ out, active high, CMOS */ |
171 | }, | 194 | }, |
172 | .ldo = { | 195 | .ldo = { |
173 | { .init_data = &wm8994_ldo1, }, | 196 | { .enable = S3C64XX_GPN(6), .init_data = &wm8994_ldo1, }, |
174 | { .init_data = &wm8994_ldo2, }, | 197 | { .enable = S3C64XX_GPN(4), .init_data = &wm8994_ldo2, }, |
175 | }, | 198 | }, |
176 | }; | 199 | }; |
177 | 200 | ||
@@ -182,7 +205,7 @@ static const struct i2c_board_info wm1277_devs[] = { | |||
182 | }, | 205 | }, |
183 | }; | 206 | }; |
184 | 207 | ||
185 | static struct arizona_pdata wm5102_pdata = { | 208 | static struct arizona_pdata wm5102_reva_pdata = { |
186 | .ldoena = S3C64XX_GPN(7), | 209 | .ldoena = S3C64XX_GPN(7), |
187 | .gpio_base = CODEC_GPIO_BASE, | 210 | .gpio_base = CODEC_GPIO_BASE, |
188 | .irq_active_high = true, | 211 | .irq_active_high = true, |
@@ -193,64 +216,131 @@ static struct arizona_pdata wm5102_pdata = { | |||
193 | }, | 216 | }, |
194 | }; | 217 | }; |
195 | 218 | ||
196 | static struct s3c64xx_spi_csinfo wm5102_spi_csinfo = { | 219 | static struct s3c64xx_spi_csinfo codec_spi_csinfo = { |
197 | .line = S3C64XX_GPN(5), | 220 | .line = S3C64XX_GPN(5), |
198 | }; | 221 | }; |
199 | 222 | ||
223 | static struct spi_board_info wm5102_reva_spi_devs[] = { | ||
224 | [0] = { | ||
225 | .modalias = "wm5102", | ||
226 | .max_speed_hz = 10 * 1000 * 1000, | ||
227 | .bus_num = 0, | ||
228 | .chip_select = 1, | ||
229 | .mode = SPI_MODE_0, | ||
230 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + | ||
231 | WM831X_IRQ_GPIO_2, | ||
232 | .controller_data = &codec_spi_csinfo, | ||
233 | .platform_data = &wm5102_reva_pdata, | ||
234 | }, | ||
235 | }; | ||
236 | |||
237 | static struct arizona_pdata wm5102_pdata = { | ||
238 | .ldoena = S3C64XX_GPN(7), | ||
239 | .gpio_base = CODEC_GPIO_BASE, | ||
240 | .irq_active_high = true, | ||
241 | .micd_pol_gpio = CODEC_GPIO_BASE + 2, | ||
242 | .gpio_defaults = { | ||
243 | [2] = 0x10000, /* AIF3TXLRCLK */ | ||
244 | [3] = 0x4, /* OPCLK */ | ||
245 | }, | ||
246 | }; | ||
247 | |||
200 | static struct spi_board_info wm5102_spi_devs[] = { | 248 | static struct spi_board_info wm5102_spi_devs[] = { |
201 | [0] = { | 249 | [0] = { |
202 | .modalias = "wm5102", | 250 | .modalias = "wm5102", |
203 | .max_speed_hz = 10 * 1000 * 1000, | 251 | .max_speed_hz = 10 * 1000 * 1000, |
204 | .bus_num = 0, | 252 | .bus_num = 0, |
205 | .chip_select = 0, | 253 | .chip_select = 1, |
206 | .mode = SPI_MODE_0, | 254 | .mode = SPI_MODE_0, |
207 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + | 255 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + |
208 | WM831X_IRQ_GPIO_2, | 256 | WM831X_IRQ_GPIO_2, |
209 | .controller_data = &wm5102_spi_csinfo, | 257 | .controller_data = &codec_spi_csinfo, |
210 | .platform_data = &wm5102_pdata, | 258 | .platform_data = &wm5102_pdata, |
211 | }, | 259 | }, |
212 | }; | 260 | }; |
213 | 261 | ||
262 | static struct spi_board_info wm5110_spi_devs[] = { | ||
263 | [0] = { | ||
264 | .modalias = "wm5110", | ||
265 | .max_speed_hz = 10 * 1000 * 1000, | ||
266 | .bus_num = 0, | ||
267 | .chip_select = 1, | ||
268 | .mode = SPI_MODE_0, | ||
269 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + | ||
270 | WM831X_IRQ_GPIO_2, | ||
271 | .controller_data = &codec_spi_csinfo, | ||
272 | .platform_data = &wm5102_reva_pdata, | ||
273 | }, | ||
274 | }; | ||
275 | |||
214 | static const struct i2c_board_info wm6230_i2c_devs[] = { | 276 | static const struct i2c_board_info wm6230_i2c_devs[] = { |
215 | { I2C_BOARD_INFO("wm9081", 0x6c), | 277 | { I2C_BOARD_INFO("wm9081", 0x6c), |
216 | .platform_data = &wm9081_pdata, }, | 278 | .platform_data = &wm9081_pdata, }, |
217 | }; | 279 | }; |
218 | 280 | ||
281 | static struct wm2200_pdata wm2200_pdata = { | ||
282 | .ldo_ena = S3C64XX_GPN(7), | ||
283 | .gpio_defaults = { | ||
284 | [2] = 0x0005, /* GPIO3 24.576MHz output clock */ | ||
285 | }, | ||
286 | }; | ||
287 | |||
288 | static const struct i2c_board_info wm2200_i2c[] = { | ||
289 | { I2C_BOARD_INFO("wm2200", 0x3a), | ||
290 | .platform_data = &wm2200_pdata, }, | ||
291 | }; | ||
292 | |||
219 | static __devinitdata const struct { | 293 | static __devinitdata const struct { |
220 | u8 id; | 294 | u8 id; |
295 | u8 rev; | ||
221 | const char *name; | 296 | const char *name; |
222 | const struct i2c_board_info *i2c_devs; | 297 | const struct i2c_board_info *i2c_devs; |
223 | int num_i2c_devs; | 298 | int num_i2c_devs; |
224 | const struct spi_board_info *spi_devs; | 299 | const struct spi_board_info *spi_devs; |
225 | int num_spi_devs; | 300 | int num_spi_devs; |
226 | } gf_mods[] = { | 301 | } gf_mods[] = { |
227 | { .id = 0x01, .name = "1250-EV1 Springbank" }, | 302 | { .id = 0x01, .rev = 0xff, .name = "1250-EV1 Springbank" }, |
228 | { .id = 0x02, .name = "1251-EV1 Jura" }, | 303 | { .id = 0x02, .rev = 0xff, .name = "1251-EV1 Jura" }, |
229 | { .id = 0x03, .name = "1252-EV1 Glenlivet" }, | 304 | { .id = 0x03, .rev = 0xff, .name = "1252-EV1 Glenlivet" }, |
230 | { .id = 0x11, .name = "6249-EV2 Glenfarclas", }, | 305 | { .id = 0x06, .rev = 0xff, .name = "WM8997-6721-CS96-EV1 Lapraoig" }, |
231 | { .id = 0x14, .name = "6271-EV1 Lochnagar" }, | 306 | { .id = 0x07, .rev = 0xff, .name = "WM5110-6271 Deanston", |
232 | { .id = 0x15, .name = "6320-EV1 Bells", | 307 | .spi_devs = wm5110_spi_devs, |
308 | .num_spi_devs = ARRAY_SIZE(wm5110_spi_devs) }, | ||
309 | { .id = 0x08, .rev = 0xff, .name = "WM8903-6102 Tamdhu" }, | ||
310 | { .id = 0x09, .rev = 0xff, .name = "WM1811A-6305 Adelphi" }, | ||
311 | { .id = 0x0a, .rev = 0xff, .name = "WM8996-6272 Blackadder" }, | ||
312 | { .id = 0x0b, .rev = 0xff, .name = "WM8994-6235 Benromach" }, | ||
313 | { .id = 0x11, .rev = 0xff, .name = "6249-EV2 Glenfarclas", }, | ||
314 | { .id = 0x14, .rev = 0xff, .name = "6271-EV1 Lochnagar" }, | ||
315 | { .id = 0x15, .rev = 0xff, .name = "6320-EV1 Bells", | ||
233 | .i2c_devs = wm6230_i2c_devs, | 316 | .i2c_devs = wm6230_i2c_devs, |
234 | .num_i2c_devs = ARRAY_SIZE(wm6230_i2c_devs) }, | 317 | .num_i2c_devs = ARRAY_SIZE(wm6230_i2c_devs) }, |
235 | { .id = 0x21, .name = "1275-EV1 Mortlach" }, | 318 | { .id = 0x21, .rev = 0xff, .name = "1275-EV1 Mortlach" }, |
236 | { .id = 0x25, .name = "1274-EV1 Glencadam" }, | 319 | { .id = 0x25, .rev = 0xff, .name = "1274-EV1 Glencadam" }, |
237 | { .id = 0x31, .name = "1253-EV1 Tomatin", | 320 | { .id = 0x31, .rev = 0xff, .name = "1253-EV1 Tomatin", |
238 | .spi_devs = wm1253_devs, .num_spi_devs = ARRAY_SIZE(wm1253_devs) }, | 321 | .spi_devs = wm1253_devs, .num_spi_devs = ARRAY_SIZE(wm1253_devs) }, |
239 | { .id = 0x32, .name = "XXXX-EV1 Caol Illa" }, | 322 | { .id = 0x32, .rev = 0xff, .name = "XXXX-EV1 Caol Illa" }, |
240 | { .id = 0x33, .name = "XXXX-EV1 Oban" }, | 323 | { .id = 0x33, .rev = 0xff, .name = "XXXX-EV1 Oban" }, |
241 | { .id = 0x34, .name = "WM0010-6320-CS42 Balblair" }, | 324 | { .id = 0x34, .rev = 0xff, .name = "WM0010-6320-CS42 Balblair", |
242 | { .id = 0x39, .name = "1254-EV1 Dallas Dhu", | 325 | .spi_devs = balblair_devs, |
326 | .num_spi_devs = ARRAY_SIZE(balblair_devs) }, | ||
327 | { .id = 0x39, .rev = 0xff, .name = "1254-EV1 Dallas Dhu", | ||
243 | .i2c_devs = wm1254_devs, .num_i2c_devs = ARRAY_SIZE(wm1254_devs) }, | 328 | .i2c_devs = wm1254_devs, .num_i2c_devs = ARRAY_SIZE(wm1254_devs) }, |
244 | { .id = 0x3a, .name = "1259-EV1 Tobermory", | 329 | { .id = 0x3a, .rev = 0xff, .name = "1259-EV1 Tobermory", |
245 | .i2c_devs = wm1259_devs, .num_i2c_devs = ARRAY_SIZE(wm1259_devs) }, | 330 | .i2c_devs = wm1259_devs, .num_i2c_devs = ARRAY_SIZE(wm1259_devs) }, |
246 | { .id = 0x3b, .name = "1255-EV1 Kilchoman", | 331 | { .id = 0x3b, .rev = 0xff, .name = "1255-EV1 Kilchoman", |
247 | .i2c_devs = wm1255_devs, .num_i2c_devs = ARRAY_SIZE(wm1255_devs) }, | 332 | .i2c_devs = wm1255_devs, .num_i2c_devs = ARRAY_SIZE(wm1255_devs) }, |
248 | { .id = 0x3c, .name = "1273-EV1 Longmorn" }, | 333 | { .id = 0x3c, .rev = 0xff, .name = "1273-EV1 Longmorn" }, |
249 | { .id = 0x3d, .name = "1277-EV1 Littlemill", | 334 | { .id = 0x3d, .rev = 0xff, .name = "1277-EV1 Littlemill", |
250 | .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, | 335 | .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, |
251 | { .id = 0x3e, .name = "WM5102-6271-EV1-CS127 Amrut", | 336 | { .id = 0x3e, .rev = 0, .name = "WM5102-6271-EV1-CS127 Amrut", |
337 | .spi_devs = wm5102_reva_spi_devs, | ||
338 | .num_spi_devs = ARRAY_SIZE(wm5102_reva_spi_devs) }, | ||
339 | { .id = 0x3e, .rev = -1, .name = "WM5102-6271-EV1-CS127 Amrut", | ||
252 | .spi_devs = wm5102_spi_devs, | 340 | .spi_devs = wm5102_spi_devs, |
253 | .num_spi_devs = ARRAY_SIZE(wm5102_spi_devs) }, | 341 | .num_spi_devs = ARRAY_SIZE(wm5102_spi_devs) }, |
342 | { .id = 0x3f, .rev = -1, .name = "WM2200-6271-CS90-M-REV1", | ||
343 | .i2c_devs = wm2200_i2c, .num_i2c_devs = ARRAY_SIZE(wm2200_i2c) }, | ||
254 | }; | 344 | }; |
255 | 345 | ||
256 | static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, | 346 | static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, |
@@ -267,7 +357,8 @@ static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, | |||
267 | id = (ret & 0xfe) >> 2; | 357 | id = (ret & 0xfe) >> 2; |
268 | rev = ret & 0x3; | 358 | rev = ret & 0x3; |
269 | for (i = 0; i < ARRAY_SIZE(gf_mods); i++) | 359 | for (i = 0; i < ARRAY_SIZE(gf_mods); i++) |
270 | if (id == gf_mods[i].id) | 360 | if (id == gf_mods[i].id && (gf_mods[i].rev == 0xff || |
361 | rev == gf_mods[i].rev)) | ||
271 | break; | 362 | break; |
272 | 363 | ||
273 | if (i < ARRAY_SIZE(gf_mods)) { | 364 | if (i < ARRAY_SIZE(gf_mods)) { |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index 13b7eaa45fd0..701f421de1a8 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
@@ -287,16 +287,21 @@ static struct platform_device littlemill_device = { | |||
287 | .id = -1, | 287 | .id = -1, |
288 | }; | 288 | }; |
289 | 289 | ||
290 | static struct platform_device bells_wm5102_device = { | 290 | static struct platform_device bells_wm2200_device = { |
291 | .name = "bells", | 291 | .name = "bells", |
292 | .id = 0, | 292 | .id = 0, |
293 | }; | 293 | }; |
294 | 294 | ||
295 | static struct platform_device bells_wm5110_device = { | 295 | static struct platform_device bells_wm5102_device = { |
296 | .name = "bells", | 296 | .name = "bells", |
297 | .id = 1, | 297 | .id = 1, |
298 | }; | 298 | }; |
299 | 299 | ||
300 | static struct platform_device bells_wm5110_device = { | ||
301 | .name = "bells", | ||
302 | .id = 2, | ||
303 | }; | ||
304 | |||
300 | static struct regulator_consumer_supply wallvdd_consumers[] = { | 305 | static struct regulator_consumer_supply wallvdd_consumers[] = { |
301 | REGULATOR_SUPPLY("SPKVDD", "1-001a"), | 306 | REGULATOR_SUPPLY("SPKVDD", "1-001a"), |
302 | REGULATOR_SUPPLY("SPKVDD1", "1-001a"), | 307 | REGULATOR_SUPPLY("SPKVDD1", "1-001a"), |
@@ -304,6 +309,13 @@ static struct regulator_consumer_supply wallvdd_consumers[] = { | |||
304 | REGULATOR_SUPPLY("SPKVDDL", "1-001a"), | 309 | REGULATOR_SUPPLY("SPKVDDL", "1-001a"), |
305 | REGULATOR_SUPPLY("SPKVDDR", "1-001a"), | 310 | REGULATOR_SUPPLY("SPKVDDR", "1-001a"), |
306 | 311 | ||
312 | REGULATOR_SUPPLY("SPKVDDL", "spi0.1"), | ||
313 | REGULATOR_SUPPLY("SPKVDDR", "spi0.1"), | ||
314 | REGULATOR_SUPPLY("SPKVDDL", "wm5102-codec"), | ||
315 | REGULATOR_SUPPLY("SPKVDDR", "wm5102-codec"), | ||
316 | REGULATOR_SUPPLY("SPKVDDL", "wm5110-codec"), | ||
317 | REGULATOR_SUPPLY("SPKVDDR", "wm5110-codec"), | ||
318 | |||
307 | REGULATOR_SUPPLY("DC1VDD", "0-0034"), | 319 | REGULATOR_SUPPLY("DC1VDD", "0-0034"), |
308 | REGULATOR_SUPPLY("DC2VDD", "0-0034"), | 320 | REGULATOR_SUPPLY("DC2VDD", "0-0034"), |
309 | REGULATOR_SUPPLY("DC3VDD", "0-0034"), | 321 | REGULATOR_SUPPLY("DC3VDD", "0-0034"), |
@@ -321,6 +333,16 @@ static struct regulator_consumer_supply wallvdd_consumers[] = { | |||
321 | REGULATOR_SUPPLY("DC1VDD", "1-0034"), | 333 | REGULATOR_SUPPLY("DC1VDD", "1-0034"), |
322 | REGULATOR_SUPPLY("DC2VDD", "1-0034"), | 334 | REGULATOR_SUPPLY("DC2VDD", "1-0034"), |
323 | REGULATOR_SUPPLY("DC3VDD", "1-0034"), | 335 | REGULATOR_SUPPLY("DC3VDD", "1-0034"), |
336 | REGULATOR_SUPPLY("LDO1VDD", "1-0034"), | ||
337 | REGULATOR_SUPPLY("LDO2VDD", "1-0034"), | ||
338 | REGULATOR_SUPPLY("LDO4VDD", "1-0034"), | ||
339 | REGULATOR_SUPPLY("LDO5VDD", "1-0034"), | ||
340 | REGULATOR_SUPPLY("LDO6VDD", "1-0034"), | ||
341 | REGULATOR_SUPPLY("LDO7VDD", "1-0034"), | ||
342 | REGULATOR_SUPPLY("LDO8VDD", "1-0034"), | ||
343 | REGULATOR_SUPPLY("LDO9VDD", "1-0034"), | ||
344 | REGULATOR_SUPPLY("LDO10VDD", "1-0034"), | ||
345 | REGULATOR_SUPPLY("LDO11VDD", "1-0034"), | ||
324 | }; | 346 | }; |
325 | 347 | ||
326 | static struct regulator_init_data wallvdd_data = { | 348 | static struct regulator_init_data wallvdd_data = { |
@@ -369,6 +391,7 @@ static struct platform_device *crag6410_devices[] __initdata = { | |||
369 | &tobermory_device, | 391 | &tobermory_device, |
370 | &littlemill_device, | 392 | &littlemill_device, |
371 | &lowland_device, | 393 | &lowland_device, |
394 | &bells_wm2200_device, | ||
372 | &bells_wm5102_device, | 395 | &bells_wm5102_device, |
373 | &bells_wm5110_device, | 396 | &bells_wm5110_device, |
374 | &wallvdd_device, | 397 | &wallvdd_device, |
@@ -597,6 +620,7 @@ static struct s3c2410_platform_i2c i2c0_pdata = { | |||
597 | static struct regulator_consumer_supply pvdd_1v2_consumers[] __devinitdata = { | 620 | static struct regulator_consumer_supply pvdd_1v2_consumers[] __devinitdata = { |
598 | REGULATOR_SUPPLY("DCVDD", "spi0.0"), | 621 | REGULATOR_SUPPLY("DCVDD", "spi0.0"), |
599 | REGULATOR_SUPPLY("AVDD", "spi0.0"), | 622 | REGULATOR_SUPPLY("AVDD", "spi0.0"), |
623 | REGULATOR_SUPPLY("AVDD", "spi0.1"), | ||
600 | }; | 624 | }; |
601 | 625 | ||
602 | static struct regulator_init_data pvdd_1v2 __devinitdata = { | 626 | static struct regulator_init_data pvdd_1v2 __devinitdata = { |
@@ -621,6 +645,24 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] __devinitdata = { | |||
621 | REGULATOR_SUPPLY("DCVDD", "1-001a"), | 645 | REGULATOR_SUPPLY("DCVDD", "1-001a"), |
622 | REGULATOR_SUPPLY("AVDD", "1-001a"), | 646 | REGULATOR_SUPPLY("AVDD", "1-001a"), |
623 | REGULATOR_SUPPLY("DBVDD", "spi0.0"), | 647 | REGULATOR_SUPPLY("DBVDD", "spi0.0"), |
648 | |||
649 | REGULATOR_SUPPLY("DBVDD", "1-003a"), | ||
650 | REGULATOR_SUPPLY("LDOVDD", "1-003a"), | ||
651 | REGULATOR_SUPPLY("CPVDD", "1-003a"), | ||
652 | REGULATOR_SUPPLY("AVDD", "1-003a"), | ||
653 | REGULATOR_SUPPLY("DBVDD1", "spi0.1"), | ||
654 | REGULATOR_SUPPLY("DBVDD2", "spi0.1"), | ||
655 | REGULATOR_SUPPLY("DBVDD3", "spi0.1"), | ||
656 | REGULATOR_SUPPLY("LDOVDD", "spi0.1"), | ||
657 | REGULATOR_SUPPLY("CPVDD", "spi0.1"), | ||
658 | |||
659 | REGULATOR_SUPPLY("DBVDD2", "wm5102-codec"), | ||
660 | REGULATOR_SUPPLY("DBVDD3", "wm5102-codec"), | ||
661 | REGULATOR_SUPPLY("CPVDD", "wm5102-codec"), | ||
662 | |||
663 | REGULATOR_SUPPLY("DBVDD2", "wm5110-codec"), | ||
664 | REGULATOR_SUPPLY("DBVDD3", "wm5110-codec"), | ||
665 | REGULATOR_SUPPLY("CPVDD", "wm5110-codec"), | ||
624 | }; | 666 | }; |
625 | 667 | ||
626 | static struct regulator_init_data pvdd_1v8 __devinitdata = { | 668 | static struct regulator_init_data pvdd_1v8 __devinitdata = { |
@@ -685,6 +727,7 @@ static struct i2c_board_info i2c_devs1[] __devinitdata = { | |||
685 | .irq = S3C_EINT(0), | 727 | .irq = S3C_EINT(0), |
686 | .platform_data = &glenfarclas_pmic_pdata }, | 728 | .platform_data = &glenfarclas_pmic_pdata }, |
687 | 729 | ||
730 | { I2C_BOARD_INFO("wlf-gf-module", 0x20) }, | ||
688 | { I2C_BOARD_INFO("wlf-gf-module", 0x22) }, | 731 | { I2C_BOARD_INFO("wlf-gf-module", 0x22) }, |
689 | { I2C_BOARD_INFO("wlf-gf-module", 0x24) }, | 732 | { I2C_BOARD_INFO("wlf-gf-module", 0x24) }, |
690 | { I2C_BOARD_INFO("wlf-gf-module", 0x25) }, | 733 | { I2C_BOARD_INFO("wlf-gf-module", 0x25) }, |
@@ -810,7 +853,7 @@ static void __init crag6410_machine_init(void) | |||
810 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); | 853 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); |
811 | 854 | ||
812 | samsung_keypad_set_platdata(&crag6410_keypad_data); | 855 | samsung_keypad_set_platdata(&crag6410_keypad_data); |
813 | s3c64xx_spi0_set_platdata(NULL, 0, 1); | 856 | s3c64xx_spi0_set_platdata(NULL, 0, 2); |
814 | 857 | ||
815 | platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices)); | 858 | platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices)); |
816 | 859 | ||
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 546e40a9dcaf..4eddca14ae07 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -38,17 +38,6 @@ config ARCH_EMEV2 | |||
38 | 38 | ||
39 | comment "SH-Mobile Board Type" | 39 | comment "SH-Mobile Board Type" |
40 | 40 | ||
41 | config MACH_G3EVM | ||
42 | bool "G3EVM board" | ||
43 | depends on ARCH_SH7367 | ||
44 | select ARCH_REQUIRE_GPIOLIB | ||
45 | |||
46 | config MACH_G4EVM | ||
47 | bool "G4EVM board" | ||
48 | depends on ARCH_SH7377 | ||
49 | select ARCH_REQUIRE_GPIOLIB | ||
50 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | ||
51 | |||
52 | config MACH_AP4EVB | 41 | config MACH_AP4EVB |
53 | bool "AP4EVB board" | 42 | bool "AP4EVB board" |
54 | depends on ARCH_SH7372 | 43 | depends on ARCH_SH7372 |
@@ -83,6 +72,7 @@ config MACH_MACKEREL | |||
83 | select ARCH_REQUIRE_GPIOLIB | 72 | select ARCH_REQUIRE_GPIOLIB |
84 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | 73 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
85 | select SND_SOC_AK4642 if SND_SIMPLE_CARD | 74 | select SND_SOC_AK4642 if SND_SIMPLE_CARD |
75 | select USE_OF | ||
86 | 76 | ||
87 | config MACH_KOTA2 | 77 | config MACH_KOTA2 |
88 | bool "KOTA2 board" | 78 | bool "KOTA2 board" |
@@ -134,8 +124,7 @@ menu "Memory configuration" | |||
134 | 124 | ||
135 | config MEMORY_START | 125 | config MEMORY_START |
136 | hex "Physical memory start address" | 126 | hex "Physical memory start address" |
137 | default "0x50000000" if MACH_G3EVM | 127 | default "0x40000000" if MACH_AP4EVB || MACH_AG5EVM || \ |
138 | default "0x40000000" if MACH_G4EVM || MACH_AP4EVB || MACH_AG5EVM || \ | ||
139 | MACH_MACKEREL || MACH_BONITO || \ | 128 | MACH_MACKEREL || MACH_BONITO || \ |
140 | MACH_ARMADILLO800EVA | 129 | MACH_ARMADILLO800EVA |
141 | default "0x41000000" if MACH_KOTA2 | 130 | default "0x41000000" if MACH_KOTA2 |
@@ -147,8 +136,6 @@ config MEMORY_START | |||
147 | 136 | ||
148 | config MEMORY_SIZE | 137 | config MEMORY_SIZE |
149 | hex "Physical memory size" | 138 | hex "Physical memory size" |
150 | default "0x08000000" if MACH_G3EVM | ||
151 | default "0x08000000" if MACH_G4EVM | ||
152 | default "0x20000000" if MACH_AG5EVM || MACH_BONITO || \ | 139 | default "0x20000000" if MACH_AG5EVM || MACH_BONITO || \ |
153 | MACH_ARMADILLO800EVA | 140 | MACH_ARMADILLO800EVA |
154 | default "0x1e000000" if MACH_KOTA2 | 141 | default "0x1e000000" if MACH_KOTA2 |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index f4fd247bde61..0b7147928aa3 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
@@ -39,8 +39,6 @@ obj-$(CONFIG_ARCH_R8A7740) += pm-r8a7740.o | |||
39 | obj-$(CONFIG_ARCH_R8A7779) += pm-r8a7779.o | 39 | obj-$(CONFIG_ARCH_R8A7779) += pm-r8a7779.o |
40 | 40 | ||
41 | # Board objects | 41 | # Board objects |
42 | obj-$(CONFIG_MACH_G3EVM) += board-g3evm.o | ||
43 | obj-$(CONFIG_MACH_G4EVM) += board-g4evm.o | ||
44 | obj-$(CONFIG_MACH_AP4EVB) += board-ap4evb.o | 42 | obj-$(CONFIG_MACH_AP4EVB) += board-ap4evb.o |
45 | obj-$(CONFIG_MACH_AG5EVM) += board-ag5evm.o | 43 | obj-$(CONFIG_MACH_AG5EVM) += board-ag5evm.o |
46 | obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o | 44 | obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o |
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c index 3cc8b1c21da9..499e6e376666 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c | |||
@@ -1229,6 +1229,13 @@ static void __init eva_add_early_devices(void) | |||
1229 | shmobile_timer.init = eva_earlytimer_init; | 1229 | shmobile_timer.init = eva_earlytimer_init; |
1230 | } | 1230 | } |
1231 | 1231 | ||
1232 | #define RESCNT2 IOMEM(0xe6188020) | ||
1233 | static void eva_restart(char mode, const char *cmd) | ||
1234 | { | ||
1235 | /* Do soft power on reset */ | ||
1236 | writel((1 << 31), RESCNT2); | ||
1237 | } | ||
1238 | |||
1232 | static const char *eva_boards_compat_dt[] __initdata = { | 1239 | static const char *eva_boards_compat_dt[] __initdata = { |
1233 | "renesas,armadillo800eva", | 1240 | "renesas,armadillo800eva", |
1234 | NULL, | 1241 | NULL, |
@@ -1243,4 +1250,5 @@ DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva") | |||
1243 | .init_late = shmobile_init_late, | 1250 | .init_late = shmobile_init_late, |
1244 | .timer = &shmobile_timer, | 1251 | .timer = &shmobile_timer, |
1245 | .dt_compat = eva_boards_compat_dt, | 1252 | .dt_compat = eva_boards_compat_dt, |
1253 | .restart = eva_restart, | ||
1246 | MACHINE_END | 1254 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-g3evm.c b/arch/arm/mach-shmobile/board-g3evm.c deleted file mode 100644 index b179d4c213bb..000000000000 --- a/arch/arm/mach-shmobile/board-g3evm.c +++ /dev/null | |||
@@ -1,343 +0,0 @@ | |||
1 | /* | ||
2 | * G3EVM board support | ||
3 | * | ||
4 | * Copyright (C) 2010 Magnus Damm | ||
5 | * Copyright (C) 2008 Yoshihiro Shimoda | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; version 2 of the License. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
19 | */ | ||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/init.h> | ||
22 | #include <linux/interrupt.h> | ||
23 | #include <linux/irq.h> | ||
24 | #include <linux/platform_device.h> | ||
25 | #include <linux/delay.h> | ||
26 | #include <linux/mtd/mtd.h> | ||
27 | #include <linux/mtd/partitions.h> | ||
28 | #include <linux/mtd/physmap.h> | ||
29 | #include <linux/mtd/sh_flctl.h> | ||
30 | #include <linux/usb/r8a66597.h> | ||
31 | #include <linux/io.h> | ||
32 | #include <linux/gpio.h> | ||
33 | #include <linux/input.h> | ||
34 | #include <linux/input/sh_keysc.h> | ||
35 | #include <linux/dma-mapping.h> | ||
36 | #include <mach/irqs.h> | ||
37 | #include <mach/sh7367.h> | ||
38 | #include <mach/common.h> | ||
39 | #include <asm/mach-types.h> | ||
40 | #include <asm/mach/arch.h> | ||
41 | |||
42 | /* | ||
43 | * IrDA | ||
44 | * | ||
45 | * S67: 5bit : ON power | ||
46 | * : 6bit : ON remote control | ||
47 | * OFF IrDA | ||
48 | */ | ||
49 | |||
50 | static struct mtd_partition nor_flash_partitions[] = { | ||
51 | { | ||
52 | .name = "loader", | ||
53 | .offset = 0x00000000, | ||
54 | .size = 512 * 1024, | ||
55 | }, | ||
56 | { | ||
57 | .name = "bootenv", | ||
58 | .offset = MTDPART_OFS_APPEND, | ||
59 | .size = 512 * 1024, | ||
60 | }, | ||
61 | { | ||
62 | .name = "kernel_ro", | ||
63 | .offset = MTDPART_OFS_APPEND, | ||
64 | .size = 8 * 1024 * 1024, | ||
65 | .mask_flags = MTD_WRITEABLE, | ||
66 | }, | ||
67 | { | ||
68 | .name = "kernel", | ||
69 | .offset = MTDPART_OFS_APPEND, | ||
70 | .size = 8 * 1024 * 1024, | ||
71 | }, | ||
72 | { | ||
73 | .name = "data", | ||
74 | .offset = MTDPART_OFS_APPEND, | ||
75 | .size = MTDPART_SIZ_FULL, | ||
76 | }, | ||
77 | }; | ||
78 | |||
79 | static struct physmap_flash_data nor_flash_data = { | ||
80 | .width = 2, | ||
81 | .parts = nor_flash_partitions, | ||
82 | .nr_parts = ARRAY_SIZE(nor_flash_partitions), | ||
83 | }; | ||
84 | |||
85 | static struct resource nor_flash_resources[] = { | ||
86 | [0] = { | ||
87 | .start = 0x00000000, | ||
88 | .end = 0x08000000 - 1, | ||
89 | .flags = IORESOURCE_MEM, | ||
90 | } | ||
91 | }; | ||
92 | |||
93 | static struct platform_device nor_flash_device = { | ||
94 | .name = "physmap-flash", | ||
95 | .dev = { | ||
96 | .platform_data = &nor_flash_data, | ||
97 | }, | ||
98 | .num_resources = ARRAY_SIZE(nor_flash_resources), | ||
99 | .resource = nor_flash_resources, | ||
100 | }; | ||
101 | |||
102 | /* USBHS */ | ||
103 | static void usb_host_port_power(int port, int power) | ||
104 | { | ||
105 | if (!power) /* only power-on supported for now */ | ||
106 | return; | ||
107 | |||
108 | /* set VBOUT/PWEN and EXTLP0 in DVSTCTR */ | ||
109 | __raw_writew(__raw_readw(IOMEM(0xe6890008)) | 0x600, IOMEM(0xe6890008)); | ||
110 | } | ||
111 | |||
112 | static struct r8a66597_platdata usb_host_data = { | ||
113 | .on_chip = 1, | ||
114 | .port_power = usb_host_port_power, | ||
115 | }; | ||
116 | |||
117 | static struct resource usb_host_resources[] = { | ||
118 | [0] = { | ||
119 | .name = "USBHS", | ||
120 | .start = 0xe6890000, | ||
121 | .end = 0xe68900e5, | ||
122 | .flags = IORESOURCE_MEM, | ||
123 | }, | ||
124 | [1] = { | ||
125 | .start = evt2irq(0xa20), /* USBHS_USHI0 */ | ||
126 | .flags = IORESOURCE_IRQ, | ||
127 | }, | ||
128 | }; | ||
129 | |||
130 | static struct platform_device usb_host_device = { | ||
131 | .name = "r8a66597_hcd", | ||
132 | .id = 0, | ||
133 | .dev = { | ||
134 | .platform_data = &usb_host_data, | ||
135 | .dma_mask = NULL, | ||
136 | .coherent_dma_mask = 0xffffffff, | ||
137 | }, | ||
138 | .num_resources = ARRAY_SIZE(usb_host_resources), | ||
139 | .resource = usb_host_resources, | ||
140 | }; | ||
141 | |||
142 | /* KEYSC */ | ||
143 | static struct sh_keysc_info keysc_info = { | ||
144 | .mode = SH_KEYSC_MODE_5, | ||
145 | .scan_timing = 3, | ||
146 | .delay = 100, | ||
147 | .keycodes = { | ||
148 | KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, | ||
149 | KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, | ||
150 | KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, | ||
151 | KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP, | ||
152 | KEY_WAKEUP, KEY_COFFEE, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, | ||
153 | KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_STOP, KEY_COMPUTER, | ||
154 | }, | ||
155 | }; | ||
156 | |||
157 | static struct resource keysc_resources[] = { | ||
158 | [0] = { | ||
159 | .name = "KEYSC", | ||
160 | .start = 0xe61b0000, | ||
161 | .end = 0xe61b000f, | ||
162 | .flags = IORESOURCE_MEM, | ||
163 | }, | ||
164 | [1] = { | ||
165 | .start = evt2irq(0xbe0), /* KEYSC_KEY */ | ||
166 | .flags = IORESOURCE_IRQ, | ||
167 | }, | ||
168 | }; | ||
169 | |||
170 | static struct platform_device keysc_device = { | ||
171 | .name = "sh_keysc", | ||
172 | .num_resources = ARRAY_SIZE(keysc_resources), | ||
173 | .resource = keysc_resources, | ||
174 | .dev = { | ||
175 | .platform_data = &keysc_info, | ||
176 | }, | ||
177 | }; | ||
178 | |||
179 | static struct mtd_partition nand_partition_info[] = { | ||
180 | { | ||
181 | .name = "system", | ||
182 | .offset = 0, | ||
183 | .size = 64 * 1024 * 1024, | ||
184 | }, | ||
185 | { | ||
186 | .name = "userdata", | ||
187 | .offset = MTDPART_OFS_APPEND, | ||
188 | .size = 128 * 1024 * 1024, | ||
189 | }, | ||
190 | { | ||
191 | .name = "cache", | ||
192 | .offset = MTDPART_OFS_APPEND, | ||
193 | .size = 64 * 1024 * 1024, | ||
194 | }, | ||
195 | }; | ||
196 | |||
197 | static struct resource nand_flash_resources[] = { | ||
198 | [0] = { | ||
199 | .start = 0xe6a30000, | ||
200 | .end = 0xe6a3009b, | ||
201 | .flags = IORESOURCE_MEM, | ||
202 | } | ||
203 | }; | ||
204 | |||
205 | static struct sh_flctl_platform_data nand_flash_data = { | ||
206 | .parts = nand_partition_info, | ||
207 | .nr_parts = ARRAY_SIZE(nand_partition_info), | ||
208 | .flcmncr_val = QTSEL_E | FCKSEL_E | TYPESEL_SET | NANWF_E | ||
209 | | SHBUSSEL | SEL_16BIT, | ||
210 | }; | ||
211 | |||
212 | static struct platform_device nand_flash_device = { | ||
213 | .name = "sh_flctl", | ||
214 | .resource = nand_flash_resources, | ||
215 | .num_resources = ARRAY_SIZE(nand_flash_resources), | ||
216 | .dev = { | ||
217 | .platform_data = &nand_flash_data, | ||
218 | }, | ||
219 | }; | ||
220 | |||
221 | static struct resource irda_resources[] = { | ||
222 | [0] = { | ||
223 | .start = 0xE6D00000, | ||
224 | .end = 0xE6D01FD4 - 1, | ||
225 | .flags = IORESOURCE_MEM, | ||
226 | }, | ||
227 | [1] = { | ||
228 | .start = evt2irq(0x480), /* IRDA */ | ||
229 | .flags = IORESOURCE_IRQ, | ||
230 | }, | ||
231 | }; | ||
232 | |||
233 | static struct platform_device irda_device = { | ||
234 | .name = "sh_irda", | ||
235 | .id = -1, | ||
236 | .resource = irda_resources, | ||
237 | .num_resources = ARRAY_SIZE(irda_resources), | ||
238 | }; | ||
239 | |||
240 | static struct platform_device *g3evm_devices[] __initdata = { | ||
241 | &nor_flash_device, | ||
242 | &usb_host_device, | ||
243 | &keysc_device, | ||
244 | &nand_flash_device, | ||
245 | &irda_device, | ||
246 | }; | ||
247 | |||
248 | static void __init g3evm_init(void) | ||
249 | { | ||
250 | sh7367_pinmux_init(); | ||
251 | |||
252 | /* Lit DS4 LED */ | ||
253 | gpio_request(GPIO_PORT22, NULL); | ||
254 | gpio_direction_output(GPIO_PORT22, 1); | ||
255 | gpio_export(GPIO_PORT22, 0); | ||
256 | |||
257 | /* Lit DS8 LED */ | ||
258 | gpio_request(GPIO_PORT23, NULL); | ||
259 | gpio_direction_output(GPIO_PORT23, 1); | ||
260 | gpio_export(GPIO_PORT23, 0); | ||
261 | |||
262 | /* Lit DS3 LED */ | ||
263 | gpio_request(GPIO_PORT24, NULL); | ||
264 | gpio_direction_output(GPIO_PORT24, 1); | ||
265 | gpio_export(GPIO_PORT24, 0); | ||
266 | |||
267 | /* SCIFA1 */ | ||
268 | gpio_request(GPIO_FN_SCIFA1_TXD, NULL); | ||
269 | gpio_request(GPIO_FN_SCIFA1_RXD, NULL); | ||
270 | gpio_request(GPIO_FN_SCIFA1_CTS, NULL); | ||
271 | gpio_request(GPIO_FN_SCIFA1_RTS, NULL); | ||
272 | |||
273 | /* USBHS */ | ||
274 | gpio_request(GPIO_FN_VBUS0, NULL); | ||
275 | gpio_request(GPIO_FN_PWEN, NULL); | ||
276 | gpio_request(GPIO_FN_OVCN, NULL); | ||
277 | gpio_request(GPIO_FN_OVCN2, NULL); | ||
278 | gpio_request(GPIO_FN_EXTLP, NULL); | ||
279 | gpio_request(GPIO_FN_IDIN, NULL); | ||
280 | |||
281 | /* setup USB phy */ | ||
282 | __raw_writew(0x0300, IOMEM(0xe605810a)); /* USBCR1 */ | ||
283 | __raw_writew(0x00e0, IOMEM(0xe60581c0)); /* CPFCH */ | ||
284 | __raw_writew(0x6010, IOMEM(0xe60581c6)); /* CGPOSR */ | ||
285 | __raw_writew(0x8a0a, IOMEM(0xe605810c)); /* USBCR2 */ | ||
286 | |||
287 | /* KEYSC @ CN7 */ | ||
288 | gpio_request(GPIO_FN_PORT42_KEYOUT0, NULL); | ||
289 | gpio_request(GPIO_FN_PORT43_KEYOUT1, NULL); | ||
290 | gpio_request(GPIO_FN_PORT44_KEYOUT2, NULL); | ||
291 | gpio_request(GPIO_FN_PORT45_KEYOUT3, NULL); | ||
292 | gpio_request(GPIO_FN_PORT46_KEYOUT4, NULL); | ||
293 | gpio_request(GPIO_FN_PORT47_KEYOUT5, NULL); | ||
294 | gpio_request(GPIO_FN_PORT48_KEYIN0_PU, NULL); | ||
295 | gpio_request(GPIO_FN_PORT49_KEYIN1_PU, NULL); | ||
296 | gpio_request(GPIO_FN_PORT50_KEYIN2_PU, NULL); | ||
297 | gpio_request(GPIO_FN_PORT55_KEYIN3_PU, NULL); | ||
298 | gpio_request(GPIO_FN_PORT56_KEYIN4_PU, NULL); | ||
299 | gpio_request(GPIO_FN_PORT57_KEYIN5_PU, NULL); | ||
300 | gpio_request(GPIO_FN_PORT58_KEYIN6_PU, NULL); | ||
301 | |||
302 | /* FLCTL */ | ||
303 | gpio_request(GPIO_FN_FCE0, NULL); | ||
304 | gpio_request(GPIO_FN_D0_ED0_NAF0, NULL); | ||
305 | gpio_request(GPIO_FN_D1_ED1_NAF1, NULL); | ||
306 | gpio_request(GPIO_FN_D2_ED2_NAF2, NULL); | ||
307 | gpio_request(GPIO_FN_D3_ED3_NAF3, NULL); | ||
308 | gpio_request(GPIO_FN_D4_ED4_NAF4, NULL); | ||
309 | gpio_request(GPIO_FN_D5_ED5_NAF5, NULL); | ||
310 | gpio_request(GPIO_FN_D6_ED6_NAF6, NULL); | ||
311 | gpio_request(GPIO_FN_D7_ED7_NAF7, NULL); | ||
312 | gpio_request(GPIO_FN_D8_ED8_NAF8, NULL); | ||
313 | gpio_request(GPIO_FN_D9_ED9_NAF9, NULL); | ||
314 | gpio_request(GPIO_FN_D10_ED10_NAF10, NULL); | ||
315 | gpio_request(GPIO_FN_D11_ED11_NAF11, NULL); | ||
316 | gpio_request(GPIO_FN_D12_ED12_NAF12, NULL); | ||
317 | gpio_request(GPIO_FN_D13_ED13_NAF13, NULL); | ||
318 | gpio_request(GPIO_FN_D14_ED14_NAF14, NULL); | ||
319 | gpio_request(GPIO_FN_D15_ED15_NAF15, NULL); | ||
320 | gpio_request(GPIO_FN_WE0_XWR0_FWE, NULL); | ||
321 | gpio_request(GPIO_FN_FRB, NULL); | ||
322 | /* FOE, FCDE, FSC on dedicated pins */ | ||
323 | __raw_writel(__raw_readl(IOMEM(0xe6158048)) & ~(1 << 15), IOMEM(0xe6158048)); | ||
324 | |||
325 | /* IrDA */ | ||
326 | gpio_request(GPIO_FN_IRDA_OUT, NULL); | ||
327 | gpio_request(GPIO_FN_IRDA_IN, NULL); | ||
328 | gpio_request(GPIO_FN_IRDA_FIRSEL, NULL); | ||
329 | |||
330 | sh7367_add_standard_devices(); | ||
331 | |||
332 | platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices)); | ||
333 | } | ||
334 | |||
335 | MACHINE_START(G3EVM, "g3evm") | ||
336 | .map_io = sh7367_map_io, | ||
337 | .init_early = sh7367_add_early_devices, | ||
338 | .init_irq = sh7367_init_irq, | ||
339 | .handle_irq = shmobile_handle_irq_intc, | ||
340 | .init_machine = g3evm_init, | ||
341 | .init_late = shmobile_init_late, | ||
342 | .timer = &shmobile_timer, | ||
343 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c deleted file mode 100644 index 35c126caa4d8..000000000000 --- a/arch/arm/mach-shmobile/board-g4evm.c +++ /dev/null | |||
@@ -1,384 +0,0 @@ | |||
1 | /* | ||
2 | * G4EVM board support | ||
3 | * | ||
4 | * Copyright (C) 2010 Magnus Damm | ||
5 | * Copyright (C) 2008 Yoshihiro Shimoda | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; version 2 of the License. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
19 | */ | ||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/init.h> | ||
22 | #include <linux/interrupt.h> | ||
23 | #include <linux/irq.h> | ||
24 | #include <linux/platform_device.h> | ||
25 | #include <linux/delay.h> | ||
26 | #include <linux/mtd/mtd.h> | ||
27 | #include <linux/mtd/partitions.h> | ||
28 | #include <linux/mtd/physmap.h> | ||
29 | #include <linux/regulator/fixed.h> | ||
30 | #include <linux/regulator/machine.h> | ||
31 | #include <linux/usb/r8a66597.h> | ||
32 | #include <linux/io.h> | ||
33 | #include <linux/input.h> | ||
34 | #include <linux/input/sh_keysc.h> | ||
35 | #include <linux/mmc/host.h> | ||
36 | #include <linux/mmc/sh_mobile_sdhi.h> | ||
37 | #include <linux/gpio.h> | ||
38 | #include <linux/dma-mapping.h> | ||
39 | #include <mach/irqs.h> | ||
40 | #include <mach/sh7377.h> | ||
41 | #include <mach/common.h> | ||
42 | #include <asm/mach-types.h> | ||
43 | #include <asm/mach/arch.h> | ||
44 | |||
45 | #include "sh-gpio.h" | ||
46 | |||
47 | /* | ||
48 | * SDHI | ||
49 | * | ||
50 | * SDHI0 : card detection is possible | ||
51 | * SDHI1 : card detection is impossible | ||
52 | * | ||
53 | * [G4-MAIN-BOARD] | ||
54 | * JP74 : short # DBG_2V8A for SDHI0 | ||
55 | * JP75 : NC # DBG_3V3A for SDHI0 | ||
56 | * JP76 : NC # DBG_3V3A_SD for SDHI0 | ||
57 | * JP77 : NC # 3V3A_SDIO for SDHI1 | ||
58 | * JP78 : short # DBG_2V8A for SDHI1 | ||
59 | * JP79 : NC # DBG_3V3A for SDHI1 | ||
60 | * JP80 : NC # DBG_3V3A_SD for SDHI1 | ||
61 | * | ||
62 | * [G4-CORE-BOARD] | ||
63 | * S32 : all off # to dissever from G3-CORE_DBG board | ||
64 | * S33 : all off # to dissever from G3-CORE_DBG board | ||
65 | * | ||
66 | * [G3-CORE_DBG-BOARD] | ||
67 | * S1 : all off # to dissever from G3-CORE_DBG board | ||
68 | * S3 : all off # to dissever from G3-CORE_DBG board | ||
69 | * S4 : all off # to dissever from G3-CORE_DBG board | ||
70 | */ | ||
71 | |||
72 | static struct mtd_partition nor_flash_partitions[] = { | ||
73 | { | ||
74 | .name = "loader", | ||
75 | .offset = 0x00000000, | ||
76 | .size = 512 * 1024, | ||
77 | }, | ||
78 | { | ||
79 | .name = "bootenv", | ||
80 | .offset = MTDPART_OFS_APPEND, | ||
81 | .size = 512 * 1024, | ||
82 | }, | ||
83 | { | ||
84 | .name = "kernel_ro", | ||
85 | .offset = MTDPART_OFS_APPEND, | ||
86 | .size = 8 * 1024 * 1024, | ||
87 | .mask_flags = MTD_WRITEABLE, | ||
88 | }, | ||
89 | { | ||
90 | .name = "kernel", | ||
91 | .offset = MTDPART_OFS_APPEND, | ||
92 | .size = 8 * 1024 * 1024, | ||
93 | }, | ||
94 | { | ||
95 | .name = "data", | ||
96 | .offset = MTDPART_OFS_APPEND, | ||
97 | .size = MTDPART_SIZ_FULL, | ||
98 | }, | ||
99 | }; | ||
100 | |||
101 | static struct physmap_flash_data nor_flash_data = { | ||
102 | .width = 2, | ||
103 | .parts = nor_flash_partitions, | ||
104 | .nr_parts = ARRAY_SIZE(nor_flash_partitions), | ||
105 | }; | ||
106 | |||
107 | static struct resource nor_flash_resources[] = { | ||
108 | [0] = { | ||
109 | .start = 0x00000000, | ||
110 | .end = 0x08000000 - 1, | ||
111 | .flags = IORESOURCE_MEM, | ||
112 | } | ||
113 | }; | ||
114 | |||
115 | static struct platform_device nor_flash_device = { | ||
116 | .name = "physmap-flash", | ||
117 | .dev = { | ||
118 | .platform_data = &nor_flash_data, | ||
119 | }, | ||
120 | .num_resources = ARRAY_SIZE(nor_flash_resources), | ||
121 | .resource = nor_flash_resources, | ||
122 | }; | ||
123 | |||
124 | /* USBHS */ | ||
125 | static void usb_host_port_power(int port, int power) | ||
126 | { | ||
127 | if (!power) /* only power-on supported for now */ | ||
128 | return; | ||
129 | |||
130 | /* set VBOUT/PWEN and EXTLP0 in DVSTCTR */ | ||
131 | __raw_writew(__raw_readw(IOMEM(0xe6890008)) | 0x600, IOMEM(0xe6890008)); | ||
132 | } | ||
133 | |||
134 | static struct r8a66597_platdata usb_host_data = { | ||
135 | .on_chip = 1, | ||
136 | .port_power = usb_host_port_power, | ||
137 | }; | ||
138 | |||
139 | static struct resource usb_host_resources[] = { | ||
140 | [0] = { | ||
141 | .name = "USBHS", | ||
142 | .start = 0xe6890000, | ||
143 | .end = 0xe68900e5, | ||
144 | .flags = IORESOURCE_MEM, | ||
145 | }, | ||
146 | [1] = { | ||
147 | .start = evt2irq(0x0a20), /* USBHS_USHI0 */ | ||
148 | .flags = IORESOURCE_IRQ, | ||
149 | }, | ||
150 | }; | ||
151 | |||
152 | static struct platform_device usb_host_device = { | ||
153 | .name = "r8a66597_hcd", | ||
154 | .id = 0, | ||
155 | .dev = { | ||
156 | .platform_data = &usb_host_data, | ||
157 | .dma_mask = NULL, | ||
158 | .coherent_dma_mask = 0xffffffff, | ||
159 | }, | ||
160 | .num_resources = ARRAY_SIZE(usb_host_resources), | ||
161 | .resource = usb_host_resources, | ||
162 | }; | ||
163 | |||
164 | /* KEYSC */ | ||
165 | static struct sh_keysc_info keysc_info = { | ||
166 | .mode = SH_KEYSC_MODE_5, | ||
167 | .scan_timing = 3, | ||
168 | .delay = 100, | ||
169 | .keycodes = { | ||
170 | KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, | ||
171 | KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, | ||
172 | KEY_M, KEY_N, KEY_U, KEY_P, KEY_Q, KEY_R, | ||
173 | KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, | ||
174 | KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP, KEY_WAKEUP, KEY_COFFEE, | ||
175 | KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, | ||
176 | KEY_6, KEY_7, KEY_8, KEY_9, KEY_STOP, KEY_COMPUTER, | ||
177 | }, | ||
178 | }; | ||
179 | |||
180 | static struct resource keysc_resources[] = { | ||
181 | [0] = { | ||
182 | .name = "KEYSC", | ||
183 | .start = 0xe61b0000, | ||
184 | .end = 0xe61b000f, | ||
185 | .flags = IORESOURCE_MEM, | ||
186 | }, | ||
187 | [1] = { | ||
188 | .start = evt2irq(0x0be0), /* KEYSC_KEY */ | ||
189 | .flags = IORESOURCE_IRQ, | ||
190 | }, | ||
191 | }; | ||
192 | |||
193 | static struct platform_device keysc_device = { | ||
194 | .name = "sh_keysc", | ||
195 | .id = 0, /* keysc0 clock */ | ||
196 | .num_resources = ARRAY_SIZE(keysc_resources), | ||
197 | .resource = keysc_resources, | ||
198 | .dev = { | ||
199 | .platform_data = &keysc_info, | ||
200 | }, | ||
201 | }; | ||
202 | |||
203 | /* Fixed 3.3V regulator to be used by SDHI0 and SDHI1 */ | ||
204 | static struct regulator_consumer_supply fixed3v3_power_consumers[] = | ||
205 | { | ||
206 | REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"), | ||
207 | REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"), | ||
208 | REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"), | ||
209 | REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"), | ||
210 | }; | ||
211 | |||
212 | /* SDHI */ | ||
213 | static struct sh_mobile_sdhi_info sdhi0_info = { | ||
214 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
215 | }; | ||
216 | |||
217 | static struct resource sdhi0_resources[] = { | ||
218 | [0] = { | ||
219 | .name = "SDHI0", | ||
220 | .start = 0xe6d50000, | ||
221 | .end = 0xe6d500ff, | ||
222 | .flags = IORESOURCE_MEM, | ||
223 | }, | ||
224 | [1] = { | ||
225 | .start = evt2irq(0x0e00), /* SDHI0 */ | ||
226 | .flags = IORESOURCE_IRQ, | ||
227 | }, | ||
228 | }; | ||
229 | |||
230 | static struct platform_device sdhi0_device = { | ||
231 | .name = "sh_mobile_sdhi", | ||
232 | .num_resources = ARRAY_SIZE(sdhi0_resources), | ||
233 | .resource = sdhi0_resources, | ||
234 | .id = 0, | ||
235 | .dev = { | ||
236 | .platform_data = &sdhi0_info, | ||
237 | }, | ||
238 | }; | ||
239 | |||
240 | static struct sh_mobile_sdhi_info sdhi1_info = { | ||
241 | .tmio_caps = MMC_CAP_NONREMOVABLE | MMC_CAP_SDIO_IRQ, | ||
242 | }; | ||
243 | |||
244 | static struct resource sdhi1_resources[] = { | ||
245 | [0] = { | ||
246 | .name = "SDHI1", | ||
247 | .start = 0xe6d60000, | ||
248 | .end = 0xe6d600ff, | ||
249 | .flags = IORESOURCE_MEM, | ||
250 | }, | ||
251 | [1] = { | ||
252 | .start = evt2irq(0x0e80), /* SDHI1 */ | ||
253 | .flags = IORESOURCE_IRQ, | ||
254 | }, | ||
255 | }; | ||
256 | |||
257 | static struct platform_device sdhi1_device = { | ||
258 | .name = "sh_mobile_sdhi", | ||
259 | .num_resources = ARRAY_SIZE(sdhi1_resources), | ||
260 | .resource = sdhi1_resources, | ||
261 | .id = 1, | ||
262 | .dev = { | ||
263 | .platform_data = &sdhi1_info, | ||
264 | }, | ||
265 | }; | ||
266 | |||
267 | static struct platform_device *g4evm_devices[] __initdata = { | ||
268 | &nor_flash_device, | ||
269 | &usb_host_device, | ||
270 | &keysc_device, | ||
271 | &sdhi0_device, | ||
272 | &sdhi1_device, | ||
273 | }; | ||
274 | |||
275 | #define GPIO_SDHID0_D0 IOMEM(0xe60520fc) | ||
276 | #define GPIO_SDHID0_D1 IOMEM(0xe60520fd) | ||
277 | #define GPIO_SDHID0_D2 IOMEM(0xe60520fe) | ||
278 | #define GPIO_SDHID0_D3 IOMEM(0xe60520ff) | ||
279 | #define GPIO_SDHICMD0 IOMEM(0xe6052100) | ||
280 | |||
281 | #define GPIO_SDHID1_D0 IOMEM(0xe6052103) | ||
282 | #define GPIO_SDHID1_D1 IOMEM(0xe6052104) | ||
283 | #define GPIO_SDHID1_D2 IOMEM(0xe6052105) | ||
284 | #define GPIO_SDHID1_D3 IOMEM(0xe6052106) | ||
285 | #define GPIO_SDHICMD1 IOMEM(0xe6052107) | ||
286 | |||
287 | static void __init g4evm_init(void) | ||
288 | { | ||
289 | regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers, | ||
290 | ARRAY_SIZE(fixed3v3_power_consumers), 3300000); | ||
291 | |||
292 | sh7377_pinmux_init(); | ||
293 | |||
294 | /* Lit DS14 LED */ | ||
295 | gpio_request(GPIO_PORT109, NULL); | ||
296 | gpio_direction_output(GPIO_PORT109, 1); | ||
297 | gpio_export(GPIO_PORT109, 1); | ||
298 | |||
299 | /* Lit DS15 LED */ | ||
300 | gpio_request(GPIO_PORT110, NULL); | ||
301 | gpio_direction_output(GPIO_PORT110, 1); | ||
302 | gpio_export(GPIO_PORT110, 1); | ||
303 | |||
304 | /* Lit DS16 LED */ | ||
305 | gpio_request(GPIO_PORT112, NULL); | ||
306 | gpio_direction_output(GPIO_PORT112, 1); | ||
307 | gpio_export(GPIO_PORT112, 1); | ||
308 | |||
309 | /* Lit DS17 LED */ | ||
310 | gpio_request(GPIO_PORT113, NULL); | ||
311 | gpio_direction_output(GPIO_PORT113, 1); | ||
312 | gpio_export(GPIO_PORT113, 1); | ||
313 | |||
314 | /* USBHS */ | ||
315 | gpio_request(GPIO_FN_VBUS_0, NULL); | ||
316 | gpio_request(GPIO_FN_PWEN, NULL); | ||
317 | gpio_request(GPIO_FN_OVCN, NULL); | ||
318 | gpio_request(GPIO_FN_OVCN2, NULL); | ||
319 | gpio_request(GPIO_FN_EXTLP, NULL); | ||
320 | gpio_request(GPIO_FN_IDIN, NULL); | ||
321 | |||
322 | /* setup USB phy */ | ||
323 | __raw_writew(0x0200, IOMEM(0xe605810a)); /* USBCR1 */ | ||
324 | __raw_writew(0x00e0, IOMEM(0xe60581c0)); /* CPFCH */ | ||
325 | __raw_writew(0x6010, IOMEM(0xe60581c6)); /* CGPOSR */ | ||
326 | __raw_writew(0x8a0a, IOMEM(0xe605810c)); /* USBCR2 */ | ||
327 | |||
328 | /* KEYSC @ CN31 */ | ||
329 | gpio_request(GPIO_FN_PORT60_KEYOUT5, NULL); | ||
330 | gpio_request(GPIO_FN_PORT61_KEYOUT4, NULL); | ||
331 | gpio_request(GPIO_FN_PORT62_KEYOUT3, NULL); | ||
332 | gpio_request(GPIO_FN_PORT63_KEYOUT2, NULL); | ||
333 | gpio_request(GPIO_FN_PORT64_KEYOUT1, NULL); | ||
334 | gpio_request(GPIO_FN_PORT65_KEYOUT0, NULL); | ||
335 | gpio_request(GPIO_FN_PORT66_KEYIN0_PU, NULL); | ||
336 | gpio_request(GPIO_FN_PORT67_KEYIN1_PU, NULL); | ||
337 | gpio_request(GPIO_FN_PORT68_KEYIN2_PU, NULL); | ||
338 | gpio_request(GPIO_FN_PORT69_KEYIN3_PU, NULL); | ||
339 | gpio_request(GPIO_FN_PORT70_KEYIN4_PU, NULL); | ||
340 | gpio_request(GPIO_FN_PORT71_KEYIN5_PU, NULL); | ||
341 | gpio_request(GPIO_FN_PORT72_KEYIN6_PU, NULL); | ||
342 | |||
343 | /* SDHI0 */ | ||
344 | gpio_request(GPIO_FN_SDHICLK0, NULL); | ||
345 | gpio_request(GPIO_FN_SDHICD0, NULL); | ||
346 | gpio_request(GPIO_FN_SDHID0_0, NULL); | ||
347 | gpio_request(GPIO_FN_SDHID0_1, NULL); | ||
348 | gpio_request(GPIO_FN_SDHID0_2, NULL); | ||
349 | gpio_request(GPIO_FN_SDHID0_3, NULL); | ||
350 | gpio_request(GPIO_FN_SDHICMD0, NULL); | ||
351 | gpio_request(GPIO_FN_SDHIWP0, NULL); | ||
352 | gpio_request_pullup(GPIO_SDHID0_D0); | ||
353 | gpio_request_pullup(GPIO_SDHID0_D1); | ||
354 | gpio_request_pullup(GPIO_SDHID0_D2); | ||
355 | gpio_request_pullup(GPIO_SDHID0_D3); | ||
356 | gpio_request_pullup(GPIO_SDHICMD0); | ||
357 | |||
358 | /* SDHI1 */ | ||
359 | gpio_request(GPIO_FN_SDHICLK1, NULL); | ||
360 | gpio_request(GPIO_FN_SDHID1_0, NULL); | ||
361 | gpio_request(GPIO_FN_SDHID1_1, NULL); | ||
362 | gpio_request(GPIO_FN_SDHID1_2, NULL); | ||
363 | gpio_request(GPIO_FN_SDHID1_3, NULL); | ||
364 | gpio_request(GPIO_FN_SDHICMD1, NULL); | ||
365 | gpio_request_pullup(GPIO_SDHID1_D0); | ||
366 | gpio_request_pullup(GPIO_SDHID1_D1); | ||
367 | gpio_request_pullup(GPIO_SDHID1_D2); | ||
368 | gpio_request_pullup(GPIO_SDHID1_D3); | ||
369 | gpio_request_pullup(GPIO_SDHICMD1); | ||
370 | |||
371 | sh7377_add_standard_devices(); | ||
372 | |||
373 | platform_add_devices(g4evm_devices, ARRAY_SIZE(g4evm_devices)); | ||
374 | } | ||
375 | |||
376 | MACHINE_START(G4EVM, "g4evm") | ||
377 | .map_io = sh7377_map_io, | ||
378 | .init_early = sh7377_add_early_devices, | ||
379 | .init_irq = sh7377_init_irq, | ||
380 | .handle_irq = shmobile_handle_irq_intc, | ||
381 | .init_machine = g4evm_init, | ||
382 | .init_late = shmobile_init_late, | ||
383 | .timer = &shmobile_timer, | ||
384 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c index 7a05de794a8c..c02448d6847f 100644 --- a/arch/arm/mach-shmobile/board-kzm9g.c +++ b/arch/arm/mach-shmobile/board-kzm9g.c | |||
@@ -384,6 +384,8 @@ static struct regulator_consumer_supply fixed2v8_power_consumers[] = | |||
384 | 384 | ||
385 | /* SDHI */ | 385 | /* SDHI */ |
386 | static struct sh_mobile_sdhi_info sdhi0_info = { | 386 | static struct sh_mobile_sdhi_info sdhi0_info = { |
387 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, | ||
388 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, | ||
387 | .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, | 389 | .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, |
388 | .tmio_caps = MMC_CAP_SD_HIGHSPEED, | 390 | .tmio_caps = MMC_CAP_SD_HIGHSPEED, |
389 | .tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29, | 391 | .tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29, |
@@ -424,6 +426,8 @@ static struct platform_device sdhi0_device = { | |||
424 | 426 | ||
425 | /* Micro SD */ | 427 | /* Micro SD */ |
426 | static struct sh_mobile_sdhi_info sdhi2_info = { | 428 | static struct sh_mobile_sdhi_info sdhi2_info = { |
429 | .dma_slave_tx = SHDMA_SLAVE_SDHI2_TX, | ||
430 | .dma_slave_rx = SHDMA_SLAVE_SDHI2_RX, | ||
427 | .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | | 431 | .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | |
428 | TMIO_MMC_USE_GPIO_CD | | 432 | TMIO_MMC_USE_GPIO_CD | |
429 | TMIO_MMC_WRPROTECT_DISABLE, | 433 | TMIO_MMC_WRPROTECT_DISABLE, |
@@ -556,7 +560,15 @@ static struct i2c_board_info i2c0_devices[] = { | |||
556 | }, | 560 | }, |
557 | { | 561 | { |
558 | I2C_BOARD_INFO("r2025sd", 0x32), | 562 | I2C_BOARD_INFO("r2025sd", 0x32), |
559 | } | 563 | }, |
564 | { | ||
565 | I2C_BOARD_INFO("ak8975", 0x0c), | ||
566 | .irq = intcs_evt2irq(0x3380), /* IRQ28 */ | ||
567 | }, | ||
568 | { | ||
569 | I2C_BOARD_INFO("adxl34x", 0x1d), | ||
570 | .irq = intcs_evt2irq(0x3340), /* IRQ26 */ | ||
571 | }, | ||
560 | }; | 572 | }; |
561 | 573 | ||
562 | static struct i2c_board_info i2c1_devices[] = { | 574 | static struct i2c_board_info i2c1_devices[] = { |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index c826d77ab8a6..f274252e4705 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -1651,7 +1651,12 @@ static void __init mackerel_init(void) | |||
1651 | pm_clk_add(&hdmi_lcdc_device.dev, "hdmi"); | 1651 | pm_clk_add(&hdmi_lcdc_device.dev, "hdmi"); |
1652 | } | 1652 | } |
1653 | 1653 | ||
1654 | MACHINE_START(MACKEREL, "mackerel") | 1654 | static const char *mackerel_boards_compat_dt[] __initdata = { |
1655 | "renesas,mackerel", | ||
1656 | NULL, | ||
1657 | }; | ||
1658 | |||
1659 | DT_MACHINE_START(MACKEREL_DT, "mackerel") | ||
1655 | .map_io = sh7372_map_io, | 1660 | .map_io = sh7372_map_io, |
1656 | .init_early = sh7372_add_early_devices, | 1661 | .init_early = sh7372_add_early_devices, |
1657 | .init_irq = sh7372_init_irq, | 1662 | .init_irq = sh7372_init_irq, |
@@ -1659,4 +1664,5 @@ MACHINE_START(MACKEREL, "mackerel") | |||
1659 | .init_machine = mackerel_init, | 1664 | .init_machine = mackerel_init, |
1660 | .init_late = sh7372_pm_init_late, | 1665 | .init_late = sh7372_pm_init_late, |
1661 | .timer = &shmobile_timer, | 1666 | .timer = &shmobile_timer, |
1667 | .dt_compat = mackerel_boards_compat_dt, | ||
1662 | MACHINE_END | 1668 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c index b8a7525a4e2f..69f7f464eff8 100644 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c | |||
@@ -30,6 +30,8 @@ | |||
30 | #include <linux/regulator/fixed.h> | 30 | #include <linux/regulator/fixed.h> |
31 | #include <linux/regulator/machine.h> | 31 | #include <linux/regulator/machine.h> |
32 | #include <linux/smsc911x.h> | 32 | #include <linux/smsc911x.h> |
33 | #include <linux/spi/spi.h> | ||
34 | #include <linux/spi/sh_hspi.h> | ||
33 | #include <linux/mmc/sh_mobile_sdhi.h> | 35 | #include <linux/mmc/sh_mobile_sdhi.h> |
34 | #include <linux/mfd/tmio.h> | 36 | #include <linux/mfd/tmio.h> |
35 | #include <mach/hardware.h> | 37 | #include <mach/hardware.h> |
@@ -126,10 +128,27 @@ static struct platform_device thermal_device = { | |||
126 | .num_resources = ARRAY_SIZE(thermal_resources), | 128 | .num_resources = ARRAY_SIZE(thermal_resources), |
127 | }; | 129 | }; |
128 | 130 | ||
131 | /* HSPI */ | ||
132 | static struct resource hspi_resources[] = { | ||
133 | [0] = { | ||
134 | .start = 0xFFFC7000, | ||
135 | .end = 0xFFFC7018 - 1, | ||
136 | .flags = IORESOURCE_MEM, | ||
137 | }, | ||
138 | }; | ||
139 | |||
140 | static struct platform_device hspi_device = { | ||
141 | .name = "sh-hspi", | ||
142 | .id = 0, | ||
143 | .resource = hspi_resources, | ||
144 | .num_resources = ARRAY_SIZE(hspi_resources), | ||
145 | }; | ||
146 | |||
129 | static struct platform_device *marzen_devices[] __initdata = { | 147 | static struct platform_device *marzen_devices[] __initdata = { |
130 | ð_device, | 148 | ð_device, |
131 | &sdhi0_device, | 149 | &sdhi0_device, |
132 | &thermal_device, | 150 | &thermal_device, |
151 | &hspi_device, | ||
133 | }; | 152 | }; |
134 | 153 | ||
135 | static void __init marzen_init(void) | 154 | static void __init marzen_init(void) |
@@ -163,6 +182,12 @@ static void __init marzen_init(void) | |||
163 | gpio_request(GPIO_FN_SD0_CD, NULL); | 182 | gpio_request(GPIO_FN_SD0_CD, NULL); |
164 | gpio_request(GPIO_FN_SD0_WP, NULL); | 183 | gpio_request(GPIO_FN_SD0_WP, NULL); |
165 | 184 | ||
185 | /* HSPI 0 */ | ||
186 | gpio_request(GPIO_FN_HSPI_CLK0, NULL); | ||
187 | gpio_request(GPIO_FN_HSPI_CS0, NULL); | ||
188 | gpio_request(GPIO_FN_HSPI_TX0, NULL); | ||
189 | gpio_request(GPIO_FN_HSPI_RX0, NULL); | ||
190 | |||
166 | r8a7779_add_standard_devices(); | 191 | r8a7779_add_standard_devices(); |
167 | platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices)); | 192 | platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices)); |
168 | } | 193 | } |
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index f508defc0d96..b58bc8a14b9c 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig | |||
@@ -379,7 +379,9 @@ config LEDS_NS2 | |||
379 | tristate "LED support for Network Space v2 GPIO LEDs" | 379 | tristate "LED support for Network Space v2 GPIO LEDs" |
380 | depends on LEDS_CLASS | 380 | depends on LEDS_CLASS |
381 | depends on MACH_NETSPACE_V2 || MACH_INETSPACE_V2 || \ | 381 | depends on MACH_NETSPACE_V2 || MACH_INETSPACE_V2 || \ |
382 | MACH_NETSPACE_MAX_V2 || MACH_D2NET_V2 | 382 | MACH_NETSPACE_MAX_V2 || MACH_D2NET_V2 || \ |
383 | MACH_NETSPACE_V2_DT || MACH_INETSPACE_V2_DT || \ | ||
384 | MACH_NETSPACE_MAX_V2_DT || MACH_NETSPACE_MINI_V2_DT | ||
383 | default y | 385 | default y |
384 | help | 386 | help |
385 | This option enable support for the dual-GPIO LED found on the | 387 | This option enable support for the dual-GPIO LED found on the |
diff --git a/drivers/leds/leds-ns2.c b/drivers/leds/leds-ns2.c index 6315e88d04fd..7b75affb308a 100644 --- a/drivers/leds/leds-ns2.c +++ b/drivers/leds/leds-ns2.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/leds.h> | 30 | #include <linux/leds.h> |
31 | #include <linux/module.h> | 31 | #include <linux/module.h> |
32 | #include <linux/platform_data/leds-kirkwood-ns2.h> | 32 | #include <linux/platform_data/leds-kirkwood-ns2.h> |
33 | #include <linux/of_gpio.h> | ||
33 | 34 | ||
34 | /* | 35 | /* |
35 | * The Network Space v2 dual-GPIO LED is wired to a CPLD and can blink in | 36 | * The Network Space v2 dual-GPIO LED is wired to a CPLD and can blink in |
@@ -263,6 +264,62 @@ static void delete_ns2_led(struct ns2_led_data *led_dat) | |||
263 | gpio_free(led_dat->slow); | 264 | gpio_free(led_dat->slow); |
264 | } | 265 | } |
265 | 266 | ||
267 | #ifdef CONFIG_OF_GPIO | ||
268 | /* | ||
269 | * Translate OpenFirmware node properties into platform_data. | ||
270 | */ | ||
271 | static int | ||
272 | ns2_leds_get_of_pdata(struct device *dev, struct ns2_led_platform_data *pdata) | ||
273 | { | ||
274 | struct device_node *np = dev->of_node; | ||
275 | struct device_node *child; | ||
276 | struct ns2_led *leds; | ||
277 | int num_leds = 0; | ||
278 | int i = 0; | ||
279 | |||
280 | num_leds = of_get_child_count(np); | ||
281 | if (!num_leds) | ||
282 | return -ENODEV; | ||
283 | |||
284 | leds = devm_kzalloc(dev, num_leds * sizeof(struct ns2_led), | ||
285 | GFP_KERNEL); | ||
286 | if (!leds) | ||
287 | return -ENOMEM; | ||
288 | |||
289 | for_each_child_of_node(np, child) { | ||
290 | const char *string; | ||
291 | int ret; | ||
292 | |||
293 | ret = of_get_named_gpio(child, "cmd-gpio", 0); | ||
294 | if (ret < 0) | ||
295 | return ret; | ||
296 | leds[i].cmd = ret; | ||
297 | ret = of_get_named_gpio(child, "slow-gpio", 0); | ||
298 | if (ret < 0) | ||
299 | return ret; | ||
300 | leds[i].slow = ret; | ||
301 | ret = of_property_read_string(child, "label", &string); | ||
302 | leds[i].name = (ret == 0) ? string : child->name; | ||
303 | ret = of_property_read_string(child, "linux,default-trigger", | ||
304 | &string); | ||
305 | if (ret == 0) | ||
306 | leds[i].default_trigger = string; | ||
307 | |||
308 | i++; | ||
309 | } | ||
310 | |||
311 | pdata->leds = leds; | ||
312 | pdata->num_leds = num_leds; | ||
313 | |||
314 | return 0; | ||
315 | } | ||
316 | |||
317 | static const struct of_device_id of_ns2_leds_match[] = { | ||
318 | { .compatible = "lacie,ns2-leds", }, | ||
319 | {}, | ||
320 | }; | ||
321 | #endif /* CONFIG_OF_GPIO */ | ||
322 | |||
266 | static int ns2_led_probe(struct platform_device *pdev) | 323 | static int ns2_led_probe(struct platform_device *pdev) |
267 | { | 324 | { |
268 | struct ns2_led_platform_data *pdata = pdev->dev.platform_data; | 325 | struct ns2_led_platform_data *pdata = pdev->dev.platform_data; |
@@ -270,11 +327,25 @@ static int ns2_led_probe(struct platform_device *pdev) | |||
270 | int i; | 327 | int i; |
271 | int ret; | 328 | int ret; |
272 | 329 | ||
330 | #ifdef CONFIG_OF_GPIO | ||
331 | if (!pdata) { | ||
332 | pdata = devm_kzalloc(&pdev->dev, | ||
333 | sizeof(struct ns2_led_platform_data), | ||
334 | GFP_KERNEL); | ||
335 | if (!pdata) | ||
336 | return -ENOMEM; | ||
337 | |||
338 | ret = ns2_leds_get_of_pdata(&pdev->dev, pdata); | ||
339 | if (ret) | ||
340 | return ret; | ||
341 | } | ||
342 | #else | ||
273 | if (!pdata) | 343 | if (!pdata) |
274 | return -EINVAL; | 344 | return -EINVAL; |
345 | #endif /* CONFIG_OF_GPIO */ | ||
275 | 346 | ||
276 | leds_data = devm_kzalloc(&pdev->dev, sizeof(struct ns2_led_data) * | 347 | leds_data = devm_kzalloc(&pdev->dev, sizeof(struct ns2_led_data) * |
277 | pdata->num_leds, GFP_KERNEL); | 348 | pdata->num_leds, GFP_KERNEL); |
278 | if (!leds_data) | 349 | if (!leds_data) |
279 | return -ENOMEM; | 350 | return -ENOMEM; |
280 | 351 | ||
@@ -312,8 +383,9 @@ static struct platform_driver ns2_led_driver = { | |||
312 | .probe = ns2_led_probe, | 383 | .probe = ns2_led_probe, |
313 | .remove = ns2_led_remove, | 384 | .remove = ns2_led_remove, |
314 | .driver = { | 385 | .driver = { |
315 | .name = "leds-ns2", | 386 | .name = "leds-ns2", |
316 | .owner = THIS_MODULE, | 387 | .owner = THIS_MODULE, |
388 | .of_match_table = of_match_ptr(of_ns2_leds_match), | ||
317 | }, | 389 | }, |
318 | }; | 390 | }; |
319 | 391 | ||