diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-13 10:58:20 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-13 10:58:20 -0800 |
commit | a11da7df6543b5f71a150b47c0d08ecf0799a0f3 (patch) | |
tree | 77eaac99426f64a0a8dc3b5d62c86138a8c72d43 /drivers | |
parent | b8edf848e9119bab9d999b9ca80d8520641810f2 (diff) | |
parent | 9c7466b217af784280d9fc841bbd559ef3bf33e9 (diff) | |
download | linux-3.10-a11da7df6543b5f71a150b47c0d08ecf0799a0f3.tar.gz linux-3.10-a11da7df6543b5f71a150b47c0d08ecf0799a0f3.tar.bz2 linux-3.10-a11da7df6543b5f71a150b47c0d08ecf0799a0f3.zip |
Merge tag 'pm-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC power management and clock changes from Olof Johansson:
"This branch contains a largeish set of updates of power management and
clock setup. The bulk of it is for OMAP/AM33xx platforms, but also a
few around hotplug/suspend/resume on Exynos.
It includes a split-up of some of the OMAP clock data into separate
files which adds to the diffstat, but gross delta is fairly reasonable."
* tag 'pm-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (60 commits)
ARM: OMAP: Move plat-omap/dma-omap.h to include/linux/omap-dma.h
ASoC: OMAP: mcbsp fixes for enabling ARM multiplatform support
watchdog: OMAP: fixup for ARM multiplatform support
ARM: EXYNOS: Add flush_cache_all in suspend finisher
ARM: EXYNOS: Remove scu_enable from cpuidle
ARM: EXYNOS: Fix soft reboot hang after suspend/resume
ARM: EXYNOS: Add support for rtc wakeup
ARM: EXYNOS: fix the hotplug for Cortex-A15
ARM: OMAP2+: omap_device: Correct resource handling for DT boot
ARM: OMAP2+: hwmod: Add possibility to count hwmod resources based on type
ARM: OMAP2+: hwmod: Add support for per hwmod/module context lost count
ARM: OMAP2+: PRM: initialize some PRM functions early
ARM: OMAP2+: voltage: fixup oscillator handling when CONFIG_PM=n
ARM: OMAP4: USB: power down MUSB PHY during boot
ARM: OMAP2+: clock: Cleanup !CONFIG_COMMON_CLK parts
ARM: OMAP2xxx: clock: drop obsolete clock data
ARM: OMAP2: clock: Cleanup !CONFIG_COMMON_CLK parts
ARM: OMAP3+: DPLL: drop !CONFIG_COMMON_CLK sections
ARM: AM33xx: clock: drop obsolete clock data
ARM: OMAP3xxx: clk: drop obsolete clock data
...
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/crypto/omap-aes.c | 2 | ||||
-rw-r--r-- | drivers/crypto/omap-sham.c | 2 | ||||
-rw-r--r-- | drivers/dma/omap-dma.c | 2 | ||||
-rw-r--r-- | drivers/media/platform/omap/omap_vout.c | 2 | ||||
-rw-r--r-- | drivers/media/platform/omap/omap_vout_vrfb.c | 2 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/ispstat.h | 2 | ||||
-rw-r--r-- | drivers/media/platform/soc_camera/omap1_camera.c | 2 | ||||
-rw-r--r-- | drivers/mtd/nand/omap2.c | 1 | ||||
-rw-r--r-- | drivers/mtd/onenand/omap2.c | 2 | ||||
-rw-r--r-- | drivers/power/avs/smartreflex.c | 54 | ||||
-rw-r--r-- | drivers/usb/gadget/omap_udc.c | 2 | ||||
-rw-r--r-- | drivers/usb/musb/tusb6010_omap.c | 2 | ||||
-rw-r--r-- | drivers/video/omap/lcdc.c | 2 | ||||
-rw-r--r-- | drivers/video/omap/omapfb_main.c | 2 | ||||
-rw-r--r-- | drivers/video/omap/sossi.c | 2 | ||||
-rw-r--r-- | drivers/watchdog/omap_wdt.c | 2 |
16 files changed, 29 insertions, 54 deletions
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c index 649a146e138..e66e8ee5a9a 100644 --- a/drivers/crypto/omap-aes.c +++ b/drivers/crypto/omap-aes.c @@ -29,7 +29,7 @@ #include <crypto/scatterwalk.h> #include <crypto/aes.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> /* OMAP TRM gives bitfields as start:end, where start is the higher bit number. For example 7:0 */ diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c index d76fe06b941..1d75e6f95a5 100644 --- a/drivers/crypto/omap-sham.c +++ b/drivers/crypto/omap-sham.c @@ -37,7 +37,7 @@ #include <crypto/hash.h> #include <crypto/internal/hash.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include <mach/irqs.h> #define SHA_REG_DIGEST(x) (0x00 + ((x) * 0x04)) diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c index 7d35c237fbf..5a31264f2bd 100644 --- a/drivers/dma/omap-dma.c +++ b/drivers/dma/omap-dma.c @@ -19,8 +19,6 @@ #include "virt-dma.h" -#include <plat-omap/dma-omap.h> - struct omap_dmadev { struct dma_device ddev; spinlock_t lock; diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c index 4b1becc86e5..99350401596 100644 --- a/drivers/media/platform/omap/omap_vout.c +++ b/drivers/media/platform/omap/omap_vout.c @@ -45,7 +45,7 @@ #include <media/v4l2-ioctl.h> #include <plat/cpu.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include <video/omapvrfb.h> #include <video/omapdss.h> diff --git a/drivers/media/platform/omap/omap_vout_vrfb.c b/drivers/media/platform/omap/omap_vout_vrfb.c index 8340445a0ee..cf1c437a868 100644 --- a/drivers/media/platform/omap/omap_vout_vrfb.c +++ b/drivers/media/platform/omap/omap_vout_vrfb.c @@ -16,7 +16,7 @@ #include <media/videobuf-dma-contig.h> #include <media/v4l2-device.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include <video/omapvrfb.h> #include "omap_voutdef.h" diff --git a/drivers/media/platform/omap3isp/ispstat.h b/drivers/media/platform/omap3isp/ispstat.h index 99cf10449cf..fd15094de34 100644 --- a/drivers/media/platform/omap3isp/ispstat.h +++ b/drivers/media/platform/omap3isp/ispstat.h @@ -30,7 +30,7 @@ #include <linux/types.h> #include <linux/omap3isp.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include <media/v4l2-event.h> #include "isp.h" diff --git a/drivers/media/platform/soc_camera/omap1_camera.c b/drivers/media/platform/soc_camera/omap1_camera.c index d3cfe65c049..39a77f0b886 100644 --- a/drivers/media/platform/soc_camera/omap1_camera.c +++ b/drivers/media/platform/soc_camera/omap1_camera.c @@ -34,7 +34,7 @@ #include <media/videobuf-dma-contig.h> #include <media/videobuf-dma-sg.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #define DRIVER_NAME "omap1-camera" diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c index 5c8978e9024..1f34ba104ef 100644 --- a/drivers/mtd/nand/omap2.c +++ b/drivers/mtd/nand/omap2.c @@ -27,7 +27,6 @@ #include <linux/bch.h> #endif -#include <plat-omap/dma-omap.h> #include <linux/platform_data/mtd-nand-omap2.h> #define DRIVER_NAME "omap2-nand" diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c index 99f96e19ebe..00cd3da2943 100644 --- a/drivers/mtd/onenand/omap2.c +++ b/drivers/mtd/onenand/omap2.c @@ -41,7 +41,7 @@ #include <linux/platform_data/mtd-onenand-omap2.h> #include <asm/gpio.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #define DRIVER_NAME "omap2-onenand" diff --git a/drivers/power/avs/smartreflex.c b/drivers/power/avs/smartreflex.c index d0fed2c5cf2..a17d0841172 100644 --- a/drivers/power/avs/smartreflex.c +++ b/drivers/power/avs/smartreflex.c @@ -130,24 +130,21 @@ static irqreturn_t sr_interrupt(int irq, void *data) static void sr_set_clk_length(struct omap_sr *sr) { - struct clk *sys_ck; - u32 sys_clk_speed; + struct clk *fck; + u32 fclk_speed; - if (cpu_is_omap34xx()) - sys_ck = clk_get(NULL, "sys_ck"); - else - sys_ck = clk_get(NULL, "sys_clkin_ck"); + fck = clk_get(&sr->pdev->dev, "fck"); - if (IS_ERR(sys_ck)) { - dev_err(&sr->pdev->dev, "%s: unable to get sys clk\n", - __func__); + if (IS_ERR(fck)) { + dev_err(&sr->pdev->dev, "%s: unable to get fck for device %s\n", + __func__, dev_name(&sr->pdev->dev)); return; } - sys_clk_speed = clk_get_rate(sys_ck); - clk_put(sys_ck); + fclk_speed = clk_get_rate(fck); + clk_put(fck); - switch (sys_clk_speed) { + switch (fclk_speed) { case 12000000: sr->clk_length = SRCLKLENGTH_12MHZ_SYSCLK; break; @@ -164,34 +161,12 @@ static void sr_set_clk_length(struct omap_sr *sr) sr->clk_length = SRCLKLENGTH_38MHZ_SYSCLK; break; default: - dev_err(&sr->pdev->dev, "%s: Invalid sysclk value: %d\n", - __func__, sys_clk_speed); + dev_err(&sr->pdev->dev, "%s: Invalid fclk rate: %d\n", + __func__, fclk_speed); break; } } -static void sr_set_regfields(struct omap_sr *sr) -{ - /* - * For time being these values are defined in smartreflex.h - * and populated during init. May be they can be moved to board - * file or pmic specific data structure. In that case these structure - * fields will have to be populated using the pdata or pmic structure. - */ - if (cpu_is_omap34xx() || cpu_is_omap44xx()) { - sr->err_weight = OMAP3430_SR_ERRWEIGHT; - sr->err_maxlimit = OMAP3430_SR_ERRMAXLIMIT; - sr->accum_data = OMAP3430_SR_ACCUMDATA; - if (!(strcmp(sr->name, "smartreflex_mpu_iva"))) { - sr->senn_avgweight = OMAP3430_SR1_SENNAVGWEIGHT; - sr->senp_avgweight = OMAP3430_SR1_SENPAVGWEIGHT; - } else { - sr->senn_avgweight = OMAP3430_SR2_SENNAVGWEIGHT; - sr->senp_avgweight = OMAP3430_SR2_SENPAVGWEIGHT; - } - } -} - static void sr_start_vddautocomp(struct omap_sr *sr) { if (!sr_class || !(sr_class->enable) || !(sr_class->configure)) { @@ -924,8 +899,14 @@ static int __init omap_sr_probe(struct platform_device *pdev) sr_info->nvalue_count = pdata->nvalue_count; sr_info->senn_mod = pdata->senn_mod; sr_info->senp_mod = pdata->senp_mod; + sr_info->err_weight = pdata->err_weight; + sr_info->err_maxlimit = pdata->err_maxlimit; + sr_info->accum_data = pdata->accum_data; + sr_info->senn_avgweight = pdata->senn_avgweight; + sr_info->senp_avgweight = pdata->senp_avgweight; sr_info->autocomp_active = false; sr_info->ip_type = pdata->ip_type; + sr_info->base = ioremap(mem->start, resource_size(mem)); if (!sr_info->base) { dev_err(&pdev->dev, "%s: ioremap fail\n", __func__); @@ -937,7 +918,6 @@ static int __init omap_sr_probe(struct platform_device *pdev) sr_info->irq = irq->start; sr_set_clk_length(sr_info); - sr_set_regfields(sr_info); list_add(&sr_info->node, &sr_list); diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c index 09699f6e87f..8bfe990caf1 100644 --- a/drivers/usb/gadget/omap_udc.c +++ b/drivers/usb/gadget/omap_udc.c @@ -44,7 +44,7 @@ #include <asm/unaligned.h> #include <asm/mach-types.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include <mach/usb.h> diff --git a/drivers/usb/musb/tusb6010_omap.c b/drivers/usb/musb/tusb6010_omap.c index 9716850a430..98df17c984a 100644 --- a/drivers/usb/musb/tusb6010_omap.c +++ b/drivers/usb/musb/tusb6010_omap.c @@ -16,7 +16,7 @@ #include <linux/platform_device.h> #include <linux/dma-mapping.h> #include <linux/slab.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include "musb_core.h" #include "tusb6010.h" diff --git a/drivers/video/omap/lcdc.c b/drivers/video/omap/lcdc.c index c39d6e46f8c..b52f62595f6 100644 --- a/drivers/video/omap/lcdc.c +++ b/drivers/video/omap/lcdc.c @@ -31,7 +31,7 @@ #include <linux/gfp.h> #include <mach/lcdc.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include <asm/mach-types.h> diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c index 1b5ee8ec192..e31f5b33b50 100644 --- a/drivers/video/omap/omapfb_main.c +++ b/drivers/video/omap/omapfb_main.c @@ -30,7 +30,7 @@ #include <linux/uaccess.h> #include <linux/module.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include "omapfb.h" #include "lcdc.h" diff --git a/drivers/video/omap/sossi.c b/drivers/video/omap/sossi.c index c510a445739..d4e7684e704 100644 --- a/drivers/video/omap/sossi.c +++ b/drivers/video/omap/sossi.c @@ -25,7 +25,7 @@ #include <linux/io.h> #include <linux/interrupt.h> -#include <plat-omap/dma-omap.h> +#include <linux/omap-dma.h> #include "omapfb.h" #include "lcdc.h" diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c index 43cc1a1e25d..3e3ebbc83fa 100644 --- a/drivers/watchdog/omap_wdt.c +++ b/drivers/watchdog/omap_wdt.c @@ -45,8 +45,6 @@ #include <linux/uaccess.h> #include <linux/slab.h> #include <linux/pm_runtime.h> -#include <mach/hardware.h> - #include <linux/platform_data/omap-wd-timer.h> #include "omap_wdt.h" |