diff options
author | Arnd Bergmann <arnd@arndb.de> | 2014-09-05 11:42:18 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2014-09-05 11:42:18 -0400 |
commit | 013c5b4e6611746725cbcc0c39922d36d2968d50 (patch) | |
tree | 0eba883b26683c284b604ea21f995d8b3b8e93cd /arch/arm/mach-shmobile | |
parent | 09d12ad7936df431ecbf0faf2b81c56cc4bb6392 (diff) | |
parent | ad8c3af8b75ff26c5c887f2101da653bdcd53a38 (diff) |
Merge tag 'renesas-cleanup-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc
Merge "Renesas ARM Based SoC Cleanup Updates for v3.18" from Simon Horman:
* Remove Genmai board code
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'renesas-cleanup-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: r7s72100: Remove legacy board support
ARM: shmobile: r7s72100: genmai: Remove legacy board file
ARM: shmobile: r7s72100: genmai: Remove reference board file
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r-- | arch/arm/mach-shmobile/Kconfig | 17 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/Makefile.boot | 1 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-genmai-reference.c | 35 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-genmai.c | 173 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/clock-r7s72100.c | 231 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/r7s72100.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-r7s72100.c | 2 |
8 files changed, 0 insertions, 468 deletions
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index e15dff790dbb..5814754c1240 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -43,10 +43,6 @@ config ARCH_R8A7791 | |||
43 | 43 | ||
44 | comment "Renesas ARM SoCs Board Type" | 44 | comment "Renesas ARM SoCs Board Type" |
45 | 45 | ||
46 | config MACH_GENMAI | ||
47 | bool "Genmai board" | ||
48 | depends on ARCH_R7S72100 | ||
49 | |||
50 | config MACH_KOELSCH | 46 | config MACH_KOELSCH |
51 | bool "Koelsch board" | 47 | bool "Koelsch board" |
52 | depends on ARCH_R8A7791 | 48 | depends on ARCH_R8A7791 |
@@ -149,14 +145,6 @@ config ARCH_R8A7791 | |||
149 | select SYS_SUPPORTS_SH_CMT | 145 | select SYS_SUPPORTS_SH_CMT |
150 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE | 146 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE |
151 | 147 | ||
152 | config ARCH_R7S72100 | ||
153 | bool "RZ/A1H (R7S72100)" | ||
154 | select ARCH_WANT_OPTIONAL_GPIOLIB | ||
155 | select ARM_GIC | ||
156 | select CPU_V7 | ||
157 | select SH_CLK_CPG | ||
158 | select SYS_SUPPORTS_SH_MTU2 | ||
159 | |||
160 | comment "Renesas ARM SoCs Board Type" | 148 | comment "Renesas ARM SoCs Board Type" |
161 | 149 | ||
162 | config MACH_APE6EVM | 150 | config MACH_APE6EVM |
@@ -232,11 +220,6 @@ config MACH_BOCKW_REFERENCE | |||
232 | 220 | ||
233 | This is intended to aid developers | 221 | This is intended to aid developers |
234 | 222 | ||
235 | config MACH_GENMAI | ||
236 | bool "Genmai board" | ||
237 | depends on ARCH_R7S72100 | ||
238 | select USE_OF | ||
239 | |||
240 | config MACH_MARZEN | 223 | config MACH_MARZEN |
241 | bool "MARZEN board" | 224 | bool "MARZEN board" |
242 | depends on ARCH_R8A7779 | 225 | depends on ARCH_R8A7779 |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index a6a1dc0335ae..2eb2c5b02118 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
@@ -29,7 +29,6 @@ obj-$(CONFIG_ARCH_R8A7778) += clock-r8a7778.o | |||
29 | obj-$(CONFIG_ARCH_R8A7779) += clock-r8a7779.o | 29 | obj-$(CONFIG_ARCH_R8A7779) += clock-r8a7779.o |
30 | obj-$(CONFIG_ARCH_R8A7790) += clock-r8a7790.o | 30 | obj-$(CONFIG_ARCH_R8A7790) += clock-r8a7790.o |
31 | obj-$(CONFIG_ARCH_R8A7791) += clock-r8a7791.o | 31 | obj-$(CONFIG_ARCH_R8A7791) += clock-r8a7791.o |
32 | obj-$(CONFIG_ARCH_R7S72100) += clock-r7s72100.o | ||
33 | endif | 32 | endif |
34 | 33 | ||
35 | # CPU reset vector handling objects | 34 | # CPU reset vector handling objects |
@@ -61,7 +60,6 @@ obj-$(CONFIG_ARCH_SH7372) += entry-intc.o | |||
61 | 60 | ||
62 | # Board objects | 61 | # Board objects |
63 | ifdef CONFIG_ARCH_SHMOBILE_MULTI | 62 | ifdef CONFIG_ARCH_SHMOBILE_MULTI |
64 | obj-$(CONFIG_MACH_GENMAI) += board-genmai-reference.o | ||
65 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch-reference.o | 63 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch-reference.o |
66 | obj-$(CONFIG_MACH_LAGER) += board-lager-reference.o | 64 | obj-$(CONFIG_MACH_LAGER) += board-lager-reference.o |
67 | obj-$(CONFIG_MACH_MARZEN) += board-marzen-reference.o | 65 | obj-$(CONFIG_MACH_MARZEN) += board-marzen-reference.o |
@@ -71,7 +69,6 @@ obj-$(CONFIG_MACH_APE6EVM_REFERENCE) += board-ape6evm-reference.o | |||
71 | obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o | 69 | obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o |
72 | obj-$(CONFIG_MACH_BOCKW) += board-bockw.o | 70 | obj-$(CONFIG_MACH_BOCKW) += board-bockw.o |
73 | obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o | 71 | obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o |
74 | obj-$(CONFIG_MACH_GENMAI) += board-genmai.o | ||
75 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o | 72 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o |
76 | obj-$(CONFIG_MACH_LAGER) += board-lager.o | 73 | obj-$(CONFIG_MACH_LAGER) += board-lager.o |
77 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o | 74 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o |
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot index ebf97d4bcfd8..a23e1555cca7 100644 --- a/arch/arm/mach-shmobile/Makefile.boot +++ b/arch/arm/mach-shmobile/Makefile.boot | |||
@@ -6,7 +6,6 @@ loadaddr-$(CONFIG_MACH_ARMADILLO800EVA) += 0x40008000 | |||
6 | loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000 | 6 | loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000 |
7 | loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 | 7 | loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 |
8 | loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 | 8 | loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 |
9 | loadaddr-$(CONFIG_MACH_GENMAI) += 0x08008000 | ||
10 | loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000 | 9 | loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000 |
11 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 | 10 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 |
12 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 | 11 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 |
diff --git a/arch/arm/mach-shmobile/board-genmai-reference.c b/arch/arm/mach-shmobile/board-genmai-reference.c deleted file mode 100644 index bc52677986c3..000000000000 --- a/arch/arm/mach-shmobile/board-genmai-reference.c +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | /* | ||
2 | * Genmai board support | ||
3 | * | ||
4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
5 | * Copyright (C) 2013 Magnus Damm | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; version 2 of the License. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
19 | */ | ||
20 | |||
21 | #include <linux/kernel.h> | ||
22 | |||
23 | #include <asm/mach/arch.h> | ||
24 | |||
25 | #include "common.h" | ||
26 | |||
27 | static const char * const genmai_boards_compat_dt[] __initconst = { | ||
28 | "renesas,genmai", | ||
29 | NULL, | ||
30 | }; | ||
31 | |||
32 | DT_MACHINE_START(GENMAI_DT, "genmai") | ||
33 | .init_early = shmobile_init_delay, | ||
34 | .dt_compat = genmai_boards_compat_dt, | ||
35 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/board-genmai.c b/arch/arm/mach-shmobile/board-genmai.c deleted file mode 100644 index ba545fc09649..000000000000 --- a/arch/arm/mach-shmobile/board-genmai.c +++ /dev/null | |||
@@ -1,173 +0,0 @@ | |||
1 | /* | ||
2 | * Genmai board support | ||
3 | * | ||
4 | * Copyright (C) 2013-2014 Renesas Solutions Corp. | ||
5 | * Copyright (C) 2013 Magnus Damm | ||
6 | * Copyright (C) 2014 Cogent Embedded, Inc. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; version 2 of the License. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | */ | ||
21 | |||
22 | #include <linux/kernel.h> | ||
23 | #include <linux/platform_device.h> | ||
24 | #include <linux/serial_sci.h> | ||
25 | #include <linux/sh_eth.h> | ||
26 | #include <linux/sh_timer.h> | ||
27 | #include <linux/spi/rspi.h> | ||
28 | #include <linux/spi/spi.h> | ||
29 | |||
30 | #include <asm/mach-types.h> | ||
31 | #include <asm/mach/arch.h> | ||
32 | |||
33 | #include "common.h" | ||
34 | #include "irqs.h" | ||
35 | #include "r7s72100.h" | ||
36 | |||
37 | /* Ether */ | ||
38 | static const struct sh_eth_plat_data ether_pdata __initconst = { | ||
39 | .phy = 0x00, /* PD60610 */ | ||
40 | .edmac_endian = EDMAC_LITTLE_ENDIAN, | ||
41 | .phy_interface = PHY_INTERFACE_MODE_MII, | ||
42 | .no_ether_link = 1 | ||
43 | }; | ||
44 | |||
45 | static const struct resource ether_resources[] __initconst = { | ||
46 | DEFINE_RES_MEM(0xe8203000, 0x800), | ||
47 | DEFINE_RES_MEM(0xe8204800, 0x200), | ||
48 | DEFINE_RES_IRQ(gic_iid(359)), | ||
49 | }; | ||
50 | |||
51 | static const struct platform_device_info ether_info __initconst = { | ||
52 | .name = "r7s72100-ether", | ||
53 | .id = -1, | ||
54 | .res = ether_resources, | ||
55 | .num_res = ARRAY_SIZE(ether_resources), | ||
56 | .data = ðer_pdata, | ||
57 | .size_data = sizeof(ether_pdata), | ||
58 | .dma_mask = DMA_BIT_MASK(32), | ||
59 | }; | ||
60 | |||
61 | /* RSPI */ | ||
62 | #define RSPI_RESOURCE(idx, baseaddr, irq) \ | ||
63 | static const struct resource rspi##idx##_resources[] __initconst = { \ | ||
64 | DEFINE_RES_MEM(baseaddr, 0x24), \ | ||
65 | DEFINE_RES_IRQ_NAMED(irq, "error"), \ | ||
66 | DEFINE_RES_IRQ_NAMED(irq + 1, "rx"), \ | ||
67 | DEFINE_RES_IRQ_NAMED(irq + 2, "tx"), \ | ||
68 | } | ||
69 | |||
70 | RSPI_RESOURCE(0, 0xe800c800, gic_iid(270)); | ||
71 | RSPI_RESOURCE(1, 0xe800d000, gic_iid(273)); | ||
72 | RSPI_RESOURCE(2, 0xe800d800, gic_iid(276)); | ||
73 | RSPI_RESOURCE(3, 0xe800e000, gic_iid(279)); | ||
74 | RSPI_RESOURCE(4, 0xe800e800, gic_iid(282)); | ||
75 | |||
76 | static const struct rspi_plat_data rspi_pdata __initconst = { | ||
77 | .num_chipselect = 1, | ||
78 | }; | ||
79 | |||
80 | #define r7s72100_register_rspi(idx) \ | ||
81 | platform_device_register_resndata(NULL, "rspi-rz", idx, \ | ||
82 | rspi##idx##_resources, \ | ||
83 | ARRAY_SIZE(rspi##idx##_resources), \ | ||
84 | &rspi_pdata, sizeof(rspi_pdata)) | ||
85 | |||
86 | static const struct spi_board_info spi_info[] __initconst = { | ||
87 | { | ||
88 | .modalias = "wm8978", | ||
89 | .max_speed_hz = 5000000, | ||
90 | .bus_num = 4, | ||
91 | .chip_select = 0, | ||
92 | }, | ||
93 | }; | ||
94 | |||
95 | /* SCIF */ | ||
96 | #define R7S72100_SCIF(index, baseaddr, irq) \ | ||
97 | static const struct plat_sci_port scif##index##_platform_data = { \ | ||
98 | .type = PORT_SCIF, \ | ||
99 | .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, \ | ||
100 | .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, \ | ||
101 | .scscr = SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE | \ | ||
102 | SCSCR_REIE, \ | ||
103 | }; \ | ||
104 | \ | ||
105 | static struct resource scif##index##_resources[] = { \ | ||
106 | DEFINE_RES_MEM(baseaddr, 0x100), \ | ||
107 | DEFINE_RES_IRQ(irq + 1), \ | ||
108 | DEFINE_RES_IRQ(irq + 2), \ | ||
109 | DEFINE_RES_IRQ(irq + 3), \ | ||
110 | DEFINE_RES_IRQ(irq), \ | ||
111 | } \ | ||
112 | |||
113 | R7S72100_SCIF(0, 0xe8007000, gic_iid(221)); | ||
114 | R7S72100_SCIF(1, 0xe8007800, gic_iid(225)); | ||
115 | R7S72100_SCIF(2, 0xe8008000, gic_iid(229)); | ||
116 | R7S72100_SCIF(3, 0xe8008800, gic_iid(233)); | ||
117 | R7S72100_SCIF(4, 0xe8009000, gic_iid(237)); | ||
118 | R7S72100_SCIF(5, 0xe8009800, gic_iid(241)); | ||
119 | R7S72100_SCIF(6, 0xe800a000, gic_iid(245)); | ||
120 | R7S72100_SCIF(7, 0xe800a800, gic_iid(249)); | ||
121 | |||
122 | #define r7s72100_register_scif(index) \ | ||
123 | platform_device_register_resndata(NULL, "sh-sci", index, \ | ||
124 | scif##index##_resources, \ | ||
125 | ARRAY_SIZE(scif##index##_resources), \ | ||
126 | &scif##index##_platform_data, \ | ||
127 | sizeof(scif##index##_platform_data)) | ||
128 | |||
129 | static struct resource mtu2_resources[] __initdata = { | ||
130 | DEFINE_RES_MEM(0xfcff0000, 0x400), | ||
131 | DEFINE_RES_IRQ_NAMED(gic_iid(139), "tgi0a"), | ||
132 | }; | ||
133 | |||
134 | #define r7s72100_register_mtu2() \ | ||
135 | platform_device_register_resndata(&platform_bus, "sh-mtu2", \ | ||
136 | -1, mtu2_resources, \ | ||
137 | ARRAY_SIZE(mtu2_resources), \ | ||
138 | NULL, 0) | ||
139 | |||
140 | static void __init genmai_add_standard_devices(void) | ||
141 | { | ||
142 | r7s72100_clock_init(); | ||
143 | r7s72100_register_mtu2(); | ||
144 | |||
145 | platform_device_register_full(ðer_info); | ||
146 | |||
147 | r7s72100_register_rspi(0); | ||
148 | r7s72100_register_rspi(1); | ||
149 | r7s72100_register_rspi(2); | ||
150 | r7s72100_register_rspi(3); | ||
151 | r7s72100_register_rspi(4); | ||
152 | spi_register_board_info(spi_info, ARRAY_SIZE(spi_info)); | ||
153 | |||
154 | r7s72100_register_scif(0); | ||
155 | r7s72100_register_scif(1); | ||
156 | r7s72100_register_scif(2); | ||
157 | r7s72100_register_scif(3); | ||
158 | r7s72100_register_scif(4); | ||
159 | r7s72100_register_scif(5); | ||
160 | r7s72100_register_scif(6); | ||
161 | r7s72100_register_scif(7); | ||
162 | } | ||
163 | |||
164 | static const char * const genmai_boards_compat_dt[] __initconst = { | ||
165 | "renesas,genmai", | ||
166 | NULL, | ||
167 | }; | ||
168 | |||
169 | DT_MACHINE_START(GENMAI_DT, "genmai") | ||
170 | .init_early = shmobile_init_delay, | ||
171 | .init_machine = genmai_add_standard_devices, | ||
172 | .dt_compat = genmai_boards_compat_dt, | ||
173 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/clock-r7s72100.c b/arch/arm/mach-shmobile/clock-r7s72100.c deleted file mode 100644 index 3eb2ec401e0c..000000000000 --- a/arch/arm/mach-shmobile/clock-r7s72100.c +++ /dev/null | |||
@@ -1,231 +0,0 @@ | |||
1 | /* | ||
2 | * r7a72100 clock framework support | ||
3 | * | ||
4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
5 | * Copyright (C) 2012 Phil Edworthy | ||
6 | * Copyright (C) 2011 Magnus Damm | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; version 2 of the License. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | */ | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/kernel.h> | ||
19 | #include <linux/io.h> | ||
20 | #include <linux/sh_clk.h> | ||
21 | #include <linux/clkdev.h> | ||
22 | |||
23 | #include "common.h" | ||
24 | #include "r7s72100.h" | ||
25 | |||
26 | /* Frequency Control Registers */ | ||
27 | #define FRQCR 0xfcfe0010 | ||
28 | #define FRQCR2 0xfcfe0014 | ||
29 | /* Standby Control Registers */ | ||
30 | #define STBCR3 0xfcfe0420 | ||
31 | #define STBCR4 0xfcfe0424 | ||
32 | #define STBCR7 0xfcfe0430 | ||
33 | #define STBCR9 0xfcfe0438 | ||
34 | #define STBCR10 0xfcfe043c | ||
35 | |||
36 | #define PLL_RATE 30 | ||
37 | |||
38 | static struct clk_mapping cpg_mapping = { | ||
39 | .phys = 0xfcfe0000, | ||
40 | .len = 0x1000, | ||
41 | }; | ||
42 | |||
43 | /* Fixed 32 KHz root clock for RTC */ | ||
44 | static struct clk r_clk = { | ||
45 | .rate = 32768, | ||
46 | }; | ||
47 | |||
48 | /* | ||
49 | * Default rate for the root input clock, reset this with clk_set_rate() | ||
50 | * from the platform code. | ||
51 | */ | ||
52 | static struct clk extal_clk = { | ||
53 | .rate = 13330000, | ||
54 | .mapping = &cpg_mapping, | ||
55 | }; | ||
56 | |||
57 | static unsigned long pll_recalc(struct clk *clk) | ||
58 | { | ||
59 | return clk->parent->rate * PLL_RATE; | ||
60 | } | ||
61 | |||
62 | static struct sh_clk_ops pll_clk_ops = { | ||
63 | .recalc = pll_recalc, | ||
64 | }; | ||
65 | |||
66 | static struct clk pll_clk = { | ||
67 | .ops = &pll_clk_ops, | ||
68 | .parent = &extal_clk, | ||
69 | .flags = CLK_ENABLE_ON_INIT, | ||
70 | }; | ||
71 | |||
72 | static unsigned long bus_recalc(struct clk *clk) | ||
73 | { | ||
74 | return clk->parent->rate / 3; | ||
75 | } | ||
76 | |||
77 | static struct sh_clk_ops bus_clk_ops = { | ||
78 | .recalc = bus_recalc, | ||
79 | }; | ||
80 | |||
81 | static struct clk bus_clk = { | ||
82 | .ops = &bus_clk_ops, | ||
83 | .parent = &pll_clk, | ||
84 | .flags = CLK_ENABLE_ON_INIT, | ||
85 | }; | ||
86 | |||
87 | static unsigned long peripheral0_recalc(struct clk *clk) | ||
88 | { | ||
89 | return clk->parent->rate / 12; | ||
90 | } | ||
91 | |||
92 | static struct sh_clk_ops peripheral0_clk_ops = { | ||
93 | .recalc = peripheral0_recalc, | ||
94 | }; | ||
95 | |||
96 | static struct clk peripheral0_clk = { | ||
97 | .ops = &peripheral0_clk_ops, | ||
98 | .parent = &pll_clk, | ||
99 | .flags = CLK_ENABLE_ON_INIT, | ||
100 | }; | ||
101 | |||
102 | static unsigned long peripheral1_recalc(struct clk *clk) | ||
103 | { | ||
104 | return clk->parent->rate / 6; | ||
105 | } | ||
106 | |||
107 | static struct sh_clk_ops peripheral1_clk_ops = { | ||
108 | .recalc = peripheral1_recalc, | ||
109 | }; | ||
110 | |||
111 | static struct clk peripheral1_clk = { | ||
112 | .ops = &peripheral1_clk_ops, | ||
113 | .parent = &pll_clk, | ||
114 | .flags = CLK_ENABLE_ON_INIT, | ||
115 | }; | ||
116 | |||
117 | struct clk *main_clks[] = { | ||
118 | &r_clk, | ||
119 | &extal_clk, | ||
120 | &pll_clk, | ||
121 | &bus_clk, | ||
122 | &peripheral0_clk, | ||
123 | &peripheral1_clk, | ||
124 | }; | ||
125 | |||
126 | static int div2[] = { 1, 3, 0, 3 }; /* 1, 2/3, reserve, 1/3 */ | ||
127 | static int multipliers[] = { 1, 2, 1, 1 }; | ||
128 | |||
129 | static struct clk_div_mult_table div4_div_mult_table = { | ||
130 | .divisors = div2, | ||
131 | .nr_divisors = ARRAY_SIZE(div2), | ||
132 | .multipliers = multipliers, | ||
133 | .nr_multipliers = ARRAY_SIZE(multipliers), | ||
134 | }; | ||
135 | |||
136 | static struct clk_div4_table div4_table = { | ||
137 | .div_mult_table = &div4_div_mult_table, | ||
138 | }; | ||
139 | |||
140 | enum { DIV4_I, | ||
141 | DIV4_NR }; | ||
142 | |||
143 | #define DIV4(_reg, _bit, _mask, _flags) \ | ||
144 | SH_CLK_DIV4(&pll_clk, _reg, _bit, _mask, _flags) | ||
145 | |||
146 | /* The mask field specifies the div2 entries that are valid */ | ||
147 | struct clk div4_clks[DIV4_NR] = { | ||
148 | [DIV4_I] = DIV4(FRQCR, 8, 0xB, CLK_ENABLE_REG_16BIT | ||
149 | | CLK_ENABLE_ON_INIT), | ||
150 | }; | ||
151 | |||
152 | enum { | ||
153 | MSTP107, MSTP106, MSTP105, MSTP104, MSTP103, | ||
154 | MSTP97, MSTP96, MSTP95, MSTP94, | ||
155 | MSTP74, | ||
156 | MSTP47, MSTP46, MSTP45, MSTP44, MSTP43, MSTP42, MSTP41, MSTP40, | ||
157 | MSTP33, MSTP_NR | ||
158 | }; | ||
159 | |||
160 | static struct clk mstp_clks[MSTP_NR] = { | ||
161 | [MSTP107] = SH_CLK_MSTP8(&peripheral1_clk, STBCR10, 7, 0), /* RSPI0 */ | ||
162 | [MSTP106] = SH_CLK_MSTP8(&peripheral1_clk, STBCR10, 6, 0), /* RSPI1 */ | ||
163 | [MSTP105] = SH_CLK_MSTP8(&peripheral1_clk, STBCR10, 5, 0), /* RSPI2 */ | ||
164 | [MSTP104] = SH_CLK_MSTP8(&peripheral1_clk, STBCR10, 4, 0), /* RSPI3 */ | ||
165 | [MSTP103] = SH_CLK_MSTP8(&peripheral1_clk, STBCR10, 3, 0), /* RSPI4 */ | ||
166 | [MSTP97] = SH_CLK_MSTP8(&peripheral0_clk, STBCR9, 7, 0), /* RIIC0 */ | ||
167 | [MSTP96] = SH_CLK_MSTP8(&peripheral0_clk, STBCR9, 6, 0), /* RIIC1 */ | ||
168 | [MSTP95] = SH_CLK_MSTP8(&peripheral0_clk, STBCR9, 5, 0), /* RIIC2 */ | ||
169 | [MSTP94] = SH_CLK_MSTP8(&peripheral0_clk, STBCR9, 4, 0), /* RIIC3 */ | ||
170 | [MSTP74] = SH_CLK_MSTP8(&peripheral1_clk, STBCR7, 4, 0), /* Ether */ | ||
171 | [MSTP47] = SH_CLK_MSTP8(&peripheral1_clk, STBCR4, 7, 0), /* SCIF0 */ | ||
172 | [MSTP46] = SH_CLK_MSTP8(&peripheral1_clk, STBCR4, 6, 0), /* SCIF1 */ | ||
173 | [MSTP45] = SH_CLK_MSTP8(&peripheral1_clk, STBCR4, 5, 0), /* SCIF2 */ | ||
174 | [MSTP44] = SH_CLK_MSTP8(&peripheral1_clk, STBCR4, 4, 0), /* SCIF3 */ | ||
175 | [MSTP43] = SH_CLK_MSTP8(&peripheral1_clk, STBCR4, 3, 0), /* SCIF4 */ | ||
176 | [MSTP42] = SH_CLK_MSTP8(&peripheral1_clk, STBCR4, 2, 0), /* SCIF5 */ | ||
177 | [MSTP41] = SH_CLK_MSTP8(&peripheral1_clk, STBCR4, 1, 0), /* SCIF6 */ | ||
178 | [MSTP40] = SH_CLK_MSTP8(&peripheral1_clk, STBCR4, 0, 0), /* SCIF7 */ | ||
179 | [MSTP33] = SH_CLK_MSTP8(&peripheral0_clk, STBCR3, 3, 0), /* MTU2 */ | ||
180 | }; | ||
181 | |||
182 | static struct clk_lookup lookups[] = { | ||
183 | /* main clocks */ | ||
184 | CLKDEV_CON_ID("rclk", &r_clk), | ||
185 | CLKDEV_CON_ID("extal", &extal_clk), | ||
186 | CLKDEV_CON_ID("pll_clk", &pll_clk), | ||
187 | CLKDEV_CON_ID("peripheral_clk", &peripheral1_clk), | ||
188 | |||
189 | /* DIV4 clocks */ | ||
190 | CLKDEV_CON_ID("cpu_clk", &div4_clks[DIV4_I]), | ||
191 | |||
192 | /* MSTP clocks */ | ||
193 | CLKDEV_DEV_ID("rspi-rz.0", &mstp_clks[MSTP107]), | ||
194 | CLKDEV_DEV_ID("rspi-rz.1", &mstp_clks[MSTP106]), | ||
195 | CLKDEV_DEV_ID("rspi-rz.2", &mstp_clks[MSTP105]), | ||
196 | CLKDEV_DEV_ID("rspi-rz.3", &mstp_clks[MSTP104]), | ||
197 | CLKDEV_DEV_ID("rspi-rz.4", &mstp_clks[MSTP103]), | ||
198 | CLKDEV_DEV_ID("r7s72100-ether", &mstp_clks[MSTP74]), | ||
199 | |||
200 | /* ICK */ | ||
201 | CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP47]), | ||
202 | CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP46]), | ||
203 | CLKDEV_ICK_ID("sci_fck", "sh-sci.2", &mstp_clks[MSTP45]), | ||
204 | CLKDEV_ICK_ID("sci_fck", "sh-sci.3", &mstp_clks[MSTP44]), | ||
205 | CLKDEV_ICK_ID("sci_fck", "sh-sci.4", &mstp_clks[MSTP43]), | ||
206 | CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]), | ||
207 | CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]), | ||
208 | CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]), | ||
209 | CLKDEV_ICK_ID("fck", "sh-mtu2", &mstp_clks[MSTP33]), | ||
210 | }; | ||
211 | |||
212 | void __init r7s72100_clock_init(void) | ||
213 | { | ||
214 | int k, ret = 0; | ||
215 | |||
216 | for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) | ||
217 | ret = clk_register(main_clks[k]); | ||
218 | |||
219 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); | ||
220 | |||
221 | if (!ret) | ||
222 | ret = sh_clk_div4_register(div4_clks, DIV4_NR, &div4_table); | ||
223 | |||
224 | if (!ret) | ||
225 | ret = sh_clk_mstp_register(mstp_clks, MSTP_NR); | ||
226 | |||
227 | if (!ret) | ||
228 | shmobile_clk_init(); | ||
229 | else | ||
230 | panic("failed to setup rza1 clocks\n"); | ||
231 | } | ||
diff --git a/arch/arm/mach-shmobile/r7s72100.h b/arch/arm/mach-shmobile/r7s72100.h deleted file mode 100644 index 321ae4e10128..000000000000 --- a/arch/arm/mach-shmobile/r7s72100.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ASM_R7S72100_H__ | ||
2 | #define __ASM_R7S72100_H__ | ||
3 | |||
4 | void r7s72100_clock_init(void); | ||
5 | |||
6 | #endif /* __ASM_R7S72100_H__ */ | ||
diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c index 46a93f73ee4a..4122104359f9 100644 --- a/arch/arm/mach-shmobile/setup-r7s72100.c +++ b/arch/arm/mach-shmobile/setup-r7s72100.c | |||
@@ -24,7 +24,6 @@ | |||
24 | 24 | ||
25 | #include "common.h" | 25 | #include "common.h" |
26 | 26 | ||
27 | #ifdef CONFIG_USE_OF | ||
28 | static const char *r7s72100_boards_compat_dt[] __initdata = { | 27 | static const char *r7s72100_boards_compat_dt[] __initdata = { |
29 | "renesas,r7s72100", | 28 | "renesas,r7s72100", |
30 | NULL, | 29 | NULL, |
@@ -35,4 +34,3 @@ DT_MACHINE_START(R7S72100_DT, "Generic R7S72100 (Flattened Device Tree)") | |||
35 | .init_late = shmobile_init_late, | 34 | .init_late = shmobile_init_late, |
36 | .dt_compat = r7s72100_boards_compat_dt, | 35 | .dt_compat = r7s72100_boards_compat_dt, |
37 | MACHINE_END | 36 | MACHINE_END |
38 | #endif /* CONFIG_USE_OF */ | ||