diff options
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/board-flash.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-generic.c | 26 | ||||
-rw-r--r-- | arch/arm/mach-omap2/common.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/gpmc-nand.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-omap2/id.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/irq.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap-mpuss-lowpower.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_device.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pdata-quirks.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm44xx.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-omap2/powerdomain.c | 79 | ||||
-rw-r--r-- | arch/arm/mach-omap2/powerdomain.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/powerdomains54xx_data.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-omap2/powerdomains7xx_data.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm_common.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/soc.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-omap2/timer.c | 6 |
20 files changed, 170 insertions, 45 deletions
diff --git a/arch/arm/mach-omap2/board-flash.c b/arch/arm/mach-omap2/board-flash.c index e87f2a83d6bf..2d245c2e641c 100644 --- a/arch/arm/mach-omap2/board-flash.c +++ b/arch/arm/mach-omap2/board-flash.c | |||
@@ -142,7 +142,7 @@ __init board_nand_init(struct mtd_partition *nand_parts, u8 nr_parts, u8 cs, | |||
142 | board_nand_data.nr_parts = nr_parts; | 142 | board_nand_data.nr_parts = nr_parts; |
143 | board_nand_data.devsize = nand_type; | 143 | board_nand_data.devsize = nand_type; |
144 | 144 | ||
145 | board_nand_data.ecc_opt = OMAP_ECC_HAM1_CODE_HW; | 145 | board_nand_data.ecc_opt = OMAP_ECC_HAM1_CODE_SW; |
146 | gpmc_nand_init(&board_nand_data, gpmc_t); | 146 | gpmc_nand_init(&board_nand_data, gpmc_t); |
147 | } | 147 | } |
148 | #endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */ | 148 | #endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */ |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 9480997ba616..0b311d51425f 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -27,7 +27,7 @@ | |||
27 | #define gic_of_init NULL | 27 | #define gic_of_init NULL |
28 | #endif | 28 | #endif |
29 | 29 | ||
30 | static struct of_device_id omap_dt_match_table[] __initdata = { | 30 | static const struct of_device_id omap_dt_match_table[] __initconst = { |
31 | { .compatible = "simple-bus", }, | 31 | { .compatible = "simple-bus", }, |
32 | { .compatible = "ti,omap-infra", }, | 32 | { .compatible = "ti,omap-infra", }, |
33 | { } | 33 | { } |
@@ -43,7 +43,7 @@ static void __init omap_generic_init(void) | |||
43 | } | 43 | } |
44 | 44 | ||
45 | #ifdef CONFIG_SOC_OMAP2420 | 45 | #ifdef CONFIG_SOC_OMAP2420 |
46 | static const char *omap242x_boards_compat[] __initconst = { | 46 | static const char *const omap242x_boards_compat[] __initconst = { |
47 | "ti,omap2420", | 47 | "ti,omap2420", |
48 | NULL, | 48 | NULL, |
49 | }; | 49 | }; |
@@ -62,7 +62,7 @@ MACHINE_END | |||
62 | #endif | 62 | #endif |
63 | 63 | ||
64 | #ifdef CONFIG_SOC_OMAP2430 | 64 | #ifdef CONFIG_SOC_OMAP2430 |
65 | static const char *omap243x_boards_compat[] __initconst = { | 65 | static const char *const omap243x_boards_compat[] __initconst = { |
66 | "ti,omap2430", | 66 | "ti,omap2430", |
67 | NULL, | 67 | NULL, |
68 | }; | 68 | }; |
@@ -81,7 +81,7 @@ MACHINE_END | |||
81 | #endif | 81 | #endif |
82 | 82 | ||
83 | #ifdef CONFIG_ARCH_OMAP3 | 83 | #ifdef CONFIG_ARCH_OMAP3 |
84 | static const char *omap3_boards_compat[] __initconst = { | 84 | static const char *const omap3_boards_compat[] __initconst = { |
85 | "ti,omap3430", | 85 | "ti,omap3430", |
86 | "ti,omap3", | 86 | "ti,omap3", |
87 | NULL, | 87 | NULL, |
@@ -100,7 +100,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)") | |||
100 | .restart = omap3xxx_restart, | 100 | .restart = omap3xxx_restart, |
101 | MACHINE_END | 101 | MACHINE_END |
102 | 102 | ||
103 | static const char *omap36xx_boards_compat[] __initconst = { | 103 | static const char *const omap36xx_boards_compat[] __initconst = { |
104 | "ti,omap36xx", | 104 | "ti,omap36xx", |
105 | NULL, | 105 | NULL, |
106 | }; | 106 | }; |
@@ -118,7 +118,7 @@ DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)") | |||
118 | .restart = omap3xxx_restart, | 118 | .restart = omap3xxx_restart, |
119 | MACHINE_END | 119 | MACHINE_END |
120 | 120 | ||
121 | static const char *omap3_gp_boards_compat[] __initconst = { | 121 | static const char *const omap3_gp_boards_compat[] __initconst = { |
122 | "ti,omap3-beagle", | 122 | "ti,omap3-beagle", |
123 | "timll,omap3-devkit8000", | 123 | "timll,omap3-devkit8000", |
124 | NULL, | 124 | NULL, |
@@ -137,7 +137,7 @@ DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)") | |||
137 | .restart = omap3xxx_restart, | 137 | .restart = omap3xxx_restart, |
138 | MACHINE_END | 138 | MACHINE_END |
139 | 139 | ||
140 | static const char *am3517_boards_compat[] __initconst = { | 140 | static const char *const am3517_boards_compat[] __initconst = { |
141 | "ti,am3517", | 141 | "ti,am3517", |
142 | NULL, | 142 | NULL, |
143 | }; | 143 | }; |
@@ -157,7 +157,7 @@ MACHINE_END | |||
157 | #endif | 157 | #endif |
158 | 158 | ||
159 | #ifdef CONFIG_SOC_AM33XX | 159 | #ifdef CONFIG_SOC_AM33XX |
160 | static const char *am33xx_boards_compat[] __initconst = { | 160 | static const char *const am33xx_boards_compat[] __initconst = { |
161 | "ti,am33xx", | 161 | "ti,am33xx", |
162 | NULL, | 162 | NULL, |
163 | }; | 163 | }; |
@@ -177,7 +177,7 @@ MACHINE_END | |||
177 | #endif | 177 | #endif |
178 | 178 | ||
179 | #ifdef CONFIG_ARCH_OMAP4 | 179 | #ifdef CONFIG_ARCH_OMAP4 |
180 | static const char *omap4_boards_compat[] __initconst = { | 180 | static const char *const omap4_boards_compat[] __initconst = { |
181 | "ti,omap4460", | 181 | "ti,omap4460", |
182 | "ti,omap4430", | 182 | "ti,omap4430", |
183 | "ti,omap4", | 183 | "ti,omap4", |
@@ -199,7 +199,7 @@ MACHINE_END | |||
199 | #endif | 199 | #endif |
200 | 200 | ||
201 | #ifdef CONFIG_SOC_OMAP5 | 201 | #ifdef CONFIG_SOC_OMAP5 |
202 | static const char *omap5_boards_compat[] __initconst = { | 202 | static const char *const omap5_boards_compat[] __initconst = { |
203 | "ti,omap5432", | 203 | "ti,omap5432", |
204 | "ti,omap5430", | 204 | "ti,omap5430", |
205 | "ti,omap5", | 205 | "ti,omap5", |
@@ -221,7 +221,7 @@ MACHINE_END | |||
221 | #endif | 221 | #endif |
222 | 222 | ||
223 | #ifdef CONFIG_SOC_AM43XX | 223 | #ifdef CONFIG_SOC_AM43XX |
224 | static const char *am43_boards_compat[] __initconst = { | 224 | static const char *const am43_boards_compat[] __initconst = { |
225 | "ti,am4372", | 225 | "ti,am4372", |
226 | "ti,am43", | 226 | "ti,am43", |
227 | NULL, | 227 | NULL, |
@@ -240,7 +240,7 @@ MACHINE_END | |||
240 | #endif | 240 | #endif |
241 | 241 | ||
242 | #ifdef CONFIG_SOC_DRA7XX | 242 | #ifdef CONFIG_SOC_DRA7XX |
243 | static const char *dra74x_boards_compat[] __initconst = { | 243 | static const char *const dra74x_boards_compat[] __initconst = { |
244 | "ti,dra742", | 244 | "ti,dra742", |
245 | "ti,dra7", | 245 | "ti,dra7", |
246 | NULL, | 246 | NULL, |
@@ -259,7 +259,7 @@ DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)") | |||
259 | .restart = omap44xx_restart, | 259 | .restart = omap44xx_restart, |
260 | MACHINE_END | 260 | MACHINE_END |
261 | 261 | ||
262 | static const char *dra72x_boards_compat[] __initconst = { | 262 | static const char *const dra72x_boards_compat[] __initconst = { |
263 | "ti,dra722", | 263 | "ti,dra722", |
264 | NULL, | 264 | NULL, |
265 | }; | 265 | }; |
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index dc571f1d3b8a..79664411e794 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h | |||
@@ -307,7 +307,7 @@ static inline void omap4_cpu_resume(void) | |||
307 | 307 | ||
308 | #endif | 308 | #endif |
309 | 309 | ||
310 | void pdata_quirks_init(struct of_device_id *); | 310 | void pdata_quirks_init(const struct of_device_id *); |
311 | void omap_auxdata_legacy_init(struct device *dev); | 311 | void omap_auxdata_legacy_init(struct device *dev); |
312 | void omap_pcs_legacy_init(int irq, void (*rearm)(void)); | 312 | void omap_pcs_legacy_init(int irq, void (*rearm)(void)); |
313 | 313 | ||
diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c index 8897ad7035fd..cb7764314f17 100644 --- a/arch/arm/mach-omap2/gpmc-nand.c +++ b/arch/arm/mach-omap2/gpmc-nand.c | |||
@@ -49,7 +49,8 @@ static bool gpmc_hwecc_bch_capable(enum omap_ecc ecc_opt) | |||
49 | return 0; | 49 | return 0; |
50 | 50 | ||
51 | /* legacy platforms support only HAM1 (1-bit Hamming) ECC scheme */ | 51 | /* legacy platforms support only HAM1 (1-bit Hamming) ECC scheme */ |
52 | if (ecc_opt == OMAP_ECC_HAM1_CODE_HW) | 52 | if (ecc_opt == OMAP_ECC_HAM1_CODE_HW || |
53 | ecc_opt == OMAP_ECC_HAM1_CODE_SW) | ||
53 | return 1; | 54 | return 1; |
54 | else | 55 | else |
55 | return 0; | 56 | return 0; |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 8bc13380f0a0..4b26e5efa7f7 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -1244,7 +1244,7 @@ int gpmc_cs_program_settings(int cs, struct gpmc_settings *p) | |||
1244 | } | 1244 | } |
1245 | 1245 | ||
1246 | #ifdef CONFIG_OF | 1246 | #ifdef CONFIG_OF |
1247 | static struct of_device_id gpmc_dt_ids[] = { | 1247 | static const struct of_device_id gpmc_dt_ids[] = { |
1248 | { .compatible = "ti,omap2420-gpmc" }, | 1248 | { .compatible = "ti,omap2420-gpmc" }, |
1249 | { .compatible = "ti,omap2430-gpmc" }, | 1249 | { .compatible = "ti,omap2430-gpmc" }, |
1250 | { .compatible = "ti,omap3430-gpmc" }, /* omap3430 & omap3630 */ | 1250 | { .compatible = "ti,omap3430-gpmc" }, /* omap3430 & omap3630 */ |
@@ -1403,8 +1403,11 @@ static int gpmc_probe_nand_child(struct platform_device *pdev, | |||
1403 | pr_err("%s: ti,nand-ecc-opt not found\n", __func__); | 1403 | pr_err("%s: ti,nand-ecc-opt not found\n", __func__); |
1404 | return -ENODEV; | 1404 | return -ENODEV; |
1405 | } | 1405 | } |
1406 | if (!strcmp(s, "ham1") || !strcmp(s, "sw") || | 1406 | |
1407 | !strcmp(s, "hw") || !strcmp(s, "hw-romcode")) | 1407 | if (!strcmp(s, "sw")) |
1408 | gpmc_nand_data->ecc_opt = OMAP_ECC_HAM1_CODE_SW; | ||
1409 | else if (!strcmp(s, "ham1") || | ||
1410 | !strcmp(s, "hw") || !strcmp(s, "hw-romcode")) | ||
1408 | gpmc_nand_data->ecc_opt = | 1411 | gpmc_nand_data->ecc_opt = |
1409 | OMAP_ECC_HAM1_CODE_HW; | 1412 | OMAP_ECC_HAM1_CODE_HW; |
1410 | else if (!strcmp(s, "bch4")) | 1413 | else if (!strcmp(s, "bch4")) |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index d42022f2a71e..53841dea80ea 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -663,7 +663,7 @@ void __init dra7xxx_check_revision(void) | |||
663 | 663 | ||
664 | default: | 664 | default: |
665 | /* Unknown default to latest silicon rev as default*/ | 665 | /* Unknown default to latest silicon rev as default*/ |
666 | pr_warn("%s: unknown idcode=0x%08x (hawkeye=0x%08x,rev=0x%d)\n", | 666 | pr_warn("%s: unknown idcode=0x%08x (hawkeye=0x%08x,rev=0x%x)\n", |
667 | __func__, idcode, hawkeye, rev); | 667 | __func__, idcode, hawkeye, rev); |
668 | omap_revision = DRA752_REV_ES1_1; | 668 | omap_revision = DRA752_REV_ES1_1; |
669 | } | 669 | } |
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 35b8590c322e..604a976abf14 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c | |||
@@ -289,7 +289,7 @@ int __init intc_of_init(struct device_node *node, | |||
289 | return 0; | 289 | return 0; |
290 | } | 290 | } |
291 | 291 | ||
292 | static struct of_device_id irq_match[] __initdata = { | 292 | static const struct of_device_id irq_match[] __initconst = { |
293 | { .compatible = "ti,omap2-intc", .data = intc_of_init, }, | 293 | { .compatible = "ti,omap2-intc", .data = intc_of_init, }, |
294 | { } | 294 | { } |
295 | }; | 295 | }; |
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c index 4001325f90fb..e9cdacfe1923 100644 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c | |||
@@ -298,6 +298,10 @@ int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state) | |||
298 | if (omap_rev() == OMAP4430_REV_ES1_0) | 298 | if (omap_rev() == OMAP4430_REV_ES1_0) |
299 | return -ENXIO; | 299 | return -ENXIO; |
300 | 300 | ||
301 | /* Use the achievable power state for the domain */ | ||
302 | power_state = pwrdm_get_valid_lp_state(pm_info->pwrdm, | ||
303 | false, power_state); | ||
304 | |||
301 | if (power_state == PWRDM_POWER_OFF) | 305 | if (power_state == PWRDM_POWER_OFF) |
302 | cpu_state = 1; | 306 | cpu_state = 1; |
303 | 307 | ||
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c index 01ef59def44b..d22c30d3ccfa 100644 --- a/arch/arm/mach-omap2/omap_device.c +++ b/arch/arm/mach-omap2/omap_device.c | |||
@@ -56,7 +56,7 @@ static void _add_clkdev(struct omap_device *od, const char *clk_alias, | |||
56 | 56 | ||
57 | r = clk_get_sys(dev_name(&od->pdev->dev), clk_alias); | 57 | r = clk_get_sys(dev_name(&od->pdev->dev), clk_alias); |
58 | if (!IS_ERR(r)) { | 58 | if (!IS_ERR(r)) { |
59 | dev_warn(&od->pdev->dev, | 59 | dev_dbg(&od->pdev->dev, |
60 | "alias %s already exists\n", clk_alias); | 60 | "alias %s already exists\n", clk_alias); |
61 | clk_put(r); | 61 | clk_put(r); |
62 | return; | 62 | return; |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 6c074f37cdd2..8fd87a3055bf 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -2185,6 +2185,8 @@ static int _enable(struct omap_hwmod *oh) | |||
2185 | oh->mux->pads_dynamic))) { | 2185 | oh->mux->pads_dynamic))) { |
2186 | omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED); | 2186 | omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED); |
2187 | _reconfigure_io_chain(); | 2187 | _reconfigure_io_chain(); |
2188 | } else if (oh->flags & HWMOD_FORCE_MSTANDBY) { | ||
2189 | _reconfigure_io_chain(); | ||
2188 | } | 2190 | } |
2189 | 2191 | ||
2190 | _add_initiator_dep(oh, mpu_oh); | 2192 | _add_initiator_dep(oh, mpu_oh); |
@@ -2291,6 +2293,8 @@ static int _idle(struct omap_hwmod *oh) | |||
2291 | if (oh->mux && oh->mux->pads_dynamic) { | 2293 | if (oh->mux && oh->mux->pads_dynamic) { |
2292 | omap_hwmod_mux(oh->mux, _HWMOD_STATE_IDLE); | 2294 | omap_hwmod_mux(oh->mux, _HWMOD_STATE_IDLE); |
2293 | _reconfigure_io_chain(); | 2295 | _reconfigure_io_chain(); |
2296 | } else if (oh->flags & HWMOD_FORCE_MSTANDBY) { | ||
2297 | _reconfigure_io_chain(); | ||
2294 | } | 2298 | } |
2295 | 2299 | ||
2296 | oh->_state = _HWMOD_STATE_IDLE; | 2300 | oh->_state = _HWMOD_STATE_IDLE; |
@@ -3345,6 +3349,9 @@ int __init omap_hwmod_register_links(struct omap_hwmod_ocp_if **ois) | |||
3345 | if (!ois) | 3349 | if (!ois) |
3346 | return 0; | 3350 | return 0; |
3347 | 3351 | ||
3352 | if (ois[0] == NULL) /* Empty list */ | ||
3353 | return 0; | ||
3354 | |||
3348 | if (!linkspace) { | 3355 | if (!linkspace) { |
3349 | if (_alloc_linkspace(ois)) { | 3356 | if (_alloc_linkspace(ois)) { |
3350 | pr_err("omap_hwmod: could not allocate link space\n"); | 3357 | pr_err("omap_hwmod: could not allocate link space\n"); |
diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c index 2757abf87fbc..5684f112654b 100644 --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include "i2c.h" | 35 | #include "i2c.h" |
36 | #include "mmc.h" | 36 | #include "mmc.h" |
37 | #include "wd_timer.h" | 37 | #include "wd_timer.h" |
38 | #include "soc.h" | ||
38 | 39 | ||
39 | /* Base offset for all DRA7XX interrupts external to MPUSS */ | 40 | /* Base offset for all DRA7XX interrupts external to MPUSS */ |
40 | #define DRA7XX_IRQ_GIC_START 32 | 41 | #define DRA7XX_IRQ_GIC_START 32 |
@@ -3261,7 +3262,6 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { | |||
3261 | &dra7xx_l4_per3__usb_otg_ss1, | 3262 | &dra7xx_l4_per3__usb_otg_ss1, |
3262 | &dra7xx_l4_per3__usb_otg_ss2, | 3263 | &dra7xx_l4_per3__usb_otg_ss2, |
3263 | &dra7xx_l4_per3__usb_otg_ss3, | 3264 | &dra7xx_l4_per3__usb_otg_ss3, |
3264 | &dra7xx_l4_per3__usb_otg_ss4, | ||
3265 | &dra7xx_l3_main_1__vcp1, | 3265 | &dra7xx_l3_main_1__vcp1, |
3266 | &dra7xx_l4_per2__vcp1, | 3266 | &dra7xx_l4_per2__vcp1, |
3267 | &dra7xx_l3_main_1__vcp2, | 3267 | &dra7xx_l3_main_1__vcp2, |
@@ -3270,8 +3270,26 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { | |||
3270 | NULL, | 3270 | NULL, |
3271 | }; | 3271 | }; |
3272 | 3272 | ||
3273 | static struct omap_hwmod_ocp_if *dra74x_hwmod_ocp_ifs[] __initdata = { | ||
3274 | &dra7xx_l4_per3__usb_otg_ss4, | ||
3275 | NULL, | ||
3276 | }; | ||
3277 | |||
3278 | static struct omap_hwmod_ocp_if *dra72x_hwmod_ocp_ifs[] __initdata = { | ||
3279 | NULL, | ||
3280 | }; | ||
3281 | |||
3273 | int __init dra7xx_hwmod_init(void) | 3282 | int __init dra7xx_hwmod_init(void) |
3274 | { | 3283 | { |
3284 | int ret; | ||
3285 | |||
3275 | omap_hwmod_init(); | 3286 | omap_hwmod_init(); |
3276 | return omap_hwmod_register_links(dra7xx_hwmod_ocp_ifs); | 3287 | ret = omap_hwmod_register_links(dra7xx_hwmod_ocp_ifs); |
3288 | |||
3289 | if (!ret && soc_is_dra74x()) | ||
3290 | return omap_hwmod_register_links(dra74x_hwmod_ocp_ifs); | ||
3291 | else if (!ret && soc_is_dra72x()) | ||
3292 | return omap_hwmod_register_links(dra72x_hwmod_ocp_ifs); | ||
3293 | |||
3294 | return ret; | ||
3277 | } | 3295 | } |
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 90c88d498485..05a8c8b07449 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c | |||
@@ -405,7 +405,7 @@ static void pdata_quirks_check(struct pdata_init *quirks) | |||
405 | } | 405 | } |
406 | } | 406 | } |
407 | 407 | ||
408 | void __init pdata_quirks_init(struct of_device_id *omap_dt_match_table) | 408 | void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) |
409 | { | 409 | { |
410 | omap_sdrc_init(NULL, NULL); | 410 | omap_sdrc_init(NULL, NULL); |
411 | pdata_quirks_check(auxdata_quirks); | 411 | pdata_quirks_check(auxdata_quirks); |
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index 0dda6cf8b855..0bfce38a744a 100644 --- a/arch/arm/mach-omap2/pm44xx.c +++ b/arch/arm/mach-omap2/pm44xx.c | |||
@@ -29,6 +29,7 @@ u16 pm44xx_errata; | |||
29 | struct power_state { | 29 | struct power_state { |
30 | struct powerdomain *pwrdm; | 30 | struct powerdomain *pwrdm; |
31 | u32 next_state; | 31 | u32 next_state; |
32 | u32 next_logic_state; | ||
32 | #ifdef CONFIG_SUSPEND | 33 | #ifdef CONFIG_SUSPEND |
33 | u32 saved_state; | 34 | u32 saved_state; |
34 | u32 saved_logic_state; | 35 | u32 saved_logic_state; |
@@ -54,7 +55,7 @@ static int omap4_pm_suspend(void) | |||
54 | /* Set targeted power domain states by suspend */ | 55 | /* Set targeted power domain states by suspend */ |
55 | list_for_each_entry(pwrst, &pwrst_list, node) { | 56 | list_for_each_entry(pwrst, &pwrst_list, node) { |
56 | omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); | 57 | omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); |
57 | pwrdm_set_logic_retst(pwrst->pwrdm, PWRDM_POWER_OFF); | 58 | pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->next_logic_state); |
58 | } | 59 | } |
59 | 60 | ||
60 | /* | 61 | /* |
@@ -120,7 +121,11 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused) | |||
120 | return -ENOMEM; | 121 | return -ENOMEM; |
121 | 122 | ||
122 | pwrst->pwrdm = pwrdm; | 123 | pwrst->pwrdm = pwrdm; |
123 | pwrst->next_state = PWRDM_POWER_RET; | 124 | pwrst->next_state = pwrdm_get_valid_lp_state(pwrdm, false, |
125 | PWRDM_POWER_RET); | ||
126 | pwrst->next_logic_state = pwrdm_get_valid_lp_state(pwrdm, true, | ||
127 | PWRDM_POWER_OFF); | ||
128 | |||
124 | list_add(&pwrst->node, &pwrst_list); | 129 | list_add(&pwrst->node, &pwrst_list); |
125 | 130 | ||
126 | return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); | 131 | return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); |
diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c index faebd5f076af..7fb033eca0a5 100644 --- a/arch/arm/mach-omap2/powerdomain.c +++ b/arch/arm/mach-omap2/powerdomain.c | |||
@@ -546,7 +546,8 @@ int pwrdm_for_each_clkdm(struct powerdomain *pwrdm, | |||
546 | return -EINVAL; | 546 | return -EINVAL; |
547 | 547 | ||
548 | for (i = 0; i < PWRDM_MAX_CLKDMS && !ret; i++) | 548 | for (i = 0; i < PWRDM_MAX_CLKDMS && !ret; i++) |
549 | ret = (*fn)(pwrdm, pwrdm->pwrdm_clkdms[i]); | 549 | if (pwrdm->pwrdm_clkdms[i]) |
550 | ret = (*fn)(pwrdm, pwrdm->pwrdm_clkdms[i]); | ||
550 | 551 | ||
551 | return ret; | 552 | return ret; |
552 | } | 553 | } |
@@ -1080,6 +1081,82 @@ int pwrdm_post_transition(struct powerdomain *pwrdm) | |||
1080 | } | 1081 | } |
1081 | 1082 | ||
1082 | /** | 1083 | /** |
1084 | * pwrdm_get_valid_lp_state() - Find best match deep power state | ||
1085 | * @pwrdm: power domain for which we want to find best match | ||
1086 | * @is_logic_state: Are we looking for logic state match here? Should | ||
1087 | * be one of PWRDM_xxx macro values | ||
1088 | * @req_state: requested power state | ||
1089 | * | ||
1090 | * Returns: closest match for requested power state. default fallback | ||
1091 | * is RET for logic state and ON for power state. | ||
1092 | * | ||
1093 | * This does a search from the power domain data looking for the | ||
1094 | * closest valid power domain state that the hardware can achieve. | ||
1095 | * PRCM definitions for PWRSTCTRL allows us to program whatever | ||
1096 | * configuration we'd like, and PRCM will actually attempt such | ||
1097 | * a transition, however if the powerdomain does not actually support it, | ||
1098 | * we endup with a hung system. The valid power domain states are already | ||
1099 | * available in our powerdomain data files. So this function tries to do | ||
1100 | * the following: | ||
1101 | * a) find if we have an exact match to the request - no issues. | ||
1102 | * b) else find if a deeper power state is possible. | ||
1103 | * c) failing which, it tries to find closest higher power state for the | ||
1104 | * request. | ||
1105 | */ | ||
1106 | u8 pwrdm_get_valid_lp_state(struct powerdomain *pwrdm, | ||
1107 | bool is_logic_state, u8 req_state) | ||
1108 | { | ||
1109 | u8 pwrdm_states = is_logic_state ? pwrdm->pwrsts_logic_ret : | ||
1110 | pwrdm->pwrsts; | ||
1111 | /* For logic, ret is highest and others, ON is highest */ | ||
1112 | u8 default_pwrst = is_logic_state ? PWRDM_POWER_RET : PWRDM_POWER_ON; | ||
1113 | u8 new_pwrst; | ||
1114 | bool found; | ||
1115 | |||
1116 | /* If it is already supported, nothing to search */ | ||
1117 | if (pwrdm_states & BIT(req_state)) | ||
1118 | return req_state; | ||
1119 | |||
1120 | if (!req_state) | ||
1121 | goto up_search; | ||
1122 | |||
1123 | /* | ||
1124 | * So, we dont have a exact match | ||
1125 | * Can we get a deeper power state match? | ||
1126 | */ | ||
1127 | new_pwrst = req_state - 1; | ||
1128 | found = true; | ||
1129 | while (!(pwrdm_states & BIT(new_pwrst))) { | ||
1130 | /* No match even at OFF? Not available */ | ||
1131 | if (new_pwrst == PWRDM_POWER_OFF) { | ||
1132 | found = false; | ||
1133 | break; | ||
1134 | } | ||
1135 | new_pwrst--; | ||
1136 | } | ||
1137 | |||
1138 | if (found) | ||
1139 | goto done; | ||
1140 | |||
1141 | up_search: | ||
1142 | /* OK, no deeper ones, can we get a higher match? */ | ||
1143 | new_pwrst = req_state + 1; | ||
1144 | while (!(pwrdm_states & BIT(new_pwrst))) { | ||
1145 | if (new_pwrst > PWRDM_POWER_ON) { | ||
1146 | WARN(1, "powerdomain: %s: Fix max powerstate to ON\n", | ||
1147 | pwrdm->name); | ||
1148 | return PWRDM_POWER_ON; | ||
1149 | } | ||
1150 | |||
1151 | if (new_pwrst == default_pwrst) | ||
1152 | break; | ||
1153 | new_pwrst++; | ||
1154 | } | ||
1155 | done: | ||
1156 | return new_pwrst; | ||
1157 | } | ||
1158 | |||
1159 | /** | ||
1083 | * omap_set_pwrdm_state - change a powerdomain's current power state | 1160 | * omap_set_pwrdm_state - change a powerdomain's current power state |
1084 | * @pwrdm: struct powerdomain * to change the power state of | 1161 | * @pwrdm: struct powerdomain * to change the power state of |
1085 | * @pwrst: power state to change to | 1162 | * @pwrst: power state to change to |
diff --git a/arch/arm/mach-omap2/powerdomain.h b/arch/arm/mach-omap2/powerdomain.h index f4727117f6cc..11bd4dd7d8d6 100644 --- a/arch/arm/mach-omap2/powerdomain.h +++ b/arch/arm/mach-omap2/powerdomain.h | |||
@@ -39,6 +39,7 @@ | |||
39 | #define PWRSTS_OFF_RET (PWRSTS_OFF | PWRSTS_RET) | 39 | #define PWRSTS_OFF_RET (PWRSTS_OFF | PWRSTS_RET) |
40 | #define PWRSTS_RET_ON (PWRSTS_RET | PWRSTS_ON) | 40 | #define PWRSTS_RET_ON (PWRSTS_RET | PWRSTS_ON) |
41 | #define PWRSTS_OFF_RET_ON (PWRSTS_OFF_RET | PWRSTS_ON) | 41 | #define PWRSTS_OFF_RET_ON (PWRSTS_OFF_RET | PWRSTS_ON) |
42 | #define PWRSTS_INA_ON (PWRSTS_INACTIVE | PWRSTS_ON) | ||
42 | 43 | ||
43 | 44 | ||
44 | /* | 45 | /* |
@@ -219,6 +220,9 @@ struct voltagedomain *pwrdm_get_voltdm(struct powerdomain *pwrdm); | |||
219 | 220 | ||
220 | int pwrdm_get_mem_bank_count(struct powerdomain *pwrdm); | 221 | int pwrdm_get_mem_bank_count(struct powerdomain *pwrdm); |
221 | 222 | ||
223 | u8 pwrdm_get_valid_lp_state(struct powerdomain *pwrdm, | ||
224 | bool is_logic_state, u8 req_state); | ||
225 | |||
222 | int pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst); | 226 | int pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst); |
223 | int pwrdm_read_next_pwrst(struct powerdomain *pwrdm); | 227 | int pwrdm_read_next_pwrst(struct powerdomain *pwrdm); |
224 | int pwrdm_read_pwrst(struct powerdomain *pwrdm); | 228 | int pwrdm_read_pwrst(struct powerdomain *pwrdm); |
diff --git a/arch/arm/mach-omap2/powerdomains54xx_data.c b/arch/arm/mach-omap2/powerdomains54xx_data.c index ce1d752af991..60d7ed8ef8ca 100644 --- a/arch/arm/mach-omap2/powerdomains54xx_data.c +++ b/arch/arm/mach-omap2/powerdomains54xx_data.c | |||
@@ -35,7 +35,7 @@ static struct powerdomain core_54xx_pwrdm = { | |||
35 | .prcm_offs = OMAP54XX_PRM_CORE_INST, | 35 | .prcm_offs = OMAP54XX_PRM_CORE_INST, |
36 | .prcm_partition = OMAP54XX_PRM_PARTITION, | 36 | .prcm_partition = OMAP54XX_PRM_PARTITION, |
37 | .pwrsts = PWRSTS_RET_ON, | 37 | .pwrsts = PWRSTS_RET_ON, |
38 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 38 | .pwrsts_logic_ret = PWRSTS_RET, |
39 | .banks = 5, | 39 | .banks = 5, |
40 | .pwrsts_mem_ret = { | 40 | .pwrsts_mem_ret = { |
41 | [0] = PWRSTS_OFF_RET, /* core_nret_bank */ | 41 | [0] = PWRSTS_OFF_RET, /* core_nret_bank */ |
@@ -107,8 +107,8 @@ static struct powerdomain cpu0_54xx_pwrdm = { | |||
107 | .voltdm = { .name = "mpu" }, | 107 | .voltdm = { .name = "mpu" }, |
108 | .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C0_INST, | 108 | .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C0_INST, |
109 | .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION, | 109 | .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION, |
110 | .pwrsts = PWRSTS_OFF_RET_ON, | 110 | .pwrsts = PWRSTS_RET_ON, |
111 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 111 | .pwrsts_logic_ret = PWRSTS_RET, |
112 | .banks = 1, | 112 | .banks = 1, |
113 | .pwrsts_mem_ret = { | 113 | .pwrsts_mem_ret = { |
114 | [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ | 114 | [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ |
@@ -124,8 +124,8 @@ static struct powerdomain cpu1_54xx_pwrdm = { | |||
124 | .voltdm = { .name = "mpu" }, | 124 | .voltdm = { .name = "mpu" }, |
125 | .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C1_INST, | 125 | .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C1_INST, |
126 | .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION, | 126 | .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION, |
127 | .pwrsts = PWRSTS_OFF_RET_ON, | 127 | .pwrsts = PWRSTS_RET_ON, |
128 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 128 | .pwrsts_logic_ret = PWRSTS_RET, |
129 | .banks = 1, | 129 | .banks = 1, |
130 | .pwrsts_mem_ret = { | 130 | .pwrsts_mem_ret = { |
131 | [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ | 131 | [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ |
@@ -158,7 +158,7 @@ static struct powerdomain mpu_54xx_pwrdm = { | |||
158 | .prcm_offs = OMAP54XX_PRM_MPU_INST, | 158 | .prcm_offs = OMAP54XX_PRM_MPU_INST, |
159 | .prcm_partition = OMAP54XX_PRM_PARTITION, | 159 | .prcm_partition = OMAP54XX_PRM_PARTITION, |
160 | .pwrsts = PWRSTS_RET_ON, | 160 | .pwrsts = PWRSTS_RET_ON, |
161 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 161 | .pwrsts_logic_ret = PWRSTS_RET, |
162 | .banks = 2, | 162 | .banks = 2, |
163 | .pwrsts_mem_ret = { | 163 | .pwrsts_mem_ret = { |
164 | [0] = PWRSTS_OFF_RET, /* mpu_l2 */ | 164 | [0] = PWRSTS_OFF_RET, /* mpu_l2 */ |
diff --git a/arch/arm/mach-omap2/powerdomains7xx_data.c b/arch/arm/mach-omap2/powerdomains7xx_data.c index 48151d1cfde0..287a2037aa16 100644 --- a/arch/arm/mach-omap2/powerdomains7xx_data.c +++ b/arch/arm/mach-omap2/powerdomains7xx_data.c | |||
@@ -160,8 +160,8 @@ static struct powerdomain core_7xx_pwrdm = { | |||
160 | .name = "core_pwrdm", | 160 | .name = "core_pwrdm", |
161 | .prcm_offs = DRA7XX_PRM_CORE_INST, | 161 | .prcm_offs = DRA7XX_PRM_CORE_INST, |
162 | .prcm_partition = DRA7XX_PRM_PARTITION, | 162 | .prcm_partition = DRA7XX_PRM_PARTITION, |
163 | .pwrsts = PWRSTS_RET_ON, | 163 | .pwrsts = PWRSTS_INA_ON, |
164 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 164 | .pwrsts_logic_ret = PWRSTS_RET, |
165 | .banks = 5, | 165 | .banks = 5, |
166 | .pwrsts_mem_ret = { | 166 | .pwrsts_mem_ret = { |
167 | [0] = PWRSTS_OFF_RET, /* core_nret_bank */ | 167 | [0] = PWRSTS_OFF_RET, /* core_nret_bank */ |
@@ -193,8 +193,8 @@ static struct powerdomain cpu0_7xx_pwrdm = { | |||
193 | .name = "cpu0_pwrdm", | 193 | .name = "cpu0_pwrdm", |
194 | .prcm_offs = DRA7XX_MPU_PRCM_PRM_C0_INST, | 194 | .prcm_offs = DRA7XX_MPU_PRCM_PRM_C0_INST, |
195 | .prcm_partition = DRA7XX_MPU_PRCM_PARTITION, | 195 | .prcm_partition = DRA7XX_MPU_PRCM_PARTITION, |
196 | .pwrsts = PWRSTS_OFF_RET_ON, | 196 | .pwrsts = PWRSTS_RET_ON, |
197 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 197 | .pwrsts_logic_ret = PWRSTS_RET, |
198 | .banks = 1, | 198 | .banks = 1, |
199 | .pwrsts_mem_ret = { | 199 | .pwrsts_mem_ret = { |
200 | [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ | 200 | [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ |
@@ -209,8 +209,8 @@ static struct powerdomain cpu1_7xx_pwrdm = { | |||
209 | .name = "cpu1_pwrdm", | 209 | .name = "cpu1_pwrdm", |
210 | .prcm_offs = DRA7XX_MPU_PRCM_PRM_C1_INST, | 210 | .prcm_offs = DRA7XX_MPU_PRCM_PRM_C1_INST, |
211 | .prcm_partition = DRA7XX_MPU_PRCM_PARTITION, | 211 | .prcm_partition = DRA7XX_MPU_PRCM_PARTITION, |
212 | .pwrsts = PWRSTS_OFF_RET_ON, | 212 | .pwrsts = PWRSTS_RET_ON, |
213 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 213 | .pwrsts_logic_ret = PWRSTS_RET, |
214 | .banks = 1, | 214 | .banks = 1, |
215 | .pwrsts_mem_ret = { | 215 | .pwrsts_mem_ret = { |
216 | [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ | 216 | [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ |
@@ -243,7 +243,7 @@ static struct powerdomain mpu_7xx_pwrdm = { | |||
243 | .prcm_offs = DRA7XX_PRM_MPU_INST, | 243 | .prcm_offs = DRA7XX_PRM_MPU_INST, |
244 | .prcm_partition = DRA7XX_PRM_PARTITION, | 244 | .prcm_partition = DRA7XX_PRM_PARTITION, |
245 | .pwrsts = PWRSTS_RET_ON, | 245 | .pwrsts = PWRSTS_RET_ON, |
246 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 246 | .pwrsts_logic_ret = PWRSTS_RET, |
247 | .banks = 2, | 247 | .banks = 2, |
248 | .pwrsts_mem_ret = { | 248 | .pwrsts_mem_ret = { |
249 | [0] = PWRSTS_OFF_RET, /* mpu_l2 */ | 249 | [0] = PWRSTS_OFF_RET, /* mpu_l2 */ |
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c index 76ca320f007c..74054b813600 100644 --- a/arch/arm/mach-omap2/prm_common.c +++ b/arch/arm/mach-omap2/prm_common.c | |||
@@ -467,7 +467,7 @@ int prm_unregister(struct prm_ll_data *pld) | |||
467 | return 0; | 467 | return 0; |
468 | } | 468 | } |
469 | 469 | ||
470 | static struct of_device_id omap_prcm_dt_match_table[] = { | 470 | static const struct of_device_id omap_prcm_dt_match_table[] = { |
471 | { .compatible = "ti,am3-prcm" }, | 471 | { .compatible = "ti,am3-prcm" }, |
472 | { .compatible = "ti,am3-scrm" }, | 472 | { .compatible = "ti,am3-scrm" }, |
473 | { .compatible = "ti,am4-prcm" }, | 473 | { .compatible = "ti,am4-prcm" }, |
diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h index 01ca8086fb6c..4376f59626d1 100644 --- a/arch/arm/mach-omap2/soc.h +++ b/arch/arm/mach-omap2/soc.h | |||
@@ -245,6 +245,8 @@ IS_AM_SUBCLASS(437x, 0x437) | |||
245 | #define soc_is_omap54xx() 0 | 245 | #define soc_is_omap54xx() 0 |
246 | #define soc_is_omap543x() 0 | 246 | #define soc_is_omap543x() 0 |
247 | #define soc_is_dra7xx() 0 | 247 | #define soc_is_dra7xx() 0 |
248 | #define soc_is_dra74x() 0 | ||
249 | #define soc_is_dra72x() 0 | ||
248 | 250 | ||
249 | #if defined(MULTI_OMAP2) | 251 | #if defined(MULTI_OMAP2) |
250 | # if defined(CONFIG_ARCH_OMAP2) | 252 | # if defined(CONFIG_ARCH_OMAP2) |
@@ -393,7 +395,11 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
393 | 395 | ||
394 | #if defined(CONFIG_SOC_DRA7XX) | 396 | #if defined(CONFIG_SOC_DRA7XX) |
395 | #undef soc_is_dra7xx | 397 | #undef soc_is_dra7xx |
398 | #undef soc_is_dra74x | ||
399 | #undef soc_is_dra72x | ||
396 | #define soc_is_dra7xx() (of_machine_is_compatible("ti,dra7")) | 400 | #define soc_is_dra7xx() (of_machine_is_compatible("ti,dra7")) |
401 | #define soc_is_dra74x() (of_machine_is_compatible("ti,dra74")) | ||
402 | #define soc_is_dra72x() (of_machine_is_compatible("ti,dra72")) | ||
397 | #endif | 403 | #endif |
398 | 404 | ||
399 | /* Various silicon revisions for omap2 */ | 405 | /* Various silicon revisions for omap2 */ |
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 43d03fbf4c0b..4f61148ec168 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -141,7 +141,7 @@ static struct property device_disabled = { | |||
141 | .value = "disabled", | 141 | .value = "disabled", |
142 | }; | 142 | }; |
143 | 143 | ||
144 | static struct of_device_id omap_timer_match[] __initdata = { | 144 | static const struct of_device_id omap_timer_match[] __initconst = { |
145 | { .compatible = "ti,omap2420-timer", }, | 145 | { .compatible = "ti,omap2420-timer", }, |
146 | { .compatible = "ti,omap3430-timer", }, | 146 | { .compatible = "ti,omap3430-timer", }, |
147 | { .compatible = "ti,omap4430-timer", }, | 147 | { .compatible = "ti,omap4430-timer", }, |
@@ -162,7 +162,7 @@ static struct of_device_id omap_timer_match[] __initdata = { | |||
162 | * the timer node in device-tree as disabled, to prevent the kernel from | 162 | * the timer node in device-tree as disabled, to prevent the kernel from |
163 | * registering this timer as a platform device and so no one else can use it. | 163 | * registering this timer as a platform device and so no one else can use it. |
164 | */ | 164 | */ |
165 | static struct device_node * __init omap_get_timer_dt(struct of_device_id *match, | 165 | static struct device_node * __init omap_get_timer_dt(const struct of_device_id *match, |
166 | const char *property) | 166 | const char *property) |
167 | { | 167 | { |
168 | struct device_node *np; | 168 | struct device_node *np; |
@@ -388,7 +388,7 @@ static u64 notrace dmtimer_read_sched_clock(void) | |||
388 | return 0; | 388 | return 0; |
389 | } | 389 | } |
390 | 390 | ||
391 | static struct of_device_id omap_counter_match[] __initdata = { | 391 | static const struct of_device_id omap_counter_match[] __initconst = { |
392 | { .compatible = "ti,omap-counter32k", }, | 392 | { .compatible = "ti,omap-counter32k", }, |
393 | { } | 393 | { } |
394 | }; | 394 | }; |