From patchwork Wed Sep 15 21:56:37 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Hilman X-Patchwork-Id: 183712 X-Patchwork-Delegate: khilman@deeprootsystems.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id o8FLumt7010632 for ; Wed, 15 Sep 2010 21:56:48 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753932Ab0IOV4r (ORCPT ); Wed, 15 Sep 2010 17:56:47 -0400 Received: from mail-px0-f174.google.com ([209.85.212.174]:61351 "EHLO mail-px0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751744Ab0IOV4r (ORCPT ); Wed, 15 Sep 2010 17:56:47 -0400 Received: by pxi10 with SMTP id 10so194311pxi.19 for ; Wed, 15 Sep 2010 14:56:46 -0700 (PDT) Received: by 10.114.52.1 with SMTP id z1mr2498813waz.63.1284587806690; Wed, 15 Sep 2010 14:56:46 -0700 (PDT) Received: from localhost (c-24-18-179-55.hsd1.wa.comcast.net [24.18.179.55]) by mx.google.com with ESMTPS id d38sm3091285wam.20.2010.09.15.14.56.45 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 15 Sep 2010 14:56:46 -0700 (PDT) From: Kevin Hilman To: linux-omap@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Subject: [PATCH 2/4] OMAP: OPP: twl/tps: Introduce TWL/TPS-specific code Date: Wed, 15 Sep 2010 14:56:37 -0700 Message-Id: <1284587799-9637-3-git-send-email-khilman@deeprootsystems.com> X-Mailer: git-send-email 1.7.2.1 In-Reply-To: <1284587799-9637-1-git-send-email-khilman@deeprootsystems.com> References: <1284587799-9637-1-git-send-email-khilman@deeprootsystems.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Wed, 15 Sep 2010 21:56:48 +0000 (UTC) diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile index c718a0a..a88879c 100644 --- a/arch/arm/plat-omap/Makefile +++ b/arch/arm/plat-omap/Makefile @@ -15,6 +15,7 @@ obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o # OPP support in (OMAP3+ only at the moment) ifdef CONFIG_PM obj-$(CONFIG_ARCH_OMAP3) += opp.o +obj-$(CONFIG_TWL4030_CORE) += opp_twl_tps.o endif # omap_device support (OMAP2+ only at the moment) diff --git a/arch/arm/plat-omap/include/plat/opp_twl_tps.h b/arch/arm/plat-omap/include/plat/opp_twl_tps.h new file mode 100644 index 0000000..8784e5f --- /dev/null +++ b/arch/arm/plat-omap/include/plat/opp_twl_tps.h @@ -0,0 +1,21 @@ +/* + * opp_twl_tps.h - TWL/TPS-specific headers for the OPP code + * + * Copyright (C) 2009 Texas Instruments Incorporated. + * Nishanth Menon + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * XXX This code belongs as part of some other TWL/TPS code. + */ +#ifndef _ARCH_ARM_PLAT_OMAP_OPP_TWL_TPS_H +#define _ARCH_ARM_PLAT_OMAP_OPP_TWL_TPS_H + +#include + +unsigned long omap_twl_vsel_to_uv(const u8 vsel); +u8 omap_twl_uv_to_vsel(unsigned long uV); + +#endif diff --git a/arch/arm/plat-omap/opp_twl_tps.c b/arch/arm/plat-omap/opp_twl_tps.c new file mode 100644 index 0000000..112f106 --- /dev/null +++ b/arch/arm/plat-omap/opp_twl_tps.c @@ -0,0 +1,41 @@ +/* + * opp_twl_tps.c - TWL/TPS-specific functions for the OPP code + * + * Copyright (C) 2009 Texas Instruments Incorporated. + * Nishanth Menon + * Copyright (C) 2009 Nokia Corporation + * Paul Walmsley + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * XXX This code should be part of some other TWL/TPS code. + */ + +#include + +/** + * omap_twl_vsel_to_vdc - convert TWL/TPS VSEL value to microvolts DC + * @vsel: TWL/TPS VSEL value to convert + * + * Returns the microvolts DC that the TWL/TPS family of PMICs should + * generate when programmed with @vsel. + */ +unsigned long omap_twl_vsel_to_uv(const u8 vsel) +{ + return (((vsel * 125) + 6000)) * 100; +} + +/** + * omap_twl_uv_to_vsel - convert microvolts DC to TWL/TPS VSEL value + * @uv: microvolts DC to convert + * + * Returns the VSEL value necessary for the TWL/TPS family of PMICs to + * generate an output voltage equal to or greater than @uv microvolts DC. + */ +u8 omap_twl_uv_to_vsel(unsigned long uv) +{ + /* Round up to higher voltage */ + return DIV_ROUND_UP(uv - 600000, 12500); +}