aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig14
-rw-r--r--arch/arm/Makefile1
-rw-r--r--arch/arm/boot/compressed/Makefile2
-rw-r--r--arch/arm/boot/dts/Makefile3
-rw-r--r--arch/arm/boot/dts/emev2-kzm9d.dts42
-rw-r--r--arch/arm/boot/dts/emev2.dtsi116
-rw-r--r--arch/arm/boot/dts/r7s72100-genmai.dts2
-rw-r--r--arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts15
-rw-r--r--arch/arm/boot/dts/r8a73a4-ape6evm.dts10
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi168
-rw-r--r--arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts50
-rw-r--r--arch/arm/boot/dts/r8a7740-armadillo800eva.dts2
-rw-r--r--arch/arm/boot/dts/r8a7740.dtsi135
-rw-r--r--arch/arm/boot/dts/r8a7778-bockw-reference.dts57
-rw-r--r--arch/arm/boot/dts/r8a7778-bockw.dts2
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi172
-rw-r--r--arch/arm/boot/dts/r8a7779-marzen-reference.dts36
-rw-r--r--arch/arm/boot/dts/r8a7779-marzen.dts2
-rw-r--r--arch/arm/boot/dts/r8a7779.dtsi114
-rw-r--r--arch/arm/boot/dts/r8a7790-lager-reference.dts46
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts7
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi73
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch-reference.dts61
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts2
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi144
-rw-r--r--arch/arm/boot/dts/sh7372-mackerel.dts2
-rw-r--r--arch/arm/boot/dts/sh73a0-kzm9g-reference.dts70
-rw-r--r--arch/arm/boot/dts/sh73a0-kzm9g.dts2
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi150
-rw-r--r--arch/arm/configs/ape6evm_defconfig2
-rw-r--r--arch/arm/configs/armadillo800eva_defconfig2
-rw-r--r--arch/arm/configs/bockw_defconfig2
-rw-r--r--arch/arm/configs/koelsch_defconfig2
-rw-r--r--arch/arm/configs/kzm9d_defconfig2
-rw-r--r--arch/arm/configs/kzm9g_defconfig2
-rw-r--r--arch/arm/configs/lager_defconfig2
-rw-r--r--arch/arm/configs/mackerel_defconfig2
-rw-r--r--arch/arm/configs/marzen_defconfig2
-rw-r--r--arch/arm/mach-shmobile/Kconfig19
-rw-r--r--arch/arm/mach-shmobile/Makefile1
-rw-r--r--arch/arm/mach-shmobile/Makefile.boot1
-rw-r--r--arch/arm/mach-shmobile/board-bockw-reference.c12
-rw-r--r--arch/arm/mach-shmobile/board-kzm9d.c92
-rw-r--r--arch/arm/mach-shmobile/board-marzen.c2
-rw-r--r--arch/arm/mach-shmobile/clock-r7s72100.c1
-rw-r--r--arch/arm/mach-shmobile/clock-r8a73a4.c10
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7740.c9
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7778.c11
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7779.c11
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7790.c70
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7791.c14
-rw-r--r--arch/arm/mach-shmobile/clock-sh73a0.c8
-rw-r--r--arch/arm/mach-shmobile/include/mach/emev2.h5
-rw-r--r--arch/arm/mach-shmobile/include/mach/r8a7778.h18
-rw-r--r--arch/arm/mach-shmobile/include/mach/r8a7791.h1
-rw-r--r--arch/arm/mach-shmobile/setup-emev2.c163
-rw-r--r--arch/arm/mach-shmobile/setup-r7s72100.c22
-rw-r--r--arch/arm/mach-shmobile/setup-r8a73a4.c2
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7778.c51
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7791.c65
-rw-r--r--drivers/Makefile2
61 files changed, 1463 insertions, 645 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c1f1a7eee953..483d316543ad 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -644,8 +644,9 @@ config ARCH_MSM
644 stack and controls some vital subsystems 644 stack and controls some vital subsystems
645 (clock and power control, etc). 645 (clock and power control, etc).
646 646
647config ARCH_SHMOBILE 647config ARCH_SHMOBILE_LEGACY
648 bool "Renesas SH-Mobile / R-Mobile" 648 bool "Renesas SH-Mobile / R-Mobile (non-multiplatform)"
649 select ARCH_SHMOBILE
649 select ARM_PATCH_PHYS_VIRT 650 select ARM_PATCH_PHYS_VIRT
650 select CLKDEV_LOOKUP 651 select CLKDEV_LOOKUP
651 select GENERIC_CLOCKEVENTS 652 select GENERIC_CLOCKEVENTS
@@ -660,7 +661,8 @@ config ARCH_SHMOBILE
660 select PM_GENERIC_DOMAINS if PM 661 select PM_GENERIC_DOMAINS if PM
661 select SPARSE_IRQ 662 select SPARSE_IRQ
662 help 663 help
663 Support for Renesas's SH-Mobile and R-Mobile ARM platforms. 664 Support for Renesas's SH-Mobile and R-Mobile ARM platforms using
665 a non-multiplatform kernel.
664 666
665config ARCH_RPC 667config ARCH_RPC
666 bool "RiscPC" 668 bool "RiscPC"
@@ -1611,7 +1613,7 @@ config HZ_FIXED
1611 default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \ 1613 default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \
1612 ARCH_S5PV210 || ARCH_EXYNOS4 1614 ARCH_S5PV210 || ARCH_EXYNOS4
1613 default AT91_TIMER_HZ if ARCH_AT91 1615 default AT91_TIMER_HZ if ARCH_AT91
1614 default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE 1616 default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE_LEGACY
1615 default 0 1617 default 0
1616 1618
1617choice 1619choice
@@ -1796,8 +1798,8 @@ config ARCH_WANT_GENERAL_HUGETLB
1796source "mm/Kconfig" 1798source "mm/Kconfig"
1797 1799
1798config FORCE_MAX_ZONEORDER 1800config FORCE_MAX_ZONEORDER
1799 int "Maximum zone order" if ARCH_SHMOBILE 1801 int "Maximum zone order" if ARCH_SHMOBILE_LEGACY
1800 range 11 64 if ARCH_SHMOBILE 1802 range 11 64 if ARCH_SHMOBILE_LEGACY
1801 default "12" if SOC_AM33XX 1803 default "12" if SOC_AM33XX
1802 default "9" if SA1111 1804 default "9" if SA1111
1803 default "11" 1805 default "11"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index c99b1086d83d..1edf8ebd8494 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -190,7 +190,6 @@ machine-$(CONFIG_ARCH_S5PC100) += s5pc100
190machine-$(CONFIG_ARCH_S5PV210) += s5pv210 190machine-$(CONFIG_ARCH_S5PV210) += s5pv210
191machine-$(CONFIG_ARCH_SA1100) += sa1100 191machine-$(CONFIG_ARCH_SA1100) += sa1100
192machine-$(CONFIG_ARCH_SHMOBILE) += shmobile 192machine-$(CONFIG_ARCH_SHMOBILE) += shmobile
193machine-$(CONFIG_ARCH_SHMOBILE_MULTI) += shmobile
194machine-$(CONFIG_ARCH_SIRF) += prima2 193machine-$(CONFIG_ARCH_SIRF) += prima2
195machine-$(CONFIG_ARCH_SOCFPGA) += socfpga 194machine-$(CONFIG_ARCH_SOCFPGA) += socfpga
196machine-$(CONFIG_ARCH_STI) += sti 195machine-$(CONFIG_ARCH_STI) += sti
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index e7190bb5998e..f54d5a25c7ee 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -64,7 +64,7 @@ else
64endif 64endif
65endif 65endif
66 66
67ifeq ($(CONFIG_ARCH_SHMOBILE),y) 67ifeq ($(CONFIG_ARCH_SHMOBILE_LEGACY),y)
68OBJS += head-shmobile.o 68OBJS += head-shmobile.o
69endif 69endif
70 70
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 5fb27d31811d..38e04b617730 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -221,7 +221,7 @@ dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \
221dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb 221dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
222dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \ 222dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \
223 s3c6410-smdk6410.dtb 223 s3c6410-smdk6410.dtb
224dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ 224dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += emev2-kzm9d.dtb \
225 r7s72100-genmai.dtb \ 225 r7s72100-genmai.dtb \
226 r8a7740-armadillo800eva.dtb \ 226 r8a7740-armadillo800eva.dtb \
227 r8a7778-bockw.dtb \ 227 r8a7778-bockw.dtb \
@@ -230,6 +230,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
230 r8a7779-marzen.dtb \ 230 r8a7779-marzen.dtb \
231 r8a7779-marzen-reference.dtb \ 231 r8a7779-marzen-reference.dtb \
232 r8a7791-koelsch.dtb \ 232 r8a7791-koelsch.dtb \
233 r8a7791-koelsch-reference.dtb \
233 r8a7790-lager.dtb \ 234 r8a7790-lager.dtb \
234 r8a7790-lager-reference.dtb \ 235 r8a7790-lager-reference.dtb \
235 sh73a0-kzm9g.dtb \ 236 sh73a0-kzm9g.dtb \
diff --git a/arch/arm/boot/dts/emev2-kzm9d.dts b/arch/arm/boot/dts/emev2-kzm9d.dts
index 861aa7d6fc7d..50ccd151091e 100644
--- a/arch/arm/boot/dts/emev2-kzm9d.dts
+++ b/arch/arm/boot/dts/emev2-kzm9d.dts
@@ -9,7 +9,10 @@
9 */ 9 */
10/dts-v1/; 10/dts-v1/;
11 11
12/include/ "emev2.dtsi" 12#include "emev2.dtsi"
13#include <dt-bindings/gpio/gpio.h>
14#include <dt-bindings/input/input.h>
15#include <dt-bindings/interrupt-controller/irq.h>
13 16
14/ { 17/ {
15 model = "EMEV2 KZM9D Board"; 18 model = "EMEV2 KZM9D Board";
@@ -47,11 +50,46 @@
47 reg = <0x20000000 0x10000>; 50 reg = <0x20000000 0x10000>;
48 phy-mode = "mii"; 51 phy-mode = "mii";
49 interrupt-parent = <&gpio0>; 52 interrupt-parent = <&gpio0>;
50 interrupts = <1 1>; /* active high */ 53 interrupts = <1 IRQ_TYPE_EDGE_RISING>;
51 reg-io-width = <4>; 54 reg-io-width = <4>;
52 smsc,irq-active-high; 55 smsc,irq-active-high;
53 smsc,irq-push-pull; 56 smsc,irq-push-pull;
54 vddvario-supply = <&reg_1p8v>; 57 vddvario-supply = <&reg_1p8v>;
55 vdd33a-supply = <&reg_3p3v>; 58 vdd33a-supply = <&reg_3p3v>;
56 }; 59 };
60
61 gpio_keys {
62 compatible = "gpio-keys";
63 #address-cells = <1>;
64 #size-cells = <0>;
65
66 button@1 {
67 debounce_interval = <50>;
68 wakeup = <1>;
69 label = "DSW2-1";
70 linux,code = <KEY_1>;
71 gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
72 };
73 button@2 {
74 debounce_interval = <50>;
75 wakeup = <1>;
76 label = "DSW2-2";
77 linux,code = <KEY_2>;
78 gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
79 };
80 button@3 {
81 debounce_interval = <50>;
82 wakeup = <1>;
83 label = "DSW2-3";
84 linux,code = <KEY_3>;
85 gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
86 };
87 button@4 {
88 debounce_interval = <50>;
89 wakeup = <1>;
90 label = "DSW2-4";
91 linux,code = <KEY_4>;
92 gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
93 };
94 };
57}; 95};
diff --git a/arch/arm/boot/dts/emev2.dtsi b/arch/arm/boot/dts/emev2.dtsi
index 9063a4434d6a..e37985fa10e2 100644
--- a/arch/arm/boot/dts/emev2.dtsi
+++ b/arch/arm/boot/dts/emev2.dtsi
@@ -8,7 +8,8 @@
8 * kind, whether express or implied. 8 * kind, whether express or implied.
9 */ 9 */
10 10
11/include/ "skeleton.dtsi" 11#include "skeleton.dtsi"
12#include <dt-bindings/interrupt-controller/irq.h>
12 13
13/ { 14/ {
14 compatible = "renesas,emev2"; 15 compatible = "renesas,emev2";
@@ -48,44 +49,129 @@
48 49
49 pmu { 50 pmu {
50 compatible = "arm,cortex-a9-pmu"; 51 compatible = "arm,cortex-a9-pmu";
51 interrupts = <0 120 4>, 52 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>,
52 <0 121 4>; 53 <0 121 IRQ_TYPE_LEVEL_HIGH>;
54 };
55
56 smu@e0110000 {
57 compatible = "renesas,emev2-smu";
58 reg = <0xe0110000 0x10000>;
59 #address-cells = <2>;
60 #size-cells = <0>;
61
62 c32ki: c32ki {
63 compatible = "fixed-clock";
64 clock-frequency = <32768>;
65 #clock-cells = <0>;
66 };
67 pll3_fo: pll3_fo {
68 compatible = "fixed-factor-clock";
69 clocks = <&c32ki>;
70 clock-div = <1>;
71 clock-mult = <7000>;
72 #clock-cells = <0>;
73 };
74 usia_u0_sclkdiv: usia_u0_sclkdiv {
75 compatible = "renesas,emev2-smu-clkdiv";
76 reg = <0x610 0>;
77 clocks = <&pll3_fo>;
78 #clock-cells = <0>;
79 };
80 usib_u1_sclkdiv: usib_u1_sclkdiv {
81 compatible = "renesas,emev2-smu-clkdiv";
82 reg = <0x65c 0>;
83 clocks = <&pll3_fo>;
84 #clock-cells = <0>;
85 };
86 usib_u2_sclkdiv: usib_u2_sclkdiv {
87 compatible = "renesas,emev2-smu-clkdiv";
88 reg = <0x65c 16>;
89 clocks = <&pll3_fo>;
90 #clock-cells = <0>;
91 };
92 usib_u3_sclkdiv: usib_u3_sclkdiv {
93 compatible = "renesas,emev2-smu-clkdiv";
94 reg = <0x660 0>;
95 clocks = <&pll3_fo>;
96 #clock-cells = <0>;
97 };
98 usia_u0_sclk: usia_u0_sclk {
99 compatible = "renesas,emev2-smu-gclk";
100 reg = <0x4a0 1>;
101 clocks = <&usia_u0_sclkdiv>;
102 #clock-cells = <0>;
103 };
104 usib_u1_sclk: usib_u1_sclk {
105 compatible = "renesas,emev2-smu-gclk";
106 reg = <0x4b8 1>;
107 clocks = <&usib_u1_sclkdiv>;
108 #clock-cells = <0>;
109 };
110 usib_u2_sclk: usib_u2_sclk {
111 compatible = "renesas,emev2-smu-gclk";
112 reg = <0x4bc 1>;
113 clocks = <&usib_u2_sclkdiv>;
114 #clock-cells = <0>;
115 };
116 usib_u3_sclk: usib_u3_sclk {
117 compatible = "renesas,emev2-smu-gclk";
118 reg = <0x4c0 1>;
119 clocks = <&usib_u3_sclkdiv>;
120 #clock-cells = <0>;
121 };
122 sti_sclk: sti_sclk {
123 compatible = "renesas,emev2-smu-gclk";
124 reg = <0x528 1>;
125 clocks = <&c32ki>;
126 #clock-cells = <0>;
127 };
53 }; 128 };
54 129
55 sti@e0180000 { 130 sti@e0180000 {
56 compatible = "renesas,em-sti"; 131 compatible = "renesas,em-sti";
57 reg = <0xe0180000 0x54>; 132 reg = <0xe0180000 0x54>;
58 interrupts = <0 125 0>; 133 interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
134 clocks = <&sti_sclk>;
135 clock-names = "sclk";
59 }; 136 };
60 137
61 uart@e1020000 { 138 uart@e1020000 {
62 compatible = "renesas,em-uart"; 139 compatible = "renesas,em-uart";
63 reg = <0xe1020000 0x38>; 140 reg = <0xe1020000 0x38>;
64 interrupts = <0 8 0>; 141 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
142 clocks = <&usia_u0_sclk>;
143 clock-names = "sclk";
65 }; 144 };
66 145
67 uart@e1030000 { 146 uart@e1030000 {
68 compatible = "renesas,em-uart"; 147 compatible = "renesas,em-uart";
69 reg = <0xe1030000 0x38>; 148 reg = <0xe1030000 0x38>;
70 interrupts = <0 9 0>; 149 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
150 clocks = <&usib_u1_sclk>;
151 clock-names = "sclk";
71 }; 152 };
72 153
73 uart@e1040000 { 154 uart@e1040000 {
74 compatible = "renesas,em-uart"; 155 compatible = "renesas,em-uart";
75 reg = <0xe1040000 0x38>; 156 reg = <0xe1040000 0x38>;
76 interrupts = <0 10 0>; 157 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
158 clocks = <&usib_u2_sclk>;
159 clock-names = "sclk";
77 }; 160 };
78 161
79 uart@e1050000 { 162 uart@e1050000 {
80 compatible = "renesas,em-uart"; 163 compatible = "renesas,em-uart";
81 reg = <0xe1050000 0x38>; 164 reg = <0xe1050000 0x38>;
82 interrupts = <0 11 0>; 165 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
166 clocks = <&usib_u3_sclk>;
167 clock-names = "sclk";
83 }; 168 };
84 169
85 gpio0: gpio@e0050000 { 170 gpio0: gpio@e0050000 {
86 compatible = "renesas,em-gio"; 171 compatible = "renesas,em-gio";
87 reg = <0xe0050000 0x2c>, <0xe0050040 0x20>; 172 reg = <0xe0050000 0x2c>, <0xe0050040 0x20>;
88 interrupts = <0 67 0>, <0 68 0>; 173 interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>,
174 <0 68 IRQ_TYPE_LEVEL_HIGH>;
89 gpio-controller; 175 gpio-controller;
90 #gpio-cells = <2>; 176 #gpio-cells = <2>;
91 ngpios = <32>; 177 ngpios = <32>;
@@ -95,7 +181,8 @@
95 gpio1: gpio@e0050080 { 181 gpio1: gpio@e0050080 {
96 compatible = "renesas,em-gio"; 182 compatible = "renesas,em-gio";
97 reg = <0xe0050080 0x2c>, <0xe00500c0 0x20>; 183 reg = <0xe0050080 0x2c>, <0xe00500c0 0x20>;
98 interrupts = <0 69 0>, <0 70 0>; 184 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>,
185 <0 70 IRQ_TYPE_LEVEL_HIGH>;
99 gpio-controller; 186 gpio-controller;
100 #gpio-cells = <2>; 187 #gpio-cells = <2>;
101 ngpios = <32>; 188 ngpios = <32>;
@@ -105,7 +192,8 @@
105 gpio2: gpio@e0050100 { 192 gpio2: gpio@e0050100 {
106 compatible = "renesas,em-gio"; 193 compatible = "renesas,em-gio";
107 reg = <0xe0050100 0x2c>, <0xe0050140 0x20>; 194 reg = <0xe0050100 0x2c>, <0xe0050140 0x20>;
108 interrupts = <0 71 0>, <0 72 0>; 195 interrupts = <0 71 IRQ_TYPE_LEVEL_HIGH>,
196 <0 72 IRQ_TYPE_LEVEL_HIGH>;
109 gpio-controller; 197 gpio-controller;
110 #gpio-cells = <2>; 198 #gpio-cells = <2>;
111 ngpios = <32>; 199 ngpios = <32>;
@@ -115,7 +203,8 @@
115 gpio3: gpio@e0050180 { 203 gpio3: gpio@e0050180 {
116 compatible = "renesas,em-gio"; 204 compatible = "renesas,em-gio";
117 reg = <0xe0050180 0x2c>, <0xe00501c0 0x20>; 205 reg = <0xe0050180 0x2c>, <0xe00501c0 0x20>;
118 interrupts = <0 73 0>, <0 74 0>; 206 interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>,
207 <0 74 IRQ_TYPE_LEVEL_HIGH>;
119 gpio-controller; 208 gpio-controller;
120 #gpio-cells = <2>; 209 #gpio-cells = <2>;
121 ngpios = <32>; 210 ngpios = <32>;
@@ -125,7 +214,8 @@
125 gpio4: gpio@e0050200 { 214 gpio4: gpio@e0050200 {
126 compatible = "renesas,em-gio"; 215 compatible = "renesas,em-gio";
127 reg = <0xe0050200 0x2c>, <0xe0050240 0x20>; 216 reg = <0xe0050200 0x2c>, <0xe0050240 0x20>;
128 interrupts = <0 75 0>, <0 76 0>; 217 interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>,
218 <0 76 IRQ_TYPE_LEVEL_HIGH>;
129 gpio-controller; 219 gpio-controller;
130 #gpio-cells = <2>; 220 #gpio-cells = <2>;
131 ngpios = <31>; 221 ngpios = <31>;
diff --git a/arch/arm/boot/dts/r7s72100-genmai.dts b/arch/arm/boot/dts/r7s72100-genmai.dts
index 1fb20f2333cc..b1deaf7e2e06 100644
--- a/arch/arm/boot/dts/r7s72100-genmai.dts
+++ b/arch/arm/boot/dts/r7s72100-genmai.dts
@@ -9,7 +9,7 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "r7s72100.dtsi" 12#include "r7s72100.dtsi"
13 13
14/ { 14/ {
15 model = "Genmai"; 15 model = "Genmai";
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
index 9443e93d3cac..70b1fff8f4a3 100644
--- a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
+++ b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
@@ -9,7 +9,7 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "r8a73a4.dtsi" 12#include "r8a73a4.dtsi"
13#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/gpio/gpio.h>
14 14
15/ { 15/ {
@@ -25,6 +25,11 @@
25 reg = <0 0x40000000 0 0x40000000>; 25 reg = <0 0x40000000 0 0x40000000>;
26 }; 26 };
27 27
28 memory@200000000 {
29 device_type = "memory";
30 reg = <2 0x00000000 0 0x40000000>;
31 };
32
28 vcc_mmc0: regulator@0 { 33 vcc_mmc0: regulator@0 {
29 compatible = "regulator-fixed"; 34 compatible = "regulator-fixed";
30 regulator-name = "MMC0 Vcc"; 35 regulator-name = "MMC0 Vcc";
@@ -88,22 +93,22 @@
88 pinctrl-0 = <&scifa0_pins>; 93 pinctrl-0 = <&scifa0_pins>;
89 pinctrl-names = "default"; 94 pinctrl-names = "default";
90 95
91 scifa0_pins: scifa0 { 96 scifa0_pins: serial0 {
92 renesas,groups = "scifa0_data"; 97 renesas,groups = "scifa0_data";
93 renesas,function = "scifa0"; 98 renesas,function = "scifa0";
94 }; 99 };
95 100
96 mmc0_pins: mmcif { 101 mmc0_pins: mmc {
97 renesas,groups = "mmc0_data8", "mmc0_ctrl"; 102 renesas,groups = "mmc0_data8", "mmc0_ctrl";
98 renesas,function = "mmc0"; 103 renesas,function = "mmc0";
99 }; 104 };
100 105
101 sdhi0_pins: sdhi0 { 106 sdhi0_pins: sd0 {
102 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd"; 107 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd";
103 renesas,function = "sdhi0"; 108 renesas,function = "sdhi0";
104 }; 109 };
105 110
106 sdhi1_pins: sdhi1 { 111 sdhi1_pins: sd1 {
107 renesas,groups = "sdhi1_data4", "sdhi1_ctrl"; 112 renesas,groups = "sdhi1_data4", "sdhi1_ctrl";
108 renesas,function = "sdhi1"; 113 renesas,function = "sdhi1";
109 }; 114 };
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/r8a73a4-ape6evm.dts
index 91436b58016f..ce085fa444a1 100644
--- a/arch/arm/boot/dts/r8a73a4-ape6evm.dts
+++ b/arch/arm/boot/dts/r8a73a4-ape6evm.dts
@@ -9,7 +9,8 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "r8a73a4.dtsi" 12#include "r8a73a4.dtsi"
13#include <dt-bindings/interrupt-controller/irq.h>
13 14
14/ { 15/ {
15 model = "APE6EVM"; 16 model = "APE6EVM";
@@ -24,6 +25,11 @@
24 reg = <0 0x40000000 0 0x40000000>; 25 reg = <0 0x40000000 0 0x40000000>;
25 }; 26 };
26 27
28 memory@200000000 {
29 device_type = "memory";
30 reg = <2 0x00000000 0 0x40000000>;
31 };
32
27 ape6evm_fixed_3v3: fixedregulator@0 { 33 ape6evm_fixed_3v3: fixedregulator@0 {
28 compatible = "regulator-fixed"; 34 compatible = "regulator-fixed";
29 regulator-name = "3V3"; 35 regulator-name = "3V3";
@@ -40,7 +46,7 @@
40 compatible = "smsc,lan9118", "smsc,lan9115"; 46 compatible = "smsc,lan9118", "smsc,lan9115";
41 reg = <0x08000000 0x1000>; 47 reg = <0x08000000 0x1000>;
42 interrupt-parent = <&irqc1>; 48 interrupt-parent = <&irqc1>;
43 interrupts = <8 0x4>; 49 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
44 phy-mode = "mii"; 50 phy-mode = "mii";
45 reg-io-width = <4>; 51 reg-io-width = <4>;
46 smsc,irq-active-high; 52 smsc,irq-active-high;
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index 287e047592a0..6b7ce89a68f7 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -9,6 +9,9 @@
9 * kind, whether express or implied. 9 * kind, whether express or implied.
10 */ 10 */
11 11
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14
12/ { 15/ {
13 compatible = "renesas,r8a73a4"; 16 compatible = "renesas,r8a73a4";
14 interrupt-parent = <&gic>; 17 interrupt-parent = <&gic>;
@@ -36,15 +39,15 @@
36 <0 0xf1002000 0 0x1000>, 39 <0 0xf1002000 0 0x1000>,
37 <0 0xf1004000 0 0x2000>, 40 <0 0xf1004000 0 0x2000>,
38 <0 0xf1006000 0 0x2000>; 41 <0 0xf1006000 0 0x2000>;
39 interrupts = <1 9 0xf04>; 42 interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
40 }; 43 };
41 44
42 timer { 45 timer {
43 compatible = "arm,armv7-timer"; 46 compatible = "arm,armv7-timer";
44 interrupts = <1 13 0xf08>, 47 interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
45 <1 14 0xf08>, 48 <1 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
46 <1 11 0xf08>, 49 <1 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
47 <1 10 0xf08>; 50 <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
48 }; 51 };
49 52
50 irqc0: interrupt-controller@e61c0000 { 53 irqc0: interrupt-controller@e61c0000 {
@@ -53,14 +56,38 @@
53 interrupt-controller; 56 interrupt-controller;
54 reg = <0 0xe61c0000 0 0x200>; 57 reg = <0 0xe61c0000 0 0x200>;
55 interrupt-parent = <&gic>; 58 interrupt-parent = <&gic>;
56 interrupts = <0 0 4>, <0 1 4>, <0 2 4>, <0 3 4>, 59 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
57 <0 4 4>, <0 5 4>, <0 6 4>, <0 7 4>, 60 <0 1 IRQ_TYPE_LEVEL_HIGH>,
58 <0 8 4>, <0 9 4>, <0 10 4>, <0 11 4>, 61 <0 2 IRQ_TYPE_LEVEL_HIGH>,
59 <0 12 4>, <0 13 4>, <0 14 4>, <0 15 4>, 62 <0 3 IRQ_TYPE_LEVEL_HIGH>,
60 <0 16 4>, <0 17 4>, <0 18 4>, <0 19 4>, 63 <0 4 IRQ_TYPE_LEVEL_HIGH>,
61 <0 20 4>, <0 21 4>, <0 22 4>, <0 23 4>, 64 <0 5 IRQ_TYPE_LEVEL_HIGH>,
62 <0 24 4>, <0 25 4>, <0 26 4>, <0 27 4>, 65 <0 6 IRQ_TYPE_LEVEL_HIGH>,
63 <0 28 4>, <0 29 4>, <0 30 4>, <0 31 4>; 66 <0 7 IRQ_TYPE_LEVEL_HIGH>,
67 <0 8 IRQ_TYPE_LEVEL_HIGH>,
68 <0 9 IRQ_TYPE_LEVEL_HIGH>,
69 <0 10 IRQ_TYPE_LEVEL_HIGH>,
70 <0 11 IRQ_TYPE_LEVEL_HIGH>,
71 <0 12 IRQ_TYPE_LEVEL_HIGH>,
72 <0 13 IRQ_TYPE_LEVEL_HIGH>,
73 <0 14 IRQ_TYPE_LEVEL_HIGH>,
74 <0 15 IRQ_TYPE_LEVEL_HIGH>,
75 <0 16 IRQ_TYPE_LEVEL_HIGH>,
76 <0 17 IRQ_TYPE_LEVEL_HIGH>,
77 <0 18 IRQ_TYPE_LEVEL_HIGH>,
78 <0 19 IRQ_TYPE_LEVEL_HIGH>,
79 <0 20 IRQ_TYPE_LEVEL_HIGH>,
80 <0 21 IRQ_TYPE_LEVEL_HIGH>,
81 <0 22 IRQ_TYPE_LEVEL_HIGH>,
82 <0 23 IRQ_TYPE_LEVEL_HIGH>,
83 <0 24 IRQ_TYPE_LEVEL_HIGH>,
84 <0 25 IRQ_TYPE_LEVEL_HIGH>,
85 <0 26 IRQ_TYPE_LEVEL_HIGH>,
86 <0 27 IRQ_TYPE_LEVEL_HIGH>,
87 <0 28 IRQ_TYPE_LEVEL_HIGH>,
88 <0 29 IRQ_TYPE_LEVEL_HIGH>,
89 <0 30 IRQ_TYPE_LEVEL_HIGH>,
90 <0 31 IRQ_TYPE_LEVEL_HIGH>;
64 }; 91 };
65 92
66 irqc1: interrupt-controller@e61c0200 { 93 irqc1: interrupt-controller@e61c0200 {
@@ -69,13 +96,32 @@
69 interrupt-controller; 96 interrupt-controller;
70 reg = <0 0xe61c0200 0 0x200>; 97 reg = <0 0xe61c0200 0 0x200>;
71 interrupt-parent = <&gic>; 98 interrupt-parent = <&gic>;
72 interrupts = <0 32 4>, <0 33 4>, <0 34 4>, <0 35 4>, 99 interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>,
73 <0 36 4>, <0 37 4>, <0 38 4>, <0 39 4>, 100 <0 33 IRQ_TYPE_LEVEL_HIGH>,
74 <0 40 4>, <0 41 4>, <0 42 4>, <0 43 4>, 101 <0 34 IRQ_TYPE_LEVEL_HIGH>,
75 <0 44 4>, <0 45 4>, <0 46 4>, <0 47 4>, 102 <0 35 IRQ_TYPE_LEVEL_HIGH>,
76 <0 48 4>, <0 49 4>, <0 50 4>, <0 51 4>, 103 <0 36 IRQ_TYPE_LEVEL_HIGH>,
77 <0 52 4>, <0 53 4>, <0 54 4>, <0 55 4>, 104 <0 37 IRQ_TYPE_LEVEL_HIGH>,
78 <0 56 4>, <0 57 4>; 105 <0 38 IRQ_TYPE_LEVEL_HIGH>,
106 <0 39 IRQ_TYPE_LEVEL_HIGH>,
107 <0 40 IRQ_TYPE_LEVEL_HIGH>,
108 <0 41 IRQ_TYPE_LEVEL_HIGH>,
109 <0 42 IRQ_TYPE_LEVEL_HIGH>,
110 <0 43 IRQ_TYPE_LEVEL_HIGH>,
111 <0 44 IRQ_TYPE_LEVEL_HIGH>,
112 <0 45 IRQ_TYPE_LEVEL_HIGH>,
113 <0 46 IRQ_TYPE_LEVEL_HIGH>,
114 <0 47 IRQ_TYPE_LEVEL_HIGH>,
115 <0 48 IRQ_TYPE_LEVEL_HIGH>,
116 <0 49 IRQ_TYPE_LEVEL_HIGH>,
117 <0 50 IRQ_TYPE_LEVEL_HIGH>,
118 <0 51 IRQ_TYPE_LEVEL_HIGH>,
119 <0 52 IRQ_TYPE_LEVEL_HIGH>,
120 <0 53 IRQ_TYPE_LEVEL_HIGH>,
121 <0 54 IRQ_TYPE_LEVEL_HIGH>,
122 <0 55 IRQ_TYPE_LEVEL_HIGH>,
123 <0 56 IRQ_TYPE_LEVEL_HIGH>,
124 <0 57 IRQ_TYPE_LEVEL_HIGH>;
79 }; 125 };
80 126
81 dmac: dma-multiplexer@0 { 127 dmac: dma-multiplexer@0 {
@@ -91,27 +137,27 @@
91 compatible = "renesas,shdma-r8a73a4"; 137 compatible = "renesas,shdma-r8a73a4";
92 reg = <0 0xe6700020 0 0x89e0>; 138 reg = <0 0xe6700020 0 0x89e0>;
93 interrupt-parent = <&gic>; 139 interrupt-parent = <&gic>;
94 interrupts = <0 220 4 140 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
95 0 200 4 141 0 200 IRQ_TYPE_LEVEL_HIGH
96 0 201 4 142 0 201 IRQ_TYPE_LEVEL_HIGH
97 0 202 4 143 0 202 IRQ_TYPE_LEVEL_HIGH
98 0 203 4 144 0 203 IRQ_TYPE_LEVEL_HIGH
99 0 204 4 145 0 204 IRQ_TYPE_LEVEL_HIGH
100 0 205 4 146 0 205 IRQ_TYPE_LEVEL_HIGH
101 0 206 4 147 0 206 IRQ_TYPE_LEVEL_HIGH
102 0 207 4 148 0 207 IRQ_TYPE_LEVEL_HIGH
103 0 208 4 149 0 208 IRQ_TYPE_LEVEL_HIGH
104 0 209 4 150 0 209 IRQ_TYPE_LEVEL_HIGH
105 0 210 4 151 0 210 IRQ_TYPE_LEVEL_HIGH
106 0 211 4 152 0 211 IRQ_TYPE_LEVEL_HIGH
107 0 212 4 153 0 212 IRQ_TYPE_LEVEL_HIGH
108 0 213 4 154 0 213 IRQ_TYPE_LEVEL_HIGH
109 0 214 4 155 0 214 IRQ_TYPE_LEVEL_HIGH
110 0 215 4 156 0 215 IRQ_TYPE_LEVEL_HIGH
111 0 216 4 157 0 216 IRQ_TYPE_LEVEL_HIGH
112 0 217 4 158 0 217 IRQ_TYPE_LEVEL_HIGH
113 0 218 4 159 0 218 IRQ_TYPE_LEVEL_HIGH
114 0 219 4>; 160 0 219 IRQ_TYPE_LEVEL_HIGH>;
115 interrupt-names = "error", 161 interrupt-names = "error",
116 "ch0", "ch1", "ch2", "ch3", 162 "ch0", "ch1", "ch2", "ch3",
117 "ch4", "ch5", "ch6", "ch7", 163 "ch4", "ch5", "ch6", "ch7",
@@ -126,7 +172,7 @@
126 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>, 172 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>,
127 <0 0xe61f0200 0 0x38>, <0 0xe61f0300 0 0x38>; 173 <0 0xe61f0200 0 0x38>, <0 0xe61f0300 0 0x38>;
128 interrupt-parent = <&gic>; 174 interrupt-parent = <&gic>;
129 interrupts = <0 69 4>; 175 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
130 }; 176 };
131 177
132 i2c0: i2c@e6500000 { 178 i2c0: i2c@e6500000 {
@@ -135,7 +181,7 @@
135 compatible = "renesas,rmobile-iic"; 181 compatible = "renesas,rmobile-iic";
136 reg = <0 0xe6500000 0 0x428>; 182 reg = <0 0xe6500000 0 0x428>;
137 interrupt-parent = <&gic>; 183 interrupt-parent = <&gic>;
138 interrupts = <0 174 0x4>; 184 interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>;
139 status = "disabled"; 185 status = "disabled";
140 }; 186 };
141 187
@@ -145,7 +191,7 @@
145 compatible = "renesas,rmobile-iic"; 191 compatible = "renesas,rmobile-iic";
146 reg = <0 0xe6510000 0 0x428>; 192 reg = <0 0xe6510000 0 0x428>;
147 interrupt-parent = <&gic>; 193 interrupt-parent = <&gic>;
148 interrupts = <0 175 0x4>; 194 interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>;
149 status = "disabled"; 195 status = "disabled";
150 }; 196 };
151 197
@@ -155,7 +201,7 @@
155 compatible = "renesas,rmobile-iic"; 201 compatible = "renesas,rmobile-iic";
156 reg = <0 0xe6520000 0 0x428>; 202 reg = <0 0xe6520000 0 0x428>;
157 interrupt-parent = <&gic>; 203 interrupt-parent = <&gic>;
158 interrupts = <0 176 0x4>; 204 interrupts = <0 176 IRQ_TYPE_LEVEL_HIGH>;
159 status = "disabled"; 205 status = "disabled";
160 }; 206 };
161 207
@@ -165,7 +211,7 @@
165 compatible = "renesas,rmobile-iic"; 211 compatible = "renesas,rmobile-iic";
166 reg = <0 0xe6530000 0 0x428>; 212 reg = <0 0xe6530000 0 0x428>;
167 interrupt-parent = <&gic>; 213 interrupt-parent = <&gic>;
168 interrupts = <0 177 0x4>; 214 interrupts = <0 177 IRQ_TYPE_LEVEL_HIGH>;
169 status = "disabled"; 215 status = "disabled";
170 }; 216 };
171 217
@@ -175,7 +221,7 @@
175 compatible = "renesas,rmobile-iic"; 221 compatible = "renesas,rmobile-iic";
176 reg = <0 0xe6540000 0 0x428>; 222 reg = <0 0xe6540000 0 0x428>;
177 interrupt-parent = <&gic>; 223 interrupt-parent = <&gic>;
178 interrupts = <0 178 0x4>; 224 interrupts = <0 178 IRQ_TYPE_LEVEL_HIGH>;
179 status = "disabled"; 225 status = "disabled";
180 }; 226 };
181 227
@@ -185,7 +231,7 @@
185 compatible = "renesas,rmobile-iic"; 231 compatible = "renesas,rmobile-iic";
186 reg = <0 0xe60b0000 0 0x428>; 232 reg = <0 0xe60b0000 0 0x428>;
187 interrupt-parent = <&gic>; 233 interrupt-parent = <&gic>;
188 interrupts = <0 179 0x4>; 234 interrupts = <0 179 IRQ_TYPE_LEVEL_HIGH>;
189 status = "disabled"; 235 status = "disabled";
190 }; 236 };
191 237
@@ -195,7 +241,7 @@
195 compatible = "renesas,rmobile-iic"; 241 compatible = "renesas,rmobile-iic";
196 reg = <0 0xe6550000 0 0x428>; 242 reg = <0 0xe6550000 0 0x428>;
197 interrupt-parent = <&gic>; 243 interrupt-parent = <&gic>;
198 interrupts = <0 184 0x4>; 244 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
199 status = "disabled"; 245 status = "disabled";
200 }; 246 };
201 247
@@ -205,7 +251,7 @@
205 compatible = "renesas,rmobile-iic"; 251 compatible = "renesas,rmobile-iic";
206 reg = <0 0xe6560000 0 0x428>; 252 reg = <0 0xe6560000 0 0x428>;
207 interrupt-parent = <&gic>; 253 interrupt-parent = <&gic>;
208 interrupts = <0 185 0x4>; 254 interrupts = <0 185 IRQ_TYPE_LEVEL_HIGH>;
209 status = "disabled"; 255 status = "disabled";
210 }; 256 };
211 257
@@ -215,24 +261,24 @@
215 compatible = "renesas,rmobile-iic"; 261 compatible = "renesas,rmobile-iic";
216 reg = <0 0xe6570000 0 0x428>; 262 reg = <0 0xe6570000 0 0x428>;
217 interrupt-parent = <&gic>; 263 interrupt-parent = <&gic>;
218 interrupts = <0 173 0x4>; 264 interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>;
219 status = "disabled"; 265 status = "disabled";
220 }; 266 };
221 267
222 mmcif0: mmcif@ee200000 { 268 mmcif0: mmc@ee200000 {
223 compatible = "renesas,sh-mmcif"; 269 compatible = "renesas,sh-mmcif";
224 reg = <0 0xee200000 0 0x80>; 270 reg = <0 0xee200000 0 0x80>;
225 interrupt-parent = <&gic>; 271 interrupt-parent = <&gic>;
226 interrupts = <0 169 0x4>; 272 interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
227 reg-io-width = <4>; 273 reg-io-width = <4>;
228 status = "disabled"; 274 status = "disabled";
229 }; 275 };
230 276
231 mmcif1: mmcif@ee220000 { 277 mmcif1: mmc@ee220000 {
232 compatible = "renesas,sh-mmcif"; 278 compatible = "renesas,sh-mmcif";
233 reg = <0 0xee220000 0 0x80>; 279 reg = <0 0xee220000 0 0x80>;
234 interrupt-parent = <&gic>; 280 interrupt-parent = <&gic>;
235 interrupts = <0 170 0x4>; 281 interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>;
236 reg-io-width = <4>; 282 reg-io-width = <4>;
237 status = "disabled"; 283 status = "disabled";
238 }; 284 };
@@ -244,29 +290,29 @@
244 #gpio-cells = <2>; 290 #gpio-cells = <2>;
245 }; 291 };
246 292
247 sdhi0: sdhi@ee100000 { 293 sdhi0: sd@ee100000 {
248 compatible = "renesas,sdhi-r8a73a4"; 294 compatible = "renesas,sdhi-r8a73a4";
249 reg = <0 0xee100000 0 0x100>; 295 reg = <0 0xee100000 0 0x100>;
250 interrupt-parent = <&gic>; 296 interrupt-parent = <&gic>;
251 interrupts = <0 165 4>; 297 interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>;
252 cap-sd-highspeed; 298 cap-sd-highspeed;
253 status = "disabled"; 299 status = "disabled";
254 }; 300 };
255 301
256 sdhi1: sdhi@ee120000 { 302 sdhi1: sd@ee120000 {
257 compatible = "renesas,sdhi-r8a73a4"; 303 compatible = "renesas,sdhi-r8a73a4";
258 reg = <0 0xee120000 0 0x100>; 304 reg = <0 0xee120000 0 0x100>;
259 interrupt-parent = <&gic>; 305 interrupt-parent = <&gic>;
260 interrupts = <0 166 4>; 306 interrupts = <0 166 IRQ_TYPE_LEVEL_HIGH>;
261 cap-sd-highspeed; 307 cap-sd-highspeed;
262 status = "disabled"; 308 status = "disabled";
263 }; 309 };
264 310
265 sdhi2: sdhi@ee140000 { 311 sdhi2: sd@ee140000 {
266 compatible = "renesas,sdhi-r8a73a4"; 312 compatible = "renesas,sdhi-r8a73a4";
267 reg = <0 0xee140000 0 0x100>; 313 reg = <0 0xee140000 0 0x100>;
268 interrupt-parent = <&gic>; 314 interrupt-parent = <&gic>;
269 interrupts = <0 167 4>; 315 interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>;
270 cap-sd-highspeed; 316 cap-sd-highspeed;
271 status = "disabled"; 317 status = "disabled";
272 }; 318 };
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
index 1c56c5e56950..6d6fd3dff2d3 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
@@ -9,8 +9,9 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "r8a7740.dtsi" 12#include "r8a7740.dtsi"
13#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/gpio/gpio.h>
14#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/pwm/pwm.h> 15#include <dt-bindings/pwm/pwm.h>
15 16
16/ { 17/ {
@@ -86,31 +87,55 @@
86 pinctrl-0 = <&backlight_pins>; 87 pinctrl-0 = <&backlight_pins>;
87 pinctrl-names = "default"; 88 pinctrl-names = "default";
88 }; 89 };
90
91 sound {
92 compatible = "simple-audio-card";
93
94 simple-audio-card,format = "i2s";
95
96 simple-audio-card,cpu {
97 sound-dai = <&sh_fsi2 0>;
98 bitclock-inversion;
99 };
100
101 simple-audio-card,codec {
102 sound-dai = <&wm8978>;
103 bitclock-master;
104 frame-master;
105 system-clock-frequency = <12288000>;
106 };
107 };
89}; 108};
90 109
91&i2c0 { 110&i2c0 {
92 status = "okay"; 111 status = "okay";
93 touchscreen: st1232@55 { 112 touchscreen@55 {
94 compatible = "sitronix,st1232"; 113 compatible = "sitronix,st1232";
95 reg = <0x55>; 114 reg = <0x55>;
96 interrupt-parent = <&irqpin1>; 115 interrupt-parent = <&irqpin1>;
97 interrupts = <2 0>; /* IRQ10: hwirq 2 on irqpin1 */ 116 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
98 pinctrl-0 = <&st1232_pins>; 117 pinctrl-0 = <&st1232_pins>;
99 pinctrl-names = "default"; 118 pinctrl-names = "default";
100 gpios = <&pfc 166 GPIO_ACTIVE_LOW>; 119 gpios = <&pfc 166 GPIO_ACTIVE_LOW>;
101 }; 120 };
121
122 wm8978: wm8978@1a {
123 #sound-dai-cells = <0>;
124 compatible = "wlf,wm8978";
125 reg = <0x1a>;
126 };
102}; 127};
103 128
104&pfc { 129&pfc {
105 pinctrl-0 = <&scifa1_pins>; 130 pinctrl-0 = <&scifa1_pins>;
106 pinctrl-names = "default"; 131 pinctrl-names = "default";
107 132
108 scifa1_pins: scifa1 { 133 scifa1_pins: serial1 {
109 renesas,groups = "scifa1_data"; 134 renesas,groups = "scifa1_data";
110 renesas,function = "scifa1"; 135 renesas,function = "scifa1";
111 }; 136 };
112 137
113 st1232_pins: st1232 { 138 st1232_pins: touchscreen {
114 renesas,groups = "intc_irq10"; 139 renesas,groups = "intc_irq10";
115 renesas,function = "intc"; 140 renesas,function = "intc";
116 }; 141 };
@@ -125,10 +150,16 @@
125 renesas,function = "mmc0"; 150 renesas,function = "mmc0";
126 }; 151 };
127 152
128 sdhi0_pins: sdhi0 { 153 sdhi0_pins: sd0 {
129 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_wp"; 154 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_wp";
130 renesas,function = "sdhi0"; 155 renesas,function = "sdhi0";
131 }; 156 };
157
158 fsia_pins: sounda {
159 renesas,groups = "fsia_sclk_in", "fsia_mclk_out",
160 "fsia_data_in_1", "fsia_data_out_0";
161 renesas,function = "fsia";
162 };
132}; 163};
133 164
134&tpu { 165&tpu {
@@ -155,3 +186,10 @@
155 cd-gpios = <&pfc 167 GPIO_ACTIVE_LOW>; 186 cd-gpios = <&pfc 167 GPIO_ACTIVE_LOW>;
156 status = "okay"; 187 status = "okay";
157}; 188};
189
190&sh_fsi2 {
191 pinctrl-0 = <&fsia_pins>;
192 pinctrl-names = "default";
193
194 status = "okay";
195};
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
index 426cd9c3e1c4..a06a11e1a840 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
@@ -9,7 +9,7 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "r8a7740.dtsi" 12#include "r8a7740.dtsi"
13 13
14/ { 14/ {
15 model = "armadillo 800 eva"; 15 model = "armadillo 800 eva";
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index ae1e230f711d..2782f642acfc 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -10,6 +10,8 @@
10 10
11/include/ "skeleton.dtsi" 11/include/ "skeleton.dtsi"
12 12
13#include <dt-bindings/interrupt-controller/irq.h>
14
13/ { 15/ {
14 compatible = "renesas,r8a7740"; 16 compatible = "renesas,r8a7740";
15 17
@@ -34,12 +36,12 @@
34 36
35 pmu { 37 pmu {
36 compatible = "arm,cortex-a9-pmu"; 38 compatible = "arm,cortex-a9-pmu";
37 interrupts = <0 83 4>; 39 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
38 }; 40 };
39 41
40 /* irqpin0: IRQ0 - IRQ7 */ 42 /* irqpin0: IRQ0 - IRQ7 */
41 irqpin0: irqpin@e6900000 { 43 irqpin0: irqpin@e6900000 {
42 compatible = "renesas,intc-irqpin"; 44 compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin";
43 #interrupt-cells = <2>; 45 #interrupt-cells = <2>;
44 interrupt-controller; 46 interrupt-controller;
45 reg = <0xe6900000 4>, 47 reg = <0xe6900000 4>,
@@ -48,19 +50,19 @@
48 <0xe6900040 1>, 50 <0xe6900040 1>,
49 <0xe6900060 1>; 51 <0xe6900060 1>;
50 interrupt-parent = <&gic>; 52 interrupt-parent = <&gic>;
51 interrupts = <0 149 0x4 53 interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH
52 0 149 0x4 54 0 149 IRQ_TYPE_LEVEL_HIGH
53 0 149 0x4 55 0 149 IRQ_TYPE_LEVEL_HIGH
54 0 149 0x4 56 0 149 IRQ_TYPE_LEVEL_HIGH
55 0 149 0x4 57 0 149 IRQ_TYPE_LEVEL_HIGH
56 0 149 0x4 58 0 149 IRQ_TYPE_LEVEL_HIGH
57 0 149 0x4 59 0 149 IRQ_TYPE_LEVEL_HIGH
58 0 149 0x4>; 60 0 149 IRQ_TYPE_LEVEL_HIGH>;
59 }; 61 };
60 62
61 /* irqpin1: IRQ8 - IRQ15 */ 63 /* irqpin1: IRQ8 - IRQ15 */
62 irqpin1: irqpin@e6900004 { 64 irqpin1: irqpin@e6900004 {
63 compatible = "renesas,intc-irqpin"; 65 compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin";
64 #interrupt-cells = <2>; 66 #interrupt-cells = <2>;
65 interrupt-controller; 67 interrupt-controller;
66 reg = <0xe6900004 4>, 68 reg = <0xe6900004 4>,
@@ -69,19 +71,19 @@
69 <0xe6900044 1>, 71 <0xe6900044 1>,
70 <0xe6900064 1>; 72 <0xe6900064 1>;
71 interrupt-parent = <&gic>; 73 interrupt-parent = <&gic>;
72 interrupts = <0 149 0x4 74 interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH
73 0 149 0x4 75 0 149 IRQ_TYPE_LEVEL_HIGH
74 0 149 0x4 76 0 149 IRQ_TYPE_LEVEL_HIGH
75 0 149 0x4 77 0 149 IRQ_TYPE_LEVEL_HIGH
76 0 149 0x4 78 0 149 IRQ_TYPE_LEVEL_HIGH
77 0 149 0x4 79 0 149 IRQ_TYPE_LEVEL_HIGH
78 0 149 0x4 80 0 149 IRQ_TYPE_LEVEL_HIGH
79 0 149 0x4>; 81 0 149 IRQ_TYPE_LEVEL_HIGH>;
80 }; 82 };
81 83
82 /* irqpin2: IRQ16 - IRQ23 */ 84 /* irqpin2: IRQ16 - IRQ23 */
83 irqpin2: irqpin@e6900008 { 85 irqpin2: irqpin@e6900008 {
84 compatible = "renesas,intc-irqpin"; 86 compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin";
85 #interrupt-cells = <2>; 87 #interrupt-cells = <2>;
86 interrupt-controller; 88 interrupt-controller;
87 reg = <0xe6900008 4>, 89 reg = <0xe6900008 4>,
@@ -90,19 +92,19 @@
90 <0xe6900048 1>, 92 <0xe6900048 1>,
91 <0xe6900068 1>; 93 <0xe6900068 1>;
92 interrupt-parent = <&gic>; 94 interrupt-parent = <&gic>;
93 interrupts = <0 149 0x4 95 interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH
94 0 149 0x4 96 0 149 IRQ_TYPE_LEVEL_HIGH
95 0 149 0x4 97 0 149 IRQ_TYPE_LEVEL_HIGH
96 0 149 0x4 98 0 149 IRQ_TYPE_LEVEL_HIGH
97 0 149 0x4 99 0 149 IRQ_TYPE_LEVEL_HIGH
98 0 149 0x4 100 0 149 IRQ_TYPE_LEVEL_HIGH
99 0 149 0x4 101 0 149 IRQ_TYPE_LEVEL_HIGH
100 0 149 0x4>; 102 0 149 IRQ_TYPE_LEVEL_HIGH>;
101 }; 103 };
102 104
103 /* irqpin3: IRQ24 - IRQ31 */ 105 /* irqpin3: IRQ24 - IRQ31 */
104 irqpin3: irqpin@e690000c { 106 irqpin3: irqpin@e690000c {
105 compatible = "renesas,intc-irqpin"; 107 compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin";
106 #interrupt-cells = <2>; 108 #interrupt-cells = <2>;
107 interrupt-controller; 109 interrupt-controller;
108 reg = <0xe690000c 4>, 110 reg = <0xe690000c 4>,
@@ -111,14 +113,14 @@
111 <0xe690004c 1>, 113 <0xe690004c 1>,
112 <0xe690006c 1>; 114 <0xe690006c 1>;
113 interrupt-parent = <&gic>; 115 interrupt-parent = <&gic>;
114 interrupts = <0 149 0x4 116 interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH
115 0 149 0x4 117 0 149 IRQ_TYPE_LEVEL_HIGH
116 0 149 0x4 118 0 149 IRQ_TYPE_LEVEL_HIGH
117 0 149 0x4 119 0 149 IRQ_TYPE_LEVEL_HIGH
118 0 149 0x4 120 0 149 IRQ_TYPE_LEVEL_HIGH
119 0 149 0x4 121 0 149 IRQ_TYPE_LEVEL_HIGH
120 0 149 0x4 122 0 149 IRQ_TYPE_LEVEL_HIGH
121 0 149 0x4>; 123 0 149 IRQ_TYPE_LEVEL_HIGH>;
122 }; 124 };
123 125
124 i2c0: i2c@fff20000 { 126 i2c0: i2c@fff20000 {
@@ -127,10 +129,10 @@
127 compatible = "renesas,rmobile-iic"; 129 compatible = "renesas,rmobile-iic";
128 reg = <0xfff20000 0x425>; 130 reg = <0xfff20000 0x425>;
129 interrupt-parent = <&gic>; 131 interrupt-parent = <&gic>;
130 interrupts = <0 201 0x4 132 interrupts = <0 201 IRQ_TYPE_LEVEL_HIGH
131 0 202 0x4 133 0 202 IRQ_TYPE_LEVEL_HIGH
132 0 203 0x4 134 0 203 IRQ_TYPE_LEVEL_HIGH
133 0 204 0x4>; 135 0 204 IRQ_TYPE_LEVEL_HIGH>;
134 status = "disabled"; 136 status = "disabled";
135 }; 137 };
136 138
@@ -140,10 +142,10 @@
140 compatible = "renesas,rmobile-iic"; 142 compatible = "renesas,rmobile-iic";
141 reg = <0xe6c20000 0x425>; 143 reg = <0xe6c20000 0x425>;
142 interrupt-parent = <&gic>; 144 interrupt-parent = <&gic>;
143 interrupts = <0 70 0x4 145 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH
144 0 71 0x4 146 0 71 IRQ_TYPE_LEVEL_HIGH
145 0 72 0x4 147 0 72 IRQ_TYPE_LEVEL_HIGH
146 0 73 0x4>; 148 0 73 IRQ_TYPE_LEVEL_HIGH>;
147 status = "disabled"; 149 status = "disabled";
148 }; 150 };
149 151
@@ -162,36 +164,57 @@
162 #pwm-cells = <3>; 164 #pwm-cells = <3>;
163 }; 165 };
164 166
165 mmcif0: mmcif@e6bd0000 { 167 mmcif0: mmc@e6bd0000 {
166 compatible = "renesas,sh-mmcif"; 168 compatible = "renesas,sh-mmcif";
167 reg = <0xe6bd0000 0x100>; 169 reg = <0xe6bd0000 0x100>;
168 interrupt-parent = <&gic>; 170 interrupt-parent = <&gic>;
169 interrupts = <0 56 4 171 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH
170 0 57 4>; 172 0 57 IRQ_TYPE_LEVEL_HIGH>;
171 status = "disabled"; 173 status = "disabled";
172 }; 174 };
173 175
174 sdhi0: sdhi@e6850000 { 176 sdhi0: sd@e6850000 {
175 compatible = "renesas,sdhi-r8a7740"; 177 compatible = "renesas,sdhi-r8a7740";
176 reg = <0xe6850000 0x100>; 178 reg = <0xe6850000 0x100>;
177 interrupt-parent = <&gic>; 179 interrupt-parent = <&gic>;
178 interrupts = <0 117 4 180 interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH
179 0 118 4 181 0 118 IRQ_TYPE_LEVEL_HIGH
180 0 119 4>; 182 0 119 IRQ_TYPE_LEVEL_HIGH>;
181 cap-sd-highspeed; 183 cap-sd-highspeed;
182 cap-sdio-irq; 184 cap-sdio-irq;
183 status = "disabled"; 185 status = "disabled";
184 }; 186 };
185 187
186 sdhi1: sdhi@e6860000 { 188 sdhi1: sd@e6860000 {
187 compatible = "renesas,sdhi-r8a7740"; 189 compatible = "renesas,sdhi-r8a7740";
188 reg = <0xe6860000 0x100>; 190 reg = <0xe6860000 0x100>;
189 interrupt-parent = <&gic>; 191 interrupt-parent = <&gic>;
190 interrupts = <0 121 4 192 interrupts = <0 121 IRQ_TYPE_LEVEL_HIGH
191 0 122 4 193 0 122 IRQ_TYPE_LEVEL_HIGH
192 0 123 4>; 194 0 123 IRQ_TYPE_LEVEL_HIGH>;
195 cap-sd-highspeed;
196 cap-sdio-irq;
197 status = "disabled";
198 };
199
200 sdhi2: sd@e6870000 {
201 compatible = "renesas,sdhi-r8a7740";
202 reg = <0xe6870000 0x100>;
203 interrupt-parent = <&gic>;
204 interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH
205 0 126 IRQ_TYPE_LEVEL_HIGH
206 0 127 IRQ_TYPE_LEVEL_HIGH>;
193 cap-sd-highspeed; 207 cap-sd-highspeed;
194 cap-sdio-irq; 208 cap-sdio-irq;
195 status = "disabled"; 209 status = "disabled";
196 }; 210 };
211
212 sh_fsi2: sound@fe1f0000 {
213 #sound-dai-cells = <1>;
214 compatible = "renesas,sh_fsi2";
215 reg = <0xfe1f0000 0x400>;
216 interrupt-parent = <&gic>;
217 interrupts = <0 9 0x4>;
218 status = "disabled";
219 };
197}; 220};
diff --git a/arch/arm/boot/dts/r8a7778-bockw-reference.dts b/arch/arm/boot/dts/r8a7778-bockw-reference.dts
index 969e386e852c..bb62c7a906f4 100644
--- a/arch/arm/boot/dts/r8a7778-bockw-reference.dts
+++ b/arch/arm/boot/dts/r8a7778-bockw-reference.dts
@@ -15,7 +15,8 @@
15 */ 15 */
16 16
17/dts-v1/; 17/dts-v1/;
18/include/ "r8a7778.dtsi" 18#include "r8a7778.dtsi"
19#include <dt-bindings/interrupt-controller/irq.h>
19 20
20/ { 21/ {
21 model = "bockw"; 22 model = "bockw";
@@ -45,13 +46,65 @@
45 46
46 phy-mode = "mii"; 47 phy-mode = "mii";
47 interrupt-parent = <&irqpin>; 48 interrupt-parent = <&irqpin>;
48 interrupts = <0 0>; /* IRQ0: hwirq 0 on irqpin */ 49 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
49 reg-io-width = <4>; 50 reg-io-width = <4>;
50 vddvario-supply = <&fixedregulator3v3>; 51 vddvario-supply = <&fixedregulator3v3>;
51 vdd33a-supply = <&fixedregulator3v3>; 52 vdd33a-supply = <&fixedregulator3v3>;
52 }; 53 };
54
55};
56
57&mmcif {
58 pinctrl-0 = <&mmc_pins>;
59 pinctrl-names = "default";
60
61 vmmc-supply = <&fixedregulator3v3>;
62 bus-width = <8>;
63 broken-cd;
64 status = "okay";
53}; 65};
54 66
55&irqpin { 67&irqpin {
56 status = "okay"; 68 status = "okay";
57}; 69};
70
71&pfc {
72 pinctrl-0 = <&scif0_pins>;
73 pinctrl-names = "default";
74
75 scif0_pins: serial0 {
76 renesas,groups = "scif0_data_a", "scif0_ctrl";
77 renesas,function = "scif0";
78 };
79
80 mmc_pins: mmc {
81 renesas,groups = "mmc_data8", "mmc_ctrl";
82 renesas,function = "mmc";
83 };
84
85 sdhi0_pins: sd0 {
86 renesas,groups = "sdhi0_data4", "sdhi0_ctrl",
87 "sdhi0_cd", "sdhi0_wp";
88 renesas,function = "sdhi0";
89 };
90
91 hspi0_pins: hspi0 {
92 renesas,groups = "hspi0_a";
93 renesas,function = "hspi0";
94 };
95};
96
97&sdhi0 {
98 pinctrl-0 = <&sdhi0_pins>;
99 pinctrl-names = "default";
100
101 vmmc-supply = <&fixedregulator3v3>;
102 bus-width = <4>;
103 status = "okay";
104};
105
106&hspi0 {
107 pinctrl-0 = <&hspi0_pins>;
108 pinctrl-names = "default";
109 status = "okay";
110};
diff --git a/arch/arm/boot/dts/r8a7778-bockw.dts b/arch/arm/boot/dts/r8a7778-bockw.dts
index 12bbebc9c955..46a884d45175 100644
--- a/arch/arm/boot/dts/r8a7778-bockw.dts
+++ b/arch/arm/boot/dts/r8a7778-bockw.dts
@@ -15,7 +15,7 @@
15 */ 15 */
16 16
17/dts-v1/; 17/dts-v1/;
18/include/ "r8a7778.dtsi" 18#include "r8a7778.dtsi"
19 19
20/ { 20/ {
21 model = "bockw"; 21 model = "bockw";
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index a6308a399e2d..ddb3bd7a8838 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -16,6 +16,8 @@
16 16
17/include/ "skeleton.dtsi" 17/include/ "skeleton.dtsi"
18 18
19#include <dt-bindings/interrupt-controller/irq.h>
20
19/ { 21/ {
20 compatible = "renesas,r8a7778"; 22 compatible = "renesas,r8a7778";
21 23
@@ -25,6 +27,12 @@
25 }; 27 };
26 }; 28 };
27 29
30 aliases {
31 spi0 = &hspi0;
32 spi1 = &hspi1;
33 spi2 = &hspi2;
34 };
35
28 gic: interrupt-controller@fe438000 { 36 gic: interrupt-controller@fe438000 {
29 compatible = "arm,cortex-a9-gic"; 37 compatible = "arm,cortex-a9-gic";
30 #interrupt-cells = <3>; 38 #interrupt-cells = <3>;
@@ -35,7 +43,7 @@
35 43
36 /* irqpin: IRQ0 - IRQ3 */ 44 /* irqpin: IRQ0 - IRQ3 */
37 irqpin: irqpin@fe78001c { 45 irqpin: irqpin@fe78001c {
38 compatible = "renesas,intc-irqpin"; 46 compatible = "renesas,intc-irqpin-r8a7778", "renesas,intc-irqpin";
39 #interrupt-cells = <2>; 47 #interrupt-cells = <2>;
40 interrupt-controller; 48 interrupt-controller;
41 status = "disabled"; /* default off */ 49 status = "disabled"; /* default off */
@@ -45,10 +53,10 @@
45 <0xfe780044 4>, 53 <0xfe780044 4>,
46 <0xfe780064 4>; 54 <0xfe780064 4>;
47 interrupt-parent = <&gic>; 55 interrupt-parent = <&gic>;
48 interrupts = <0 27 0x4 56 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH
49 0 28 0x4 57 0 28 IRQ_TYPE_LEVEL_HIGH
50 0 29 0x4 58 0 29 IRQ_TYPE_LEVEL_HIGH
51 0 30 0x4>; 59 0 30 IRQ_TYPE_LEVEL_HIGH>;
52 sense-bitfield-width = <2>; 60 sense-bitfield-width = <2>;
53 }; 61 };
54 62
@@ -56,7 +64,7 @@
56 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 64 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar";
57 reg = <0xffc40000 0x2c>; 65 reg = <0xffc40000 0x2c>;
58 interrupt-parent = <&gic>; 66 interrupt-parent = <&gic>;
59 interrupts = <0 103 0x4>; 67 interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>;
60 #gpio-cells = <2>; 68 #gpio-cells = <2>;
61 gpio-controller; 69 gpio-controller;
62 gpio-ranges = <&pfc 0 0 32>; 70 gpio-ranges = <&pfc 0 0 32>;
@@ -68,7 +76,7 @@
68 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 76 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar";
69 reg = <0xffc41000 0x2c>; 77 reg = <0xffc41000 0x2c>;
70 interrupt-parent = <&gic>; 78 interrupt-parent = <&gic>;
71 interrupts = <0 103 0x4>; 79 interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>;
72 #gpio-cells = <2>; 80 #gpio-cells = <2>;
73 gpio-controller; 81 gpio-controller;
74 gpio-ranges = <&pfc 0 32 32>; 82 gpio-ranges = <&pfc 0 32 32>;
@@ -80,7 +88,7 @@
80 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 88 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar";
81 reg = <0xffc42000 0x2c>; 89 reg = <0xffc42000 0x2c>;
82 interrupt-parent = <&gic>; 90 interrupt-parent = <&gic>;
83 interrupts = <0 103 0x4>; 91 interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>;
84 #gpio-cells = <2>; 92 #gpio-cells = <2>;
85 gpio-controller; 93 gpio-controller;
86 gpio-ranges = <&pfc 0 64 32>; 94 gpio-ranges = <&pfc 0 64 32>;
@@ -92,7 +100,7 @@
92 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 100 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar";
93 reg = <0xffc43000 0x2c>; 101 reg = <0xffc43000 0x2c>;
94 interrupt-parent = <&gic>; 102 interrupt-parent = <&gic>;
95 interrupts = <0 103 0x4>; 103 interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>;
96 #gpio-cells = <2>; 104 #gpio-cells = <2>;
97 gpio-controller; 105 gpio-controller;
98 gpio-ranges = <&pfc 0 96 32>; 106 gpio-ranges = <&pfc 0 96 32>;
@@ -104,7 +112,7 @@
104 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 112 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar";
105 reg = <0xffc44000 0x2c>; 113 reg = <0xffc44000 0x2c>;
106 interrupt-parent = <&gic>; 114 interrupt-parent = <&gic>;
107 interrupts = <0 103 0x4>; 115 interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>;
108 #gpio-cells = <2>; 116 #gpio-cells = <2>;
109 gpio-controller; 117 gpio-controller;
110 gpio-ranges = <&pfc 0 128 27>; 118 gpio-ranges = <&pfc 0 128 27>;
@@ -114,6 +122,148 @@
114 122
115 pfc: pfc@fffc0000 { 123 pfc: pfc@fffc0000 {
116 compatible = "renesas,pfc-r8a7778"; 124 compatible = "renesas,pfc-r8a7778";
117 reg = <0xfffc000 0x118>; 125 reg = <0xfffc0000 0x118>;
126 };
127
128 i2c0: i2c@ffc70000 {
129 #address-cells = <1>;
130 #size-cells = <0>;
131 compatible = "renesas,i2c-r8a7778";
132 reg = <0xffc70000 0x1000>;
133 interrupt-parent = <&gic>;
134 interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
135 status = "disabled";
136 };
137
138 i2c1: i2c@ffc71000 {
139 #address-cells = <1>;
140 #size-cells = <0>;
141 compatible = "renesas,i2c-r8a7778";
142 reg = <0xffc71000 0x1000>;
143 interrupt-parent = <&gic>;
144 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>;
145 status = "disabled";
146 };
147
148 i2c2: i2c@ffc72000 {
149 #address-cells = <1>;
150 #size-cells = <0>;
151 compatible = "renesas,i2c-r8a7778";
152 reg = <0xffc72000 0x1000>;
153 interrupt-parent = <&gic>;
154 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>;
155 status = "disabled";
156 };
157
158 i2c3: i2c@ffc73000 {
159 #address-cells = <1>;
160 #size-cells = <0>;
161 compatible = "renesas,i2c-r8a7778";
162 reg = <0xffc73000 0x1000>;
163 interrupt-parent = <&gic>;
164 interrupts = <0 77 IRQ_TYPE_LEVEL_HIGH>;
165 status = "disabled";
166 };
167
168 mmcif: mmc@ffe4e000 {
169 compatible = "renesas,sh-mmcif";
170 reg = <0xffe4e000 0x100>;
171 interrupt-parent = <&gic>;
172 interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>;
173 status = "disabled";
174 };
175
176 sdhi0: sd@ffe4c000 {
177 compatible = "renesas,sdhi-r8a7778";
178 reg = <0xffe4c000 0x100>;
179 interrupt-parent = <&gic>;
180 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;
181 cap-sd-highspeed;
182 cap-sdio-irq;
183 status = "disabled";
184 };
185
186 sdhi1: sd@ffe4d000 {
187 compatible = "renesas,sdhi-r8a7778";
188 reg = <0xffe4d000 0x100>;
189 interrupt-parent = <&gic>;
190 interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>;
191 cap-sd-highspeed;
192 cap-sdio-irq;
193 status = "disabled";
194 };
195
196 sdhi2: sd@ffe4f000 {
197 compatible = "renesas,sdhi-r8a7778";
198 reg = <0xffe4f000 0x100>;
199 interrupt-parent = <&gic>;
200 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
201 cap-sd-highspeed;
202 cap-sdio-irq;
203 status = "disabled";
204 };
205
206 i2c0: i2c@ffc70000 {
207 #address-cells = <1>;
208 #size-cells = <0>;
209 compatible = "renesas,i2c-r8a7778";
210 reg = <0xffc70000 0x1000>;
211 interrupt-parent = <&gic>;
212 interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
213 status = "disabled";
214 };
215
216 i2c1: i2c@ffc71000 {
217 #address-cells = <1>;
218 #size-cells = <0>;
219 compatible = "renesas,i2c-r8a7778";
220 reg = <0xffc71000 0x1000>;
221 interrupt-parent = <&gic>;
222 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>;
223 status = "disabled";
224 };
225
226 i2c2: i2c@ffc72000 {
227 #address-cells = <1>;
228 #size-cells = <0>;
229 compatible = "renesas,i2c-r8a7778";
230 reg = <0xffc72000 0x1000>;
231 interrupt-parent = <&gic>;
232 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>;
233 status = "disabled";
234 };
235
236 i2c3: i2c@ffc73000 {
237 #address-cells = <1>;
238 #size-cells = <0>;
239 compatible = "renesas,i2c-r8a7778";
240 reg = <0xffc73000 0x1000>;
241 interrupt-parent = <&gic>;
242 interrupts = <0 77 IRQ_TYPE_LEVEL_HIGH>;
243 status = "disabled";
244 };
245
246 hspi0: spi@fffc7000 {
247 compatible = "renesas,hspi";
248 reg = <0xfffc7000 0x18>;
249 interrupt-controller = <&gic>;
250 interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
251 status = "disabled";
252 };
253
254 hspi1: spi@fffc8000 {
255 compatible = "renesas,hspi";
256 reg = <0xfffc8000 0x18>;
257 interrupt-controller = <&gic>;
258 interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
259 status = "disabled";
260 };
261
262 hspi2: spi@fffc6000 {
263 compatible = "renesas,hspi";
264 reg = <0xfffc6000 0x18>;
265 interrupt-controller = <&gic>;
266 interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
267 status = "disabled";
118 }; 268 };
119}; 269};
diff --git a/arch/arm/boot/dts/r8a7779-marzen-reference.dts b/arch/arm/boot/dts/r8a7779-marzen-reference.dts
index ab4110aa3c3b..76f5eef7d1cc 100644
--- a/arch/arm/boot/dts/r8a7779-marzen-reference.dts
+++ b/arch/arm/boot/dts/r8a7779-marzen-reference.dts
@@ -10,8 +10,9 @@
10 */ 10 */
11 11
12/dts-v1/; 12/dts-v1/;
13/include/ "r8a7779.dtsi" 13#include "r8a7779.dtsi"
14#include <dt-bindings/gpio/gpio.h> 14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/interrupt-controller/irq.h>
15 16
16/ { 17/ {
17 model = "marzen"; 18 model = "marzen";
@@ -43,7 +44,7 @@
43 44
44 phy-mode = "mii"; 45 phy-mode = "mii";
45 interrupt-parent = <&irqpin0>; 46 interrupt-parent = <&irqpin0>;
46 interrupts = <1 0>; /* IRQ1: hwirq 1 on irqpin0 */ 47 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
47 reg-io-width = <4>; 48 reg-io-width = <4>;
48 vddvario-supply = <&fixedregulator3v3>; 49 vddvario-supply = <&fixedregulator3v3>;
49 vdd33a-supply = <&fixedregulator3v3>; 50 vdd33a-supply = <&fixedregulator3v3>;
@@ -68,7 +69,7 @@
68}; 69};
69 70
70&pfc { 71&pfc {
71 pinctrl-0 = <&scif2_pins &scif4_pins &sdhi0_pins>; 72 pinctrl-0 = <&scif2_pins &scif4_pins>;
72 pinctrl-names = "default"; 73 pinctrl-names = "default";
73 74
74 lan0_pins: lan0 { 75 lan0_pins: lan0 {
@@ -82,19 +83,38 @@
82 }; 83 };
83 }; 84 };
84 85
85 scif2_pins: scif2 { 86 scif2_pins: serial2 {
86 renesas,groups = "scif2_data_c"; 87 renesas,groups = "scif2_data_c";
87 renesas,function = "scif2"; 88 renesas,function = "scif2";
88 }; 89 };
89 90
90 scif4_pins: scif4 { 91 scif4_pins: serial4 {
91 renesas,groups = "scif4_data"; 92 renesas,groups = "scif4_data";
92 renesas,function = "scif4"; 93 renesas,function = "scif4";
93 }; 94 };
94 95
95 sdhi0_pins: sdhi0 { 96 sdhi0_pins: sd0 {
96 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd", 97 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd";
97 "sdhi0_wp";
98 renesas,function = "sdhi0"; 98 renesas,function = "sdhi0";
99 }; 99 };
100
101 hspi0_pins: hspi0 {
102 renesas,groups = "hspi0";
103 renesas,function = "hspi0";
104 };
105};
106
107&sdhi0 {
108 pinctrl-0 = <&sdhi0_pins>;
109 pinctrl-names = "default";
110
111 vmmc-supply = <&fixedregulator3v3>;
112 bus-width = <4>;
113 status = "okay";
114};
115
116&hspi0 {
117 pinctrl-0 = <&hspi0_pins>;
118 pinctrl-names = "default";
119 status = "okay";
100}; 120};
diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts
index f3f7f7999736..a7af2c2371f2 100644
--- a/arch/arm/boot/dts/r8a7779-marzen.dts
+++ b/arch/arm/boot/dts/r8a7779-marzen.dts
@@ -10,7 +10,7 @@
10 */ 10 */
11 11
12/dts-v1/; 12/dts-v1/;
13/include/ "r8a7779.dtsi" 13#include "r8a7779.dtsi"
14 14
15/ { 15/ {
16 model = "marzen"; 16 model = "marzen";
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index 19faeac3fd2e..d0561d4c7c46 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -11,6 +11,8 @@
11 11
12/include/ "skeleton.dtsi" 12/include/ "skeleton.dtsi"
13 13
14#include <dt-bindings/interrupt-controller/irq.h>
15
14/ { 16/ {
15 compatible = "renesas,r8a7779"; 17 compatible = "renesas,r8a7779";
16 18
@@ -40,6 +42,12 @@
40 }; 42 };
41 }; 43 };
42 44
45 aliases {
46 spi0 = &hspi0;
47 spi1 = &hspi1;
48 spi2 = &hspi2;
49 };
50
43 gic: interrupt-controller@f0001000 { 51 gic: interrupt-controller@f0001000 {
44 compatible = "arm,cortex-a9-gic"; 52 compatible = "arm,cortex-a9-gic";
45 #interrupt-cells = <3>; 53 #interrupt-cells = <3>;
@@ -52,7 +60,7 @@
52 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 60 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
53 reg = <0xffc40000 0x2c>; 61 reg = <0xffc40000 0x2c>;
54 interrupt-parent = <&gic>; 62 interrupt-parent = <&gic>;
55 interrupts = <0 141 0x4>; 63 interrupts = <0 141 IRQ_TYPE_LEVEL_HIGH>;
56 #gpio-cells = <2>; 64 #gpio-cells = <2>;
57 gpio-controller; 65 gpio-controller;
58 gpio-ranges = <&pfc 0 0 32>; 66 gpio-ranges = <&pfc 0 0 32>;
@@ -64,7 +72,7 @@
64 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 72 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
65 reg = <0xffc41000 0x2c>; 73 reg = <0xffc41000 0x2c>;
66 interrupt-parent = <&gic>; 74 interrupt-parent = <&gic>;
67 interrupts = <0 142 0x4>; 75 interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>;
68 #gpio-cells = <2>; 76 #gpio-cells = <2>;
69 gpio-controller; 77 gpio-controller;
70 gpio-ranges = <&pfc 0 32 32>; 78 gpio-ranges = <&pfc 0 32 32>;
@@ -76,7 +84,7 @@
76 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 84 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
77 reg = <0xffc42000 0x2c>; 85 reg = <0xffc42000 0x2c>;
78 interrupt-parent = <&gic>; 86 interrupt-parent = <&gic>;
79 interrupts = <0 143 0x4>; 87 interrupts = <0 143 IRQ_TYPE_LEVEL_HIGH>;
80 #gpio-cells = <2>; 88 #gpio-cells = <2>;
81 gpio-controller; 89 gpio-controller;
82 gpio-ranges = <&pfc 0 64 32>; 90 gpio-ranges = <&pfc 0 64 32>;
@@ -88,7 +96,7 @@
88 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 96 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
89 reg = <0xffc43000 0x2c>; 97 reg = <0xffc43000 0x2c>;
90 interrupt-parent = <&gic>; 98 interrupt-parent = <&gic>;
91 interrupts = <0 144 0x4>; 99 interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>;
92 #gpio-cells = <2>; 100 #gpio-cells = <2>;
93 gpio-controller; 101 gpio-controller;
94 gpio-ranges = <&pfc 0 96 32>; 102 gpio-ranges = <&pfc 0 96 32>;
@@ -100,7 +108,7 @@
100 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 108 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
101 reg = <0xffc44000 0x2c>; 109 reg = <0xffc44000 0x2c>;
102 interrupt-parent = <&gic>; 110 interrupt-parent = <&gic>;
103 interrupts = <0 145 0x4>; 111 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>;
104 #gpio-cells = <2>; 112 #gpio-cells = <2>;
105 gpio-controller; 113 gpio-controller;
106 gpio-ranges = <&pfc 0 128 32>; 114 gpio-ranges = <&pfc 0 128 32>;
@@ -112,7 +120,7 @@
112 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 120 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
113 reg = <0xffc45000 0x2c>; 121 reg = <0xffc45000 0x2c>;
114 interrupt-parent = <&gic>; 122 interrupt-parent = <&gic>;
115 interrupts = <0 146 0x4>; 123 interrupts = <0 146 IRQ_TYPE_LEVEL_HIGH>;
116 #gpio-cells = <2>; 124 #gpio-cells = <2>;
117 gpio-controller; 125 gpio-controller;
118 gpio-ranges = <&pfc 0 160 32>; 126 gpio-ranges = <&pfc 0 160 32>;
@@ -124,7 +132,7 @@
124 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 132 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
125 reg = <0xffc46000 0x2c>; 133 reg = <0xffc46000 0x2c>;
126 interrupt-parent = <&gic>; 134 interrupt-parent = <&gic>;
127 interrupts = <0 147 0x4>; 135 interrupts = <0 147 IRQ_TYPE_LEVEL_HIGH>;
128 #gpio-cells = <2>; 136 #gpio-cells = <2>;
129 gpio-controller; 137 gpio-controller;
130 gpio-ranges = <&pfc 0 192 9>; 138 gpio-ranges = <&pfc 0 192 9>;
@@ -133,7 +141,7 @@
133 }; 141 };
134 142
135 irqpin0: irqpin@fe780010 { 143 irqpin0: irqpin@fe780010 {
136 compatible = "renesas,intc-irqpin"; 144 compatible = "renesas,intc-irqpin-r8a7779", "renesas,intc-irqpin";
137 #interrupt-cells = <2>; 145 #interrupt-cells = <2>;
138 status = "disabled"; 146 status = "disabled";
139 interrupt-controller; 147 interrupt-controller;
@@ -143,50 +151,50 @@
143 <0xfe780044 4>, 151 <0xfe780044 4>,
144 <0xfe780064 4>; 152 <0xfe780064 4>;
145 interrupt-parent = <&gic>; 153 interrupt-parent = <&gic>;
146 interrupts = <0 27 0x4 154 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH
147 0 28 0x4 155 0 28 IRQ_TYPE_LEVEL_HIGH
148 0 29 0x4 156 0 29 IRQ_TYPE_LEVEL_HIGH
149 0 30 0x4>; 157 0 30 IRQ_TYPE_LEVEL_HIGH>;
150 sense-bitfield-width = <2>; 158 sense-bitfield-width = <2>;
151 }; 159 };
152 160
153 i2c0: i2c@ffc70000 { 161 i2c0: i2c@ffc70000 {
154 #address-cells = <1>; 162 #address-cells = <1>;
155 #size-cells = <0>; 163 #size-cells = <0>;
156 compatible = "renesas,rmobile-iic"; 164 compatible = "renesas,i2c-r8a7779";
157 reg = <0xffc70000 0x1000>; 165 reg = <0xffc70000 0x1000>;
158 interrupt-parent = <&gic>; 166 interrupt-parent = <&gic>;
159 interrupts = <0 79 0x4>; 167 interrupts = <0 79 IRQ_TYPE_LEVEL_HIGH>;
160 status = "disabled"; 168 status = "disabled";
161 }; 169 };
162 170
163 i2c1: i2c@ffc71000 { 171 i2c1: i2c@ffc71000 {
164 #address-cells = <1>; 172 #address-cells = <1>;
165 #size-cells = <0>; 173 #size-cells = <0>;
166 compatible = "renesas,rmobile-iic"; 174 compatible = "renesas,i2c-r8a7779";
167 reg = <0xffc71000 0x1000>; 175 reg = <0xffc71000 0x1000>;
168 interrupt-parent = <&gic>; 176 interrupt-parent = <&gic>;
169 interrupts = <0 82 0x4>; 177 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
170 status = "disabled"; 178 status = "disabled";
171 }; 179 };
172 180
173 i2c2: i2c@ffc72000 { 181 i2c2: i2c@ffc72000 {
174 #address-cells = <1>; 182 #address-cells = <1>;
175 #size-cells = <0>; 183 #size-cells = <0>;
176 compatible = "renesas,rmobile-iic"; 184 compatible = "renesas,i2c-r8a7779";
177 reg = <0xffc72000 0x1000>; 185 reg = <0xffc72000 0x1000>;
178 interrupt-parent = <&gic>; 186 interrupt-parent = <&gic>;
179 interrupts = <0 80 0x4>; 187 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
180 status = "disabled"; 188 status = "disabled";
181 }; 189 };
182 190
183 i2c3: i2c@ffc73000 { 191 i2c3: i2c@ffc73000 {
184 #address-cells = <1>; 192 #address-cells = <1>;
185 #size-cells = <0>; 193 #size-cells = <0>;
186 compatible = "renesas,rmobile-iic"; 194 compatible = "renesas,i2c-r8a7779";
187 reg = <0xffc73000 0x1000>; 195 reg = <0xffc73000 0x1000>;
188 interrupt-parent = <&gic>; 196 interrupt-parent = <&gic>;
189 interrupts = <0 81 0x4>; 197 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
190 status = "disabled"; 198 status = "disabled";
191 }; 199 };
192 200
@@ -204,6 +212,70 @@
204 compatible = "renesas,rcar-sata"; 212 compatible = "renesas,rcar-sata";
205 reg = <0xfc600000 0x2000>; 213 reg = <0xfc600000 0x2000>;
206 interrupt-parent = <&gic>; 214 interrupt-parent = <&gic>;
207 interrupts = <0 100 0x4>; 215 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
216 };
217
218 sdhi0: sd@ffe4c000 {
219 compatible = "renesas,sdhi-r8a7779";
220 reg = <0xffe4c000 0x100>;
221 interrupt-parent = <&gic>;
222 interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>;
223 cap-sd-highspeed;
224 cap-sdio-irq;
225 status = "disabled";
226 };
227
228 sdhi1: sd@ffe4d000 {
229 compatible = "renesas,sdhi-r8a7779";
230 reg = <0xffe4d000 0x100>;
231 interrupt-parent = <&gic>;
232 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
233 cap-sd-highspeed;
234 cap-sdio-irq;
235 status = "disabled";
236 };
237
238 sdhi2: sd@ffe4e000 {
239 compatible = "renesas,sdhi-r8a7779";
240 reg = <0xffe4e000 0x100>;
241 interrupt-parent = <&gic>;
242 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
243 cap-sd-highspeed;
244 cap-sdio-irq;
245 status = "disabled";
246 };
247
248 sdhi3: sd@ffe4f000 {
249 compatible = "renesas,sdhi-r8a7779";
250 reg = <0xffe4f000 0x100>;
251 interrupt-parent = <&gic>;
252 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
253 cap-sd-highspeed;
254 cap-sdio-irq;
255 status = "disabled";
256 };
257
258 hspi0: spi@fffc7000 {
259 compatible = "renesas,hspi";
260 reg = <0xfffc7000 0x18>;
261 interrupt-controller = <&gic>;
262 interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>;
263 status = "disabled";
264 };
265
266 hspi1: spi@fffc8000 {
267 compatible = "renesas,hspi";
268 reg = <0xfffc8000 0x18>;
269 interrupt-controller = <&gic>;
270 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>;
271 status = "disabled";
272 };
273
274 hspi2: spi@fffc6000 {
275 compatible = "renesas,hspi";
276 reg = <0xfffc6000 0x18>;
277 interrupt-controller = <&gic>;
278 interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>;
279 status = "disabled";
208 }; 280 };
209}; 281};
diff --git a/arch/arm/boot/dts/r8a7790-lager-reference.dts b/arch/arm/boot/dts/r8a7790-lager-reference.dts
index c462ef138922..dfedc0ea82e1 100644
--- a/arch/arm/boot/dts/r8a7790-lager-reference.dts
+++ b/arch/arm/boot/dts/r8a7790-lager-reference.dts
@@ -9,7 +9,7 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "r8a7790.dtsi" 12#include "r8a7790.dtsi"
13#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/gpio/gpio.h>
14 14
15/ { 15/ {
@@ -25,6 +25,11 @@
25 reg = <0 0x40000000 0 0x80000000>; 25 reg = <0 0x40000000 0 0x80000000>;
26 }; 26 };
27 27
28 memory@180000000 {
29 device_type = "memory";
30 reg = <1 0x80000000 0 0x80000000>;
31 };
32
28 lbsc { 33 lbsc {
29 #address-cells = <1>; 34 #address-cells = <1>;
30 #size-cells = <1>; 35 #size-cells = <1>;
@@ -42,4 +47,43 @@
42 gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>; 47 gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;
43 }; 48 };
44 }; 49 };
50
51 fixedregulator3v3: fixedregulator@0 {
52 compatible = "regulator-fixed";
53 regulator-name = "fixed-3.3V";
54 regulator-min-microvolt = <3300000>;
55 regulator-max-microvolt = <3300000>;
56 regulator-boot-on;
57 regulator-always-on;
58 };
59};
60
61&pfc {
62 pinctrl-0 = <&scif0_pins &scif1_pins>;
63 pinctrl-names = "default";
64
65 scif0_pins: serial0 {
66 renesas,groups = "scif0_data";
67 renesas,function = "scif0";
68 };
69
70 scif1_pins: serial1 {
71 renesas,groups = "scif1_data";
72 renesas,function = "scif1";
73 };
74
75 mmc1_pins: mmc1 {
76 renesas,groups = "mmc1_data8", "mmc1_ctrl";
77 renesas,function = "mmc1";
78 };
79};
80
81&mmcif1 {
82 pinctrl-0 = <&mmc1_pins>;
83 pinctrl-names = "default";
84
85 vmmc-supply = <&fixedregulator3v3>;
86 bus-width = <8>;
87 non-removable;
88 status = "okay";
45}; 89};
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index 203bd089af29..10e6a08164e5 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -9,7 +9,7 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "r8a7790.dtsi" 12#include "r8a7790.dtsi"
13 13
14/ { 14/ {
15 model = "Lager"; 15 model = "Lager";
@@ -24,6 +24,11 @@
24 reg = <0 0x40000000 0 0x80000000>; 24 reg = <0 0x40000000 0 0x80000000>;
25 }; 25 };
26 26
27 memory@180000000 {
28 device_type = "memory";
29 reg = <1 0x80000000 0 0x80000000>;
30 };
31
27 lbsc { 32 lbsc {
28 #address-cells = <1>; 33 #address-cells = <1>;
29 #size-cells = <1>; 34 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index ee845fad939b..0e4d5b57c48b 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -8,6 +8,9 @@
8 * kind, whether express or implied. 8 * kind, whether express or implied.
9 */ 9 */
10 10
11#include <dt-bindings/interrupt-controller/arm-gic.h>
12#include <dt-bindings/interrupt-controller/irq.h>
13
11/ { 14/ {
12 compatible = "renesas,r8a7790"; 15 compatible = "renesas,r8a7790";
13 interrupt-parent = <&gic>; 16 interrupt-parent = <&gic>;
@@ -84,14 +87,14 @@
84 <0 0xf1002000 0 0x1000>, 87 <0 0xf1002000 0 0x1000>,
85 <0 0xf1004000 0 0x2000>, 88 <0 0xf1004000 0 0x2000>,
86 <0 0xf1006000 0 0x2000>; 89 <0 0xf1006000 0 0x2000>;
87 interrupts = <1 9 0xf04>; 90 interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
88 }; 91 };
89 92
90 gpio0: gpio@ffc40000 { 93 gpio0: gpio@ffc40000 {
91 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 94 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
92 reg = <0 0xffc40000 0 0x2c>; 95 reg = <0 0xffc40000 0 0x2c>;
93 interrupt-parent = <&gic>; 96 interrupt-parent = <&gic>;
94 interrupts = <0 4 0x4>; 97 interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
95 #gpio-cells = <2>; 98 #gpio-cells = <2>;
96 gpio-controller; 99 gpio-controller;
97 gpio-ranges = <&pfc 0 0 32>; 100 gpio-ranges = <&pfc 0 0 32>;
@@ -103,7 +106,7 @@
103 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 106 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
104 reg = <0 0xffc41000 0 0x2c>; 107 reg = <0 0xffc41000 0 0x2c>;
105 interrupt-parent = <&gic>; 108 interrupt-parent = <&gic>;
106 interrupts = <0 5 0x4>; 109 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
107 #gpio-cells = <2>; 110 #gpio-cells = <2>;
108 gpio-controller; 111 gpio-controller;
109 gpio-ranges = <&pfc 0 32 32>; 112 gpio-ranges = <&pfc 0 32 32>;
@@ -115,7 +118,7 @@
115 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 118 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
116 reg = <0 0xffc42000 0 0x2c>; 119 reg = <0 0xffc42000 0 0x2c>;
117 interrupt-parent = <&gic>; 120 interrupt-parent = <&gic>;
118 interrupts = <0 6 0x4>; 121 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
119 #gpio-cells = <2>; 122 #gpio-cells = <2>;
120 gpio-controller; 123 gpio-controller;
121 gpio-ranges = <&pfc 0 64 32>; 124 gpio-ranges = <&pfc 0 64 32>;
@@ -127,7 +130,7 @@
127 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 130 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
128 reg = <0 0xffc43000 0 0x2c>; 131 reg = <0 0xffc43000 0 0x2c>;
129 interrupt-parent = <&gic>; 132 interrupt-parent = <&gic>;
130 interrupts = <0 7 0x4>; 133 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
131 #gpio-cells = <2>; 134 #gpio-cells = <2>;
132 gpio-controller; 135 gpio-controller;
133 gpio-ranges = <&pfc 0 96 32>; 136 gpio-ranges = <&pfc 0 96 32>;
@@ -139,7 +142,7 @@
139 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 142 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
140 reg = <0 0xffc44000 0 0x2c>; 143 reg = <0 0xffc44000 0 0x2c>;
141 interrupt-parent = <&gic>; 144 interrupt-parent = <&gic>;
142 interrupts = <0 8 0x4>; 145 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
143 #gpio-cells = <2>; 146 #gpio-cells = <2>;
144 gpio-controller; 147 gpio-controller;
145 gpio-ranges = <&pfc 0 128 32>; 148 gpio-ranges = <&pfc 0 128 32>;
@@ -151,7 +154,7 @@
151 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 154 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
152 reg = <0 0xffc45000 0 0x2c>; 155 reg = <0 0xffc45000 0 0x2c>;
153 interrupt-parent = <&gic>; 156 interrupt-parent = <&gic>;
154 interrupts = <0 9 0x4>; 157 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
155 #gpio-cells = <2>; 158 #gpio-cells = <2>;
156 gpio-controller; 159 gpio-controller;
157 gpio-ranges = <&pfc 0 160 32>; 160 gpio-ranges = <&pfc 0 160 32>;
@@ -159,21 +162,31 @@
159 interrupt-controller; 162 interrupt-controller;
160 }; 163 };
161 164
165 thermal@e61f0000 {
166 compatible = "renesas,thermal-r8a7790", "renesas,rcar-thermal";
167 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
168 interrupt-parent = <&gic>;
169 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
170 };
171
162 timer { 172 timer {
163 compatible = "arm,armv7-timer"; 173 compatible = "arm,armv7-timer";
164 interrupts = <1 13 0xf08>, 174 interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
165 <1 14 0xf08>, 175 <1 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
166 <1 11 0xf08>, 176 <1 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
167 <1 10 0xf08>; 177 <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
168 }; 178 };
169 179
170 irqc0: interrupt-controller@e61c0000 { 180 irqc0: interrupt-controller@e61c0000 {
171 compatible = "renesas,irqc"; 181 compatible = "renesas,irqc-r8a7790", "renesas,irqc";
172 #interrupt-cells = <2>; 182 #interrupt-cells = <2>;
173 interrupt-controller; 183 interrupt-controller;
174 reg = <0 0xe61c0000 0 0x200>; 184 reg = <0 0xe61c0000 0 0x200>;
175 interrupt-parent = <&gic>; 185 interrupt-parent = <&gic>;
176 interrupts = <0 0 4>, <0 1 4>, <0 2 4>, <0 3 4>; 186 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
187 <0 1 IRQ_TYPE_LEVEL_HIGH>,
188 <0 2 IRQ_TYPE_LEVEL_HIGH>,
189 <0 3 IRQ_TYPE_LEVEL_HIGH>;
177 }; 190 };
178 191
179 i2c0: i2c@e6508000 { 192 i2c0: i2c@e6508000 {
@@ -182,7 +195,7 @@
182 compatible = "renesas,i2c-r8a7790"; 195 compatible = "renesas,i2c-r8a7790";
183 reg = <0 0xe6508000 0 0x40>; 196 reg = <0 0xe6508000 0 0x40>;
184 interrupt-parent = <&gic>; 197 interrupt-parent = <&gic>;
185 interrupts = <0 287 0x4>; 198 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>;
186 status = "disabled"; 199 status = "disabled";
187 }; 200 };
188 201
@@ -192,7 +205,7 @@
192 compatible = "renesas,i2c-r8a7790"; 205 compatible = "renesas,i2c-r8a7790";
193 reg = <0 0xe6518000 0 0x40>; 206 reg = <0 0xe6518000 0 0x40>;
194 interrupt-parent = <&gic>; 207 interrupt-parent = <&gic>;
195 interrupts = <0 288 0x4>; 208 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>;
196 status = "disabled"; 209 status = "disabled";
197 }; 210 };
198 211
@@ -202,7 +215,7 @@
202 compatible = "renesas,i2c-r8a7790"; 215 compatible = "renesas,i2c-r8a7790";
203 reg = <0 0xe6530000 0 0x40>; 216 reg = <0 0xe6530000 0 0x40>;
204 interrupt-parent = <&gic>; 217 interrupt-parent = <&gic>;
205 interrupts = <0 286 0x4>; 218 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>;
206 status = "disabled"; 219 status = "disabled";
207 }; 220 };
208 221
@@ -212,24 +225,24 @@
212 compatible = "renesas,i2c-r8a7790"; 225 compatible = "renesas,i2c-r8a7790";
213 reg = <0 0xe6540000 0 0x40>; 226 reg = <0 0xe6540000 0 0x40>;
214 interrupt-parent = <&gic>; 227 interrupt-parent = <&gic>;
215 interrupts = <0 290 0x4>; 228 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>;
216 status = "disabled"; 229 status = "disabled";
217 }; 230 };
218 231
219 mmcif0: mmcif@ee200000 { 232 mmcif0: mmcif@ee200000 {
220 compatible = "renesas,sh-mmcif"; 233 compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif";
221 reg = <0 0xee200000 0 0x80>; 234 reg = <0 0xee200000 0 0x80>;
222 interrupt-parent = <&gic>; 235 interrupt-parent = <&gic>;
223 interrupts = <0 169 0x4>; 236 interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
224 reg-io-width = <4>; 237 reg-io-width = <4>;
225 status = "disabled"; 238 status = "disabled";
226 }; 239 };
227 240
228 mmcif1: mmcif@ee220000 { 241 mmcif1: mmc@ee220000 {
229 compatible = "renesas,sh-mmcif"; 242 compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif";
230 reg = <0 0xee220000 0 0x80>; 243 reg = <0 0xee220000 0 0x80>;
231 interrupt-parent = <&gic>; 244 interrupt-parent = <&gic>;
232 interrupts = <0 170 0x4>; 245 interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>;
233 reg-io-width = <4>; 246 reg-io-width = <4>;
234 status = "disabled"; 247 status = "disabled";
235 }; 248 };
@@ -239,38 +252,38 @@
239 reg = <0 0xe6060000 0 0x250>; 252 reg = <0 0xe6060000 0 0x250>;
240 }; 253 };
241 254
242 sdhi0: sdhi@ee100000 { 255 sdhi0: sd@ee100000 {
243 compatible = "renesas,sdhi-r8a7790"; 256 compatible = "renesas,sdhi-r8a7790";
244 reg = <0 0xee100000 0 0x100>; 257 reg = <0 0xee100000 0 0x100>;
245 interrupt-parent = <&gic>; 258 interrupt-parent = <&gic>;
246 interrupts = <0 165 4>; 259 interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>;
247 cap-sd-highspeed; 260 cap-sd-highspeed;
248 status = "disabled"; 261 status = "disabled";
249 }; 262 };
250 263
251 sdhi1: sdhi@ee120000 { 264 sdhi1: sd@ee120000 {
252 compatible = "renesas,sdhi-r8a7790"; 265 compatible = "renesas,sdhi-r8a7790";
253 reg = <0 0xee120000 0 0x100>; 266 reg = <0 0xee120000 0 0x100>;
254 interrupt-parent = <&gic>; 267 interrupt-parent = <&gic>;
255 interrupts = <0 166 4>; 268 interrupts = <0 166 IRQ_TYPE_LEVEL_HIGH>;
256 cap-sd-highspeed; 269 cap-sd-highspeed;
257 status = "disabled"; 270 status = "disabled";
258 }; 271 };
259 272
260 sdhi2: sdhi@ee140000 { 273 sdhi2: sd@ee140000 {
261 compatible = "renesas,sdhi-r8a7790"; 274 compatible = "renesas,sdhi-r8a7790";
262 reg = <0 0xee140000 0 0x100>; 275 reg = <0 0xee140000 0 0x100>;
263 interrupt-parent = <&gic>; 276 interrupt-parent = <&gic>;
264 interrupts = <0 167 4>; 277 interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>;
265 cap-sd-highspeed; 278 cap-sd-highspeed;
266 status = "disabled"; 279 status = "disabled";
267 }; 280 };
268 281
269 sdhi3: sdhi@ee160000 { 282 sdhi3: sd@ee160000 {
270 compatible = "renesas,sdhi-r8a7790"; 283 compatible = "renesas,sdhi-r8a7790";
271 reg = <0 0xee160000 0 0x100>; 284 reg = <0 0xee160000 0 0x100>;
272 interrupt-parent = <&gic>; 285 interrupt-parent = <&gic>;
273 interrupts = <0 168 4>; 286 interrupts = <0 168 IRQ_TYPE_LEVEL_HIGH>;
274 cap-sd-highspeed; 287 cap-sd-highspeed;
275 status = "disabled"; 288 status = "disabled";
276 }; 289 };
diff --git a/arch/arm/boot/dts/r8a7791-koelsch-reference.dts b/arch/arm/boot/dts/r8a7791-koelsch-reference.dts
new file mode 100644
index 000000000000..19192731c24a
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7791-koelsch-reference.dts
@@ -0,0 +1,61 @@
1/*
2 * Device Tree Source for the Koelsch board
3 *
4 * Copyright (C) 2013 Renesas Electronics Corporation
5 * Copyright (C) 2013 Renesas Solutions Corp.
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 "r8a7791.dtsi"
14#include <dt-bindings/gpio/gpio.h>
15
16/ {
17 model = "Koelsch";
18 compatible = "renesas,koelsch-reference", "renesas,r8a7791";
19
20 chosen {
21 bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
22 };
23
24 memory@40000000 {
25 device_type = "memory";
26 reg = <0 0x40000000 0 0x80000000>;
27 };
28
29 lbsc {
30 #address-cells = <1>;
31 #size-cells = <1>;
32 };
33
34 leds {
35 compatible = "gpio-leds";
36 led6 {
37 gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
38 };
39 led7 {
40 gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
41 };
42 led8 {
43 gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
44 };
45 };
46};
47
48&pfc {
49 pinctrl-0 = <&scif0_pins &scif1_pins>;
50 pinctrl-names = "default";
51
52 scif0_pins: serial0 {
53 renesas,groups = "scif0_data_d";
54 renesas,function = "scif0";
55 };
56
57 scif1_pins: serial1 {
58 renesas,groups = "scif1_data_d";
59 renesas,function = "scif1";
60 };
61};
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index 1ce5250ec278..c4e8b3a0cd13 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -10,7 +10,7 @@
10 */ 10 */
11 11
12/dts-v1/; 12/dts-v1/;
13/include/ "r8a7791.dtsi" 13#include "r8a7791.dtsi"
14 14
15/ { 15/ {
16 model = "Koelsch"; 16 model = "Koelsch";
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index fea5cfef4691..a349aff54c76 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -9,6 +9,9 @@
9 * kind, whether express or implied. 9 * kind, whether express or implied.
10 */ 10 */
11 11
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14
12/ { 15/ {
13 compatible = "renesas,r8a7791"; 16 compatible = "renesas,r8a7791";
14 interrupt-parent = <&gic>; 17 interrupt-parent = <&gic>;
@@ -43,32 +46,141 @@
43 <0 0xf1002000 0 0x1000>, 46 <0 0xf1002000 0 0x1000>,
44 <0 0xf1004000 0 0x2000>, 47 <0 0xf1004000 0 0x2000>,
45 <0 0xf1006000 0 0x2000>; 48 <0 0xf1006000 0 0x2000>;
46 interrupts = <1 9 0xf04>; 49 interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
50 };
51
52 gpio0: gpio@e6050000 {
53 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar";
54 reg = <0 0xe6050000 0 0x50>;
55 interrupt-parent = <&gic>;
56 interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
57 #gpio-cells = <2>;
58 gpio-controller;
59 gpio-ranges = <&pfc 0 0 32>;
60 #interrupt-cells = <2>;
61 interrupt-controller;
62 };
63
64 gpio1: gpio@e6051000 {
65 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar";
66 reg = <0 0xe6051000 0 0x50>;
67 interrupt-parent = <&gic>;
68 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
69 #gpio-cells = <2>;
70 gpio-controller;
71 gpio-ranges = <&pfc 0 32 32>;
72 #interrupt-cells = <2>;
73 interrupt-controller;
74 };
75
76 gpio2: gpio@e6052000 {
77 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar";
78 reg = <0 0xe6052000 0 0x50>;
79 interrupt-parent = <&gic>;
80 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
81 #gpio-cells = <2>;
82 gpio-controller;
83 gpio-ranges = <&pfc 0 64 32>;
84 #interrupt-cells = <2>;
85 interrupt-controller;
86 };
87
88 gpio3: gpio@e6053000 {
89 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar";
90 reg = <0 0xe6053000 0 0x50>;
91 interrupt-parent = <&gic>;
92 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
93 #gpio-cells = <2>;
94 gpio-controller;
95 gpio-ranges = <&pfc 0 96 32>;
96 #interrupt-cells = <2>;
97 interrupt-controller;
98 };
99
100 gpio4: gpio@e6054000 {
101 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar";
102 reg = <0 0xe6054000 0 0x50>;
103 interrupt-parent = <&gic>;
104 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
105 #gpio-cells = <2>;
106 gpio-controller;
107 gpio-ranges = <&pfc 0 128 32>;
108 #interrupt-cells = <2>;
109 interrupt-controller;
110 };
111
112 gpio5: gpio@e6055000 {
113 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar";
114 reg = <0 0xe6055000 0 0x50>;
115 interrupt-parent = <&gic>;
116 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
117 #gpio-cells = <2>;
118 gpio-controller;
119 gpio-ranges = <&pfc 0 160 32>;
120 #interrupt-cells = <2>;
121 interrupt-controller;
122 };
123
124 gpio6: gpio@e6055400 {
125 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar";
126 reg = <0 0xe6055400 0 0x50>;
127 interrupt-parent = <&gic>;
128 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
129 #gpio-cells = <2>;
130 gpio-controller;
131 gpio-ranges = <&pfc 0 192 32>;
132 #interrupt-cells = <2>;
133 interrupt-controller;
134 };
135
136 gpio7: gpio@e6055800 {
137 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar";
138 reg = <0 0xe6055800 0 0x50>;
139 interrupt-parent = <&gic>;
140 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
141 #gpio-cells = <2>;
142 gpio-controller;
143 gpio-ranges = <&pfc 0 224 26>;
144 #interrupt-cells = <2>;
145 interrupt-controller;
146 };
147
148 thermal@e61f0000 {
149 compatible = "renesas,thermal-r8a7791", "renesas,rcar-thermal";
150 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
151 interrupt-parent = <&gic>;
152 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
47 }; 153 };
48 154
49 timer { 155 timer {
50 compatible = "arm,armv7-timer"; 156 compatible = "arm,armv7-timer";
51 interrupts = <1 13 0xf08>, 157 interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
52 <1 14 0xf08>, 158 <1 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
53 <1 11 0xf08>, 159 <1 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
54 <1 10 0xf08>; 160 <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
55 }; 161 };
56 162
57 irqc0: interrupt-controller@e61c0000 { 163 irqc0: interrupt-controller@e61c0000 {
58 compatible = "renesas,irqc"; 164 compatible = "renesas,irqc-r8a7791", "renesas,irqc";
59 #interrupt-cells = <2>; 165 #interrupt-cells = <2>;
60 interrupt-controller; 166 interrupt-controller;
61 reg = <0 0xe61c0000 0 0x200>; 167 reg = <0 0xe61c0000 0 0x200>;
62 interrupt-parent = <&gic>; 168 interrupt-parent = <&gic>;
63 interrupts = <0 0 4>, 169 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
64 <0 1 4>, 170 <0 1 IRQ_TYPE_LEVEL_HIGH>,
65 <0 2 4>, 171 <0 2 IRQ_TYPE_LEVEL_HIGH>,
66 <0 3 4>, 172 <0 3 IRQ_TYPE_LEVEL_HIGH>,
67 <0 12 4>, 173 <0 12 IRQ_TYPE_LEVEL_HIGH>,
68 <0 13 4>, 174 <0 13 IRQ_TYPE_LEVEL_HIGH>,
69 <0 14 4>, 175 <0 14 IRQ_TYPE_LEVEL_HIGH>,
70 <0 15 4>, 176 <0 15 IRQ_TYPE_LEVEL_HIGH>,
71 <0 16 4>, 177 <0 16 IRQ_TYPE_LEVEL_HIGH>,
72 <0 17 4>; 178 <0 17 IRQ_TYPE_LEVEL_HIGH>;
179 };
180
181 pfc: pfc@e6060000 {
182 compatible = "renesas,pfc-r8a7791";
183 reg = <0 0xe6060000 0 0x250>;
184 #gpio-range-cells = <3>;
73 }; 185 };
74}; 186};
diff --git a/arch/arm/boot/dts/sh7372-mackerel.dts b/arch/arm/boot/dts/sh7372-mackerel.dts
index 8acf51e0cdae..a759a276c9a9 100644
--- a/arch/arm/boot/dts/sh7372-mackerel.dts
+++ b/arch/arm/boot/dts/sh7372-mackerel.dts
@@ -9,7 +9,7 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "sh7372.dtsi" 12#include "sh7372.dtsi"
13 13
14/ { 14/ {
15 model = "Mackerel (AP4 EVM 2nd)"; 15 model = "Mackerel (AP4 EVM 2nd)";
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
index 8ee06dd81799..5bb593daab52 100644
--- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
+++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
@@ -12,8 +12,9 @@
12 */ 12 */
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sh73a0.dtsi" 15#include "sh73a0.dtsi"
16#include <dt-bindings/gpio/gpio.h> 16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/interrupt-controller/irq.h>
17 18
18/ { 19/ {
19 model = "KZM-A9-GT"; 20 model = "KZM-A9-GT";
@@ -82,7 +83,7 @@
82 reg = <0x10000000 0x100>; 83 reg = <0x10000000 0x100>;
83 phy-mode = "mii"; 84 phy-mode = "mii";
84 interrupt-parent = <&irqpin0>; 85 interrupt-parent = <&irqpin0>;
85 interrupts = <3 0>; /* active low */ 86 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
86 reg-io-width = <4>; 87 reg-io-width = <4>;
87 smsc,irq-push-pull; 88 smsc,irq-push-pull;
88 smsc,save-mac-address; 89 smsc,save-mac-address;
@@ -105,6 +106,52 @@
105 gpios = <&pfc 23 GPIO_ACTIVE_LOW>; 106 gpios = <&pfc 23 GPIO_ACTIVE_LOW>;
106 }; 107 };
107 }; 108 };
109
110 gpio-keys {
111 compatible = "gpio-keys";
112
113 back-key {
114 gpios = <&pcf8575 8 GPIO_ACTIVE_LOW>;
115 linux,code = <158>;
116 label = "SW3";
117 };
118
119 right-key {
120 gpios = <&pcf8575 9 GPIO_ACTIVE_LOW>;
121 linux,code = <106>;
122 label = "SW2-R";
123 };
124
125 left-key {
126 gpios = <&pcf8575 10 GPIO_ACTIVE_LOW>;
127 linux,code = <105>;
128 label = "SW2-L";
129 };
130
131 enter-key {
132 gpios = <&pcf8575 11 GPIO_ACTIVE_LOW>;
133 linux,code = <28>;
134 label = "SW2-P";
135 };
136
137 up-key {
138 gpios = <&pcf8575 12 GPIO_ACTIVE_LOW>;
139 linux,code = <103>;
140 label = "SW2-U";
141 };
142
143 down-key {
144 gpios = <&pcf8575 13 GPIO_ACTIVE_LOW>;
145 linux,code = <108>;
146 label = "SW2-D";
147 };
148
149 home-key {
150 gpios = <&pcf8575 14 GPIO_ACTIVE_LOW>;
151 linux,code = <102>;
152 label = "SW1";
153 };
154 };
108}; 155};
109 156
110&i2c0 { 157&i2c0 {
@@ -185,6 +232,17 @@
185 pinctrl-0 = <&i2c3_pins>; 232 pinctrl-0 = <&i2c3_pins>;
186 pinctrl-names = "default"; 233 pinctrl-names = "default";
187 status = "okay"; 234 status = "okay";
235
236 pcf8575: gpio@20 {
237 compatible = "nxp,pcf8575";
238 reg = <0x20>;
239 interrupt-parent = <&irqpin2>;
240 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
241 gpio-controller;
242 #gpio-cells = <2>;
243 interrupt-controller;
244 #interrupt-cells = <2>;
245 };
188}; 246};
189 247
190&mmcif { 248&mmcif {
@@ -205,7 +263,7 @@
205 renesas,function = "i2c3"; 263 renesas,function = "i2c3";
206 }; 264 };
207 265
208 mmcif_pins: mmcif { 266 mmcif_pins: mmc {
209 mux { 267 mux {
210 renesas,groups = "mmc0_data8_0", "mmc0_ctrl_0"; 268 renesas,groups = "mmc0_data8_0", "mmc0_ctrl_0";
211 renesas,function = "mmc0"; 269 renesas,function = "mmc0";
@@ -217,17 +275,17 @@
217 }; 275 };
218 }; 276 };
219 277
220 scifa4_pins: scifa4 { 278 scifa4_pins: serial4 {
221 renesas,groups = "scifa4_data", "scifa4_ctrl"; 279 renesas,groups = "scifa4_data", "scifa4_ctrl";
222 renesas,function = "scifa4"; 280 renesas,function = "scifa4";
223 }; 281 };
224 282
225 sdhi0_pins: sdhi0 { 283 sdhi0_pins: sd0 {
226 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd", "sdhi0_wp"; 284 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd", "sdhi0_wp";
227 renesas,function = "sdhi0"; 285 renesas,function = "sdhi0";
228 }; 286 };
229 287
230 sdhi2_pins: sdhi2 { 288 sdhi2_pins: sd2 {
231 renesas,groups = "sdhi2_data4", "sdhi2_ctrl"; 289 renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
232 renesas,function = "sdhi2"; 290 renesas,function = "sdhi2";
233 }; 291 };
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g.dts b/arch/arm/boot/dts/sh73a0-kzm9g.dts
index 0f1ca7792c46..27c5f426d172 100644
--- a/arch/arm/boot/dts/sh73a0-kzm9g.dts
+++ b/arch/arm/boot/dts/sh73a0-kzm9g.dts
@@ -9,7 +9,7 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "sh73a0.dtsi" 12#include "sh73a0.dtsi"
13 13
14/ { 14/ {
15 model = "KZM-A9-GT"; 15 model = "KZM-A9-GT";
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index fcf26889a8a0..241c8cdaeaa1 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -10,6 +10,8 @@
10 10
11/include/ "skeleton.dtsi" 11/include/ "skeleton.dtsi"
12 12
13#include <dt-bindings/interrupt-controller/irq.h>
14
13/ { 15/ {
14 compatible = "renesas,sh73a0"; 16 compatible = "renesas,sh73a0";
15 17
@@ -40,12 +42,12 @@
40 42
41 pmu { 43 pmu {
42 compatible = "arm,cortex-a9-pmu"; 44 compatible = "arm,cortex-a9-pmu";
43 interrupts = <0 55 4>, 45 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>,
44 <0 56 4>; 46 <0 56 IRQ_TYPE_LEVEL_HIGH>;
45 }; 47 };
46 48
47 irqpin0: irqpin@e6900000 { 49 irqpin0: irqpin@e6900000 {
48 compatible = "renesas,intc-irqpin"; 50 compatible = "renesas,intc-irqpin-sh73a0", "renesas,intc-irqpin";
49 #interrupt-cells = <2>; 51 #interrupt-cells = <2>;
50 interrupt-controller; 52 interrupt-controller;
51 reg = <0xe6900000 4>, 53 reg = <0xe6900000 4>,
@@ -54,18 +56,18 @@
54 <0xe6900040 1>, 56 <0xe6900040 1>,
55 <0xe6900060 1>; 57 <0xe6900060 1>;
56 interrupt-parent = <&gic>; 58 interrupt-parent = <&gic>;
57 interrupts = <0 1 0x4 59 interrupts = <0 1 IRQ_TYPE_LEVEL_HIGH
58 0 2 0x4 60 0 2 IRQ_TYPE_LEVEL_HIGH
59 0 3 0x4 61 0 3 IRQ_TYPE_LEVEL_HIGH
60 0 4 0x4 62 0 4 IRQ_TYPE_LEVEL_HIGH
61 0 5 0x4 63 0 5 IRQ_TYPE_LEVEL_HIGH
62 0 6 0x4 64 0 6 IRQ_TYPE_LEVEL_HIGH
63 0 7 0x4 65 0 7 IRQ_TYPE_LEVEL_HIGH
64 0 8 0x4>; 66 0 8 IRQ_TYPE_LEVEL_HIGH>;
65 }; 67 };
66 68
67 irqpin1: irqpin@e6900004 { 69 irqpin1: irqpin@e6900004 {
68 compatible = "renesas,intc-irqpin"; 70 compatible = "renesas,intc-irqpin-sh73a0", "renesas,intc-irqpin";
69 #interrupt-cells = <2>; 71 #interrupt-cells = <2>;
70 interrupt-controller; 72 interrupt-controller;
71 reg = <0xe6900004 4>, 73 reg = <0xe6900004 4>,
@@ -74,19 +76,19 @@
74 <0xe6900044 1>, 76 <0xe6900044 1>,
75 <0xe6900064 1>; 77 <0xe6900064 1>;
76 interrupt-parent = <&gic>; 78 interrupt-parent = <&gic>;
77 interrupts = <0 9 0x4 79 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH
78 0 10 0x4 80 0 10 IRQ_TYPE_LEVEL_HIGH
79 0 11 0x4 81 0 11 IRQ_TYPE_LEVEL_HIGH
80 0 12 0x4 82 0 12 IRQ_TYPE_LEVEL_HIGH
81 0 13 0x4 83 0 13 IRQ_TYPE_LEVEL_HIGH
82 0 14 0x4 84 0 14 IRQ_TYPE_LEVEL_HIGH
83 0 15 0x4 85 0 15 IRQ_TYPE_LEVEL_HIGH
84 0 16 0x4>; 86 0 16 IRQ_TYPE_LEVEL_HIGH>;
85 control-parent; 87 control-parent;
86 }; 88 };
87 89
88 irqpin2: irqpin@e6900008 { 90 irqpin2: irqpin@e6900008 {
89 compatible = "renesas,intc-irqpin"; 91 compatible = "renesas,intc-irqpin-sh73a0", "renesas,intc-irqpin";
90 #interrupt-cells = <2>; 92 #interrupt-cells = <2>;
91 interrupt-controller; 93 interrupt-controller;
92 reg = <0xe6900008 4>, 94 reg = <0xe6900008 4>,
@@ -95,18 +97,18 @@
95 <0xe6900048 1>, 97 <0xe6900048 1>,
96 <0xe6900068 1>; 98 <0xe6900068 1>;
97 interrupt-parent = <&gic>; 99 interrupt-parent = <&gic>;
98 interrupts = <0 17 0x4 100 interrupts = <0 17 IRQ_TYPE_LEVEL_HIGH
99 0 18 0x4 101 0 18 IRQ_TYPE_LEVEL_HIGH
100 0 19 0x4 102 0 19 IRQ_TYPE_LEVEL_HIGH
101 0 20 0x4 103 0 20 IRQ_TYPE_LEVEL_HIGH
102 0 21 0x4 104 0 21 IRQ_TYPE_LEVEL_HIGH
103 0 22 0x4 105 0 22 IRQ_TYPE_LEVEL_HIGH
104 0 23 0x4 106 0 23 IRQ_TYPE_LEVEL_HIGH
105 0 24 0x4>; 107 0 24 IRQ_TYPE_LEVEL_HIGH>;
106 }; 108 };
107 109
108 irqpin3: irqpin@e690000c { 110 irqpin3: irqpin@e690000c {
109 compatible = "renesas,intc-irqpin"; 111 compatible = "renesas,intc-irqpin-sh73a0", "renesas,intc-irqpin";
110 #interrupt-cells = <2>; 112 #interrupt-cells = <2>;
111 interrupt-controller; 113 interrupt-controller;
112 reg = <0xe690000c 4>, 114 reg = <0xe690000c 4>,
@@ -115,14 +117,14 @@
115 <0xe690004c 1>, 117 <0xe690004c 1>,
116 <0xe690006c 1>; 118 <0xe690006c 1>;
117 interrupt-parent = <&gic>; 119 interrupt-parent = <&gic>;
118 interrupts = <0 25 0x4 120 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH
119 0 26 0x4 121 0 26 IRQ_TYPE_LEVEL_HIGH
120 0 27 0x4 122 0 27 IRQ_TYPE_LEVEL_HIGH
121 0 28 0x4 123 0 28 IRQ_TYPE_LEVEL_HIGH
122 0 29 0x4 124 0 29 IRQ_TYPE_LEVEL_HIGH
123 0 30 0x4 125 0 30 IRQ_TYPE_LEVEL_HIGH
124 0 31 0x4 126 0 31 IRQ_TYPE_LEVEL_HIGH
125 0 32 0x4>; 127 0 32 IRQ_TYPE_LEVEL_HIGH>;
126 }; 128 };
127 129
128 i2c0: i2c@e6820000 { 130 i2c0: i2c@e6820000 {
@@ -131,10 +133,10 @@
131 compatible = "renesas,rmobile-iic"; 133 compatible = "renesas,rmobile-iic";
132 reg = <0xe6820000 0x425>; 134 reg = <0xe6820000 0x425>;
133 interrupt-parent = <&gic>; 135 interrupt-parent = <&gic>;
134 interrupts = <0 167 0x4 136 interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH
135 0 168 0x4 137 0 168 IRQ_TYPE_LEVEL_HIGH
136 0 169 0x4 138 0 169 IRQ_TYPE_LEVEL_HIGH
137 0 170 0x4>; 139 0 170 IRQ_TYPE_LEVEL_HIGH>;
138 status = "disabled"; 140 status = "disabled";
139 }; 141 };
140 142
@@ -144,10 +146,10 @@
144 compatible = "renesas,rmobile-iic"; 146 compatible = "renesas,rmobile-iic";
145 reg = <0xe6822000 0x425>; 147 reg = <0xe6822000 0x425>;
146 interrupt-parent = <&gic>; 148 interrupt-parent = <&gic>;
147 interrupts = <0 51 0x4 149 interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH
148 0 52 0x4 150 0 52 IRQ_TYPE_LEVEL_HIGH
149 0 53 0x4 151 0 53 IRQ_TYPE_LEVEL_HIGH
150 0 54 0x4>; 152 0 54 IRQ_TYPE_LEVEL_HIGH>;
151 status = "disabled"; 153 status = "disabled";
152 }; 154 };
153 155
@@ -157,10 +159,10 @@
157 compatible = "renesas,rmobile-iic"; 159 compatible = "renesas,rmobile-iic";
158 reg = <0xe6824000 0x425>; 160 reg = <0xe6824000 0x425>;
159 interrupt-parent = <&gic>; 161 interrupt-parent = <&gic>;
160 interrupts = <0 171 0x4 162 interrupts = <0 171 IRQ_TYPE_LEVEL_HIGH
161 0 172 0x4 163 0 172 IRQ_TYPE_LEVEL_HIGH
162 0 173 0x4 164 0 173 IRQ_TYPE_LEVEL_HIGH
163 0 174 0x4>; 165 0 174 IRQ_TYPE_LEVEL_HIGH>;
164 status = "disabled"; 166 status = "disabled";
165 }; 167 };
166 168
@@ -170,10 +172,10 @@
170 compatible = "renesas,rmobile-iic"; 172 compatible = "renesas,rmobile-iic";
171 reg = <0xe6826000 0x425>; 173 reg = <0xe6826000 0x425>;
172 interrupt-parent = <&gic>; 174 interrupt-parent = <&gic>;
173 interrupts = <0 183 0x4 175 interrupts = <0 183 IRQ_TYPE_LEVEL_HIGH
174 0 184 0x4 176 0 184 IRQ_TYPE_LEVEL_HIGH
175 0 185 0x4 177 0 185 IRQ_TYPE_LEVEL_HIGH
176 0 186 0x4>; 178 0 186 IRQ_TYPE_LEVEL_HIGH>;
177 status = "disabled"; 179 status = "disabled";
178 }; 180 };
179 181
@@ -183,52 +185,52 @@
183 compatible = "renesas,rmobile-iic"; 185 compatible = "renesas,rmobile-iic";
184 reg = <0xe6828000 0x425>; 186 reg = <0xe6828000 0x425>;
185 interrupt-parent = <&gic>; 187 interrupt-parent = <&gic>;
186 interrupts = <0 187 0x4 188 interrupts = <0 187 IRQ_TYPE_LEVEL_HIGH
187 0 188 0x4 189 0 188 IRQ_TYPE_LEVEL_HIGH
188 0 189 0x4 190 0 189 IRQ_TYPE_LEVEL_HIGH
189 0 190 0x4>; 191 0 190 IRQ_TYPE_LEVEL_HIGH>;
190 status = "disabled"; 192 status = "disabled";
191 }; 193 };
192 194
193 mmcif: mmcif@e6bd0000 { 195 mmcif: mmc@e6bd0000 {
194 compatible = "renesas,sh-mmcif"; 196 compatible = "renesas,sh-mmcif";
195 reg = <0xe6bd0000 0x100>; 197 reg = <0xe6bd0000 0x100>;
196 interrupt-parent = <&gic>; 198 interrupt-parent = <&gic>;
197 interrupts = <0 140 0x4 199 interrupts = <0 140 IRQ_TYPE_LEVEL_HIGH
198 0 141 0x4>; 200 0 141 IRQ_TYPE_LEVEL_HIGH>;
199 reg-io-width = <4>; 201 reg-io-width = <4>;
200 status = "disabled"; 202 status = "disabled";
201 }; 203 };
202 204
203 sdhi0: sdhi@ee100000 { 205 sdhi0: sd@ee100000 {
204 compatible = "renesas,sdhi-r8a7740"; 206 compatible = "renesas,sdhi-sh73a0";
205 reg = <0xee100000 0x100>; 207 reg = <0xee100000 0x100>;
206 interrupt-parent = <&gic>; 208 interrupt-parent = <&gic>;
207 interrupts = <0 83 4 209 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH
208 0 84 4 210 0 84 IRQ_TYPE_LEVEL_HIGH
209 0 85 4>; 211 0 85 IRQ_TYPE_LEVEL_HIGH>;
210 cap-sd-highspeed; 212 cap-sd-highspeed;
211 status = "disabled"; 213 status = "disabled";
212 }; 214 };
213 215
214 /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */ 216 /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */
215 sdhi1: sdhi@ee120000 { 217 sdhi1: sd@ee120000 {
216 compatible = "renesas,sdhi-r8a7740"; 218 compatible = "renesas,sdhi-sh73a0";
217 reg = <0xee120000 0x100>; 219 reg = <0xee120000 0x100>;
218 interrupt-parent = <&gic>; 220 interrupt-parent = <&gic>;
219 interrupts = <0 88 4 221 interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH
220 0 89 4>; 222 0 89 IRQ_TYPE_LEVEL_HIGH>;
221 toshiba,mmc-wrprotect-disable; 223 toshiba,mmc-wrprotect-disable;
222 cap-sd-highspeed; 224 cap-sd-highspeed;
223 status = "disabled"; 225 status = "disabled";
224 }; 226 };
225 227
226 sdhi2: sdhi@ee140000 { 228 sdhi2: sd@ee140000 {
227 compatible = "renesas,sdhi-r8a7740"; 229 compatible = "renesas,sdhi-sh73a0";
228 reg = <0xee140000 0x100>; 230 reg = <0xee140000 0x100>;
229 interrupt-parent = <&gic>; 231 interrupt-parent = <&gic>;
230 interrupts = <0 104 4 232 interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH
231 0 105 4>; 233 0 105 IRQ_TYPE_LEVEL_HIGH>;
232 toshiba,mmc-wrprotect-disable; 234 toshiba,mmc-wrprotect-disable;
233 cap-sd-highspeed; 235 cap-sd-highspeed;
234 status = "disabled"; 236 status = "disabled";
diff --git a/arch/arm/configs/ape6evm_defconfig b/arch/arm/configs/ape6evm_defconfig
index 1ce39940795d..cb26c62dc722 100644
--- a/arch/arm/configs/ape6evm_defconfig
+++ b/arch/arm/configs/ape6evm_defconfig
@@ -13,7 +13,7 @@ CONFIG_EMBEDDED=y
13CONFIG_PERF_EVENTS=y 13CONFIG_PERF_EVENTS=y
14CONFIG_SLAB=y 14CONFIG_SLAB=y
15# CONFIG_BLOCK is not set 15# CONFIG_BLOCK is not set
16CONFIG_ARCH_SHMOBILE=y 16CONFIG_ARCH_SHMOBILE_LEGACY=y
17CONFIG_ARCH_R8A73A4=y 17CONFIG_ARCH_R8A73A4=y
18CONFIG_MACH_APE6EVM=y 18CONFIG_MACH_APE6EVM=y
19# CONFIG_ARM_THUMB is not set 19# CONFIG_ARM_THUMB is not set
diff --git a/arch/arm/configs/armadillo800eva_defconfig b/arch/arm/configs/armadillo800eva_defconfig
index fae939d3d7f0..5abf1a2e3160 100644
--- a/arch/arm/configs/armadillo800eva_defconfig
+++ b/arch/arm/configs/armadillo800eva_defconfig
@@ -15,7 +15,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
15# CONFIG_BLK_DEV_BSG is not set 15# CONFIG_BLK_DEV_BSG is not set
16# CONFIG_IOSCHED_DEADLINE is not set 16# CONFIG_IOSCHED_DEADLINE is not set
17# CONFIG_IOSCHED_CFQ is not set 17# CONFIG_IOSCHED_CFQ is not set
18CONFIG_ARCH_SHMOBILE=y 18CONFIG_ARCH_SHMOBILE_LEGACY=y
19CONFIG_ARCH_R8A7740=y 19CONFIG_ARCH_R8A7740=y
20CONFIG_MACH_ARMADILLO800EVA=y 20CONFIG_MACH_ARMADILLO800EVA=y
21# CONFIG_SH_TIMER_TMU is not set 21# CONFIG_SH_TIMER_TMU is not set
diff --git a/arch/arm/configs/bockw_defconfig b/arch/arm/configs/bockw_defconfig
index b38cd107f82d..1dd39716d7cb 100644
--- a/arch/arm/configs/bockw_defconfig
+++ b/arch/arm/configs/bockw_defconfig
@@ -8,7 +8,7 @@ CONFIG_SYSCTL_SYSCALL=y
8CONFIG_EMBEDDED=y 8CONFIG_EMBEDDED=y
9CONFIG_SLAB=y 9CONFIG_SLAB=y
10# CONFIG_IOSCHED_CFQ is not set 10# CONFIG_IOSCHED_CFQ is not set
11CONFIG_ARCH_SHMOBILE=y 11CONFIG_ARCH_SHMOBILE_LEGACY=y
12CONFIG_ARCH_R8A7778=y 12CONFIG_ARCH_R8A7778=y
13CONFIG_MACH_BOCKW=y 13CONFIG_MACH_BOCKW=y
14CONFIG_MEMORY_START=0x60000000 14CONFIG_MEMORY_START=0x60000000
diff --git a/arch/arm/configs/koelsch_defconfig b/arch/arm/configs/koelsch_defconfig
index 825c16dee8a0..7fd65a01ec7e 100644
--- a/arch/arm/configs/koelsch_defconfig
+++ b/arch/arm/configs/koelsch_defconfig
@@ -9,7 +9,7 @@ CONFIG_EMBEDDED=y
9CONFIG_PERF_EVENTS=y 9CONFIG_PERF_EVENTS=y
10CONFIG_SLAB=y 10CONFIG_SLAB=y
11# CONFIG_BLOCK is not set 11# CONFIG_BLOCK is not set
12CONFIG_ARCH_SHMOBILE=y 12CONFIG_ARCH_SHMOBILE_LEGACY=y
13CONFIG_ARCH_R8A7791=y 13CONFIG_ARCH_R8A7791=y
14CONFIG_MACH_KOELSCH=y 14CONFIG_MACH_KOELSCH=y
15# CONFIG_SWP_EMULATE is not set 15# CONFIG_SWP_EMULATE is not set
diff --git a/arch/arm/configs/kzm9d_defconfig b/arch/arm/configs/kzm9d_defconfig
index 6c37f4a98eb8..217f1dda2965 100644
--- a/arch/arm/configs/kzm9d_defconfig
+++ b/arch/arm/configs/kzm9d_defconfig
@@ -13,7 +13,7 @@ CONFIG_SLAB=y
13# CONFIG_BLK_DEV_BSG is not set 13# CONFIG_BLK_DEV_BSG is not set
14# CONFIG_IOSCHED_DEADLINE is not set 14# CONFIG_IOSCHED_DEADLINE is not set
15# CONFIG_IOSCHED_CFQ is not set 15# CONFIG_IOSCHED_CFQ is not set
16CONFIG_ARCH_SHMOBILE=y 16CONFIG_ARCH_SHMOBILE_LEGACY=y
17CONFIG_ARCH_EMEV2=y 17CONFIG_ARCH_EMEV2=y
18CONFIG_MACH_KZM9D=y 18CONFIG_MACH_KZM9D=y
19CONFIG_MEMORY_START=0x40000000 19CONFIG_MEMORY_START=0x40000000
diff --git a/arch/arm/configs/kzm9g_defconfig b/arch/arm/configs/kzm9g_defconfig
index 1ad028023a64..9934dbc23d64 100644
--- a/arch/arm/configs/kzm9g_defconfig
+++ b/arch/arm/configs/kzm9g_defconfig
@@ -22,7 +22,7 @@ CONFIG_MODULE_UNLOAD=y
22# CONFIG_BLK_DEV_BSG is not set 22# CONFIG_BLK_DEV_BSG is not set
23# CONFIG_IOSCHED_DEADLINE is not set 23# CONFIG_IOSCHED_DEADLINE is not set
24# CONFIG_IOSCHED_CFQ is not set 24# CONFIG_IOSCHED_CFQ is not set
25CONFIG_ARCH_SHMOBILE=y 25CONFIG_ARCH_SHMOBILE_LEGACY=y
26CONFIG_ARCH_SH73A0=y 26CONFIG_ARCH_SH73A0=y
27CONFIG_MACH_KZM9G=y 27CONFIG_MACH_KZM9G=y
28CONFIG_MEMORY_START=0x41000000 28CONFIG_MEMORY_START=0x41000000
diff --git a/arch/arm/configs/lager_defconfig b/arch/arm/configs/lager_defconfig
index 35bff5e0d57a..35dc8b2be47f 100644
--- a/arch/arm/configs/lager_defconfig
+++ b/arch/arm/configs/lager_defconfig
@@ -12,7 +12,7 @@ CONFIG_SLAB=y
12# CONFIG_BLK_DEV_BSG is not set 12# CONFIG_BLK_DEV_BSG is not set
13# CONFIG_IOSCHED_DEADLINE is not set 13# CONFIG_IOSCHED_DEADLINE is not set
14# CONFIG_IOSCHED_CFQ is not set 14# CONFIG_IOSCHED_CFQ is not set
15CONFIG_ARCH_SHMOBILE=y 15CONFIG_ARCH_SHMOBILE_LEGACY=y
16CONFIG_ARCH_R8A7790=y 16CONFIG_ARCH_R8A7790=y
17CONFIG_MACH_LAGER=y 17CONFIG_MACH_LAGER=y
18# CONFIG_SH_TIMER_TMU is not set 18# CONFIG_SH_TIMER_TMU is not set
diff --git a/arch/arm/configs/mackerel_defconfig b/arch/arm/configs/mackerel_defconfig
index 9fb11895b2e2..a61e1653fc5e 100644
--- a/arch/arm/configs/mackerel_defconfig
+++ b/arch/arm/configs/mackerel_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULE_UNLOAD=y
14# CONFIG_BLK_DEV_BSG is not set 14# CONFIG_BLK_DEV_BSG is not set
15# CONFIG_IOSCHED_DEADLINE is not set 15# CONFIG_IOSCHED_DEADLINE is not set
16# CONFIG_IOSCHED_CFQ is not set 16# CONFIG_IOSCHED_CFQ is not set
17CONFIG_ARCH_SHMOBILE=y 17CONFIG_ARCH_SHMOBILE_LEGACY=y
18CONFIG_ARCH_SH7372=y 18CONFIG_ARCH_SH7372=y
19CONFIG_MACH_MACKEREL=y 19CONFIG_MACH_MACKEREL=y
20CONFIG_MEMORY_SIZE=0x10000000 20CONFIG_MEMORY_SIZE=0x10000000
diff --git a/arch/arm/configs/marzen_defconfig b/arch/arm/configs/marzen_defconfig
index 5cc6360340b1..6981338cd08d 100644
--- a/arch/arm/configs/marzen_defconfig
+++ b/arch/arm/configs/marzen_defconfig
@@ -9,7 +9,7 @@ CONFIG_SYSCTL_SYSCALL=y
9CONFIG_EMBEDDED=y 9CONFIG_EMBEDDED=y
10CONFIG_SLAB=y 10CONFIG_SLAB=y
11# CONFIG_IOSCHED_CFQ is not set 11# CONFIG_IOSCHED_CFQ is not set
12CONFIG_ARCH_SHMOBILE=y 12CONFIG_ARCH_SHMOBILE_LEGACY=y
13CONFIG_ARCH_R8A7779=y 13CONFIG_ARCH_R8A7779=y
14CONFIG_MACH_MARZEN=y 14CONFIG_MACH_MARZEN=y
15CONFIG_MEMORY_START=0x60000000 15CONFIG_MEMORY_START=0x60000000
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index a4a4b75109b2..aa9017bb750c 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -1,6 +1,10 @@
1config ARCH_SHMOBILE
2 bool
3
1config ARCH_SHMOBILE_MULTI 4config ARCH_SHMOBILE_MULTI
2 bool "SH-Mobile Series" if ARCH_MULTI_V7 5 bool "SH-Mobile Series" if ARCH_MULTI_V7
3 depends on MMU 6 depends on MMU
7 select ARCH_SHMOBILE
4 select CPU_V7 8 select CPU_V7
5 select GENERIC_CLOCKEVENTS 9 select GENERIC_CLOCKEVENTS
6 select HAVE_ARM_SCU if SMP 10 select HAVE_ARM_SCU if SMP
@@ -30,7 +34,7 @@ config MACH_KZM9D
30comment "SH-Mobile System Configuration" 34comment "SH-Mobile System Configuration"
31endif 35endif
32 36
33if ARCH_SHMOBILE 37if ARCH_SHMOBILE_LEGACY
34 38
35comment "SH-Mobile System Type" 39comment "SH-Mobile System Type"
36 40
@@ -97,18 +101,23 @@ config ARCH_R8A7790
97 101
98config ARCH_R8A7791 102config ARCH_R8A7791
99 bool "R-Car M2 (R8A77910)" 103 bool "R-Car M2 (R8A77910)"
104 select ARCH_WANT_OPTIONAL_GPIOLIB
100 select ARM_GIC 105 select ARM_GIC
101 select CPU_V7 106 select CPU_V7
102 select SH_CLK_CPG 107 select SH_CLK_CPG
108 select RENESAS_IRQC
103 109
104config ARCH_EMEV2 110config ARCH_EMEV2
105 bool "Emma Mobile EV2" 111 bool "Emma Mobile EV2"
106 select ARCH_WANT_OPTIONAL_GPIOLIB 112 select ARCH_WANT_OPTIONAL_GPIOLIB
107 select ARM_GIC 113 select ARM_GIC
108 select CPU_V7 114 select CPU_V7
115 select USE_OF
116 select AUTO_ZRELADDR
109 117
110config ARCH_R7S72100 118config ARCH_R7S72100
111 bool "RZ/A1H (R7S72100)" 119 bool "RZ/A1H (R7S72100)"
120 select ARCH_WANT_OPTIONAL_GPIOLIB
112 select ARM_GIC 121 select ARM_GIC
113 select CPU_V7 122 select CPU_V7
114 select SH_CLK_CPG 123 select SH_CLK_CPG
@@ -231,12 +240,6 @@ config MACH_KOELSCH
231 depends on ARCH_R8A7791 240 depends on ARCH_R8A7791
232 select USE_OF 241 select USE_OF
233 242
234config MACH_KZM9D
235 bool "KZM9D board"
236 depends on ARCH_EMEV2
237 select REGULATOR_FIXED_VOLTAGE if REGULATOR
238 select USE_OF
239
240config MACH_KZM9G 243config MACH_KZM9G
241 bool "KZM-A9-GT board" 244 bool "KZM-A9-GT board"
242 depends on ARCH_SH73A0 245 depends on ARCH_SH73A0
@@ -274,7 +277,7 @@ source "drivers/sh/Kconfig"
274 277
275endif 278endif
276 279
277if ARCH_SHMOBILE || ARCH_SHMOBILE_MULTI 280if ARCH_SHMOBILE
278 281
279menu "Timer and clock configuration" 282menu "Timer and clock configuration"
280 283
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile
index 51db2bcafabf..c7e877499dc2 100644
--- a/arch/arm/mach-shmobile/Makefile
+++ b/arch/arm/mach-shmobile/Makefile
@@ -71,7 +71,6 @@ obj-$(CONFIG_MACH_LAGER_REFERENCE) += board-lager-reference.o
71obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o 71obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o
72obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o 72obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o
73obj-$(CONFIG_MACH_KOELSCH) += board-koelsch.o 73obj-$(CONFIG_MACH_KOELSCH) += board-koelsch.o
74obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o
75obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o 74obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o
76obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o 75obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o
77endif 76endif
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
index 391d72a5536c..4f30e3dc0919 100644
--- a/arch/arm/mach-shmobile/Makefile.boot
+++ b/arch/arm/mach-shmobile/Makefile.boot
@@ -8,7 +8,6 @@ loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000
8loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 8loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000
9loadaddr-$(CONFIG_MACH_GENMAI) += 0x8008000 9loadaddr-$(CONFIG_MACH_GENMAI) += 0x8008000
10loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000 10loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000
11loadaddr-$(CONFIG_MACH_KZM9D) += 0x40008000
12loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 11loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000
13loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 12loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000
14loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000 13loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000
diff --git a/arch/arm/mach-shmobile/board-bockw-reference.c b/arch/arm/mach-shmobile/board-bockw-reference.c
index 1687df9b267f..875cf3f3f503 100644
--- a/arch/arm/mach-shmobile/board-bockw-reference.c
+++ b/arch/arm/mach-shmobile/board-bockw-reference.c
@@ -27,14 +27,6 @@
27 * see board-bock.c for checking detail of dip-switch 27 * see board-bock.c for checking detail of dip-switch
28 */ 28 */
29 29
30static const struct pinctrl_map bockw_pinctrl_map[] = {
31 /* SCIF0 */
32 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778",
33 "scif0_data_a", "scif0"),
34 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778",
35 "scif0_ctrl", "scif0"),
36};
37
38#define FPGA 0x18200000 30#define FPGA 0x18200000
39#define IRQ0MR 0x30 31#define IRQ0MR 0x30
40#define COMCTLR 0x101c 32#define COMCTLR 0x101c
@@ -44,10 +36,6 @@ static void __init bockw_init(void)
44 36
45 r8a7778_clock_init(); 37 r8a7778_clock_init();
46 r8a7778_init_irq_extpin_dt(1); 38 r8a7778_init_irq_extpin_dt(1);
47
48 pinctrl_register_mappings(bockw_pinctrl_map,
49 ARRAY_SIZE(bockw_pinctrl_map));
50 r8a7778_pinmux_init();
51 r8a7778_add_dt_devices(); 39 r8a7778_add_dt_devices();
52 40
53 fpga = ioremap_nocache(FPGA, SZ_1M); 41 fpga = ioremap_nocache(FPGA, SZ_1M);
diff --git a/arch/arm/mach-shmobile/board-kzm9d.c b/arch/arm/mach-shmobile/board-kzm9d.c
deleted file mode 100644
index 30c2cc695b12..000000000000
--- a/arch/arm/mach-shmobile/board-kzm9d.c
+++ /dev/null
@@ -1,92 +0,0 @@
1/*
2 * kzm9d board support
3 *
4 * Copyright (C) 2012 Renesas Solutions Corp.
5 * Copyright (C) 2012 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/kernel.h>
22#include <linux/interrupt.h>
23#include <linux/platform_device.h>
24#include <linux/regulator/fixed.h>
25#include <linux/regulator/machine.h>
26#include <linux/smsc911x.h>
27#include <mach/common.h>
28#include <mach/emev2.h>
29#include <asm/mach-types.h>
30#include <asm/mach/arch.h>
31
32/* Dummy supplies, where voltage doesn't matter */
33static struct regulator_consumer_supply dummy_supplies[] = {
34 REGULATOR_SUPPLY("vddvario", "smsc911x"),
35 REGULATOR_SUPPLY("vdd33a", "smsc911x"),
36};
37
38/* Ether */
39static struct resource smsc911x_resources[] = {
40 [0] = {
41 .start = 0x20000000,
42 .end = 0x2000ffff,
43 .flags = IORESOURCE_MEM,
44 },
45 [1] = {
46 .start = EMEV2_GPIO_IRQ(1),
47 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
48 },
49};
50
51static struct smsc911x_platform_config smsc911x_platdata = {
52 .flags = SMSC911X_USE_32BIT,
53 .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL,
54 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_HIGH,
55};
56
57static struct platform_device smsc91x_device = {
58 .name = "smsc911x",
59 .id = -1,
60 .dev = {
61 .platform_data = &smsc911x_platdata,
62 },
63 .num_resources = ARRAY_SIZE(smsc911x_resources),
64 .resource = smsc911x_resources,
65};
66
67static struct platform_device *kzm9d_devices[] __initdata = {
68 &smsc91x_device,
69};
70
71void __init kzm9d_add_standard_devices(void)
72{
73 regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
74
75 emev2_add_standard_devices();
76
77 platform_add_devices(kzm9d_devices, ARRAY_SIZE(kzm9d_devices));
78}
79
80static const char *kzm9d_boards_compat_dt[] __initdata = {
81 "renesas,kzm9d",
82 NULL,
83};
84
85DT_MACHINE_START(KZM9D_DT, "kzm9d")
86 .smp = smp_ops(emev2_smp_ops),
87 .map_io = emev2_map_io,
88 .init_early = emev2_init_delay,
89 .init_machine = kzm9d_add_standard_devices,
90 .init_late = shmobile_init_late,
91 .dt_compat = kzm9d_boards_compat_dt,
92MACHINE_END
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
index 4f9e3ec42ddc..d832a4477b4b 100644
--- a/arch/arm/mach-shmobile/board-marzen.c
+++ b/arch/arm/mach-shmobile/board-marzen.c
@@ -347,8 +347,6 @@ static const struct pinctrl_map marzen_pinctrl_map[] = {
347 "sdhi0_ctrl", "sdhi0"), 347 "sdhi0_ctrl", "sdhi0"),
348 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779", 348 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
349 "sdhi0_cd", "sdhi0"), 349 "sdhi0_cd", "sdhi0"),
350 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
351 "sdhi0_wp", "sdhi0"),
352 /* SMSC */ 350 /* SMSC */
353 PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779", 351 PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779",
354 "intc_irq1_b", "intc"), 352 "intc_irq1_b", "intc"),
diff --git a/arch/arm/mach-shmobile/clock-r7s72100.c b/arch/arm/mach-shmobile/clock-r7s72100.c
index 0814a508fd61..7b457aed8253 100644
--- a/arch/arm/mach-shmobile/clock-r7s72100.c
+++ b/arch/arm/mach-shmobile/clock-r7s72100.c
@@ -181,6 +181,7 @@ static struct clk_lookup lookups[] = {
181 CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]), 181 CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]),
182 CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]), 182 CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]),
183 CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]), 183 CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]),
184 CLKDEV_CON_ID("mtu2_fck", &mstp_clks[MSTP33]),
184}; 185};
185 186
186void __init r7s72100_clock_init(void) 187void __init r7s72100_clock_init(void)
diff --git a/arch/arm/mach-shmobile/clock-r8a73a4.c b/arch/arm/mach-shmobile/clock-r8a73a4.c
index 571409b611d3..7348d58f500e 100644
--- a/arch/arm/mach-shmobile/clock-r8a73a4.c
+++ b/arch/arm/mach-shmobile/clock-r8a73a4.c
@@ -584,15 +584,15 @@ static struct clk_lookup lookups[] = {
584 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), 584 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]),
585 CLKDEV_DEV_ID("e6520000.i2c", &mstp_clks[MSTP300]), 585 CLKDEV_DEV_ID("e6520000.i2c", &mstp_clks[MSTP300]),
586 CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]), 586 CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]),
587 CLKDEV_DEV_ID("ee220000.mmcif", &mstp_clks[MSTP305]), 587 CLKDEV_DEV_ID("ee220000.mmc", &mstp_clks[MSTP305]),
588 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]), 588 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]),
589 CLKDEV_DEV_ID("ee140000.sdhi", &mstp_clks[MSTP312]), 589 CLKDEV_DEV_ID("ee140000.sd", &mstp_clks[MSTP312]),
590 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), 590 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]),
591 CLKDEV_DEV_ID("ee120000.sdhi", &mstp_clks[MSTP313]), 591 CLKDEV_DEV_ID("ee120000.sd", &mstp_clks[MSTP313]),
592 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), 592 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]),
593 CLKDEV_DEV_ID("ee100000.sdhi", &mstp_clks[MSTP314]), 593 CLKDEV_DEV_ID("ee100000.sd", &mstp_clks[MSTP314]),
594 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]), 594 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]),
595 CLKDEV_DEV_ID("ee200000.mmcif", &mstp_clks[MSTP315]), 595 CLKDEV_DEV_ID("ee200000.mmc", &mstp_clks[MSTP315]),
596 CLKDEV_DEV_ID("e6550000.i2c", &mstp_clks[MSTP316]), 596 CLKDEV_DEV_ID("e6550000.i2c", &mstp_clks[MSTP316]),
597 CLKDEV_DEV_ID("e6560000.i2c", &mstp_clks[MSTP317]), 597 CLKDEV_DEV_ID("e6560000.i2c", &mstp_clks[MSTP317]),
598 CLKDEV_DEV_ID("e6500000.i2c", &mstp_clks[MSTP318]), 598 CLKDEV_DEV_ID("e6500000.i2c", &mstp_clks[MSTP318]),
diff --git a/arch/arm/mach-shmobile/clock-r8a7740.c b/arch/arm/mach-shmobile/clock-r8a7740.c
index c826bca4024e..dd989f93498f 100644
--- a/arch/arm/mach-shmobile/clock-r8a7740.c
+++ b/arch/arm/mach-shmobile/clock-r8a7740.c
@@ -585,22 +585,23 @@ static struct clk_lookup lookups[] = {
585 585
586 CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), 586 CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]),
587 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), 587 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]),
588 CLKDEV_DEV_ID("fe1f0000.sound", &mstp_clks[MSTP328]),
588 CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]), 589 CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]),
589 CLKDEV_DEV_ID("e6c20000.i2c", &mstp_clks[MSTP323]), 590 CLKDEV_DEV_ID("e6c20000.i2c", &mstp_clks[MSTP323]),
590 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP320]), 591 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP320]),
591 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), 592 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]),
592 CLKDEV_DEV_ID("e6850000.sdhi", &mstp_clks[MSTP314]), 593 CLKDEV_DEV_ID("e6850000.sd", &mstp_clks[MSTP314]),
593 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), 594 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]),
594 CLKDEV_DEV_ID("e6860000.sdhi", &mstp_clks[MSTP313]), 595 CLKDEV_DEV_ID("e6860000.sd", &mstp_clks[MSTP313]),
595 CLKDEV_DEV_ID("sh_mmcif", &mstp_clks[MSTP312]), 596 CLKDEV_DEV_ID("sh_mmcif", &mstp_clks[MSTP312]),
596 CLKDEV_DEV_ID("e6bd0000.mmcif", &mstp_clks[MSTP312]), 597 CLKDEV_DEV_ID("e6bd0000.mmc", &mstp_clks[MSTP312]),
597 CLKDEV_DEV_ID("r8a7740-gether", &mstp_clks[MSTP309]), 598 CLKDEV_DEV_ID("r8a7740-gether", &mstp_clks[MSTP309]),
598 CLKDEV_DEV_ID("e9a00000.sh-eth", &mstp_clks[MSTP309]), 599 CLKDEV_DEV_ID("e9a00000.sh-eth", &mstp_clks[MSTP309]),
599 CLKDEV_DEV_ID("renesas-tpu-pwm", &mstp_clks[MSTP304]), 600 CLKDEV_DEV_ID("renesas-tpu-pwm", &mstp_clks[MSTP304]),
600 CLKDEV_DEV_ID("e6600000.pwm", &mstp_clks[MSTP304]), 601 CLKDEV_DEV_ID("e6600000.pwm", &mstp_clks[MSTP304]),
601 602
602 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP415]), 603 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP415]),
603 CLKDEV_DEV_ID("e6870000.sdhi", &mstp_clks[MSTP415]), 604 CLKDEV_DEV_ID("e6870000.sd", &mstp_clks[MSTP415]),
604 605
605 /* ICK */ 606 /* ICK */
606 CLKDEV_ICK_ID("host", "renesas_usbhs", &mstp_clks[MSTP416]), 607 CLKDEV_ICK_ID("host", "renesas_usbhs", &mstp_clks[MSTP416]),
diff --git a/arch/arm/mach-shmobile/clock-r8a7778.c b/arch/arm/mach-shmobile/clock-r8a7778.c
index fb6af83858e3..4b601bf4ede4 100644
--- a/arch/arm/mach-shmobile/clock-r8a7778.c
+++ b/arch/arm/mach-shmobile/clock-r8a7778.c
@@ -173,9 +173,13 @@ static struct clk_lookup lookups[] = {
173 173
174 /* MSTP32 clocks */ 174 /* MSTP32 clocks */
175 CLKDEV_DEV_ID("sh_mmcif", &mstp_clks[MSTP331]), /* MMC */ 175 CLKDEV_DEV_ID("sh_mmcif", &mstp_clks[MSTP331]), /* MMC */
176 CLKDEV_DEV_ID("ffe4e000.mmc", &mstp_clks[MSTP331]), /* MMC */
176 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP323]), /* SDHI0 */ 177 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP323]), /* SDHI0 */
178 CLKDEV_DEV_ID("ffe4c000.sd", &mstp_clks[MSTP323]), /* SDHI0 */
177 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP322]), /* SDHI1 */ 179 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP322]), /* SDHI1 */
180 CLKDEV_DEV_ID("ffe4d000.sd", &mstp_clks[MSTP322]), /* SDHI1 */
178 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP321]), /* SDHI2 */ 181 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP321]), /* SDHI2 */
182 CLKDEV_DEV_ID("ffe4f000.sd", &mstp_clks[MSTP321]), /* SDHI2 */
179 CLKDEV_DEV_ID("r8a777x-ether", &mstp_clks[MSTP114]), /* Ether */ 183 CLKDEV_DEV_ID("r8a777x-ether", &mstp_clks[MSTP114]), /* Ether */
180 CLKDEV_DEV_ID("r8a7778-vin.0", &mstp_clks[MSTP110]), /* VIN0 */ 184 CLKDEV_DEV_ID("r8a7778-vin.0", &mstp_clks[MSTP110]), /* VIN0 */
181 CLKDEV_DEV_ID("r8a7778-vin.1", &mstp_clks[MSTP109]), /* VIN1 */ 185 CLKDEV_DEV_ID("r8a7778-vin.1", &mstp_clks[MSTP109]), /* VIN1 */
@@ -183,9 +187,13 @@ static struct clk_lookup lookups[] = {
183 CLKDEV_DEV_ID("ohci-platform", &mstp_clks[MSTP100]), /* USB OHCI port0/1 */ 187 CLKDEV_DEV_ID("ohci-platform", &mstp_clks[MSTP100]), /* USB OHCI port0/1 */
184 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP100]), /* USB FUNC */ 188 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP100]), /* USB FUNC */
185 CLKDEV_DEV_ID("i2c-rcar.0", &mstp_clks[MSTP030]), /* I2C0 */ 189 CLKDEV_DEV_ID("i2c-rcar.0", &mstp_clks[MSTP030]), /* I2C0 */
190 CLKDEV_DEV_ID("ffc70000.i2c", &mstp_clks[MSTP030]), /* I2C0 */
186 CLKDEV_DEV_ID("i2c-rcar.1", &mstp_clks[MSTP029]), /* I2C1 */ 191 CLKDEV_DEV_ID("i2c-rcar.1", &mstp_clks[MSTP029]), /* I2C1 */
192 CLKDEV_DEV_ID("ffc71000.i2c", &mstp_clks[MSTP029]), /* I2C1 */
187 CLKDEV_DEV_ID("i2c-rcar.2", &mstp_clks[MSTP028]), /* I2C2 */ 193 CLKDEV_DEV_ID("i2c-rcar.2", &mstp_clks[MSTP028]), /* I2C2 */
194 CLKDEV_DEV_ID("ffc72000.i2c", &mstp_clks[MSTP028]), /* I2C2 */
188 CLKDEV_DEV_ID("i2c-rcar.3", &mstp_clks[MSTP027]), /* I2C3 */ 195 CLKDEV_DEV_ID("i2c-rcar.3", &mstp_clks[MSTP027]), /* I2C3 */
196 CLKDEV_DEV_ID("ffc73000.i2c", &mstp_clks[MSTP027]), /* I2C3 */
189 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP026]), /* SCIF0 */ 197 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP026]), /* SCIF0 */
190 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP025]), /* SCIF1 */ 198 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP025]), /* SCIF1 */
191 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP024]), /* SCIF2 */ 199 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP024]), /* SCIF2 */
@@ -195,8 +203,11 @@ static struct clk_lookup lookups[] = {
195 CLKDEV_DEV_ID("sh_tmu.0", &mstp_clks[MSTP016]), /* TMU00 */ 203 CLKDEV_DEV_ID("sh_tmu.0", &mstp_clks[MSTP016]), /* TMU00 */
196 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP015]), /* TMU01 */ 204 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP015]), /* TMU01 */
197 CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */ 205 CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */
206 CLKDEV_DEV_ID("fffc7000.spi", &mstp_clks[MSTP007]), /* HSPI0 */
198 CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */ 207 CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */
208 CLKDEV_DEV_ID("fffc8000.spi", &mstp_clks[MSTP007]), /* HSPI1 */
199 CLKDEV_DEV_ID("sh-hspi.2", &mstp_clks[MSTP007]), /* HSPI2 */ 209 CLKDEV_DEV_ID("sh-hspi.2", &mstp_clks[MSTP007]), /* HSPI2 */
210 CLKDEV_DEV_ID("fffc6000.spi", &mstp_clks[MSTP007]), /* HSPI2 */
200 CLKDEV_DEV_ID("rcar_sound", &mstp_clks[MSTP008]), /* SRU */ 211 CLKDEV_DEV_ID("rcar_sound", &mstp_clks[MSTP008]), /* SRU */
201 212
202 CLKDEV_ICK_ID("ssi.0", "rcar_sound", &mstp_clks[MSTP012]), 213 CLKDEV_ICK_ID("ssi.0", "rcar_sound", &mstp_clks[MSTP012]),
diff --git a/arch/arm/mach-shmobile/clock-r8a7779.c b/arch/arm/mach-shmobile/clock-r8a7779.c
index 1f7080fab0a5..f1fb89b76786 100644
--- a/arch/arm/mach-shmobile/clock-r8a7779.c
+++ b/arch/arm/mach-shmobile/clock-r8a7779.c
@@ -184,9 +184,13 @@ static struct clk_lookup lookups[] = {
184 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP016]), /* TMU01 */ 184 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP016]), /* TMU01 */
185 CLKDEV_DEV_ID("sh_tmu.2", &mstp_clks[MSTP016]), /* TMU02 */ 185 CLKDEV_DEV_ID("sh_tmu.2", &mstp_clks[MSTP016]), /* TMU02 */
186 CLKDEV_DEV_ID("i2c-rcar.0", &mstp_clks[MSTP030]), /* I2C0 */ 186 CLKDEV_DEV_ID("i2c-rcar.0", &mstp_clks[MSTP030]), /* I2C0 */
187 CLKDEV_DEV_ID("ffc70000.i2c", &mstp_clks[MSTP030]), /* I2C0 */
187 CLKDEV_DEV_ID("i2c-rcar.1", &mstp_clks[MSTP029]), /* I2C1 */ 188 CLKDEV_DEV_ID("i2c-rcar.1", &mstp_clks[MSTP029]), /* I2C1 */
189 CLKDEV_DEV_ID("ffc71000.i2c", &mstp_clks[MSTP029]), /* I2C1 */
188 CLKDEV_DEV_ID("i2c-rcar.2", &mstp_clks[MSTP028]), /* I2C2 */ 190 CLKDEV_DEV_ID("i2c-rcar.2", &mstp_clks[MSTP028]), /* I2C2 */
191 CLKDEV_DEV_ID("ffc72000.i2c", &mstp_clks[MSTP028]), /* I2C2 */
189 CLKDEV_DEV_ID("i2c-rcar.3", &mstp_clks[MSTP027]), /* I2C3 */ 192 CLKDEV_DEV_ID("i2c-rcar.3", &mstp_clks[MSTP027]), /* I2C3 */
193 CLKDEV_DEV_ID("ffc73000.i2c", &mstp_clks[MSTP027]), /* I2C3 */
190 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP026]), /* SCIF0 */ 194 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP026]), /* SCIF0 */
191 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP025]), /* SCIF1 */ 195 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP025]), /* SCIF1 */
192 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP024]), /* SCIF2 */ 196 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP024]), /* SCIF2 */
@@ -194,12 +198,19 @@ static struct clk_lookup lookups[] = {
194 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP022]), /* SCIF4 */ 198 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP022]), /* SCIF4 */
195 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP021]), /* SCIF6 */ 199 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP021]), /* SCIF6 */
196 CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */ 200 CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */
201 CLKDEV_DEV_ID("fffc7000.spi", &mstp_clks[MSTP007]), /* HSPI0 */
197 CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */ 202 CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */
203 CLKDEV_DEV_ID("fffc8000.spi", &mstp_clks[MSTP007]), /* HSPI1 */
198 CLKDEV_DEV_ID("sh-hspi.2", &mstp_clks[MSTP007]), /* HSPI2 */ 204 CLKDEV_DEV_ID("sh-hspi.2", &mstp_clks[MSTP007]), /* HSPI2 */
205 CLKDEV_DEV_ID("fffc6000.spi", &mstp_clks[MSTP007]), /* HSPI2 */
199 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP323]), /* SDHI0 */ 206 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP323]), /* SDHI0 */
207 CLKDEV_DEV_ID("ffe4c000.sd", &mstp_clks[MSTP323]), /* SDHI0 */
200 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP322]), /* SDHI1 */ 208 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP322]), /* SDHI1 */
209 CLKDEV_DEV_ID("ffe4d000.sd", &mstp_clks[MSTP322]), /* SDHI1 */
201 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP321]), /* SDHI2 */ 210 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP321]), /* SDHI2 */
211 CLKDEV_DEV_ID("ffe4e000.sd", &mstp_clks[MSTP321]), /* SDHI2 */
202 CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP320]), /* SDHI3 */ 212 CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP320]), /* SDHI3 */
213 CLKDEV_DEV_ID("ffe4f000.sd", &mstp_clks[MSTP320]), /* SDHI3 */
203 CLKDEV_DEV_ID("rcar-du-r8a7779", &mstp_clks[MSTP103]), /* DU */ 214 CLKDEV_DEV_ID("rcar-du-r8a7779", &mstp_clks[MSTP103]), /* DU */
204}; 215};
205 216
diff --git a/arch/arm/mach-shmobile/clock-r8a7790.c b/arch/arm/mach-shmobile/clock-r8a7790.c
index fa1b4773677a..312376d2cfd1 100644
--- a/arch/arm/mach-shmobile/clock-r8a7790.c
+++ b/arch/arm/mach-shmobile/clock-r8a7790.c
@@ -53,6 +53,7 @@
53#define SMSTPCR7 0xe615014c 53#define SMSTPCR7 0xe615014c
54#define SMSTPCR8 0xe6150990 54#define SMSTPCR8 0xe6150990
55#define SMSTPCR9 0xe6150994 55#define SMSTPCR9 0xe6150994
56#define SMSTPCR10 0xe6150998
56 57
57#define SDCKCR 0xE6150074 58#define SDCKCR 0xE6150074
58#define SD2CKCR 0xE6150078 59#define SD2CKCR 0xE6150078
@@ -182,10 +183,14 @@ static struct clk div6_clks[DIV6_NR] = {
182 183
183/* MSTP */ 184/* MSTP */
184enum { 185enum {
186 MSTP1015, MSTP1014, MSTP1013, MSTP1012, MSTP1011, MSTP1010,
187 MSTP1009, MSTP1008, MSTP1007, MSTP1006, MSTP1005,
185 MSTP931, MSTP930, MSTP929, MSTP928, 188 MSTP931, MSTP930, MSTP929, MSTP928,
189 MSTP917,
186 MSTP813, 190 MSTP813,
187 MSTP726, MSTP725, MSTP724, MSTP723, MSTP722, MSTP721, MSTP720, 191 MSTP726, MSTP725, MSTP724, MSTP723, MSTP722, MSTP721, MSTP720,
188 MSTP717, MSTP716, 192 MSTP717, MSTP716,
193 MSTP704,
189 MSTP522, 194 MSTP522,
190 MSTP315, MSTP314, MSTP313, MSTP312, MSTP311, MSTP305, MSTP304, 195 MSTP315, MSTP314, MSTP313, MSTP312, MSTP311, MSTP305, MSTP304,
191 MSTP216, MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, 196 MSTP216, MSTP207, MSTP206, MSTP204, MSTP203, MSTP202,
@@ -194,10 +199,22 @@ enum {
194}; 199};
195 200
196static struct clk mstp_clks[MSTP_NR] = { 201static struct clk mstp_clks[MSTP_NR] = {
197 [MSTP931] = SH_CLK_MSTP32(&hp_clk, SMSTPCR9, 31, 0), /* I2C0 */ 202 [MSTP1015] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 15, 0), /* SSI0 */
198 [MSTP930] = SH_CLK_MSTP32(&hp_clk, SMSTPCR9, 30, 0), /* I2C1 */ 203 [MSTP1014] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 14, 0), /* SSI1 */
199 [MSTP929] = SH_CLK_MSTP32(&hp_clk, SMSTPCR9, 29, 0), /* I2C2 */ 204 [MSTP1013] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 13, 0), /* SSI2 */
200 [MSTP928] = SH_CLK_MSTP32(&hp_clk, SMSTPCR9, 28, 0), /* I2C3 */ 205 [MSTP1012] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 12, 0), /* SSI3 */
206 [MSTP1011] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 11, 0), /* SSI4 */
207 [MSTP1010] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 10, 0), /* SSI5 */
208 [MSTP1009] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 9, 0), /* SSI6 */
209 [MSTP1008] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 8, 0), /* SSI7 */
210 [MSTP1007] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 7, 0), /* SSI8 */
211 [MSTP1006] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 6, 0), /* SSI9 */
212 [MSTP1005] = SH_CLK_MSTP32(&p_clk, SMSTPCR10, 5, 0), /* SSI ALL */
213 [MSTP931] = SH_CLK_MSTP32(&p_clk, SMSTPCR9, 31, 0), /* I2C0 */
214 [MSTP930] = SH_CLK_MSTP32(&p_clk, SMSTPCR9, 30, 0), /* I2C1 */
215 [MSTP929] = SH_CLK_MSTP32(&p_clk, SMSTPCR9, 29, 0), /* I2C2 */
216 [MSTP928] = SH_CLK_MSTP32(&p_clk, SMSTPCR9, 28, 0), /* I2C3 */
217 [MSTP917] = SH_CLK_MSTP32(&qspi_clk, SMSTPCR9, 17, 0), /* QSPI */
201 [MSTP813] = SH_CLK_MSTP32(&p_clk, SMSTPCR8, 13, 0), /* Ether */ 218 [MSTP813] = SH_CLK_MSTP32(&p_clk, SMSTPCR8, 13, 0), /* Ether */
202 [MSTP726] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 26, 0), /* LVDS0 */ 219 [MSTP726] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 26, 0), /* LVDS0 */
203 [MSTP725] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 25, 0), /* LVDS1 */ 220 [MSTP725] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 25, 0), /* LVDS1 */
@@ -208,6 +225,7 @@ static struct clk mstp_clks[MSTP_NR] = {
208 [MSTP720] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 20, 0), /* SCIF1 */ 225 [MSTP720] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 20, 0), /* SCIF1 */
209 [MSTP717] = SH_CLK_MSTP32(&zs_clk, SMSTPCR7, 17, 0), /* HSCIF0 */ 226 [MSTP717] = SH_CLK_MSTP32(&zs_clk, SMSTPCR7, 17, 0), /* HSCIF0 */
210 [MSTP716] = SH_CLK_MSTP32(&zs_clk, SMSTPCR7, 16, 0), /* HSCIF1 */ 227 [MSTP716] = SH_CLK_MSTP32(&zs_clk, SMSTPCR7, 16, 0), /* HSCIF1 */
228 [MSTP704] = SH_CLK_MSTP32(&mp_clk, SMSTPCR7, 4, 0), /* HSUSB */
211 [MSTP522] = SH_CLK_MSTP32(&extal_clk, SMSTPCR5, 22, 0), /* Thermal */ 229 [MSTP522] = SH_CLK_MSTP32(&extal_clk, SMSTPCR5, 22, 0), /* Thermal */
212 [MSTP315] = SH_CLK_MSTP32(&div6_clks[DIV6_MMC0], SMSTPCR3, 15, 0), /* MMC0 */ 230 [MSTP315] = SH_CLK_MSTP32(&div6_clks[DIV6_MMC0], SMSTPCR3, 15, 0), /* MMC0 */
213 [MSTP314] = SH_CLK_MSTP32(&div4_clks[DIV4_SD0], SMSTPCR3, 14, 0), /* SDHI0 */ 231 [MSTP314] = SH_CLK_MSTP32(&div4_clks[DIV4_SD0], SMSTPCR3, 14, 0), /* SDHI0 */
@@ -262,11 +280,7 @@ static struct clk_lookup lookups[] = {
262 CLKDEV_CON_ID("ssprs", &div6_clks[DIV6_SSPRS]), 280 CLKDEV_CON_ID("ssprs", &div6_clks[DIV6_SSPRS]),
263 281
264 /* MSTP */ 282 /* MSTP */
265 CLKDEV_ICK_ID("lvds.0", "rcar-du-r8a7790", &mstp_clks[MSTP726]), 283 CLKDEV_DEV_ID("rcar_sound", &mstp_clks[MSTP1005]),
266 CLKDEV_ICK_ID("lvds.1", "rcar-du-r8a7790", &mstp_clks[MSTP725]),
267 CLKDEV_ICK_ID("du.0", "rcar-du-r8a7790", &mstp_clks[MSTP724]),
268 CLKDEV_ICK_ID("du.1", "rcar-du-r8a7790", &mstp_clks[MSTP723]),
269 CLKDEV_ICK_ID("du.2", "rcar-du-r8a7790", &mstp_clks[MSTP722]),
270 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), 284 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]),
271 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), 285 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]),
272 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP206]), 286 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP206]),
@@ -282,20 +296,42 @@ static struct clk_lookup lookups[] = {
282 CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP929]), 296 CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP929]),
283 CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP928]), 297 CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP928]),
284 CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]), 298 CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]),
299 CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]),
285 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), 300 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]),
286 CLKDEV_DEV_ID("ee200000.mmcif", &mstp_clks[MSTP315]), 301 CLKDEV_DEV_ID("ee200000.mmc", &mstp_clks[MSTP315]),
287 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]), 302 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]),
288 CLKDEV_DEV_ID("ee100000.sdhi", &mstp_clks[MSTP314]), 303 CLKDEV_DEV_ID("ee100000.sd", &mstp_clks[MSTP314]),
289 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), 304 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]),
290 CLKDEV_DEV_ID("ee120000.sdhi", &mstp_clks[MSTP313]), 305 CLKDEV_DEV_ID("ee120000.sd", &mstp_clks[MSTP313]),
291 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), 306 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]),
292 CLKDEV_DEV_ID("ee140000.sdhi", &mstp_clks[MSTP312]), 307 CLKDEV_DEV_ID("ee140000.sd", &mstp_clks[MSTP312]),
293 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]), 308 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]),
294 CLKDEV_DEV_ID("ee160000.sdhi", &mstp_clks[MSTP311]), 309 CLKDEV_DEV_ID("ee160000.sd", &mstp_clks[MSTP311]),
295 CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP311]), 310 CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP311]),
296 CLKDEV_DEV_ID("ee220000.mmcif", &mstp_clks[MSTP305]), 311 CLKDEV_DEV_ID("ee220000.mmc", &mstp_clks[MSTP305]),
297 CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]), 312 CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]),
298 CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), 313 CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]),
314 CLKDEV_DEV_ID("qspi.0", &mstp_clks[MSTP917]),
315 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP704]),
316
317 /* ICK */
318 CLKDEV_ICK_ID("usbhs", "usb_phy_rcar_gen2", &mstp_clks[MSTP704]),
319 CLKDEV_ICK_ID("lvds.0", "rcar-du-r8a7790", &mstp_clks[MSTP726]),
320 CLKDEV_ICK_ID("lvds.1", "rcar-du-r8a7790", &mstp_clks[MSTP725]),
321 CLKDEV_ICK_ID("du.0", "rcar-du-r8a7790", &mstp_clks[MSTP724]),
322 CLKDEV_ICK_ID("du.1", "rcar-du-r8a7790", &mstp_clks[MSTP723]),
323 CLKDEV_ICK_ID("du.2", "rcar-du-r8a7790", &mstp_clks[MSTP722]),
324 CLKDEV_ICK_ID("ssi.0", "rcar_sound", &mstp_clks[MSTP1015]),
325 CLKDEV_ICK_ID("ssi.1", "rcar_sound", &mstp_clks[MSTP1014]),
326 CLKDEV_ICK_ID("ssi.2", "rcar_sound", &mstp_clks[MSTP1013]),
327 CLKDEV_ICK_ID("ssi.3", "rcar_sound", &mstp_clks[MSTP1012]),
328 CLKDEV_ICK_ID("ssi.4", "rcar_sound", &mstp_clks[MSTP1011]),
329 CLKDEV_ICK_ID("ssi.5", "rcar_sound", &mstp_clks[MSTP1010]),
330 CLKDEV_ICK_ID("ssi.6", "rcar_sound", &mstp_clks[MSTP1009]),
331 CLKDEV_ICK_ID("ssi.7", "rcar_sound", &mstp_clks[MSTP1008]),
332 CLKDEV_ICK_ID("ssi.8", "rcar_sound", &mstp_clks[MSTP1007]),
333 CLKDEV_ICK_ID("ssi.9", "rcar_sound", &mstp_clks[MSTP1006]),
334
299}; 335};
300 336
301#define R8A7790_CLOCK_ROOT(e, m, p0, p1, p30, p31) \ 337#define R8A7790_CLOCK_ROOT(e, m, p0, p1, p30, p31) \
@@ -321,10 +357,10 @@ void __init r8a7790_clock_init(void)
321 R8A7790_CLOCK_ROOT(20, &extal_clk, 130, 156, 80, 66); 357 R8A7790_CLOCK_ROOT(20, &extal_clk, 130, 156, 80, 66);
322 break; 358 break;
323 case MD(14): 359 case MD(14):
324 R8A7790_CLOCK_ROOT(26, &extal_div2_clk, 200, 240, 122, 102); 360 R8A7790_CLOCK_ROOT(26 / 2, &extal_div2_clk, 200, 240, 122, 102);
325 break; 361 break;
326 case MD(13) | MD(14): 362 case MD(13) | MD(14):
327 R8A7790_CLOCK_ROOT(30, &extal_div2_clk, 172, 208, 106, 88); 363 R8A7790_CLOCK_ROOT(30 / 2, &extal_div2_clk, 172, 208, 106, 88);
328 break; 364 break;
329 } 365 }
330 366
diff --git a/arch/arm/mach-shmobile/clock-r8a7791.c b/arch/arm/mach-shmobile/clock-r8a7791.c
index c9a26f16ce5b..ff2d60d55bd5 100644
--- a/arch/arm/mach-shmobile/clock-r8a7791.c
+++ b/arch/arm/mach-shmobile/clock-r8a7791.c
@@ -103,6 +103,7 @@ SH_FIXED_RATIO_CLK_SET(hp_clk, pll1_clk, 1, 12);
103SH_FIXED_RATIO_CLK_SET(p_clk, pll1_clk, 1, 24); 103SH_FIXED_RATIO_CLK_SET(p_clk, pll1_clk, 1, 24);
104SH_FIXED_RATIO_CLK_SET(rclk_clk, pll1_clk, 1, (48 * 1024)); 104SH_FIXED_RATIO_CLK_SET(rclk_clk, pll1_clk, 1, (48 * 1024));
105SH_FIXED_RATIO_CLK_SET(mp_clk, pll1_div2_clk, 1, 15); 105SH_FIXED_RATIO_CLK_SET(mp_clk, pll1_div2_clk, 1, 15);
106SH_FIXED_RATIO_CLK_SET(zx_clk, pll1_clk, 1, 3);
106 107
107static struct clk *main_clks[] = { 108static struct clk *main_clks[] = {
108 &extal_clk, 109 &extal_clk,
@@ -116,12 +117,14 @@ static struct clk *main_clks[] = {
116 &rclk_clk, 117 &rclk_clk,
117 &mp_clk, 118 &mp_clk,
118 &cp_clk, 119 &cp_clk,
120 &zx_clk,
119}; 121};
120 122
121/* MSTP */ 123/* MSTP */
122enum { 124enum {
123 MSTP721, MSTP720, 125 MSTP726, MSTP724, MSTP723, MSTP721, MSTP720,
124 MSTP719, MSTP718, MSTP715, MSTP714, 126 MSTP719, MSTP718, MSTP715, MSTP714,
127 MSTP522,
125 MSTP216, MSTP207, MSTP206, 128 MSTP216, MSTP207, MSTP206,
126 MSTP204, MSTP203, MSTP202, MSTP1105, MSTP1106, MSTP1107, 129 MSTP204, MSTP203, MSTP202, MSTP1105, MSTP1106, MSTP1107,
127 MSTP124, 130 MSTP124,
@@ -129,12 +132,16 @@ enum {
129}; 132};
130 133
131static struct clk mstp_clks[MSTP_NR] = { 134static struct clk mstp_clks[MSTP_NR] = {
135 [MSTP726] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 26, 0), /* LVDS0 */
136 [MSTP724] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 24, 0), /* DU0 */
137 [MSTP723] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 23, 0), /* DU1 */
132 [MSTP721] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 21, 0), /* SCIF0 */ 138 [MSTP721] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 21, 0), /* SCIF0 */
133 [MSTP720] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 20, 0), /* SCIF1 */ 139 [MSTP720] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 20, 0), /* SCIF1 */
134 [MSTP719] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 19, 0), /* SCIF2 */ 140 [MSTP719] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 19, 0), /* SCIF2 */
135 [MSTP718] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 18, 0), /* SCIF3 */ 141 [MSTP718] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 18, 0), /* SCIF3 */
136 [MSTP715] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 15, 0), /* SCIF4 */ 142 [MSTP715] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 15, 0), /* SCIF4 */
137 [MSTP714] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 14, 0), /* SCIF5 */ 143 [MSTP714] = SH_CLK_MSTP32(&p_clk, SMSTPCR7, 14, 0), /* SCIF5 */
144 [MSTP522] = SH_CLK_MSTP32(&extal_clk, SMSTPCR5, 22, 0), /* Thermal */
138 [MSTP216] = SH_CLK_MSTP32(&mp_clk, SMSTPCR2, 16, 0), /* SCIFB2 */ 145 [MSTP216] = SH_CLK_MSTP32(&mp_clk, SMSTPCR2, 16, 0), /* SCIFB2 */
139 [MSTP207] = SH_CLK_MSTP32(&mp_clk, SMSTPCR2, 7, 0), /* SCIFB1 */ 146 [MSTP207] = SH_CLK_MSTP32(&mp_clk, SMSTPCR2, 7, 0), /* SCIFB1 */
140 [MSTP206] = SH_CLK_MSTP32(&mp_clk, SMSTPCR2, 6, 0), /* SCIFB0 */ 147 [MSTP206] = SH_CLK_MSTP32(&mp_clk, SMSTPCR2, 6, 0), /* SCIFB0 */
@@ -164,6 +171,9 @@ static struct clk_lookup lookups[] = {
164 CLKDEV_CON_ID("peripheral_clk", &hp_clk), 171 CLKDEV_CON_ID("peripheral_clk", &hp_clk),
165 172
166 /* MSTP */ 173 /* MSTP */
174 CLKDEV_ICK_ID("lvds.0", "rcar-du-r8a7791", &mstp_clks[MSTP726]),
175 CLKDEV_ICK_ID("du.0", "rcar-du-r8a7791", &mstp_clks[MSTP724]),
176 CLKDEV_ICK_ID("du.1", "rcar-du-r8a7791", &mstp_clks[MSTP723]),
167 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), /* SCIFA0 */ 177 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), /* SCIFA0 */
168 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), /* SCIFA1 */ 178 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), /* SCIFA1 */
169 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP206]), /* SCIFB0 */ 179 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP206]), /* SCIFB0 */
@@ -180,6 +190,8 @@ static struct clk_lookup lookups[] = {
180 CLKDEV_DEV_ID("sh-sci.13", &mstp_clks[MSTP1106]), /* SCIFA4 */ 190 CLKDEV_DEV_ID("sh-sci.13", &mstp_clks[MSTP1106]), /* SCIFA4 */
181 CLKDEV_DEV_ID("sh-sci.14", &mstp_clks[MSTP1107]), /* SCIFA5 */ 191 CLKDEV_DEV_ID("sh-sci.14", &mstp_clks[MSTP1107]), /* SCIFA5 */
182 CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), 192 CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]),
193 CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]),
194 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]),
183}; 195};
184 196
185#define R8A7791_CLOCK_ROOT(e, m, p0, p1, p30, p31) \ 197#define R8A7791_CLOCK_ROOT(e, m, p0, p1, p30, p31) \
diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c
index 2aeec468cf7c..30d88689a960 100644
--- a/arch/arm/mach-shmobile/clock-sh73a0.c
+++ b/arch/arm/mach-shmobile/clock-sh73a0.c
@@ -657,13 +657,13 @@ static struct clk_lookup lookups[] = {
657 CLKDEV_DEV_ID("e6822000.i2c", &mstp_clks[MSTP323]), /* I2C1 */ 657 CLKDEV_DEV_ID("e6822000.i2c", &mstp_clks[MSTP323]), /* I2C1 */
658 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP322]), /* USB */ 658 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP322]), /* USB */
659 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), /* SDHI0 */ 659 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), /* SDHI0 */
660 CLKDEV_DEV_ID("ee100000.sdhi", &mstp_clks[MSTP314]), /* SDHI0 */ 660 CLKDEV_DEV_ID("ee100000.sd", &mstp_clks[MSTP314]), /* SDHI0 */
661 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), /* SDHI1 */ 661 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), /* SDHI1 */
662 CLKDEV_DEV_ID("ee120000.sdhi", &mstp_clks[MSTP313]), /* SDHI1 */ 662 CLKDEV_DEV_ID("ee120000.sd", &mstp_clks[MSTP313]), /* SDHI1 */
663 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP312]), /* MMCIF0 */ 663 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP312]), /* MMCIF0 */
664 CLKDEV_DEV_ID("e6bd0000.mmcif", &mstp_clks[MSTP312]), /* MMCIF0 */ 664 CLKDEV_DEV_ID("e6bd0000.mmc", &mstp_clks[MSTP312]), /* MMCIF0 */
665 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP311]), /* SDHI2 */ 665 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP311]), /* SDHI2 */
666 CLKDEV_DEV_ID("ee140000.sdhi", &mstp_clks[MSTP311]), /* SDHI2 */ 666 CLKDEV_DEV_ID("ee140000.sd", &mstp_clks[MSTP311]), /* SDHI2 */
667 CLKDEV_DEV_ID("renesas-tpu-pwm.0", &mstp_clks[MSTP304]), /* TPU0 */ 667 CLKDEV_DEV_ID("renesas-tpu-pwm.0", &mstp_clks[MSTP304]), /* TPU0 */
668 CLKDEV_DEV_ID("renesas-tpu-pwm.1", &mstp_clks[MSTP303]), /* TPU1 */ 668 CLKDEV_DEV_ID("renesas-tpu-pwm.1", &mstp_clks[MSTP303]), /* TPU1 */
669 CLKDEV_DEV_ID("renesas-tpu-pwm.2", &mstp_clks[MSTP302]), /* TPU2 */ 669 CLKDEV_DEV_ID("renesas-tpu-pwm.2", &mstp_clks[MSTP302]), /* TPU2 */
diff --git a/arch/arm/mach-shmobile/include/mach/emev2.h b/arch/arm/mach-shmobile/include/mach/emev2.h
index c2eb7568d9be..fcb142a14e07 100644
--- a/arch/arm/mach-shmobile/include/mach/emev2.h
+++ b/arch/arm/mach-shmobile/include/mach/emev2.h
@@ -3,12 +3,7 @@
3 3
4extern void emev2_map_io(void); 4extern void emev2_map_io(void);
5extern void emev2_init_delay(void); 5extern void emev2_init_delay(void);
6extern void emev2_add_standard_devices(void);
7extern void emev2_clock_init(void); 6extern void emev2_clock_init(void);
8
9#define EMEV2_GPIO_BASE 200
10#define EMEV2_GPIO_IRQ(n) (EMEV2_GPIO_BASE + (n))
11
12extern struct smp_operations emev2_smp_ops; 7extern struct smp_operations emev2_smp_ops;
13 8
14#endif /* __ASM_EMEV2_H__ */ 9#endif /* __ASM_EMEV2_H__ */
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h
index 441886c9714b..b497f932d04f 100644
--- a/arch/arm/mach-shmobile/include/mach/r8a7778.h
+++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h
@@ -27,6 +27,24 @@ enum {
27 HPBDMA_SLAVE_DUMMY, 27 HPBDMA_SLAVE_DUMMY,
28 HPBDMA_SLAVE_SDHI0_TX, 28 HPBDMA_SLAVE_SDHI0_TX,
29 HPBDMA_SLAVE_SDHI0_RX, 29 HPBDMA_SLAVE_SDHI0_RX,
30 HPBDMA_SLAVE_HPBIF0_TX,
31 HPBDMA_SLAVE_HPBIF0_RX,
32 HPBDMA_SLAVE_HPBIF1_TX,
33 HPBDMA_SLAVE_HPBIF1_RX,
34 HPBDMA_SLAVE_HPBIF2_TX,
35 HPBDMA_SLAVE_HPBIF2_RX,
36 HPBDMA_SLAVE_HPBIF3_TX,
37 HPBDMA_SLAVE_HPBIF3_RX,
38 HPBDMA_SLAVE_HPBIF4_TX,
39 HPBDMA_SLAVE_HPBIF4_RX,
40 HPBDMA_SLAVE_HPBIF5_TX,
41 HPBDMA_SLAVE_HPBIF5_RX,
42 HPBDMA_SLAVE_HPBIF6_TX,
43 HPBDMA_SLAVE_HPBIF6_RX,
44 HPBDMA_SLAVE_HPBIF7_TX,
45 HPBDMA_SLAVE_HPBIF7_RX,
46 HPBDMA_SLAVE_HPBIF8_TX,
47 HPBDMA_SLAVE_HPBIF8_RX,
30}; 48};
31 49
32extern void r8a7778_add_standard_devices(void); 50extern void r8a7778_add_standard_devices(void);
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7791.h b/arch/arm/mach-shmobile/include/mach/r8a7791.h
index 051ead3c286e..200fa699f730 100644
--- a/arch/arm/mach-shmobile/include/mach/r8a7791.h
+++ b/arch/arm/mach-shmobile/include/mach/r8a7791.h
@@ -4,6 +4,7 @@
4void r8a7791_add_standard_devices(void); 4void r8a7791_add_standard_devices(void);
5void r8a7791_add_dt_devices(void); 5void r8a7791_add_dt_devices(void);
6void r8a7791_clock_init(void); 6void r8a7791_clock_init(void);
7void r8a7791_pinmux_init(void);
7void r8a7791_init_early(void); 8void r8a7791_init_early(void);
8extern struct smp_operations r8a7791_smp_ops; 9extern struct smp_operations r8a7791_smp_ops;
9 10
diff --git a/arch/arm/mach-shmobile/setup-emev2.c b/arch/arm/mach-shmobile/setup-emev2.c
index 3ad531caf4f0..c8f2a1a69a52 100644
--- a/arch/arm/mach-shmobile/setup-emev2.c
+++ b/arch/arm/mach-shmobile/setup-emev2.c
@@ -16,24 +16,15 @@
16 * along with this program; if not, write to the Free Software 16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */ 18 */
19#include <linux/clk-provider.h>
19#include <linux/kernel.h> 20#include <linux/kernel.h>
20#include <linux/init.h> 21#include <linux/init.h>
21#include <linux/interrupt.h>
22#include <linux/irq.h>
23#include <linux/platform_device.h>
24#include <linux/platform_data/gpio-em.h>
25#include <linux/of_platform.h> 22#include <linux/of_platform.h>
26#include <linux/delay.h>
27#include <linux/input.h>
28#include <linux/io.h>
29#include <linux/irqchip/arm-gic.h>
30#include <mach/common.h> 23#include <mach/common.h>
31#include <mach/emev2.h> 24#include <mach/emev2.h>
32#include <mach/irqs.h>
33#include <asm/mach-types.h> 25#include <asm/mach-types.h>
34#include <asm/mach/arch.h> 26#include <asm/mach/arch.h>
35#include <asm/mach/map.h> 27#include <asm/mach/map.h>
36#include <asm/mach/time.h>
37 28
38static struct map_desc emev2_io_desc[] __initdata = { 29static struct map_desc emev2_io_desc[] __initdata = {
39#ifdef CONFIG_SMP 30#ifdef CONFIG_SMP
@@ -52,150 +43,20 @@ void __init emev2_map_io(void)
52 iotable_init(emev2_io_desc, ARRAY_SIZE(emev2_io_desc)); 43 iotable_init(emev2_io_desc, ARRAY_SIZE(emev2_io_desc));
53} 44}
54 45
55/* UART */
56static struct resource uart0_resources[] = {
57 DEFINE_RES_MEM(0xe1020000, 0x38),
58 DEFINE_RES_IRQ(40),
59};
60
61static struct resource uart1_resources[] = {
62 DEFINE_RES_MEM(0xe1030000, 0x38),
63 DEFINE_RES_IRQ(41),
64};
65
66static struct resource uart2_resources[] = {
67 DEFINE_RES_MEM(0xe1040000, 0x38),
68 DEFINE_RES_IRQ(42),
69};
70
71static struct resource uart3_resources[] = {
72 DEFINE_RES_MEM(0xe1050000, 0x38),
73 DEFINE_RES_IRQ(43),
74};
75
76#define emev2_register_uart(idx) \
77 platform_device_register_simple("serial8250-em", idx, \
78 uart##idx##_resources, \
79 ARRAY_SIZE(uart##idx##_resources))
80
81/* STI */
82static struct resource sti_resources[] = {
83 DEFINE_RES_MEM(0xe0180000, 0x54),
84 DEFINE_RES_IRQ(157),
85};
86
87#define emev2_register_sti() \
88 platform_device_register_simple("em_sti", 0, \
89 sti_resources, \
90 ARRAY_SIZE(sti_resources))
91
92/* GIO */
93static struct gpio_em_config gio0_config = {
94 .gpio_base = 0,
95 .irq_base = EMEV2_GPIO_IRQ(0),
96 .number_of_pins = 32,
97};
98
99static struct resource gio0_resources[] = {
100 DEFINE_RES_MEM(0xe0050000, 0x2c),
101 DEFINE_RES_MEM(0xe0050040, 0x20),
102 DEFINE_RES_IRQ(99),
103 DEFINE_RES_IRQ(100),
104};
105
106static struct gpio_em_config gio1_config = {
107 .gpio_base = 32,
108 .irq_base = EMEV2_GPIO_IRQ(32),
109 .number_of_pins = 32,
110};
111
112static struct resource gio1_resources[] = {
113 DEFINE_RES_MEM(0xe0050080, 0x2c),
114 DEFINE_RES_MEM(0xe00500c0, 0x20),
115 DEFINE_RES_IRQ(101),
116 DEFINE_RES_IRQ(102),
117};
118
119static struct gpio_em_config gio2_config = {
120 .gpio_base = 64,
121 .irq_base = EMEV2_GPIO_IRQ(64),
122 .number_of_pins = 32,
123};
124
125static struct resource gio2_resources[] = {
126 DEFINE_RES_MEM(0xe0050100, 0x2c),
127 DEFINE_RES_MEM(0xe0050140, 0x20),
128 DEFINE_RES_IRQ(103),
129 DEFINE_RES_IRQ(104),
130};
131
132static struct gpio_em_config gio3_config = {
133 .gpio_base = 96,
134 .irq_base = EMEV2_GPIO_IRQ(96),
135 .number_of_pins = 32,
136};
137
138static struct resource gio3_resources[] = {
139 DEFINE_RES_MEM(0xe0050180, 0x2c),
140 DEFINE_RES_MEM(0xe00501c0, 0x20),
141 DEFINE_RES_IRQ(105),
142 DEFINE_RES_IRQ(106),
143};
144
145static struct gpio_em_config gio4_config = {
146 .gpio_base = 128,
147 .irq_base = EMEV2_GPIO_IRQ(128),
148 .number_of_pins = 31,
149};
150
151static struct resource gio4_resources[] = {
152 DEFINE_RES_MEM(0xe0050200, 0x2c),
153 DEFINE_RES_MEM(0xe0050240, 0x20),
154 DEFINE_RES_IRQ(107),
155 DEFINE_RES_IRQ(108),
156};
157
158#define emev2_register_gio(idx) \
159 platform_device_register_resndata(&platform_bus, "em_gio", \
160 idx, gio##idx##_resources, \
161 ARRAY_SIZE(gio##idx##_resources), \
162 &gio##idx##_config, \
163 sizeof(struct gpio_em_config))
164
165static struct resource pmu_resources[] = {
166 DEFINE_RES_IRQ(152),
167 DEFINE_RES_IRQ(153),
168};
169
170#define emev2_register_pmu() \
171 platform_device_register_simple("arm-pmu", -1, \
172 pmu_resources, \
173 ARRAY_SIZE(pmu_resources))
174
175void __init emev2_add_standard_devices(void)
176{
177 if (!IS_ENABLED(CONFIG_COMMON_CLK))
178 emev2_clock_init();
179
180 emev2_register_uart(0);
181 emev2_register_uart(1);
182 emev2_register_uart(2);
183 emev2_register_uart(3);
184 emev2_register_sti();
185 emev2_register_gio(0);
186 emev2_register_gio(1);
187 emev2_register_gio(2);
188 emev2_register_gio(3);
189 emev2_register_gio(4);
190 emev2_register_pmu();
191}
192
193void __init emev2_init_delay(void) 46void __init emev2_init_delay(void)
194{ 47{
195 shmobile_setup_delay(533, 1, 3); /* Cortex-A9 @ 533MHz */ 48 shmobile_setup_delay(533, 1, 3); /* Cortex-A9 @ 533MHz */
196} 49}
197 50
198#ifdef CONFIG_USE_OF 51static void __init emev2_add_standard_devices_dt(void)
52{
53#ifdef CONFIG_COMMON_CLK
54 of_clk_init(NULL);
55#else
56 emev2_clock_init();
57#endif
58 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
59}
199 60
200static const char *emev2_boards_compat_dt[] __initdata = { 61static const char *emev2_boards_compat_dt[] __initdata = {
201 "renesas,emev2", 62 "renesas,emev2",
@@ -206,7 +67,7 @@ DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)")
206 .smp = smp_ops(emev2_smp_ops), 67 .smp = smp_ops(emev2_smp_ops),
207 .map_io = emev2_map_io, 68 .map_io = emev2_map_io,
208 .init_early = emev2_init_delay, 69 .init_early = emev2_init_delay,
70 .init_machine = emev2_add_standard_devices_dt,
71 .init_late = shmobile_init_late,
209 .dt_compat = emev2_boards_compat_dt, 72 .dt_compat = emev2_boards_compat_dt,
210MACHINE_END 73MACHINE_END
211
212#endif /* CONFIG_USE_OF */
diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c
index d4eb509a1c87..55f0b9c7c482 100644
--- a/arch/arm/mach-shmobile/setup-r7s72100.c
+++ b/arch/arm/mach-shmobile/setup-r7s72100.c
@@ -22,6 +22,7 @@
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/of_platform.h> 23#include <linux/of_platform.h>
24#include <linux/serial_sci.h> 24#include <linux/serial_sci.h>
25#include <linux/sh_timer.h>
25#include <mach/common.h> 26#include <mach/common.h>
26#include <mach/irqs.h> 27#include <mach/irqs.h>
27#include <mach/r7s72100.h> 28#include <mach/r7s72100.h>
@@ -58,6 +59,26 @@ static inline void r7s72100_register_scif(int idx)
58 sizeof(struct plat_sci_port)); 59 sizeof(struct plat_sci_port));
59} 60}
60 61
62
63static struct sh_timer_config mtu2_0_platform_data __initdata = {
64 .name = "MTU2_0",
65 .timer_bit = 0,
66 .channel_offset = -0x80,
67 .clockevent_rating = 200,
68};
69
70static struct resource mtu2_0_resources[] __initdata = {
71 DEFINE_RES_MEM(0xfcff0300, 0x27),
72 DEFINE_RES_IRQ(gic_iid(139)), /* MTU2 TGI0A */
73};
74
75#define r7s72100_register_mtu2(idx) \
76 platform_device_register_resndata(&platform_bus, "sh_mtu2", \
77 idx, mtu2_##idx##_resources, \
78 ARRAY_SIZE(mtu2_##idx##_resources), \
79 &mtu2_##idx##_platform_data, \
80 sizeof(struct sh_timer_config))
81
61void __init r7s72100_add_dt_devices(void) 82void __init r7s72100_add_dt_devices(void)
62{ 83{
63 r7s72100_register_scif(SCIF0); 84 r7s72100_register_scif(SCIF0);
@@ -68,6 +89,7 @@ void __init r7s72100_add_dt_devices(void)
68 r7s72100_register_scif(SCIF5); 89 r7s72100_register_scif(SCIF5);
69 r7s72100_register_scif(SCIF6); 90 r7s72100_register_scif(SCIF6);
70 r7s72100_register_scif(SCIF7); 91 r7s72100_register_scif(SCIF7);
92 r7s72100_register_mtu2(0);
71} 93}
72 94
73void __init r7s72100_init_early(void) 95void __init r7s72100_init_early(void)
diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c
index b0f2749071be..cc94b64c2ef5 100644
--- a/arch/arm/mach-shmobile/setup-r8a73a4.c
+++ b/arch/arm/mach-shmobile/setup-r8a73a4.c
@@ -275,7 +275,7 @@ static const struct sh_dmae_pdata dma_pdata = {
275 275
276static struct resource dma_resources[] = { 276static struct resource dma_resources[] = {
277 DEFINE_RES_MEM(0xe6700020, 0x89e0), 277 DEFINE_RES_MEM(0xe6700020, 0x89e0),
278 DEFINE_RES_IRQ_NAMED(gic_spi(220), "error_irq"), 278 DEFINE_RES_IRQ(gic_spi(220)),
279 { 279 {
280 /* IRQ for channels 0-19 */ 280 /* IRQ for channels 0-19 */
281 .start = gic_spi(200), 281 .start = gic_spi(200),
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
index 03fcc5974ef9..81701cfb6cc6 100644
--- a/arch/arm/mach-shmobile/setup-r8a7778.c
+++ b/arch/arm/mach-shmobile/setup-r8a7778.c
@@ -319,6 +319,29 @@ void __init r8a7778_add_dt_devices(void)
319#define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */ 319#define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */
320#define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */ 320#define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */
321 321
322#define HPBDMA_HPBIF(_id) \
323{ \
324 .id = HPBDMA_SLAVE_HPBIF## _id ##_TX, \
325 .addr = 0xffda0000 + (_id * 0x1000), \
326 .dcr = HPB_DMAE_DCR_CT | \
327 HPB_DMAE_DCR_DIP | \
328 HPB_DMAE_DCR_SPDS_32BIT | \
329 HPB_DMAE_DCR_DMDL | \
330 HPB_DMAE_DCR_DPDS_32BIT, \
331 .port = 0x1111, \
332 .dma_ch = (28 + _id), \
333}, { \
334 .id = HPBDMA_SLAVE_HPBIF## _id ##_RX, \
335 .addr = 0xffda0000 + (_id * 0x1000), \
336 .dcr = HPB_DMAE_DCR_CT | \
337 HPB_DMAE_DCR_DIP | \
338 HPB_DMAE_DCR_SMDL | \
339 HPB_DMAE_DCR_SPDS_32BIT | \
340 HPB_DMAE_DCR_DPDS_32BIT, \
341 .port = 0x1111, \
342 .dma_ch = (28 + _id), \
343}
344
322static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { 345static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = {
323 { 346 {
324 .id = HPBDMA_SLAVE_SDHI0_TX, 347 .id = HPBDMA_SLAVE_SDHI0_TX,
@@ -349,11 +372,39 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = {
349 .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE, 372 .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE,
350 .dma_ch = 22, 373 .dma_ch = 22,
351 }, 374 },
375
376 HPBDMA_HPBIF(0),
377 HPBDMA_HPBIF(1),
378 HPBDMA_HPBIF(2),
379 HPBDMA_HPBIF(3),
380 HPBDMA_HPBIF(4),
381 HPBDMA_HPBIF(5),
382 HPBDMA_HPBIF(6),
383 HPBDMA_HPBIF(7),
384 HPBDMA_HPBIF(8),
352}; 385};
353 386
354static const struct hpb_dmae_channel hpb_dmae_channels[] = { 387static const struct hpb_dmae_channel hpb_dmae_channels[] = {
355 HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ 388 HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */
356 HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ 389 HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */
390 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_TX), /* ch. 28 */
391 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_RX), /* ch. 28 */
392 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_TX), /* ch. 29 */
393 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_RX), /* ch. 29 */
394 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_TX), /* ch. 30 */
395 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_RX), /* ch. 30 */
396 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_TX), /* ch. 31 */
397 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_RX), /* ch. 31 */
398 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_TX), /* ch. 32 */
399 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_RX), /* ch. 32 */
400 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_TX), /* ch. 33 */
401 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_RX), /* ch. 33 */
402 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_TX), /* ch. 34 */
403 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_RX), /* ch. 34 */
404 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_TX), /* ch. 35 */
405 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_RX), /* ch. 35 */
406 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_TX), /* ch. 36 */
407 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_RX), /* ch. 36 */
357}; 408};
358 409
359static struct hpb_dmae_pdata dma_platform_data __initdata = { 410static struct hpb_dmae_pdata dma_platform_data __initdata = {
diff --git a/arch/arm/mach-shmobile/setup-r8a7791.c b/arch/arm/mach-shmobile/setup-r8a7791.c
index d9393d61ee27..cddca99b434f 100644
--- a/arch/arm/mach-shmobile/setup-r8a7791.c
+++ b/arch/arm/mach-shmobile/setup-r8a7791.c
@@ -22,6 +22,7 @@
22#include <linux/irq.h> 22#include <linux/irq.h>
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/of_platform.h> 24#include <linux/of_platform.h>
25#include <linux/platform_data/gpio-rcar.h>
25#include <linux/platform_data/irq-renesas-irqc.h> 26#include <linux/platform_data/irq-renesas-irqc.h>
26#include <linux/serial_sci.h> 27#include <linux/serial_sci.h>
27#include <linux/sh_timer.h> 28#include <linux/sh_timer.h>
@@ -31,6 +32,58 @@
31#include <mach/rcar-gen2.h> 32#include <mach/rcar-gen2.h>
32#include <asm/mach/arch.h> 33#include <asm/mach/arch.h>
33 34
35static const struct resource pfc_resources[] __initconst = {
36 DEFINE_RES_MEM(0xe6060000, 0x250),
37};
38
39#define r8a7791_register_pfc() \
40 platform_device_register_simple("pfc-r8a7791", -1, pfc_resources, \
41 ARRAY_SIZE(pfc_resources))
42
43#define R8A7791_GPIO(idx, base, nr) \
44static const struct resource r8a7791_gpio##idx##_resources[] __initconst = { \
45 DEFINE_RES_MEM((base), 0x50), \
46 DEFINE_RES_IRQ(gic_spi(4 + (idx))), \
47}; \
48 \
49static const struct gpio_rcar_config \
50r8a7791_gpio##idx##_platform_data __initconst = { \
51 .gpio_base = 32 * (idx), \
52 .irq_base = 0, \
53 .number_of_pins = (nr), \
54 .pctl_name = "pfc-r8a7791", \
55 .has_both_edge_trigger = 1, \
56}; \
57
58R8A7791_GPIO(0, 0xe6050000, 32);
59R8A7791_GPIO(1, 0xe6051000, 32);
60R8A7791_GPIO(2, 0xe6052000, 32);
61R8A7791_GPIO(3, 0xe6053000, 32);
62R8A7791_GPIO(4, 0xe6054000, 32);
63R8A7791_GPIO(5, 0xe6055000, 32);
64R8A7791_GPIO(6, 0xe6055400, 32);
65R8A7791_GPIO(7, 0xe6055800, 26);
66
67#define r8a7791_register_gpio(idx) \
68 platform_device_register_resndata(&platform_bus, "gpio_rcar", idx, \
69 r8a7791_gpio##idx##_resources, \
70 ARRAY_SIZE(r8a7791_gpio##idx##_resources), \
71 &r8a7791_gpio##idx##_platform_data, \
72 sizeof(r8a7791_gpio##idx##_platform_data))
73
74void __init r8a7791_pinmux_init(void)
75{
76 r8a7791_register_pfc();
77 r8a7791_register_gpio(0);
78 r8a7791_register_gpio(1);
79 r8a7791_register_gpio(2);
80 r8a7791_register_gpio(3);
81 r8a7791_register_gpio(4);
82 r8a7791_register_gpio(5);
83 r8a7791_register_gpio(6);
84 r8a7791_register_gpio(7);
85}
86
34#define SCIF_COMMON(scif_type, baseaddr, irq) \ 87#define SCIF_COMMON(scif_type, baseaddr, irq) \
35 .type = scif_type, \ 88 .type = scif_type, \
36 .mapbase = baseaddr, \ 89 .mapbase = baseaddr, \
@@ -136,6 +189,17 @@ static struct resource irqc0_resources[] = {
136 &irqc##idx##_data, \ 189 &irqc##idx##_data, \
137 sizeof(struct renesas_irqc_config)) 190 sizeof(struct renesas_irqc_config))
138 191
192static const struct resource thermal_resources[] __initconst = {
193 DEFINE_RES_MEM(0xe61f0000, 0x14),
194 DEFINE_RES_MEM(0xe61f0100, 0x38),
195 DEFINE_RES_IRQ(gic_spi(69)),
196};
197
198#define r8a7791_register_thermal() \
199 platform_device_register_simple("rcar_thermal", -1, \
200 thermal_resources, \
201 ARRAY_SIZE(thermal_resources))
202
139void __init r8a7791_add_dt_devices(void) 203void __init r8a7791_add_dt_devices(void)
140{ 204{
141 r8a7791_register_scif(SCIFA0); 205 r8a7791_register_scif(SCIFA0);
@@ -160,6 +224,7 @@ void __init r8a7791_add_standard_devices(void)
160{ 224{
161 r8a7791_add_dt_devices(); 225 r8a7791_add_dt_devices();
162 r8a7791_register_irqc(0); 226 r8a7791_register_irqc(0);
227 r8a7791_register_thermal();
163} 228}
164 229
165void __init r8a7791_init_early(void) 230void __init r8a7791_init_early(void)
diff --git a/drivers/Makefile b/drivers/Makefile
index 3cc8214f9b26..8e3b8b06c0b2 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -118,7 +118,7 @@ obj-$(CONFIG_SGI_SN) += sn/
118obj-y += firmware/ 118obj-y += firmware/
119obj-$(CONFIG_CRYPTO) += crypto/ 119obj-$(CONFIG_CRYPTO) += crypto/
120obj-$(CONFIG_SUPERH) += sh/ 120obj-$(CONFIG_SUPERH) += sh/
121obj-$(CONFIG_ARCH_SHMOBILE) += sh/ 121obj-$(CONFIG_ARCH_SHMOBILE_LEGACY) += sh/
122ifndef CONFIG_ARCH_USES_GETTIMEOFFSET 122ifndef CONFIG_ARCH_USES_GETTIMEOFFSET
123obj-y += clocksource/ 123obj-y += clocksource/
124endif 124endif