From patchwork Wed Apr 10 13:38:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 162020 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp6220885jan; Wed, 10 Apr 2019 06:38:51 -0700 (PDT) X-Google-Smtp-Source: APXvYqwNKXFyt599YFe8OvNgrwOcSyObZWOL7qu75xpWdMlvp2b/Nr4Pf9mYQWXcIKYRGlxgk/gQ X-Received: by 2002:a17:902:3064:: with SMTP id u91mr24536682plb.169.1554903531190; Wed, 10 Apr 2019 06:38:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554903531; cv=none; d=google.com; s=arc-20160816; b=Usi4yAN0oy+GFemjck9HvYK1oE9PTOsQl44UBUoI8aVaEPkF0qC3zqpkXDnl4C44Mq w5d2gQFUqNRYAKfMGafTx+v9gafQhVTmkNPI9XnsqVPn2V3odWIR4MJ54u7Q+5LgvGVd 1zWj4SpLJVI3h4J0oNVhknN09mk5KvxxceQ+/UUmbKgFHp4p4DAuo1DgYEMB5AfAOSz3 /z0NMSn75cF18aH9QWh5BWXWqdwlwXr8p19m7iUUl681SH9G2maoRzjWBP0N0I0zJVsZ P1f5sXzssJf1WYul7EHvIL4Tzosh6VG+IQVCXlbRRK0BUsdxnAdKMj1sV33DD7It4KYx y8Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=+8mTYPgXcGLNUZwrJW6eXaxRaHu1fTLPu9JmBBK7o14=; b=XPtfNHcJW5+N7VnXH6RMfklJZNJiPx++dWm3p64vG2wGiy9rWYhUle54ps/2hJJsyF z+lUJQYEEL31q+4PWUXfpD9jCXKKk4sIK8+7yHQ9y39gPo3Ijlr1DpkrLL/bOGvgaHzD fVZjfMukwC/pyftQ72pfQDdDEdqviyFeYumfazzwo2LteSk0LhWavBBPTE0YMAs5xeSJ PIxiwj8Upohzgu6F6NYZsWEVZM7Sr+BNnPsHTgaJtfjYozjk0e33qkFQNYBgvkpN9P/h SdlKMzVh4QGfhAnNk03G+5elWNhnWDdD6icLiOkDWLmQRQeA5a0D2jCG0sYNV3HybyXP Wd+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=RTmgqhF1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a73si16710546pge.358.2019.04.10.06.38.50; Wed, 10 Apr 2019 06:38:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=RTmgqhF1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732624AbfDJNit (ORCPT + 31 others); Wed, 10 Apr 2019 09:38:49 -0400 Received: from lelv0142.ext.ti.com ([198.47.23.249]:41822 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731398AbfDJNip (ORCPT ); Wed, 10 Apr 2019 09:38:45 -0400 Received: from fllv0035.itg.ti.com ([10.64.41.0]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id x3ADcZQk114425; Wed, 10 Apr 2019 08:38:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1554903515; bh=+8mTYPgXcGLNUZwrJW6eXaxRaHu1fTLPu9JmBBK7o14=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=RTmgqhF1aiJf2CA3UxBjqjjCq5PHpkVBPAIOJpsYMzEEZ/+6Y/iEmGxJJ/kakoRu/ BMj/RSdgmsn3Z4oQAusihdJ/gzfKWjxrBo2ujvdAimDwi7H9f4gM0gCNZu8PesUWrv ctvv4ti/Xggse1DCBv7vOyjYk4P7MM3EuK/TA8kk= Received: from DFLE111.ent.ti.com (dfle111.ent.ti.com [10.64.6.32]) by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x3ADcZAg085353 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 10 Apr 2019 08:38:35 -0500 Received: from DFLE101.ent.ti.com (10.64.6.22) by DFLE111.ent.ti.com (10.64.6.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Wed, 10 Apr 2019 08:38:35 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DFLE101.ent.ti.com (10.64.6.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5 via Frontend Transport; Wed, 10 Apr 2019 08:38:35 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0039.itg.ti.com (8.15.2/8.15.2) with ESMTP id x3ADcZDS123754; Wed, 10 Apr 2019 08:38:35 -0500 From: Dan Murphy To: , , , , , CC: , , , Dan Murphy Subject: [PATCH v2 4/6] regulator: lm363x: Add support for LM36274 Date: Wed, 10 Apr 2019 08:38:31 -0500 Message-ID: <20190410133833.28859-4-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190410133833.28859-1-dmurphy@ti.com> References: <20190410133833.28859-1-dmurphy@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Adding regulator support for the LM36274 backlight driver. This device can leverage this existing code as the functionality and registers are common enough between the LM36274 and the LM363x series of devices. Signed-off-by: Dan Murphy --- v2 - No changes - https://lore.kernel.org/patchwork/patch/1058781/ drivers/regulator/Kconfig | 2 +- drivers/regulator/lm363x-regulator.c | 52 ++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) -- 2.21.0.5.gaeb582a983 diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index b7f249ee5e68..23252ae81fdf 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -362,7 +362,7 @@ config REGULATOR_LM363X tristate "TI LM363X voltage regulators" depends on MFD_TI_LMU help - This driver supports LM3631 and LM3632 voltage regulators for + This driver supports LM3631, LM3632 and LM36274 voltage regulators for the LCD bias. One boost output voltage is configurable and always on. Other LDOs are used for the display module. diff --git a/drivers/regulator/lm363x-regulator.c b/drivers/regulator/lm363x-regulator.c index 382b1cecdd93..1944677b1448 100644 --- a/drivers/regulator/lm363x-regulator.c +++ b/drivers/regulator/lm363x-regulator.c @@ -37,6 +37,11 @@ #define LM3632_VBOOST_MIN 4500000 #define LM3632_VLDO_MIN 4000000 +/* LM36274 */ +#define LM36274_BOOST_VSEL_MAX 0x3f +#define LM36274_LDO_VSEL_MAX 0x34 +#define LM36274_VOLTAGE_MIN 4000000 + /* Common */ #define LM363X_STEP_50mV 50000 #define LM363X_STEP_500mV 500000 @@ -217,6 +222,51 @@ static const struct regulator_desc lm363x_regulator_desc[] = { .enable_reg = LM3632_REG_BIAS_CONFIG, .enable_mask = LM3632_EN_VNEG_MASK, }, + + /* LM36274 */ + { + .name = "vboost", + .of_match = "vboost", + .id = LM36274_BOOST, + .ops = &lm363x_boost_voltage_table_ops, + .n_voltages = LM36274_BOOST_VSEL_MAX, + .min_uV = LM36274_VOLTAGE_MIN, + .uV_step = LM363X_STEP_50mV, + .type = REGULATOR_VOLTAGE, + .owner = THIS_MODULE, + .vsel_reg = LM36274_REG_VOUT_BOOST, + .vsel_mask = LM36274_VOUT_MASK, + }, + { + .name = "ldo_vpos", + .of_match = "vpos", + .id = LM36274_LDO_POS, + .ops = &lm363x_regulator_voltage_table_ops, + .n_voltages = LM36274_LDO_VSEL_MAX, + .min_uV = LM36274_VOLTAGE_MIN, + .uV_step = LM363X_STEP_50mV, + .type = REGULATOR_VOLTAGE, + .owner = THIS_MODULE, + .vsel_reg = LM36274_REG_VOUT_POS, + .vsel_mask = LM36274_VOUT_MASK, + .enable_reg = LM36274_REG_BIAS_CONFIG_1, + .enable_mask = LM36274_EN_VPOS_MASK, + }, + { + .name = "ldo_vneg", + .of_match = "vneg", + .id = LM36274_LDO_NEG, + .ops = &lm363x_regulator_voltage_table_ops, + .n_voltages = LM36274_LDO_VSEL_MAX, + .min_uV = LM36274_VOLTAGE_MIN, + .uV_step = LM363X_STEP_50mV, + .type = REGULATOR_VOLTAGE, + .owner = THIS_MODULE, + .vsel_reg = LM36274_REG_VOUT_NEG, + .vsel_mask = LM36274_VOUT_MASK, + .enable_reg = LM36274_REG_BIAS_CONFIG_1, + .enable_mask = LM36274_EN_VNEG_MASK, + }, }; static struct gpio_desc *lm363x_regulator_of_get_enable_gpio(struct device *dev, int id) @@ -229,9 +279,11 @@ static struct gpio_desc *lm363x_regulator_of_get_enable_gpio(struct device *dev, */ switch (id) { case LM3632_LDO_POS: + case LM36274_LDO_POS: return gpiod_get_index_optional(dev, "enable", 0, GPIOD_OUT_LOW | GPIOD_FLAGS_BIT_NONEXCLUSIVE); case LM3632_LDO_NEG: + case LM36274_LDO_NEG: return gpiod_get_index_optional(dev, "enable", 1, GPIOD_OUT_LOW | GPIOD_FLAGS_BIT_NONEXCLUSIVE); default: