diff options
author | Bo Kim <bok@nvidia.com> | 2013-05-09 14:12:24 +0900 |
---|---|---|
committer | Gabby Lee <galee@nvidia.com> | 2013-06-30 23:11:11 -0700 |
commit | a5fb455bf6dc981de6aed7b02bc72055a3783238 (patch) | |
tree | d0dc0697470b2a331bcb455dc37fb1c821edd449 /arch | |
parent | fc37f9f969a06e61352cd7ca4f19b70afed1c885 (diff) |
ARM: tegra: add tegratab psy_depletion board data
Bug 1244384
Change-Id: Icaac9f2bb5e487e5f16e6a96641cbe02ab6a94f2
Signed-off-by: Bo Kim <bok@nvidia.com>
Reviewed-on: http://git-master/r/241414
Reviewed-by: Gabby Lee <galee@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-tegratab-power.c | 51 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-tegratab-sdhci.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-tegratab.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-tegratab.h | 1 |
4 files changed, 63 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-tegratab-power.c b/arch/arm/mach-tegra/board-tegratab-power.c index 68059c83a438..50039056847c 100644 --- a/arch/arm/mach-tegra/board-tegratab-power.c +++ b/arch/arm/mach-tegra/board-tegratab-power.c @@ -33,6 +33,7 @@ #include <linux/interrupt.h> #include <linux/regulator/userspace-consumer.h> #include <linux/edp.h> +#include <linux/edpdev.h> #include <linux/platform_data/tegra_edp.h> #include <asm/mach-types.h> @@ -982,6 +983,56 @@ void __init tegratab_sysedp_init(void) WARN_ON(r); } +static unsigned int tegratab_psydepl_states[] = { + 18900, 18000, 17000, 16000, 15000, 14000, 13000, 12000, + 11000, 10000, + 9900, 9600, 9300, 9000, 8700, 8400, 8100, 7800, + 7500, 7200, 6900, 6600, 6300, 6000, 5800, 5600, + 5400, 5200, 5000, 4800, 4600, 4400, 4200, 4000, + 3800, 3600, 3400, 3200, 3000, 2800, 2600, 2400, + 2200, 2000, 1900, 1800, 1700, 1600, 1500, 1400, + 1300, 1200, 1100, 1000, 900, 800, 700, 600, + 500, 400, 300, 200, 100, 0 +}; + +static struct psy_depletion_ibat_lut tegratab_ibat_lut[] = { + { 60, 0 }, + { 50, 4500 }, + { 0, 4500 }, + { -10, 0 } +}; + +static struct psy_depletion_rbat_lut tegratab_rbat_lut[] = { + { 0, 120000 } +}; + +static struct psy_depletion_platform_data tegratab_psydepl_pdata = { + .power_supply = "battery", + .states = tegratab_psydepl_states, + .num_states = ARRAY_SIZE(tegratab_psydepl_states), + .e0_index = 26, /* TBD */ + .r_const = 40100, + .vsys_min = 3260000, + .vcharge = 4200000, + .ibat_nom = 4500, + .ibat_lut = tegratab_ibat_lut, + .rbat_lut = tegratab_rbat_lut +}; + +static struct platform_device tegratab_psydepl_device = { + .name = "psy_depletion", + .id = -1, + .dev = { .platform_data = &tegratab_psydepl_pdata } +}; + +void __init tegratab_sysedp_psydepl_init(void) +{ + int r; + + r = platform_device_register(&tegratab_psydepl_device); + WARN_ON(r); +} + static struct tegra_sysedp_corecap tegratab_sysedp_corecap[] = { { 1000, { 1000, 240, 204 }, { 1000, 240, 204 } }, { 2000, { 1000, 240, 204 }, { 1000, 240, 204 } }, diff --git a/arch/arm/mach-tegra/board-tegratab-sdhci.c b/arch/arm/mach-tegra/board-tegratab-sdhci.c index 07f00107f820..7c101ddd77ce 100644 --- a/arch/arm/mach-tegra/board-tegratab-sdhci.c +++ b/arch/arm/mach-tegra/board-tegratab-sdhci.c @@ -55,6 +55,16 @@ static struct wl12xx_platform_data tegratab_wl12xx_wlan_data __initdata = { .board_tcxo_clock = 1, .set_power = tegratab_wifi_power, .set_carddetect = tegratab_wifi_set_carddetect, +#if defined(CONFIG_BCMDHD_EDP_SUPPORT) + /* set the wifi edp client information here */ + .client_info = { + .name = "wifi_edp_client", + .states = {1080, 0}, + .num_states = ARRAY_SIZE(wifi_states), + .e0_index = 0, + .priority = EDP_MAX_PRIO, + }, +#endif }; static struct resource sdhci_resource0[] = { diff --git a/arch/arm/mach-tegra/board-tegratab.c b/arch/arm/mach-tegra/board-tegratab.c index 1646afd19115..587856861d7d 100644 --- a/arch/arm/mach-tegra/board-tegratab.c +++ b/arch/arm/mach-tegra/board-tegratab.c @@ -811,6 +811,7 @@ static void __init tegra_tegratab_late_init(void) pm_wake_lock("main"); tegratab_sysedp_core_init(); + tegratab_sysedp_psydepl_init(); } static void __init tegratab_ramconsole_reserve(unsigned long size) diff --git a/arch/arm/mach-tegra/board-tegratab.h b/arch/arm/mach-tegra/board-tegratab.h index 6d1fc9891a19..8a61cc295ddd 100644 --- a/arch/arm/mach-tegra/board-tegratab.h +++ b/arch/arm/mach-tegra/board-tegratab.h @@ -114,6 +114,7 @@ int tegratab_pmon_init(void); int tegratab_soctherm_init(void); void tegratab_sysedp_init(void); void tegratab_sysedp_core_init(void); +void tegratab_sysedp_psydepl_init(void); /* disable LP0 forcedly only on DVT A00: BT/WIFI LP0 issue */ extern int pm_wake_lock(const char *buf); |