aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/db8500-prcmu.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-24 23:00:58 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-24 23:00:58 -0500
commitab7826595e9ec51a51f622c5fc91e2f59440481a (patch)
tree34241b399fa7a12c260e06e6c1c31bc69d46e1e3 /drivers/mfd/db8500-prcmu.c
parent21fbd5809ad126b949206d78e0a0e07ec872ea11 (diff)
parentff7109fa632654eaef657186f2942f5b679023d6 (diff)
Merge tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
Pull MFS updates from Samuel Ortiz: "This is the MFD pull request for the 3.9 merge window. No new drivers this time, but a bunch of fairly big cleanups: - Roger Quadros worked on a OMAP USBHS and TLL platform data consolidation, OMAP5 support and clock management code cleanup. - The first step of a major sync for the ab8500 driver from Lee Jones. In particular, the debugfs and the sysct interfaces got extended and improved. - Peter Ujfalusi sent a nice patchset for cleaning and fixing the twl-core driver, with a much needed module id lookup code improvement. - The regular wm5102 and arizona cleanups and fixes from Mark Brown. - Laxman Dewangan extended the palmas APIs in order to implement the palmas GPIO and rt drivers. - Laxman also added DT support for the tps65090 driver. - The Intel SCH and ICH drivers got a couple fixes from Aaron Sierra and Darren Hart. - Linus Walleij patchset for the ab8500 driver allowed ab8500 and ab9540 based devices to switch to the new abx500 pin-ctrl driver. - The max8925 now has device tree and irqdomain support thanks to Qing Xu. - The recently added rtsx driver got a few cleanups and fixes for a better card detection code path and now also supports the RTS5227 chipset, thanks to Wei Wang and Roger Tseng." * tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (109 commits) mfd: lpc_ich: Use devres API to allocate private data mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCH mfd: lpc_sch: Accomodate partial population of the MFD devices mfd: da9052-i2c: Staticize da9052_i2c_fix() mfd: syscon: Fix sparse warning mfd: twl-core: Fix kernel panic on boot mfd: rtsx: Fix issue that booting OS with SD card inserted mfd: ab8500: Fix compile error mfd: Add missing GENERIC_HARDIRQS dependecies Documentation: Add docs for max8925 dt mfd: max8925: Add dts mfd: max8925: Support dt for backlight mfd: max8925: Fix onkey driver irq base mfd: max8925: Fix mfd device register failure mfd: max8925: Add irqdomain for dt mfd: vexpress: Allow vexpress-sysreg to self-initialise mfd: rtsx: Support RTS5227 mfd: rtsx: Implement driving adjustment to device-dependent callbacks mfd: vexpress: Add pseudo-GPIO based LEDs mfd: ab8500: Rename ab8500 to abx500 for hwmon driver ...
Diffstat (limited to 'drivers/mfd/db8500-prcmu.c')
-rw-r--r--drivers/mfd/db8500-prcmu.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
index a2bacf95b59e..21f261bf9e95 100644
--- a/drivers/mfd/db8500-prcmu.c
+++ b/drivers/mfd/db8500-prcmu.c
@@ -33,6 +33,7 @@
33#include <linux/regulator/db8500-prcmu.h> 33#include <linux/regulator/db8500-prcmu.h>
34#include <linux/regulator/machine.h> 34#include <linux/regulator/machine.h>
35#include <linux/cpufreq.h> 35#include <linux/cpufreq.h>
36#include <linux/platform_data/ux500_wdt.h>
36#include <mach/hardware.h> 37#include <mach/hardware.h>
37#include <mach/irqs.h> 38#include <mach/irqs.h>
38#include <mach/db8500-regs.h> 39#include <mach/db8500-regs.h>
@@ -2207,21 +2208,25 @@ int db8500_prcmu_config_a9wdog(u8 num, bool sleep_auto_off)
2207 sleep_auto_off ? A9WDOG_AUTO_OFF_EN : 2208 sleep_auto_off ? A9WDOG_AUTO_OFF_EN :
2208 A9WDOG_AUTO_OFF_DIS); 2209 A9WDOG_AUTO_OFF_DIS);
2209} 2210}
2211EXPORT_SYMBOL(db8500_prcmu_config_a9wdog);
2210 2212
2211int db8500_prcmu_enable_a9wdog(u8 id) 2213int db8500_prcmu_enable_a9wdog(u8 id)
2212{ 2214{
2213 return prcmu_a9wdog(MB4H_A9WDOG_EN, id, 0, 0, 0); 2215 return prcmu_a9wdog(MB4H_A9WDOG_EN, id, 0, 0, 0);
2214} 2216}
2217EXPORT_SYMBOL(db8500_prcmu_enable_a9wdog);
2215 2218
2216int db8500_prcmu_disable_a9wdog(u8 id) 2219int db8500_prcmu_disable_a9wdog(u8 id)
2217{ 2220{
2218 return prcmu_a9wdog(MB4H_A9WDOG_DIS, id, 0, 0, 0); 2221 return prcmu_a9wdog(MB4H_A9WDOG_DIS, id, 0, 0, 0);
2219} 2222}
2223EXPORT_SYMBOL(db8500_prcmu_disable_a9wdog);
2220 2224
2221int db8500_prcmu_kick_a9wdog(u8 id) 2225int db8500_prcmu_kick_a9wdog(u8 id)
2222{ 2226{
2223 return prcmu_a9wdog(MB4H_A9WDOG_KICK, id, 0, 0, 0); 2227 return prcmu_a9wdog(MB4H_A9WDOG_KICK, id, 0, 0, 0);
2224} 2228}
2229EXPORT_SYMBOL(db8500_prcmu_kick_a9wdog);
2225 2230
2226/* 2231/*
2227 * timeout is 28 bit, in ms. 2232 * timeout is 28 bit, in ms.
@@ -2239,6 +2244,7 @@ int db8500_prcmu_load_a9wdog(u8 id, u32 timeout)
2239 (u8)((timeout >> 12) & 0xff), 2244 (u8)((timeout >> 12) & 0xff),
2240 (u8)((timeout >> 20) & 0xff)); 2245 (u8)((timeout >> 20) & 0xff));
2241} 2246}
2247EXPORT_SYMBOL(db8500_prcmu_load_a9wdog);
2242 2248
2243/** 2249/**
2244 * prcmu_abb_read() - Read register value(s) from the ABB. 2250 * prcmu_abb_read() - Read register value(s) from the ABB.
@@ -3094,6 +3100,11 @@ static struct resource ab8500_resources[] = {
3094 } 3100 }
3095}; 3101};
3096 3102
3103static struct ux500_wdt_data db8500_wdt_pdata = {
3104 .timeout = 600, /* 10 minutes */
3105 .has_28_bits_resolution = true,
3106};
3107
3097static struct mfd_cell db8500_prcmu_devs[] = { 3108static struct mfd_cell db8500_prcmu_devs[] = {
3098 { 3109 {
3099 .name = "db8500-prcmu-regulators", 3110 .name = "db8500-prcmu-regulators",
@@ -3108,6 +3119,12 @@ static struct mfd_cell db8500_prcmu_devs[] = {
3108 .pdata_size = sizeof(db8500_cpufreq_table), 3119 .pdata_size = sizeof(db8500_cpufreq_table),
3109 }, 3120 },
3110 { 3121 {
3122 .name = "ux500_wdt",
3123 .platform_data = &db8500_wdt_pdata,
3124 .pdata_size = sizeof(db8500_wdt_pdata),
3125 .id = -1,
3126 },
3127 {
3111 .name = "ab8500-core", 3128 .name = "ab8500-core",
3112 .of_compatible = "stericsson,ab8500", 3129 .of_compatible = "stericsson,ab8500",
3113 .num_resources = ARRAY_SIZE(ab8500_resources), 3130 .num_resources = ARRAY_SIZE(ab8500_resources),