From patchwork Fri Apr 21 03:34:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacob Chen X-Patchwork-Id: 753092 X-Patchwork-Delegate: jh80.chung@samsung.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3w8Lwc1R3vz9ryT for ; Fri, 21 Apr 2017 13:35:28 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id C4506C21C29; Fri, 21 Apr 2017 03:34:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_MSPIKE_H2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 4EF48C21DE2; Fri, 21 Apr 2017 03:34:41 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 39723C21DE3; Fri, 21 Apr 2017 03:34:34 +0000 (UTC) Received: from mail-io0-f195.google.com (mail-io0-f195.google.com [209.85.223.195]) by lists.denx.de (Postfix) with ESMTPS id AD227C21DE9 for ; Fri, 21 Apr 2017 03:34:30 +0000 (UTC) Received: by mail-io0-f195.google.com with SMTP id k87so24745812ioi.0 for ; Thu, 20 Apr 2017 20:34:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yVhmlgmSywbPtzHzKK8Ju2GYbJG2Tf1Z1jK11Yiqjjg=; b=QzSI9cFtrNPdxc+wv6VjLH+4kinSSfXRZNGYzuxHtSpIio/NoLxQgcD7rW8fBSnD7k i2TsE9aNh/AkAWV/DdQuzIshUalu2vCUrgODwncK+A+9n1wf7msev5P2zv+FQjRETRDc xCVwIXvNIHLFlR3di69Q5ET3iZHpBMsLraQCQJmYtxLDzTFMHGBjFqW8vuKfM4fn79lK +YRDuyJuXMpO/ubTg0g7pEmRG6c7ExCu7QHq0uLf2iVKdRQ6yl819zaQu9vbE0zhOG/D c16wtpvgWtZzsEfF7RUo0R3mu2B/UnoC5tXM6Y8BYDLUlbsUflbecgE93yjY9oTdg2eo yyjA== X-Gm-Message-State: AN3rC/4LUnNIQeFmVKdBHfgPJKGb33irzMgbytQr1xcg19rQr7jMK0PX 5zH3J2xmY/VkXA== X-Received: by 10.98.212.68 with SMTP id u4mr10477588pfl.73.1492745669637; Thu, 20 Apr 2017 20:34:29 -0700 (PDT) Received: from localhost.localdomain ([103.29.142.67]) by smtp.gmail.com with ESMTPSA id v85sm561440pfk.5.2017.04.20.20.34.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 20 Apr 2017 20:34:29 -0700 (PDT) From: Jacob Chen To: u-boot@lists.denx.de Date: Fri, 21 Apr 2017 11:34:07 +0800 Message-Id: <1492745648-1642-4-git-send-email-jacob-chen@iotwrt.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1492745648-1642-1-git-send-email-jacob-chen@iotwrt.com> References: <1492745648-1642-1-git-send-email-jacob-chen@iotwrt.com> Cc: Jacob Chen Subject: [U-Boot] [PATCH 3/4] power: regulator: rk808: replace vsel_bits with vsel_mask X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Using mask is more flexible than bits. Signed-off-by: Jacob Chen Reviewed-by: Simon Glass --- drivers/power/regulator/rk808.c | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/drivers/power/regulator/rk808.c b/drivers/power/regulator/rk808.c index f1a00c5..441806c 100644 --- a/drivers/power/regulator/rk808.c +++ b/drivers/power/regulator/rk808.c @@ -20,36 +20,41 @@ #define ENABLE_DRIVER #endif +/* Field Definitions */ +#define RK808_BUCK_VSEL_MASK 0x3f +#define RK808_BUCK4_VSEL_MASK 0xf +#define RK808_LDO_VSEL_MASK 0x1f + struct rk808_reg_info { uint min_uv; uint step_uv; s8 vsel_reg; - u8 vsel_bits; + u8 vsel_mask; }; static const struct rk808_reg_info rk808_buck[] = { - { 712500, 12500, REG_BUCK1_ON_VSEL, 6, }, - { 712500, 12500, REG_BUCK2_ON_VSEL, 6, }, - { 712500, 12500, -1, 6, }, - { 1800000, 100000, REG_BUCK4_ON_VSEL, 4, }, + { 712500, 12500, REG_BUCK1_ON_VSEL, RK808_BUCK_VSEL_MASK, }, + { 712500, 12500, REG_BUCK2_ON_VSEL, RK808_BUCK_VSEL_MASK, }, + { 712500, 12500, -1, RK808_BUCK_VSEL_MASK, }, + { 1800000, 100000, REG_BUCK4_ON_VSEL, RK808_BUCK4_VSEL_MASK, }, }; static const struct rk808_reg_info rk808_ldo[] = { - { 1800000, 100000, REG_LDO1_ON_VSEL, 5, }, - { 1800000, 100000, REG_LDO2_ON_VSEL, 5, }, - { 800000, 100000, REG_LDO3_ON_VSEL, 4, }, - { 1800000, 100000, REG_LDO4_ON_VSEL, 5, }, - { 1800000, 100000, REG_LDO5_ON_VSEL, 5, }, - { 800000, 100000, REG_LDO6_ON_VSEL, 5, }, - { 800000, 100000, REG_LDO7_ON_VSEL, 5, }, - { 1800000, 100000, REG_LDO8_ON_VSEL, 5, }, + { 1800000, 100000, REG_LDO1_ON_VSEL, RK808_LDO_VSEL_MASK, }, + { 1800000, 100000, REG_LDO2_ON_VSEL, RK808_LDO_VSEL_MASK, }, + { 800000, 100000, REG_LDO3_ON_VSEL, RK808_BUCK4_VSEL_MASK, }, + { 1800000, 100000, REG_LDO4_ON_VSEL, RK808_LDO_VSEL_MASK, }, + { 1800000, 100000, REG_LDO5_ON_VSEL, RK808_LDO_VSEL_MASK, }, + { 800000, 100000, REG_LDO6_ON_VSEL, RK808_LDO_VSEL_MASK, }, + { 800000, 100000, REG_LDO7_ON_VSEL, RK808_LDO_VSEL_MASK, }, + { 1800000, 100000, REG_LDO8_ON_VSEL, RK808_LDO_VSEL_MASK, }, }; static int _buck_set_value(struct udevice *pmic, int buck, int uvolt) { const struct rk808_reg_info *info = &rk808_buck[buck - 1]; - int mask = (1 << info->vsel_bits) - 1; + int mask = info->vsel_mask; int val; if (info->vsel_reg == -1) @@ -85,7 +90,7 @@ static int buck_get_value(struct udevice *dev) { int buck = dev->driver_data - 1; const struct rk808_reg_info *info = &rk808_buck[buck]; - int mask = (1 << info->vsel_bits) - 1; + int mask = info->vsel_mask; int ret, val; if (info->vsel_reg == -1) @@ -131,7 +136,7 @@ static int ldo_get_value(struct udevice *dev) { int ldo = dev->driver_data - 1; const struct rk808_reg_info *info = &rk808_ldo[ldo]; - int mask = (1 << info->vsel_bits) - 1; + int mask = info->vsel_mask; int ret, val; if (info->vsel_reg == -1) @@ -148,7 +153,7 @@ static int ldo_set_value(struct udevice *dev, int uvolt) { int ldo = dev->driver_data - 1; const struct rk808_reg_info *info = &rk808_ldo[ldo]; - int mask = (1 << info->vsel_bits) - 1; + int mask = info->vsel_mask; int val; if (info->vsel_reg == -1)