diff options
author | Simon Horman <horms+renesas@verge.net.au> | 2013-08-06 05:06:53 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-08-06 05:06:53 -0400 |
commit | 4e0f3fcfe2f3716e3fa9c442cee93211bf2ac793 (patch) | |
tree | 3932656b422e63e3d3fc4629a57a1a8b7f03ef42 | |
parent | 98724b7ec9d34d875fc193660c87d6dd0d17ceb7 (diff) | |
parent | 8b3e32c1fe5dce55e28e76b20361841dc863ec17 (diff) |
Merge branch 'dt2' into cleanup3-base
Conflicts:
arch/arm/mach-shmobile/Makefile.boot
34 files changed, 461 insertions, 70 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index af19e38f8e97..07204ca96853 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -186,12 +186,16 @@ dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ | |||
186 | emev2-kzm9d-reference.dtb \ | 186 | emev2-kzm9d-reference.dtb \ |
187 | r8a7740-armadillo800eva.dtb \ | 187 | r8a7740-armadillo800eva.dtb \ |
188 | r8a7778-bockw.dtb \ | 188 | r8a7778-bockw.dtb \ |
189 | r8a7778-bockw-reference.dtb \ | ||
189 | r8a7740-armadillo800eva-reference.dtb \ | 190 | r8a7740-armadillo800eva-reference.dtb \ |
191 | r8a7779-marzen.dtb \ | ||
190 | r8a7779-marzen-reference.dtb \ | 192 | r8a7779-marzen-reference.dtb \ |
191 | r8a7790-lager.dtb \ | 193 | r8a7790-lager.dtb \ |
194 | r8a7790-lager-reference.dtb \ | ||
192 | sh73a0-kzm9g.dtb \ | 195 | sh73a0-kzm9g.dtb \ |
193 | sh73a0-kzm9g-reference.dtb \ | 196 | sh73a0-kzm9g-reference.dtb \ |
194 | r8a73a4-ape6evm.dtb \ | 197 | r8a73a4-ape6evm.dtb \ |
198 | r8a73a4-ape6evm-reference.dtb \ | ||
195 | sh7372-mackerel.dtb | 199 | sh7372-mackerel.dtb |
196 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \ | 200 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \ |
197 | socfpga_vt.dtb | 201 | socfpga_vt.dtb |
diff --git a/arch/arm/boot/dts/emev2.dtsi b/arch/arm/boot/dts/emev2.dtsi index 99ad2b2e8e14..9063a4434d6a 100644 --- a/arch/arm/boot/dts/emev2.dtsi +++ b/arch/arm/boot/dts/emev2.dtsi | |||
@@ -46,6 +46,12 @@ | |||
46 | <0xe0020000 0x0100>; | 46 | <0xe0020000 0x0100>; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | pmu { | ||
50 | compatible = "arm,cortex-a9-pmu"; | ||
51 | interrupts = <0 120 4>, | ||
52 | <0 121 4>; | ||
53 | }; | ||
54 | |||
49 | sti@e0180000 { | 55 | sti@e0180000 { |
50 | compatible = "renesas,em-sti"; | 56 | compatible = "renesas,em-sti"; |
51 | reg = <0xe0180000 0x54>; | 57 | reg = <0xe0180000 0x54>; |
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts new file mode 100644 index 000000000000..f444624eb097 --- /dev/null +++ b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts | |||
@@ -0,0 +1,65 @@ | |||
1 | /* | ||
2 | * Device Tree Source for the APE6EVM board | ||
3 | * | ||
4 | * Copyright (C) 2013 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/ "r8a73a4.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "APE6EVM"; | ||
16 | compatible = "renesas,ape6evm-reference", "renesas,r8a73a4"; | ||
17 | |||
18 | chosen { | ||
19 | bootargs = "console=ttySC0,115200 ignore_loglevel rw"; | ||
20 | }; | ||
21 | |||
22 | memory@40000000 { | ||
23 | device_type = "memory"; | ||
24 | reg = <0 0x40000000 0 0x40000000>; | ||
25 | }; | ||
26 | |||
27 | lbsc { | ||
28 | compatible = "simple-bus"; | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <1>; | ||
31 | ranges = <0 0 0 0x80000000>; | ||
32 | }; | ||
33 | }; | ||
34 | |||
35 | &i2c5 { | ||
36 | vdd_dvfs: max8973@1b { | ||
37 | compatible = "maxim,max8973"; | ||
38 | reg = <0x1b>; | ||
39 | |||
40 | regulator-min-microvolt = <935000>; | ||
41 | regulator-max-microvolt = <1200000>; | ||
42 | regulator-boot-on; | ||
43 | regulator-always-on; | ||
44 | }; | ||
45 | }; | ||
46 | |||
47 | &cpu0 { | ||
48 | cpu0-supply = <&vdd_dvfs>; | ||
49 | operating-points = < | ||
50 | /* kHz uV */ | ||
51 | 1950000 1115000 | ||
52 | 1462500 995000 | ||
53 | >; | ||
54 | voltage-tolerance = <1>; /* 1% */ | ||
55 | }; | ||
56 | |||
57 | &pfc { | ||
58 | pinctrl-0 = <&scifa0_pins>; | ||
59 | pinctrl-names = "default"; | ||
60 | |||
61 | scifa0_pins: scifa0 { | ||
62 | renesas,groups = "scifa0_data"; | ||
63 | renesas,function = "scifa0"; | ||
64 | }; | ||
65 | }; | ||
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/r8a73a4-ape6evm.dts index e657a9db1666..72f867e65791 100644 --- a/arch/arm/boot/dts/r8a73a4-ape6evm.dts +++ b/arch/arm/boot/dts/r8a73a4-ape6evm.dts | |||
@@ -16,7 +16,7 @@ | |||
16 | compatible = "renesas,ape6evm", "renesas,r8a73a4"; | 16 | compatible = "renesas,ape6evm", "renesas,r8a73a4"; |
17 | 17 | ||
18 | chosen { | 18 | chosen { |
19 | bootargs = "console=ttySC0,115200 ignore_loglevel root=/dev/nfs ip=dhcp"; | 19 | bootargs = "console=ttySC0,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw"; |
20 | }; | 20 | }; |
21 | 21 | ||
22 | memory@40000000 { | 22 | memory@40000000 { |
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi index 24e930643821..27f014f3f1aa 100644 --- a/arch/arm/boot/dts/r8a7740.dtsi +++ b/arch/arm/boot/dts/r8a7740.dtsi | |||
@@ -32,6 +32,11 @@ | |||
32 | <0xc2000000 0x1000>; | 32 | <0xc2000000 0x1000>; |
33 | }; | 33 | }; |
34 | 34 | ||
35 | pmu { | ||
36 | compatible = "arm,cortex-a9-pmu"; | ||
37 | interrupts = <0 83 4>; | ||
38 | }; | ||
39 | |||
35 | /* irqpin0: IRQ0 - IRQ7 */ | 40 | /* irqpin0: IRQ0 - IRQ7 */ |
36 | irqpin0: irqpin@e6900000 { | 41 | irqpin0: irqpin@e6900000 { |
37 | compatible = "renesas,intc-irqpin"; | 42 | compatible = "renesas,intc-irqpin"; |
@@ -139,4 +144,11 @@ | |||
139 | 0 72 0x4 | 144 | 0 72 0x4 |
140 | 0 73 0x4>; | 145 | 0 73 0x4>; |
141 | }; | 146 | }; |
147 | |||
148 | tpu: pwm@e6600000 { | ||
149 | compatible = "renesas,tpu-r8a7740", "renesas,tpu"; | ||
150 | reg = <0xe6600000 0x100>; | ||
151 | status = "disabled"; | ||
152 | #pwm-cells = <3>; | ||
153 | }; | ||
142 | }; | 154 | }; |
diff --git a/arch/arm/boot/dts/r8a7778-bockw-reference.dts b/arch/arm/boot/dts/r8a7778-bockw-reference.dts new file mode 100644 index 000000000000..9bb903a3230d --- /dev/null +++ b/arch/arm/boot/dts/r8a7778-bockw-reference.dts | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * Reference Device Tree Source for the Bock-W board | ||
3 | * | ||
4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
5 | * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | ||
6 | * | ||
7 | * based on r8a7779 | ||
8 | * | ||
9 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
10 | * Copyright (C) 2013 Simon Horman | ||
11 | * | ||
12 | * This file is licensed under the terms of the GNU General Public License | ||
13 | * version 2. This program is licensed "as is" without any warranty of any | ||
14 | * kind, whether express or implied. | ||
15 | */ | ||
16 | |||
17 | /dts-v1/; | ||
18 | /include/ "r8a7778.dtsi" | ||
19 | |||
20 | / { | ||
21 | model = "bockw"; | ||
22 | compatible = "renesas,bockw-reference", "renesas,r8a7778"; | ||
23 | |||
24 | chosen { | ||
25 | bootargs = "console=ttySC0,115200 ignore_loglevel rw"; | ||
26 | }; | ||
27 | |||
28 | memory { | ||
29 | device_type = "memory"; | ||
30 | reg = <0x60000000 0x10000000>; | ||
31 | }; | ||
32 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7778-bockw.dts b/arch/arm/boot/dts/r8a7778-bockw.dts index 0076b1e8a0fb..12bbebc9c955 100644 --- a/arch/arm/boot/dts/r8a7778-bockw.dts +++ b/arch/arm/boot/dts/r8a7778-bockw.dts | |||
@@ -22,7 +22,7 @@ | |||
22 | compatible = "renesas,bockw", "renesas,r8a7778"; | 22 | compatible = "renesas,bockw", "renesas,r8a7778"; |
23 | 23 | ||
24 | chosen { | 24 | chosen { |
25 | bootargs = "console=ttySC0,115200 ignore_loglevel ip=dhcp root=/dev/nfs"; | 25 | bootargs = "console=ttySC0,115200 ignore_loglevel ip=dhcp root=/dev/nfs rw"; |
26 | }; | 26 | }; |
27 | 27 | ||
28 | memory { | 28 | memory { |
diff --git a/arch/arm/boot/dts/r8a7779-marzen-reference.dts b/arch/arm/boot/dts/r8a7779-marzen-reference.dts index 72be4c87cfb5..5c22feeaddd6 100644 --- a/arch/arm/boot/dts/r8a7779-marzen-reference.dts +++ b/arch/arm/boot/dts/r8a7779-marzen-reference.dts | |||
@@ -17,7 +17,7 @@ | |||
17 | compatible = "renesas,marzen-reference", "renesas,r8a7779"; | 17 | compatible = "renesas,marzen-reference", "renesas,r8a7779"; |
18 | 18 | ||
19 | chosen { | 19 | chosen { |
20 | bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on"; | 20 | bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on rw"; |
21 | }; | 21 | }; |
22 | 22 | ||
23 | memory { | 23 | memory { |
diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts new file mode 100644 index 000000000000..f3f7f7999736 --- /dev/null +++ b/arch/arm/boot/dts/r8a7779-marzen.dts | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | * Device Tree Source for the Marzen board | ||
3 | * | ||
4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
5 | * Copyright (C) 2013 Simon Horman | ||
6 | * | ||
7 | * This file is licensed under the terms of the GNU General Public License | ||
8 | * version 2. This program is licensed "as is" without any warranty of any | ||
9 | * kind, whether express or implied. | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | /include/ "r8a7779.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "marzen"; | ||
17 | compatible = "renesas,marzen", "renesas,r8a7779"; | ||
18 | |||
19 | chosen { | ||
20 | bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on"; | ||
21 | }; | ||
22 | |||
23 | memory { | ||
24 | device_type = "memory"; | ||
25 | reg = <0x60000000 0x40000000>; | ||
26 | }; | ||
27 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7790-lager-reference.dts b/arch/arm/boot/dts/r8a7790-lager-reference.dts new file mode 100644 index 000000000000..c462ef138922 --- /dev/null +++ b/arch/arm/boot/dts/r8a7790-lager-reference.dts | |||
@@ -0,0 +1,45 @@ | |||
1 | /* | ||
2 | * Device Tree Source for the Lager board | ||
3 | * | ||
4 | * Copyright (C) 2013 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/ "r8a7790.dtsi" | ||
13 | #include <dt-bindings/gpio/gpio.h> | ||
14 | |||
15 | / { | ||
16 | model = "Lager"; | ||
17 | compatible = "renesas,lager-reference", "renesas,r8a7790"; | ||
18 | |||
19 | chosen { | ||
20 | bootargs = "console=ttySC6,115200 ignore_loglevel rw"; | ||
21 | }; | ||
22 | |||
23 | memory@40000000 { | ||
24 | device_type = "memory"; | ||
25 | reg = <0 0x40000000 0 0x80000000>; | ||
26 | }; | ||
27 | |||
28 | lbsc { | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <1>; | ||
31 | }; | ||
32 | |||
33 | leds { | ||
34 | compatible = "gpio-leds"; | ||
35 | led6 { | ||
36 | gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>; | ||
37 | }; | ||
38 | led7 { | ||
39 | gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>; | ||
40 | }; | ||
41 | led8 { | ||
42 | gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts index 09a84fce89d6..203bd089af29 100644 --- a/arch/arm/boot/dts/r8a7790-lager.dts +++ b/arch/arm/boot/dts/r8a7790-lager.dts | |||
@@ -16,7 +16,7 @@ | |||
16 | compatible = "renesas,lager", "renesas,r8a7790"; | 16 | compatible = "renesas,lager", "renesas,r8a7790"; |
17 | 17 | ||
18 | chosen { | 18 | chosen { |
19 | bootargs = "console=ttySC6,115200 ignore_loglevel"; | 19 | bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp"; |
20 | }; | 20 | }; |
21 | 21 | ||
22 | memory@40000000 { | 22 | memory@40000000 { |
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts index b6f759e830ed..6d9ece2399a0 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | |||
@@ -32,7 +32,7 @@ | |||
32 | }; | 32 | }; |
33 | 33 | ||
34 | chosen { | 34 | chosen { |
35 | bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200"; | 35 | bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200 rw"; |
36 | }; | 36 | }; |
37 | 37 | ||
38 | memory { | 38 | memory { |
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g.dts b/arch/arm/boot/dts/sh73a0-kzm9g.dts index 7c4071e7790c..0f1ca7792c46 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g.dts | |||
@@ -16,7 +16,7 @@ | |||
16 | compatible = "renesas,kzm9g", "renesas,sh73a0"; | 16 | compatible = "renesas,kzm9g", "renesas,sh73a0"; |
17 | 17 | ||
18 | chosen { | 18 | chosen { |
19 | bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200"; | 19 | bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200 rw"; |
20 | }; | 20 | }; |
21 | 21 | ||
22 | memory { | 22 | memory { |
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi index b97750256003..7137c0f284f2 100644 --- a/arch/arm/boot/dts/sh73a0.dtsi +++ b/arch/arm/boot/dts/sh73a0.dtsi | |||
@@ -38,6 +38,12 @@ | |||
38 | <0xf0000100 0x100>; | 38 | <0xf0000100 0x100>; |
39 | }; | 39 | }; |
40 | 40 | ||
41 | pmu { | ||
42 | compatible = "arm,cortex-a9-pmu"; | ||
43 | interrupts = <0 55 4>, | ||
44 | <0 56 4>; | ||
45 | }; | ||
46 | |||
41 | irqpin0: irqpin@e6900000 { | 47 | irqpin0: irqpin@e6900000 { |
42 | compatible = "renesas,intc-irqpin"; | 48 | compatible = "renesas,intc-irqpin"; |
43 | #interrupt-cells = <2>; | 49 | #interrupt-cells = <2>; |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index e4ad4089f6ff..fed06b06056d 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -76,6 +76,17 @@ config MACH_APE6EVM | |||
76 | depends on ARCH_R8A73A4 | 76 | depends on ARCH_R8A73A4 |
77 | select USE_OF | 77 | select USE_OF |
78 | 78 | ||
79 | config MACH_APE6EVM_REFERENCE | ||
80 | bool "APE6EVM board - Reference Device Tree Implementation" | ||
81 | depends on ARCH_R8A73A4 | ||
82 | select USE_OF | ||
83 | ---help--- | ||
84 | Use reference implementation of APE6EVM board support | ||
85 | which makes a greater use of device tree at the expense | ||
86 | of not supporting a number of devices. | ||
87 | |||
88 | This is intended to aid developers | ||
89 | |||
79 | config MACH_MACKEREL | 90 | config MACH_MACKEREL |
80 | bool "mackerel board" | 91 | bool "mackerel board" |
81 | depends on ARCH_SH7372 | 92 | depends on ARCH_SH7372 |
@@ -113,11 +124,26 @@ config MACH_BOCKW | |||
113 | select RENESAS_INTC_IRQPIN | 124 | select RENESAS_INTC_IRQPIN |
114 | select USE_OF | 125 | select USE_OF |
115 | 126 | ||
127 | config MACH_BOCKW_REFERENCE | ||
128 | bool "BOCK-W - Reference Device Tree Implementation" | ||
129 | depends on ARCH_R8A7778 | ||
130 | select ARCH_REQUIRE_GPIOLIB | ||
131 | select RENESAS_INTC_IRQPIN | ||
132 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | ||
133 | select USE_OF | ||
134 | ---help--- | ||
135 | Use reference implementation of BockW board support | ||
136 | which makes use of device tree at the expense | ||
137 | of not supporting a number of devices. | ||
138 | |||
139 | This is intended to aid developers | ||
140 | |||
116 | config MACH_MARZEN | 141 | config MACH_MARZEN |
117 | bool "MARZEN board" | 142 | bool "MARZEN board" |
118 | depends on ARCH_R8A7779 | 143 | depends on ARCH_R8A7779 |
119 | select ARCH_REQUIRE_GPIOLIB | 144 | select ARCH_REQUIRE_GPIOLIB |
120 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | 145 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
146 | select USE_OF | ||
121 | 147 | ||
122 | config MACH_MARZEN_REFERENCE | 148 | config MACH_MARZEN_REFERENCE |
123 | bool "MARZEN board - Reference Device Tree Implementation" | 149 | bool "MARZEN board - Reference Device Tree Implementation" |
@@ -137,6 +163,17 @@ config MACH_LAGER | |||
137 | depends on ARCH_R8A7790 | 163 | depends on ARCH_R8A7790 |
138 | select USE_OF | 164 | select USE_OF |
139 | 165 | ||
166 | config MACH_LAGER_REFERENCE | ||
167 | bool "Lager board - Reference Device Tree Implementation" | ||
168 | depends on ARCH_R8A7790 | ||
169 | select USE_OF | ||
170 | ---help--- | ||
171 | Use reference implementation of Lager board support | ||
172 | which makes use of device tree at the expense | ||
173 | of not supporting a number of devices. | ||
174 | |||
175 | This is intended to aid developers | ||
176 | |||
140 | config MACH_KZM9D | 177 | config MACH_KZM9D |
141 | bool "KZM9D board" | 178 | bool "KZM9D board" |
142 | depends on ARCH_EMEV2 | 179 | depends on ARCH_EMEV2 |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index e3f8592fab88..f6881f9b7d5f 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
@@ -34,11 +34,14 @@ obj-$(CONFIG_ARCH_R8A7779) += pm-r8a7779.o | |||
34 | 34 | ||
35 | # Board objects | 35 | # Board objects |
36 | obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o | 36 | obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o |
37 | obj-$(CONFIG_MACH_APE6EVM_REFERENCE) += board-ape6evm-reference.o | ||
37 | obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o | 38 | obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o |
38 | obj-$(CONFIG_MACH_BOCKW) += board-bockw.o | 39 | obj-$(CONFIG_MACH_BOCKW) += board-bockw.o |
40 | obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o | ||
39 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o | 41 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o |
40 | obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o | 42 | obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o |
41 | obj-$(CONFIG_MACH_LAGER) += board-lager.o | 43 | obj-$(CONFIG_MACH_LAGER) += board-lager.o |
44 | obj-$(CONFIG_MACH_LAGER_REFERENCE) += board-lager-reference.o | ||
42 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o | 45 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o |
43 | obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o | 46 | obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o |
44 | obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o | 47 | obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o |
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot index b8c1a21fcaf3..6a504fe7d86c 100644 --- a/arch/arm/mach-shmobile/Makefile.boot +++ b/arch/arm/mach-shmobile/Makefile.boot | |||
@@ -1,14 +1,17 @@ | |||
1 | # per-board load address for uImage | 1 | # per-board load address for uImage |
2 | loadaddr-y := | 2 | loadaddr-y := |
3 | loadaddr-$(CONFIG_MACH_APE6EVM) += 0x40008000 | 3 | loadaddr-$(CONFIG_MACH_APE6EVM) += 0x40008000 |
4 | loadaddr-$(CONFIG_MACH_APE6EVM_REFERENCE) += 0x40008000 | ||
4 | loadaddr-$(CONFIG_MACH_ARMADILLO800EVA) += 0x40008000 | 5 | loadaddr-$(CONFIG_MACH_ARMADILLO800EVA) += 0x40008000 |
5 | loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000 | 6 | loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000 |
6 | loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 | 7 | loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 |
8 | loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 | ||
7 | loadaddr-$(CONFIG_MACH_KZM9D) += 0x40008000 | 9 | loadaddr-$(CONFIG_MACH_KZM9D) += 0x40008000 |
8 | loadaddr-$(CONFIG_MACH_KZM9D_REFERENCE) += 0x40008000 | 10 | loadaddr-$(CONFIG_MACH_KZM9D_REFERENCE) += 0x40008000 |
9 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 | 11 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 |
10 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 | 12 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 |
11 | loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000 | 13 | loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000 |
14 | loadaddr-$(CONFIG_MACH_LAGER_REFERENCE) += 0x40008000 | ||
12 | loadaddr-$(CONFIG_MACH_MACKEREL) += 0x40008000 | 15 | loadaddr-$(CONFIG_MACH_MACKEREL) += 0x40008000 |
13 | loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 | 16 | loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 |
14 | loadaddr-$(CONFIG_MACH_MARZEN_REFERENCE) += 0x60008000 | 17 | loadaddr-$(CONFIG_MACH_MARZEN_REFERENCE) += 0x60008000 |
diff --git a/arch/arm/mach-shmobile/board-ape6evm-reference.c b/arch/arm/mach-shmobile/board-ape6evm-reference.c new file mode 100644 index 000000000000..52cc5fa5563a --- /dev/null +++ b/arch/arm/mach-shmobile/board-ape6evm-reference.c | |||
@@ -0,0 +1,64 @@ | |||
1 | /* | ||
2 | * APE6EVM board support | ||
3 | * | ||
4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
5 | * Copyright (C) 2013 Magnus Damm | ||
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 | |||
21 | #include <linux/gpio.h> | ||
22 | #include <linux/kernel.h> | ||
23 | #include <linux/of_platform.h> | ||
24 | #include <linux/pinctrl/machine.h> | ||
25 | #include <linux/platform_device.h> | ||
26 | #include <linux/sh_clk.h> | ||
27 | #include <mach/common.h> | ||
28 | #include <mach/r8a73a4.h> | ||
29 | #include <asm/mach-types.h> | ||
30 | #include <asm/mach/arch.h> | ||
31 | |||
32 | static void __init ape6evm_add_standard_devices(void) | ||
33 | { | ||
34 | |||
35 | struct clk *parent; | ||
36 | struct clk *mp; | ||
37 | |||
38 | r8a73a4_clock_init(); | ||
39 | |||
40 | /* MP clock parent = extal2 */ | ||
41 | parent = clk_get(NULL, "extal2"); | ||
42 | mp = clk_get(NULL, "mp"); | ||
43 | BUG_ON(IS_ERR(parent) || IS_ERR(mp)); | ||
44 | |||
45 | clk_set_parent(mp, parent); | ||
46 | clk_put(parent); | ||
47 | clk_put(mp); | ||
48 | |||
49 | r8a73a4_add_dt_devices(); | ||
50 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
51 | platform_device_register_simple("cpufreq-cpu0", -1, NULL, 0); | ||
52 | } | ||
53 | |||
54 | static const char *ape6evm_boards_compat_dt[] __initdata = { | ||
55 | "renesas,ape6evm-reference", | ||
56 | NULL, | ||
57 | }; | ||
58 | |||
59 | DT_MACHINE_START(APE6EVM_DT, "ape6evm") | ||
60 | .init_early = r8a73a4_init_delay, | ||
61 | .init_time = shmobile_timer_init, | ||
62 | .init_machine = ape6evm_add_standard_devices, | ||
63 | .dt_compat = ape6evm_boards_compat_dt, | ||
64 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c index f62719dc3bd6..bdcc8a055ad4 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c | |||
@@ -1315,7 +1315,7 @@ static const char *eva_boards_compat_dt[] __initdata = { | |||
1315 | DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva") | 1315 | DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva") |
1316 | .map_io = r8a7740_map_io, | 1316 | .map_io = r8a7740_map_io, |
1317 | .init_early = eva_add_early_devices, | 1317 | .init_early = eva_add_early_devices, |
1318 | .init_irq = r8a7740_init_irq, | 1318 | .init_irq = r8a7740_init_irq_of, |
1319 | .init_machine = eva_init, | 1319 | .init_machine = eva_init, |
1320 | .init_late = shmobile_init_late, | 1320 | .init_late = shmobile_init_late, |
1321 | .init_time = eva_earlytimer_init, | 1321 | .init_time = eva_earlytimer_init, |
diff --git a/arch/arm/mach-shmobile/board-bockw-reference.c b/arch/arm/mach-shmobile/board-bockw-reference.c new file mode 100644 index 000000000000..24db8de73cae --- /dev/null +++ b/arch/arm/mach-shmobile/board-bockw-reference.c | |||
@@ -0,0 +1,62 @@ | |||
1 | /* | ||
2 | * Bock-W board support | ||
3 | * | ||
4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
5 | * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | ||
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 | |||
21 | #include <linux/of_platform.h> | ||
22 | #include <linux/pinctrl/machine.h> | ||
23 | #include <mach/common.h> | ||
24 | #include <mach/r8a7778.h> | ||
25 | #include <asm/mach/arch.h> | ||
26 | |||
27 | /* | ||
28 | * see board-bock.c for checking detail of dip-switch | ||
29 | */ | ||
30 | |||
31 | static const struct pinctrl_map bockw_pinctrl_map[] = { | ||
32 | /* SCIF0 */ | ||
33 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778", | ||
34 | "scif0_data_a", "scif0"), | ||
35 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778", | ||
36 | "scif0_ctrl", "scif0"), | ||
37 | }; | ||
38 | |||
39 | static void __init bockw_init(void) | ||
40 | { | ||
41 | r8a7778_clock_init(); | ||
42 | |||
43 | pinctrl_register_mappings(bockw_pinctrl_map, | ||
44 | ARRAY_SIZE(bockw_pinctrl_map)); | ||
45 | r8a7778_pinmux_init(); | ||
46 | r8a7778_add_dt_devices(); | ||
47 | |||
48 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
49 | } | ||
50 | |||
51 | static const char *bockw_boards_compat_dt[] __initdata = { | ||
52 | "renesas,bockw-reference", | ||
53 | NULL, | ||
54 | }; | ||
55 | |||
56 | DT_MACHINE_START(BOCKW_DT, "bockw") | ||
57 | .init_early = r8a7778_init_delay, | ||
58 | .init_irq = r8a7778_init_irq_dt, | ||
59 | .init_machine = bockw_init, | ||
60 | .init_time = shmobile_timer_init, | ||
61 | .dt_compat = bockw_boards_compat_dt, | ||
62 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/board-lager-reference.c b/arch/arm/mach-shmobile/board-lager-reference.c new file mode 100644 index 000000000000..9c316a1b2e32 --- /dev/null +++ b/arch/arm/mach-shmobile/board-lager-reference.c | |||
@@ -0,0 +1,45 @@ | |||
1 | /* | ||
2 | * Lager board support - Reference DT implementation | ||
3 | * | ||
4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
5 | * Copyright (C) 2013 Simon Horman | ||
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 | |||
21 | #include <linux/init.h> | ||
22 | #include <linux/of_platform.h> | ||
23 | #include <mach/r8a7790.h> | ||
24 | #include <asm/mach/arch.h> | ||
25 | |||
26 | static void __init lager_add_standard_devices(void) | ||
27 | { | ||
28 | /* clocks are setup late during boot in the case of DT */ | ||
29 | r8a7790_clock_init(); | ||
30 | |||
31 | r8a7790_add_dt_devices(); | ||
32 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
33 | } | ||
34 | |||
35 | static const char *lager_boards_compat_dt[] __initdata = { | ||
36 | "renesas,lager-reference", | ||
37 | NULL, | ||
38 | }; | ||
39 | |||
40 | DT_MACHINE_START(LAGER_DT, "lager") | ||
41 | .init_early = r8a7790_init_delay, | ||
42 | .init_machine = lager_add_standard_devices, | ||
43 | .init_time = r8a7790_timer_init, | ||
44 | .dt_compat = lager_boards_compat_dt, | ||
45 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c index 7474a60f98ae..3551b5480b47 100644 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c | |||
@@ -257,13 +257,18 @@ static void __init marzen_init(void) | |||
257 | platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices)); | 257 | platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices)); |
258 | } | 258 | } |
259 | 259 | ||
260 | MACHINE_START(MARZEN, "marzen") | 260 | static const char *marzen_boards_compat_dt[] __initdata = { |
261 | "renesas,marzen", | ||
262 | NULL, | ||
263 | }; | ||
264 | |||
265 | DT_MACHINE_START(MARZEN, "marzen") | ||
261 | .smp = smp_ops(r8a7779_smp_ops), | 266 | .smp = smp_ops(r8a7779_smp_ops), |
262 | .map_io = r8a7779_map_io, | 267 | .map_io = r8a7779_map_io, |
263 | .init_early = r8a7779_add_early_devices, | 268 | .init_early = r8a7779_add_early_devices, |
264 | .nr_irqs = NR_IRQS_LEGACY, | 269 | .init_irq = r8a7779_init_irq_dt, |
265 | .init_irq = r8a7779_init_irq, | ||
266 | .init_machine = marzen_init, | 270 | .init_machine = marzen_init, |
267 | .init_late = r8a7779_init_late, | 271 | .init_late = r8a7779_init_late, |
272 | .dt_compat = marzen_boards_compat_dt, | ||
268 | .init_time = r8a7779_earlytimer_init, | 273 | .init_time = r8a7779_earlytimer_init, |
269 | MACHINE_END | 274 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/include/mach/r8a73a4.h b/arch/arm/mach-shmobile/include/mach/r8a73a4.h index 144a85e29245..f3a9b702da56 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a73a4.h +++ b/arch/arm/mach-shmobile/include/mach/r8a73a4.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define __ASM_R8A73A4_H__ | 2 | #define __ASM_R8A73A4_H__ |
3 | 3 | ||
4 | void r8a73a4_add_standard_devices(void); | 4 | void r8a73a4_add_standard_devices(void); |
5 | void r8a73a4_add_dt_devices(void); | ||
5 | void r8a73a4_clock_init(void); | 6 | void r8a73a4_clock_init(void); |
6 | void r8a73a4_pinmux_init(void); | 7 | void r8a73a4_pinmux_init(void); |
7 | void r8a73a4_init_delay(void); | 8 | void r8a73a4_init_delay(void); |
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h index 56f375005fcd..d07932f872b6 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h | |||
@@ -48,7 +48,6 @@ enum { | |||
48 | 48 | ||
49 | extern void r8a7740_meram_workaround(void); | 49 | extern void r8a7740_meram_workaround(void); |
50 | extern void r8a7740_init_delay(void); | 50 | extern void r8a7740_init_delay(void); |
51 | extern void r8a7740_init_irq(void); | ||
52 | extern void r8a7740_init_irq_of(void); | 51 | extern void r8a7740_init_irq_of(void); |
53 | extern void r8a7740_map_io(void); | 52 | extern void r8a7740_map_io(void); |
54 | extern void r8a7740_add_early_devices(void); | 53 | extern void r8a7740_add_early_devices(void); |
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h index 9b561bf4229f..8d24f73d142f 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7778.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h | |||
@@ -30,6 +30,7 @@ extern void r8a7778_add_usb_phy_device(struct rcar_phy_platform_data *pdata); | |||
30 | extern void r8a7778_add_i2c_device(int id); | 30 | extern void r8a7778_add_i2c_device(int id); |
31 | extern void r8a7778_add_hspi_device(int id); | 31 | extern void r8a7778_add_hspi_device(int id); |
32 | extern void r8a7778_add_mmc_device(struct sh_mmcif_plat_data *info); | 32 | extern void r8a7778_add_mmc_device(struct sh_mmcif_plat_data *info); |
33 | extern void r8a7778_add_dt_devices(void); | ||
33 | 34 | ||
34 | extern void r8a7778_init_late(void); | 35 | extern void r8a7778_init_late(void); |
35 | extern void r8a7778_init_delay(void); | 36 | extern void r8a7778_init_delay(void); |
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7779.h b/arch/arm/mach-shmobile/include/mach/r8a7779.h index f10727f77b11..f08d6ecf5d1d 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7779.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7779.h | |||
@@ -24,7 +24,6 @@ static inline struct r8a7779_pm_ch *to_r8a7779_ch(struct generic_pm_domain *d) | |||
24 | } | 24 | } |
25 | 25 | ||
26 | extern void r8a7779_init_delay(void); | 26 | extern void r8a7779_init_delay(void); |
27 | extern void r8a7779_init_irq(void); | ||
28 | extern void r8a7779_init_irq_extpin(int irlm); | 27 | extern void r8a7779_init_irq_extpin(int irlm); |
29 | extern void r8a7779_init_irq_dt(void); | 28 | extern void r8a7779_init_irq_dt(void); |
30 | extern void r8a7779_map_io(void); | 29 | extern void r8a7779_map_io(void); |
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7790.h b/arch/arm/mach-shmobile/include/mach/r8a7790.h index 7aaef409a059..788d55952091 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7790.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7790.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define __ASM_R8A7790_H__ | 2 | #define __ASM_R8A7790_H__ |
3 | 3 | ||
4 | void r8a7790_add_standard_devices(void); | 4 | void r8a7790_add_standard_devices(void); |
5 | void r8a7790_add_dt_devices(void); | ||
5 | void r8a7790_clock_init(void); | 6 | void r8a7790_clock_init(void); |
6 | void r8a7790_pinmux_init(void); | 7 | void r8a7790_pinmux_init(void); |
7 | void r8a7790_init_delay(void); | 8 | void r8a7790_init_delay(void); |
diff --git a/arch/arm/mach-shmobile/intc-r8a7740.c b/arch/arm/mach-shmobile/intc-r8a7740.c index 8871f7717dc8..75193539b541 100644 --- a/arch/arm/mach-shmobile/intc-r8a7740.c +++ b/arch/arm/mach-shmobile/intc-r8a7740.c | |||
@@ -23,12 +23,14 @@ | |||
23 | #include <linux/irqchip.h> | 23 | #include <linux/irqchip.h> |
24 | #include <linux/irqchip/arm-gic.h> | 24 | #include <linux/irqchip/arm-gic.h> |
25 | 25 | ||
26 | static void __init r8a7740_init_irq_common(void) | 26 | void __init r8a7740_init_irq_of(void) |
27 | { | 27 | { |
28 | void __iomem *intc_prio_base = ioremap_nocache(0xe6900010, 0x10); | 28 | void __iomem *intc_prio_base = ioremap_nocache(0xe6900010, 0x10); |
29 | void __iomem *intc_msk_base = ioremap_nocache(0xe6900040, 0x10); | 29 | void __iomem *intc_msk_base = ioremap_nocache(0xe6900040, 0x10); |
30 | void __iomem *pfc_inta_ctrl = ioremap_nocache(0xe605807c, 0x4); | 30 | void __iomem *pfc_inta_ctrl = ioremap_nocache(0xe605807c, 0x4); |
31 | 31 | ||
32 | irqchip_init(); | ||
33 | |||
32 | /* route signals to GIC */ | 34 | /* route signals to GIC */ |
33 | iowrite32(0x0, pfc_inta_ctrl); | 35 | iowrite32(0x0, pfc_inta_ctrl); |
34 | 36 | ||
@@ -50,19 +52,3 @@ static void __init r8a7740_init_irq_common(void) | |||
50 | iounmap(intc_msk_base); | 52 | iounmap(intc_msk_base); |
51 | iounmap(pfc_inta_ctrl); | 53 | iounmap(pfc_inta_ctrl); |
52 | } | 54 | } |
53 | |||
54 | void __init r8a7740_init_irq_of(void) | ||
55 | { | ||
56 | irqchip_init(); | ||
57 | r8a7740_init_irq_common(); | ||
58 | } | ||
59 | |||
60 | void __init r8a7740_init_irq(void) | ||
61 | { | ||
62 | void __iomem *gic_dist_base = ioremap_nocache(0xc2800000, 0x1000); | ||
63 | void __iomem *gic_cpu_base = ioremap_nocache(0xc2000000, 0x1000); | ||
64 | |||
65 | /* initialize the Generic Interrupt Controller PL390 r0p0 */ | ||
66 | gic_init(0, 29, gic_dist_base, gic_cpu_base); | ||
67 | r8a7740_init_irq_common(); | ||
68 | } | ||
diff --git a/arch/arm/mach-shmobile/intc-r8a7779.c b/arch/arm/mach-shmobile/intc-r8a7779.c index 5f9e5dc0238b..e992a68b3bc7 100644 --- a/arch/arm/mach-shmobile/intc-r8a7779.c +++ b/arch/arm/mach-shmobile/intc-r8a7779.c | |||
@@ -89,15 +89,18 @@ void __init r8a7779_init_irq_extpin(int irlm) | |||
89 | pr_warn("r8a7779: unable to setup external irq pin mode\n"); | 89 | pr_warn("r8a7779: unable to setup external irq pin mode\n"); |
90 | } | 90 | } |
91 | 91 | ||
92 | #ifdef CONFIG_OF | ||
92 | static int r8a7779_set_wake(struct irq_data *data, unsigned int on) | 93 | static int r8a7779_set_wake(struct irq_data *data, unsigned int on) |
93 | { | 94 | { |
94 | return 0; /* always allow wakeup */ | 95 | return 0; /* always allow wakeup */ |
95 | } | 96 | } |
96 | 97 | ||
97 | static void __init r8a7779_init_irq_common(void) | 98 | void __init r8a7779_init_irq_dt(void) |
98 | { | 99 | { |
99 | gic_arch_extn.irq_set_wake = r8a7779_set_wake; | 100 | gic_arch_extn.irq_set_wake = r8a7779_set_wake; |
100 | 101 | ||
102 | irqchip_init(); | ||
103 | |||
101 | /* route all interrupts to ARM */ | 104 | /* route all interrupts to ARM */ |
102 | __raw_writel(0xffffffff, INT2NTSR0); | 105 | __raw_writel(0xffffffff, INT2NTSR0); |
103 | __raw_writel(0x3fffffff, INT2NTSR1); | 106 | __raw_writel(0x3fffffff, INT2NTSR1); |
@@ -108,23 +111,6 @@ static void __init r8a7779_init_irq_common(void) | |||
108 | __raw_writel(0xfffbffdf, INT2SMSKCR2); | 111 | __raw_writel(0xfffbffdf, INT2SMSKCR2); |
109 | __raw_writel(0xbffffffc, INT2SMSKCR3); | 112 | __raw_writel(0xbffffffc, INT2SMSKCR3); |
110 | __raw_writel(0x003fee3f, INT2SMSKCR4); | 113 | __raw_writel(0x003fee3f, INT2SMSKCR4); |
111 | } | ||
112 | |||
113 | void __init r8a7779_init_irq(void) | ||
114 | { | ||
115 | void __iomem *gic_dist_base = IOMEM(0xf0001000); | ||
116 | void __iomem *gic_cpu_base = IOMEM(0xf0000100); | ||
117 | 114 | ||
118 | /* use GIC to handle interrupts */ | ||
119 | gic_init(0, 29, gic_dist_base, gic_cpu_base); | ||
120 | |||
121 | r8a7779_init_irq_common(); | ||
122 | } | ||
123 | |||
124 | #ifdef CONFIG_OF | ||
125 | void __init r8a7779_init_irq_dt(void) | ||
126 | { | ||
127 | irqchip_init(); | ||
128 | r8a7779_init_irq_common(); | ||
129 | } | 115 | } |
130 | #endif | 116 | #endif |
diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c index 11c0f6305e6b..2ee45d5288b1 100644 --- a/arch/arm/mach-shmobile/setup-r8a73a4.c +++ b/arch/arm/mach-shmobile/setup-r8a73a4.c | |||
@@ -188,7 +188,7 @@ static struct resource cmt10_resources[] = { | |||
188 | &cmt##idx##_platform_data, \ | 188 | &cmt##idx##_platform_data, \ |
189 | sizeof(struct sh_timer_config)) | 189 | sizeof(struct sh_timer_config)) |
190 | 190 | ||
191 | void __init r8a73a4_add_standard_devices(void) | 191 | void __init r8a73a4_add_dt_devices(void) |
192 | { | 192 | { |
193 | r8a73a4_register_scif(SCIFA0); | 193 | r8a73a4_register_scif(SCIFA0); |
194 | r8a73a4_register_scif(SCIFA1); | 194 | r8a73a4_register_scif(SCIFA1); |
@@ -196,10 +196,15 @@ void __init r8a73a4_add_standard_devices(void) | |||
196 | r8a73a4_register_scif(SCIFB1); | 196 | r8a73a4_register_scif(SCIFB1); |
197 | r8a73a4_register_scif(SCIFB2); | 197 | r8a73a4_register_scif(SCIFB2); |
198 | r8a73a4_register_scif(SCIFB3); | 198 | r8a73a4_register_scif(SCIFB3); |
199 | r8a7790_register_cmt(10); | ||
200 | } | ||
201 | |||
202 | void __init r8a73a4_add_standard_devices(void) | ||
203 | { | ||
204 | r8a73a4_add_dt_devices(); | ||
199 | r8a73a4_register_irqc(0); | 205 | r8a73a4_register_irqc(0); |
200 | r8a73a4_register_irqc(1); | 206 | r8a73a4_register_irqc(1); |
201 | r8a73a4_register_thermal(); | 207 | r8a73a4_register_thermal(); |
202 | r8a7790_register_cmt(10); | ||
203 | } | 208 | } |
204 | 209 | ||
205 | void __init r8a73a4_init_delay(void) | 210 | void __init r8a73a4_init_delay(void) |
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index a3a2e37b03f3..9d4b6bf4245e 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c | |||
@@ -333,7 +333,7 @@ void __init r8a7778_add_mmc_device(struct sh_mmcif_plat_data *info) | |||
333 | info, sizeof(*info)); | 333 | info, sizeof(*info)); |
334 | } | 334 | } |
335 | 335 | ||
336 | void __init r8a7778_add_standard_devices(void) | 336 | void __init r8a7778_add_dt_devices(void) |
337 | { | 337 | { |
338 | int i; | 338 | int i; |
339 | 339 | ||
@@ -357,6 +357,11 @@ void __init r8a7778_add_standard_devices(void) | |||
357 | r8a7778_register_tmu(1); | 357 | r8a7778_register_tmu(1); |
358 | } | 358 | } |
359 | 359 | ||
360 | void __init r8a7778_add_standard_devices(void) | ||
361 | { | ||
362 | r8a7778_add_dt_devices(); | ||
363 | } | ||
364 | |||
360 | void __init r8a7778_init_late(void) | 365 | void __init r8a7778_init_late(void) |
361 | { | 366 | { |
362 | phy = usb_get_phy(USB_PHY_TYPE_USB2); | 367 | phy = usb_get_phy(USB_PHY_TYPE_USB2); |
diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c index 4c96dad21195..86cf507bc957 100644 --- a/arch/arm/mach-shmobile/setup-r8a7790.c +++ b/arch/arm/mach-shmobile/setup-r8a7790.c | |||
@@ -179,7 +179,7 @@ static struct resource cmt00_resources[] = { | |||
179 | &cmt##idx##_platform_data, \ | 179 | &cmt##idx##_platform_data, \ |
180 | sizeof(struct sh_timer_config)) | 180 | sizeof(struct sh_timer_config)) |
181 | 181 | ||
182 | void __init r8a7790_add_standard_devices(void) | 182 | void __init r8a7790_add_dt_devices(void) |
183 | { | 183 | { |
184 | r8a7790_register_scif(SCIFA0); | 184 | r8a7790_register_scif(SCIFA0); |
185 | r8a7790_register_scif(SCIFA1); | 185 | r8a7790_register_scif(SCIFA1); |
@@ -191,9 +191,14 @@ void __init r8a7790_add_standard_devices(void) | |||
191 | r8a7790_register_scif(SCIF1); | 191 | r8a7790_register_scif(SCIF1); |
192 | r8a7790_register_scif(HSCIF0); | 192 | r8a7790_register_scif(HSCIF0); |
193 | r8a7790_register_scif(HSCIF1); | 193 | r8a7790_register_scif(HSCIF1); |
194 | r8a7790_register_cmt(00); | ||
195 | } | ||
196 | |||
197 | void __init r8a7790_add_standard_devices(void) | ||
198 | { | ||
199 | r8a7790_add_dt_devices(); | ||
194 | r8a7790_register_irqc(0); | 200 | r8a7790_register_irqc(0); |
195 | r8a7790_register_thermal(); | 201 | r8a7790_register_thermal(); |
196 | r8a7790_register_cmt(00); | ||
197 | } | 202 | } |
198 | 203 | ||
199 | #define MODEMR 0xe6160060 | 204 | #define MODEMR 0xe6160060 |
diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c index 526cfaae81c1..bb3adae7de0f 100644 --- a/arch/arm/mach-shmobile/smp-r8a7779.c +++ b/arch/arm/mach-shmobile/smp-r8a7779.c | |||
@@ -99,6 +99,9 @@ static int __cpuinit r8a7779_boot_secondary(unsigned int cpu, struct task_struct | |||
99 | 99 | ||
100 | static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus) | 100 | static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus) |
101 | { | 101 | { |
102 | |||
103 | /* setup r8a7779 specific SCU base */ | ||
104 | shmobile_scu_base = IOMEM(R8A7779_SCU_BASE); | ||
102 | scu_enable(shmobile_scu_base); | 105 | scu_enable(shmobile_scu_base); |
103 | 106 | ||
104 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ | 107 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ |
@@ -117,14 +120,6 @@ static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus) | |||
117 | r8a7779_platform_cpu_kill(3); | 120 | r8a7779_platform_cpu_kill(3); |
118 | } | 121 | } |
119 | 122 | ||
120 | static void __init r8a7779_smp_init_cpus(void) | ||
121 | { | ||
122 | /* setup r8a7779 specific SCU base */ | ||
123 | shmobile_scu_base = IOMEM(R8A7779_SCU_BASE); | ||
124 | |||
125 | shmobile_smp_init_cpus(scu_get_core_count(shmobile_scu_base)); | ||
126 | } | ||
127 | |||
128 | #ifdef CONFIG_HOTPLUG_CPU | 123 | #ifdef CONFIG_HOTPLUG_CPU |
129 | static int r8a7779_scu_psr_core_disabled(int cpu) | 124 | static int r8a7779_scu_psr_core_disabled(int cpu) |
130 | { | 125 | { |
@@ -175,7 +170,6 @@ static int r8a7779_cpu_disable(unsigned int cpu) | |||
175 | #endif /* CONFIG_HOTPLUG_CPU */ | 170 | #endif /* CONFIG_HOTPLUG_CPU */ |
176 | 171 | ||
177 | struct smp_operations r8a7779_smp_ops __initdata = { | 172 | struct smp_operations r8a7779_smp_ops __initdata = { |
178 | .smp_init_cpus = r8a7779_smp_init_cpus, | ||
179 | .smp_prepare_cpus = r8a7779_smp_prepare_cpus, | 173 | .smp_prepare_cpus = r8a7779_smp_prepare_cpus, |
180 | .smp_boot_secondary = r8a7779_boot_secondary, | 174 | .smp_boot_secondary = r8a7779_boot_secondary, |
181 | #ifdef CONFIG_HOTPLUG_CPU | 175 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index d613113a04bd..1b3dc7c1e87e 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c | |||
@@ -62,6 +62,8 @@ static int __cpuinit sh73a0_boot_secondary(unsigned int cpu, struct task_struct | |||
62 | 62 | ||
63 | static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) | 63 | static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) |
64 | { | 64 | { |
65 | /* setup sh73a0 specific SCU base */ | ||
66 | shmobile_scu_base = IOMEM(SH73A0_SCU_BASE); | ||
65 | scu_enable(shmobile_scu_base); | 67 | scu_enable(shmobile_scu_base); |
66 | 68 | ||
67 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ | 69 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ |
@@ -74,14 +76,6 @@ static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) | |||
74 | scu_power_mode(shmobile_scu_base, SCU_PM_NORMAL); | 76 | scu_power_mode(shmobile_scu_base, SCU_PM_NORMAL); |
75 | } | 77 | } |
76 | 78 | ||
77 | static void __init sh73a0_smp_init_cpus(void) | ||
78 | { | ||
79 | /* setup sh73a0 specific SCU base */ | ||
80 | shmobile_scu_base = IOMEM(SH73A0_SCU_BASE); | ||
81 | |||
82 | shmobile_smp_init_cpus(scu_get_core_count(shmobile_scu_base)); | ||
83 | } | ||
84 | |||
85 | #ifdef CONFIG_HOTPLUG_CPU | 79 | #ifdef CONFIG_HOTPLUG_CPU |
86 | static int sh73a0_cpu_kill(unsigned int cpu) | 80 | static int sh73a0_cpu_kill(unsigned int cpu) |
87 | { | 81 | { |
@@ -120,7 +114,6 @@ static int sh73a0_cpu_disable(unsigned int cpu) | |||
120 | #endif /* CONFIG_HOTPLUG_CPU */ | 114 | #endif /* CONFIG_HOTPLUG_CPU */ |
121 | 115 | ||
122 | struct smp_operations sh73a0_smp_ops __initdata = { | 116 | struct smp_operations sh73a0_smp_ops __initdata = { |
123 | .smp_init_cpus = sh73a0_smp_init_cpus, | ||
124 | .smp_prepare_cpus = sh73a0_smp_prepare_cpus, | 117 | .smp_prepare_cpus = sh73a0_smp_prepare_cpus, |
125 | .smp_boot_secondary = sh73a0_boot_secondary, | 118 | .smp_boot_secondary = sh73a0_boot_secondary, |
126 | #ifdef CONFIG_HOTPLUG_CPU | 119 | #ifdef CONFIG_HOTPLUG_CPU |