diff options
35 files changed, 633 insertions, 279 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 0e16cca1d011..5b714695b01b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -1676,7 +1676,6 @@ config HZ | |||
| 1676 | int | 1676 | int |
| 1677 | default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \ | 1677 | default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \ |
| 1678 | ARCH_S5PV210 || ARCH_EXYNOS4 | 1678 | ARCH_S5PV210 || ARCH_EXYNOS4 |
| 1679 | default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER | ||
| 1680 | default AT91_TIMER_HZ if ARCH_AT91 | 1679 | default AT91_TIMER_HZ if ARCH_AT91 |
| 1681 | default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE | 1680 | default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE |
| 1682 | default 100 | 1681 | default 100 |
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index c2f14e875eb6..0957645b73af 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi | |||
| @@ -385,5 +385,19 @@ | |||
| 385 | mac-address = [ 00 00 00 00 00 00 ]; | 385 | mac-address = [ 00 00 00 00 00 00 ]; |
| 386 | }; | 386 | }; |
| 387 | }; | 387 | }; |
| 388 | |||
| 389 | ocmcram: ocmcram@40300000 { | ||
| 390 | compatible = "ti,am3352-ocmcram"; | ||
| 391 | reg = <0x40300000 0x10000>; | ||
| 392 | ti,hwmods = "ocmcram"; | ||
| 393 | ti,no_idle_on_suspend; | ||
| 394 | }; | ||
| 395 | |||
| 396 | wkup_m3: wkup_m3@44d00000 { | ||
| 397 | compatible = "ti,am3353-wkup-m3"; | ||
| 398 | reg = <0x44d00000 0x4000 /* M3 UMEM */ | ||
| 399 | 0x44d80000 0x2000>; /* M3 DMEM */ | ||
| 400 | ti,hwmods = "wkup_m3"; | ||
| 401 | }; | ||
| 388 | }; | 402 | }; |
| 389 | }; | 403 | }; |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index ff528df70119..b068b7fe99ef 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
| @@ -11,7 +11,7 @@ obj-y := id.o io.o control.o mux.o devices.o fb.o serial.o gpmc.o timer.o pm.o \ | |||
| 11 | omap_device.o sram.o | 11 | omap_device.o sram.o |
| 12 | 12 | ||
| 13 | omap-2-3-common = irq.o | 13 | omap-2-3-common = irq.o |
| 14 | hwmod-common = omap_hwmod.o \ | 14 | hwmod-common = omap_hwmod.o omap_hwmod_reset.o \ |
| 15 | omap_hwmod_common_data.o | 15 | omap_hwmod_common_data.o |
| 16 | clock-common = clock.o clock_common_data.o \ | 16 | clock-common = clock.o clock_common_data.o \ |
| 17 | clkt_dpll.o clkt_clksel.o | 17 | clkt_dpll.o clkt_clksel.o |
| @@ -56,6 +56,7 @@ AFLAGS_sram34xx.o :=-Wa,-march=armv7-a | |||
| 56 | # Restart code (OMAP4/5 currently in omap4-common.c) | 56 | # Restart code (OMAP4/5 currently in omap4-common.c) |
| 57 | obj-$(CONFIG_SOC_OMAP2420) += omap2-restart.o | 57 | obj-$(CONFIG_SOC_OMAP2420) += omap2-restart.o |
| 58 | obj-$(CONFIG_SOC_OMAP2430) += omap2-restart.o | 58 | obj-$(CONFIG_SOC_OMAP2430) += omap2-restart.o |
| 59 | obj-$(CONFIG_SOC_AM33XX) += am33xx-restart.o | ||
| 59 | obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o | 60 | obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o |
| 60 | 61 | ||
| 61 | # Pin multiplexing | 62 | # Pin multiplexing |
diff --git a/arch/arm/mach-omap2/am33xx-restart.c b/arch/arm/mach-omap2/am33xx-restart.c new file mode 100644 index 000000000000..88e4fa8af031 --- /dev/null +++ b/arch/arm/mach-omap2/am33xx-restart.c | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | /* | ||
| 2 | * am33xx-restart.c - Code common to all AM33xx machines. | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License version 2 as | ||
| 6 | * published by the Free Software Foundation. | ||
| 7 | */ | ||
| 8 | #include <linux/kernel.h> | ||
| 9 | |||
| 10 | #include "common.h" | ||
| 11 | #include "prm-regbits-33xx.h" | ||
| 12 | #include "prm33xx.h" | ||
| 13 | |||
| 14 | /** | ||
| 15 | * am3xx_restart - trigger a software restart of the SoC | ||
| 16 | * @mode: the "reboot mode", see arch/arm/kernel/{setup,process}.c | ||
| 17 | * @cmd: passed from the userspace program rebooting the system (if provided) | ||
| 18 | * | ||
| 19 | * Resets the SoC. For @cmd, see the 'reboot' syscall in | ||
| 20 | * kernel/sys.c. No return value. | ||
| 21 | */ | ||
| 22 | void am33xx_restart(char mode, const char *cmd) | ||
| 23 | { | ||
| 24 | /* TODO: Handle mode and cmd if necessary */ | ||
| 25 | |||
| 26 | am33xx_prm_rmw_reg_bits(AM33XX_GLOBAL_WARM_SW_RST_MASK, | ||
| 27 | AM33XX_GLOBAL_WARM_SW_RST_MASK, | ||
| 28 | AM33XX_PRM_DEVICE_MOD, | ||
| 29 | AM33XX_PRM_RSTCTRL_OFFSET); | ||
| 30 | |||
| 31 | /* OCP barrier */ | ||
| 32 | (void)am33xx_prm_read_reg(AM33XX_PRM_DEVICE_MOD, | ||
| 33 | AM33XX_PRM_RSTCTRL_OFFSET); | ||
| 34 | } | ||
diff --git a/arch/arm/mach-omap2/am35xx-emac.c b/arch/arm/mach-omap2/am35xx-emac.c index a00d39107a21..25b79a297365 100644 --- a/arch/arm/mach-omap2/am35xx-emac.c +++ b/arch/arm/mach-omap2/am35xx-emac.c | |||
| @@ -62,8 +62,7 @@ static int __init omap_davinci_emac_dev_init(struct omap_hwmod *oh, | |||
| 62 | { | 62 | { |
| 63 | struct platform_device *pdev; | 63 | struct platform_device *pdev; |
| 64 | 64 | ||
| 65 | pdev = omap_device_build(oh->class->name, 0, oh, pdata, pdata_len, | 65 | pdev = omap_device_build(oh->class->name, 0, oh, pdata, pdata_len); |
| 66 | false); | ||
| 67 | if (IS_ERR(pdev)) { | 66 | if (IS_ERR(pdev)) { |
| 68 | WARN(1, "Can't build omap_device for %s:%s.\n", | 67 | WARN(1, "Can't build omap_device for %s:%s.\n", |
| 69 | oh->class->name, oh->name); | 68 | oh->class->name, oh->name); |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 2590463e4b57..0274ff7a2a2b 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
| @@ -140,6 +140,7 @@ DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)") | |||
| 140 | .init_machine = omap_generic_init, | 140 | .init_machine = omap_generic_init, |
| 141 | .init_time = omap3_am33xx_gptimer_timer_init, | 141 | .init_time = omap3_am33xx_gptimer_timer_init, |
| 142 | .dt_compat = am33xx_boards_compat, | 142 | .dt_compat = am33xx_boards_compat, |
| 143 | .restart = am33xx_restart, | ||
| 143 | MACHINE_END | 144 | MACHINE_END |
| 144 | #endif | 145 | #endif |
| 145 | 146 | ||
diff --git a/arch/arm/mach-omap2/cclock33xx_data.c b/arch/arm/mach-omap2/cclock33xx_data.c index ea64ad606759..476b82066cb6 100644 --- a/arch/arm/mach-omap2/cclock33xx_data.c +++ b/arch/arm/mach-omap2/cclock33xx_data.c | |||
| @@ -284,9 +284,10 @@ DEFINE_STRUCT_CLK(dpll_disp_ck, dpll_core_ck_parents, dpll_ddr_ck_ops); | |||
| 284 | * TODO: Add clksel here (sys_clkin, CORE_CLKOUTM6, PER_CLKOUTM2 | 284 | * TODO: Add clksel here (sys_clkin, CORE_CLKOUTM6, PER_CLKOUTM2 |
| 285 | * and ALT_CLK1/2) | 285 | * and ALT_CLK1/2) |
| 286 | */ | 286 | */ |
| 287 | DEFINE_CLK_DIVIDER(dpll_disp_m2_ck, "dpll_disp_ck", &dpll_disp_ck, 0x0, | 287 | DEFINE_CLK_DIVIDER(dpll_disp_m2_ck, "dpll_disp_ck", &dpll_disp_ck, |
| 288 | AM33XX_CM_DIV_M2_DPLL_DISP, AM33XX_DPLL_CLKOUT_DIV_SHIFT, | 288 | CLK_SET_RATE_PARENT, AM33XX_CM_DIV_M2_DPLL_DISP, |
| 289 | AM33XX_DPLL_CLKOUT_DIV_WIDTH, CLK_DIVIDER_ONE_BASED, NULL); | 289 | AM33XX_DPLL_CLKOUT_DIV_SHIFT, AM33XX_DPLL_CLKOUT_DIV_WIDTH, |
| 290 | CLK_DIVIDER_ONE_BASED, NULL); | ||
| 290 | 291 | ||
| 291 | /* DPLL_PER */ | 292 | /* DPLL_PER */ |
| 292 | s | ||
