summaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/board-mop500.c
diff options
context:
space:
mode:
authorRabin Vincent <rabin.vincent@stericsson.com>2011-08-25 15:01:00 +0530
committerUlf Hansson <ulf.hansson@stericsson.com>2011-09-19 16:00:16 +0200
commit219e10eaef3432adb30b30441d5c07b953661f89 (patch)
treea366c012593eb3fdab6879e6cceede8e7edd23a9 /arch/arm/mach-ux500/board-mop500.c
parent389b5c26ad9b88b50e1d24de6cfe3427e7d6cef0 (diff)
ux500: regulators: update
Regulator updates from: commit 7ff261a375cf1da4b9a701b7106d42f11df50b3d Author: Avinash A <Avinash.a@stericsson.com> Date: Fri Aug 12 16:01:23 2011 +0530 mach-ux500:ts-cypress add support on u8500 platform related changes to add support for the cypress touchscreen on u8500 ST-Ericsson ID: CR321190 commit c7f9ac5e687f8df6f2b48f48370d2cd4479237fa Author: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Date: Wed Jul 13 14:19:41 2011 +0200 regulators: ab8500: Removed initialization of body biasing Body biasing is handled by PRCMU and should not be overwritten by the kernel. ST-Ericsson ID: 350693 commit 2b74dbcb79a288e709b18dbda9cf592209ad1cdf Author: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Date: Fri Jul 1 18:18:18 2011 +0200 regulator: change vsmps3 from 1.0V to 0.925V ST-Ericsson ID: 350469 commit fcfcc8a7e23970134aeb557d23726e3213e5c79d Author: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Date: Tue May 31 15:43:29 2011 +0200 regulators: ab8500: Added more configurable bits ST Ericsson ID: 334602 commit 4faa6311bef9c32ebc39d7318ec8d1ced45dce31 Author: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Date: Tue May 31 15:54:25 2011 +0200 ARM: ux500: regulators: add mask for configuration There is already before a register mask in the regulator driver to allow some bits of a register to be initialized. The register value is defined in the board configuration. This patch puts a mask in the board configuration to specify which bits should actually be altered. The purpose with this patch is to avoid future mistakes when updating the allowed bits in the regulator driver. ST Ericsson ID: 334602 commit a8d27ada3b9bed3f57691fa6a32c831dd48a8e3b Author: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Date: Thu Jun 30 14:22:57 2011 +0200 regulator: update suspend force value for ExtSupplyRegu For HREFP_2.2 Vext1 needs to be on otherwise AB8500 looses its register contents during suspend. Vext2 is not connected to any regulator. Vext3 must be turned off. Rework is need on HREFP_2.2 in order to turn off VSMPS4_EXT_3V4 ST-Ericsson ID: 349114 commit a5dcb7001a7a42812f92461401675168943e2806 Author: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Date: Tue Jun 28 16:45:26 2011 +0200 regulators: update VextSupplies fix VextSupplies fix is not need on boards with DB8500v2.1. Add check to remove forcing of the VextSupply only for DB8500v2.2. ST-Ericsson ID: 349724 Change-Id: Ied04ee6546d3ddcda28635d221ec1b9b5306439c
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500.c')
-rw-r--r--arch/arm/mach-ux500/board-mop500.c76
1 files changed, 37 insertions, 39 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 4de538717c3..d4ecdb82408 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -23,7 +23,6 @@
#include <linux/mfd/ab8500.h>
#include <linux/regulator/ab8500.h>
#include <linux/mfd/tc3589x.h>
-#include <linux/mfd/tps6105x.h>
#include <linux/mfd/ab8500/gpio.h>
#include <linux/regulator/fixed.h>
#include <linux/leds-lp5521.h>
@@ -63,6 +62,7 @@
#include "devices-db8500.h"
#include "board-mop500.h"
#include "board-mop500-regulators.h"
+#include "regulator-u8500.h"
#include "board-mop500-bm.h"
#include "board-mop500-wlan.h"
#include "board-mop500-usb.h"
@@ -237,6 +237,38 @@ static struct platform_device snowball_sbnet_dev = {
},
};
+static struct regulator_init_data *u8500_regulators[U8500_NUM_REGULATORS] = {
+ [U8500_REGULATOR_VAPE] = &u8500_vape_regulator,
+ [U8500_REGULATOR_VARM] = &u8500_varm_regulator,
+ [U8500_REGULATOR_VMODEM] = &u8500_vmodem_regulator,
+ [U8500_REGULATOR_VPLL] = &u8500_vpll_regulator,
+ [U8500_REGULATOR_VSMPS1] = &u8500_vsmps1_regulator,
+ [U8500_REGULATOR_VSMPS2] = &u8500_vsmps2_regulator,
+ [U8500_REGULATOR_VSMPS3] = &u8500_vsmps3_regulator,
+ [U8500_REGULATOR_VRF1] = &u8500_vrf1_regulator,
+ [U8500_REGULATOR_SWITCH_SVAMMDSP] = &u8500_svammdsp_regulator,
+ [U8500_REGULATOR_SWITCH_SVAMMDSPRET] = &u8500_svammdspret_regulator,
+ [U8500_REGULATOR_SWITCH_SVAPIPE] = &u8500_svapipe_regulator,
+ [U8500_REGULATOR_SWITCH_SIAMMDSP] = &u8500_siammdsp_regulator,
+ [U8500_REGULATOR_SWITCH_SIAMMDSPRET] = &u8500_siammdspret_regulator,
+ [U8500_REGULATOR_SWITCH_SIAPIPE] = &u8500_siapipe_regulator,
+ [U8500_REGULATOR_SWITCH_SGA] = &u8500_sga_regulator,
+ [U8500_REGULATOR_SWITCH_B2R2_MCDE] = &u8500_b2r2_mcde_regulator,
+ [U8500_REGULATOR_SWITCH_ESRAM12] = &u8500_esram12_regulator,
+ [U8500_REGULATOR_SWITCH_ESRAM12RET] = &u8500_esram12ret_regulator,
+ [U8500_REGULATOR_SWITCH_ESRAM34] = &u8500_esram34_regulator,
+ [U8500_REGULATOR_SWITCH_ESRAM34RET] = &u8500_esram34ret_regulator,
+};
+
+static struct platform_device u8500_regulator_dev = {
+ .name = "u8500-regulators",
+ .id = 0,
+ .dev = {
+ .platform_data = u8500_regulators,
+ },
+};
+
+
#ifdef CONFIG_MODEM_U8500
static struct platform_device u8500_modem_dev = {
.name = "u8500-modem",
@@ -291,28 +323,6 @@ struct platform_device ab8500_device = {
};
/*
- * TPS61052
- */
-
-static struct tps6105x_platform_data mop500_tps61052_data = {
- .mode = TPS6105X_MODE_VOLTAGE,
- .regulator_data = &tps61052_regulator,
-};
-
-/*
- * GPIO-regulator wlan vbat data
- */
-
-static struct fixed_voltage_config snowball_gpio_wlan_vbat_data = {
- .supply_name = "WLAN-VBAT",
- .gpio = SNOWBALL_EN_3V6_GPIO,
- .microvolts = 3600000,
- .enable_high = 1,
- .init_data = &gpio_wlan_vbat_regulator,
- .startup_delay = 3500, /* Startup time */
-};
-
-/*
* TC35892
*/
@@ -403,10 +413,6 @@ static struct i2c_board_info __initdata mop500_i2c0_devices[] = {
.platform_data = &av8100_plat_data,
},
/* I2C0 devices only available prior to HREFv60 */
- {
- I2C_BOARD_INFO("tps61052", 0x33),
- .platform_data = &mop500_tps61052_data,
- },
};
#define NUM_PRE_V60_I2C0_DEVICES 1
@@ -503,14 +509,6 @@ static struct platform_device mop500_gpio_keys_device = {
},
};
-static struct platform_device snowball_gpio_wlan_vbat_regulator_device = {
- .name = "reg-fixed-voltage",
- .id = 0,
- .dev = {
- .platform_data = &snowball_gpio_wlan_vbat_data,
- },
-};
-
static int mop500_sensors1p_activate(struct device *dev)
{
sensors1p_regulator = regulator_get(&mop500_gpio_keys_device.dev,
@@ -940,7 +938,6 @@ static struct platform_device *snowball_platform_devs[] __initdata = {
&snowball_led_dev,
&snowball_key_dev,
&snowball_sbnet_dev,
- &snowball_gpio_wlan_vbat_regulator_device,
&u8500_mcde_device,
&u8500_b2r2_device,
};
@@ -963,6 +960,10 @@ static void __init mop500_init_machine(void)
{
int i2c0_devs;
+#ifdef CONFIG_REGULATOR
+ platform_device_register(&u8500_regulator_dev);
+#endif
+
/*
* The HREFv60 board removed a GPIO expander and routed
* all these GPIO pins to the internal GPIO controller
@@ -1010,9 +1011,6 @@ static void __init mop500_init_machine(void)
platform_device_register(&ab8500_device);
i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
- if (machine_is_hrefv60())
- i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES;
-
i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs);
i2c_register_board_info(2, mop500_i2c2_devices,
ARRAY_SIZE(mop500_i2c2_devices));