From patchwork Wed Apr 10 13:38:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 162021 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp6220932jan; Wed, 10 Apr 2019 06:38:54 -0700 (PDT) X-Google-Smtp-Source: APXvYqyIi0M3NZyVj2gws3W7H2fMllspVF+66I336+FjddcMosTzQqYw5RVH9O0n7gcwmItgXX1r X-Received: by 2002:a62:e412:: with SMTP id r18mr43214022pfh.207.1554903534121; Wed, 10 Apr 2019 06:38:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554903534; cv=none; d=google.com; s=arc-20160816; b=DrSBLCXVHn6JR+KR6w3hFfPy8/CocYsTjBQLe+RdlC24XWDTarUAa5Kh7IA5CRgyq0 3dngXoDETeUIgASrzSuUdyMt20ytY5PpSlNUBLUG6lJW6NChpPqi7RaInFUdyp6ppqEM dvF8UI+QjF+zMdHcE89RWOJ3mQRFZbcjwfhK2GI+PbK7T/H8dJ3xz1eOZVOcTlxSNIFD 5ubPP5kOWetAV3H/1QBcj3mwDoBeWhCMbsK3XuQ38Ys0FlfXE5lCvdSLDlBxteGJDZFo Z6H6fBDbbhTXYa+3UCMNEC0b7GlrMCQe8bEoSVk+vNRRjE2Vbx5BvsZOnEXL7kOXNSgy zZ+Q== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=xjr4IevYY44RIcephyTZKOHcl3H52uyijiHxVHQ5f3I=; b=HnVvM3YJN4hlUwG+oneDw9XgeRRYERW6ueZ6LTQiZrUvY5z9qru9aocg28aI/Ee0bQ KO0OVIr8oTcP+zFXPvKhe5GC/QjHPWRUvCasEaGhoIK27wN8BXIWu/tj3h4SKVI5jovg km/UbqdG5SRpU9w+FZ4GeEEGwZjfuzg0F9LOgJMKAIgPoPNQjwXdd379uoQEVDPTUaEp q1SNSlQzTNpk/cigYCUZOqMNv10t361x4reT83S3hLBjhYVzIhYEnf+YZxBV/0YQUYCk a8PbRbdl5t+kMbjb5S9B1Z7Y72qqJD/YV94hb5QGw1fbpKJNUnqi6cBduG1X6Y+C/Spi ivxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=mmTEbVJp; 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.53; Wed, 10 Apr 2019 06:38:54 -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=mmTEbVJp; 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 S1732632AbfDJNiw (ORCPT + 31 others); Wed, 10 Apr 2019 09:38:52 -0400 Received: from lelv0142.ext.ti.com ([198.47.23.249]:41824 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731712AbfDJNiq (ORCPT ); Wed, 10 Apr 2019 09:38:46 -0400 Received: from lelv0266.itg.ti.com ([10.180.67.225]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id x3ADcYRG114409; Wed, 10 Apr 2019 08:38:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1554903514; bh=xjr4IevYY44RIcephyTZKOHcl3H52uyijiHxVHQ5f3I=; h=From:To:CC:Subject:Date; b=mmTEbVJpoz+G3JOZgKTAMIs+M0REocPZifCLn75XVVJpaEBIrdXsCa9MEhcOKdV4H OfwYJH5VioqPqJriCQgdB4wYFpt9UNWEzl7Ji6R/37Sg+r3+jAZeBz379ACjYW8Nu1 rP2YQ9y1OObBFDsxdFAVW733y1iX6n2SE9n81N70= Received: from DFLE115.ent.ti.com (dfle115.ent.ti.com [10.64.6.36]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x3ADcY45009206 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 10 Apr 2019 08:38:34 -0500 Received: from DFLE107.ent.ti.com (10.64.6.28) by DFLE115.ent.ti.com (10.64.6.36) 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:34 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DFLE107.ent.ti.com (10.64.6.28) 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:34 -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 x3ADcYiY123736; Wed, 10 Apr 2019 08:38:34 -0500 From: Dan Murphy To: , , , , , CC: , , , Dan Murphy Subject: [PATCH v2 1/6] regulator: lm363x: Make the gpio register enable flexible Date: Wed, 10 Apr 2019 08:38:28 -0500 Message-ID: <20190410133833.28859-1-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 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 The use of and enablement of the GPIO can be used across devices. Use the enable_reg in the regulator descriptor for the register to write. Signed-off-by: Dan Murphy --- v2 - No changes - https://lore.kernel.org/patchwork/patch/1058777/ drivers/regulator/lm363x-regulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.21.0.5.gaeb582a983 diff --git a/drivers/regulator/lm363x-regulator.c b/drivers/regulator/lm363x-regulator.c index c876e161052a..382b1cecdd93 100644 --- a/drivers/regulator/lm363x-regulator.c +++ b/drivers/regulator/lm363x-regulator.c @@ -263,8 +263,8 @@ static int lm363x_regulator_probe(struct platform_device *pdev) if (gpiod) { cfg.ena_gpiod = gpiod; - - ret = regmap_update_bits(regmap, LM3632_REG_BIAS_CONFIG, + ret = regmap_update_bits(regmap, + lm363x_regulator_desc[id].enable_reg, LM3632_EXT_EN_MASK, LM3632_EXT_EN_MASK); if (ret) { From patchwork Wed Apr 10 13:38:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 162022 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp6221269jan; Wed, 10 Apr 2019 06:39:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqzeuQZOxbW1WfuSouLaGq3tby6x0/PqJOC3kIgMAo8nJ+EvV9zcij3CxAgJM41CXEAExVPj X-Received: by 2002:a63:4144:: with SMTP id o65mr38956574pga.241.1554903553511; Wed, 10 Apr 2019 06:39:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554903553; cv=none; d=google.com; s=arc-20160816; b=cr5kLN+/dlSr2PEwg5eD8ijG9d11F7/wwhER5clUat8tg+g1M1a4ERTKWCyXUUjyB4 wt4bXyWGXlV2t8h5MdQY2XTgvS8BnKrTHC3rEwfBheDXGAFh39xVxWXxqSosL07dZvM7 qofXvgcHp/U7bJnf3nNiAzanypykHlJPcVT1nSgbt0gmlUzwIREBMq6cJ9yI1FnEMVQM v22mVqXBpttG3FqsOyZqDa5J0bER5m4You15f7RJnMTT5X6jYMmOqTw6DcQI7ukLcLCq 1jUB+nemAG0Wt/sI860OKMoe2e45oZiBBIv1645ZYA6IHd0l/7bFbkGe1TFbRnO3hh4c Tpyg== 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=E4k9VqGqVYxNBJV0ymWKgYTisp4lzVsiqLq/Z2C96n8=; b=EUOLS8UXRbCDgPcfxLLN1gnrjk+k4A18Z95IRFtlFGUH54l74otabgS29JbH+G1xjQ S8gLAjc0Iryp82OVF511C2b4IOWWSIA+xcLL1eDFR/jOvrQSs19OVNuFqOyD/9/TdKM1 8zcoN1rpnt4PjoR3kSozJjBFOopKIAocByc52KhwY8Zbd1riwHkKe9hpPmV6ljLurvyJ dQoLTv9d4/uFsm3GE+7paM2u5kZP30iUBqOjOFc48o6kbGPE9hIMxw27iuVk4yynqdg2 iiVzDF8J9kfwEXPhhlArwbYTOq3BRDtKX4pLQWEYawySLUgx4Kd3wEh3Ra1ORtYkxrwD lIhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=xcA+1SUs; 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 z123si28429796pgb.199.2019.04.10.06.39.13; Wed, 10 Apr 2019 06:39:13 -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=xcA+1SUs; 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 S1732604AbfDJNir (ORCPT + 31 others); Wed, 10 Apr 2019 09:38:47 -0400 Received: from fllv0016.ext.ti.com ([198.47.19.142]:60268 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729474AbfDJNip (ORCPT ); Wed, 10 Apr 2019 09:38:45 -0400 Received: from lelv0266.itg.ti.com ([10.180.67.225]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id x3ADcZLQ093686; 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=E4k9VqGqVYxNBJV0ymWKgYTisp4lzVsiqLq/Z2C96n8=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=xcA+1SUsRAdmoF+pPPvEHMTJbjaQ5BDyO7tB33TWHnVUq96KlEQSM0435qOPDKmOD OQlTkcqApN/qEKDf69FqHN2ey3QGgAAK7F/HAT5FwYrBMCQODhCMFqmhTLKvCmNSRA U5m6xu9rSn1IkOB2DMmdUv4hXr6ZATM2m8DivGXk= Received: from DFLE112.ent.ti.com (dfle112.ent.ti.com [10.64.6.33]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x3ADcZ9M009214 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 10 Apr 2019 08:38:35 -0500 Received: from DFLE106.ent.ti.com (10.64.6.27) by DFLE112.ent.ti.com (10.64.6.33) 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:34 -0500 Received: from fllv0040.itg.ti.com (10.64.41.20) by DFLE106.ent.ti.com (10.64.6.27) 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:34 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id x3ADcYnM071505; Wed, 10 Apr 2019 08:38:34 -0500 From: Dan Murphy To: , , , , , CC: , , , Dan Murphy Subject: [PATCH v2 2/6] dt-bindings: mfd: Add lm36274 bindings to ti-lmu Date: Wed, 10 Apr 2019 08:38:29 -0500 Message-ID: <20190410133833.28859-2-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 Add the LM36274 backlight driver with regulator support. This is a multi-function device for backlight applications. Backlight properties will be documented in it's a supplemental bindings document. Regulator support is documented in the regulator/lm363x-regulator.txt http://www.ti.com/lit/ds/symlink/lm36274.pdf Signed-off-by: Dan Murphy --- v2 - No changes - https://lore.kernel.org/patchwork/patch/1058776/ .../devicetree/bindings/mfd/ti-lmu.txt | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) -- 2.21.0.5.gaeb582a983 diff --git a/Documentation/devicetree/bindings/mfd/ti-lmu.txt b/Documentation/devicetree/bindings/mfd/ti-lmu.txt index a948a8f41b2c..6ada671c1038 100644 --- a/Documentation/devicetree/bindings/mfd/ti-lmu.txt +++ b/Documentation/devicetree/bindings/mfd/ti-lmu.txt @@ -8,6 +8,7 @@ TI LMU driver supports lighting devices below. LM3632 Backlight and regulator LM3633 Backlight, LED and fault monitor LM3695 Backlight + LM36274 Backlight and regulator Required properties: - compatible: Should be one of: @@ -15,11 +16,13 @@ Required properties: "ti,lm3632" "ti,lm3633" "ti,lm3695" + "ti,lm36274" - reg: I2C slave address. 0x11 for LM3632 0x29 for LM3631 0x36 for LM3633 0x63 for LM3695 + 0x11 for LM36274 Optional property: - enable-gpios: A GPIO specifier for hardware enable pin. @@ -50,12 +53,14 @@ Optional nodes: - compatible: Should be one of: "ti,lm3633-fault-monitor" - leds: LED properties for LM3633. Please refer to [2]. + LED properties for LM36274. Please refer to [4]. - regulators: Regulator properties for LM3631 and LM3632. Please refer to [3]. [1] ../leds/backlight/ti-lmu-backlight.txt [2] ../leds/leds-lm3633.txt [3] ../regulator/lm363x-regulator.txt +[4] ../leds/leds-lm36274.txt lm3631@29 { compatible = "ti,lm3631"; @@ -213,3 +218,52 @@ lm3695@63 { }; }; }; + +lm36274@11 { + compatible = "ti,lm36274"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x11>; + + enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>; + regulators { + #address-cells = <1>; + #size-cells = <0>; + compatible = "ti,lm363x-regulator"; + + enable-gpios = <&pioC 0 GPIO_ACTIVE_HIGH>, + <&pioC 1 GPIO_ACTIVE_HIGH>; + + vboost { + regulator-name = "lcd_boost"; + regulator-min-microvolt = <4000000>; + regulator-max-microvolt = <7150000>; + regulator-always-on; + }; + + vpos { + regulator-name = "lcd_vpos"; + regulator-min-microvolt = <4000000>; + regulator-max-microvolt = <6500000>; + }; + + vneg { + regulator-name = "lcd_vneg"; + regulator-min-microvolt = <4000000>; + regulator-max-microvolt = <6500000>; + }; + }; + + backlight { + #address-cells = <1>; + #size-cells = <0>; + compatible = "ti,lm36274-backlight"; + + led@0 { + reg = <0>; + led-sources = <0 2>; + label = "white:backlight_cluster"; + linux,default-trigger = "backlight"; + }; + }; +}; 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: From patchwork Wed Apr 10 13:38:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 162023 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp6221402jan; Wed, 10 Apr 2019 06:39:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqx7e5AAfaqz6LjNdGiAv4cxvzIXZrkSWSZRQwVNHmVQLHxkz+VJU285zJobBKPFYCak0Nec X-Received: by 2002:a65:4802:: with SMTP id h2mr38158496pgs.98.1554903560601; Wed, 10 Apr 2019 06:39:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554903560; cv=none; d=google.com; s=arc-20160816; b=nNcDMDXtZJ3ibIevmw77rhS8nUG+3ibUB8RZqi9q3NDDVsSsJ8UzrTFsN246G2pI2C za5g0/A6JptCrN7ZwK6Vt9iJB9ChIXltq5lLiNxabfVSsBmyvgwBUb/XT7br9HhTPY0D vGlkyVhU+BAE52ZzM5NH2vSltILfK+I9o9+8XWWxNaIregUV8auDPFO38Xl1FClvJnpv DYnffMOZAEQDWszD9zzKXo+CKYYe+iKyOUmbyh++MXHKGtUBQcMKM+aweb/rAZsCxPDw PaBM2Jy5gzPD8FNjMQCWrLUJHcSzJ8NyNRR7lgjnQAfq6D5rO2Wf2vSmaoyT8e1sy23C 2Zjg== 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=aX8lwbOZJQ4U89s0jHitfwLBstHyamZsm+uVnSzL8BM=; b=WoC/sT9vEt4P9tedhA61R2yKNevyNhJ387mSH4Wy10B6wAdcSR0uVB7jkhnUyt+esA /cR4UALUNFNqd3lzRlf9C8lsaSb7hLYroJ7B7jXt0NWZu/zYd7qJeRk6ONBmhwKe/wEn At7XR63/gmNhQqeqO4k34DjVrriNMgBucAyoLTrqIujxYM9Lo76xYn1am1SGz7/xiaJ7 ydONcp4LgfnSFuZKgDZBwSz7UNYVvSQduGvYw8FxD2BWa4Wqws16v5HnC0/66US2Lzzz dFyAKWuRhX5HNFVlpADovmBhJfhD3aO5WpdCvWWuRq47ZNoI/OA7tMG3TvwO9JxAtZtD Togw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=DX4SeSV4; 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 k193si13783609pge.150.2019.04.10.06.39.20; Wed, 10 Apr 2019 06:39:20 -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=DX4SeSV4; 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 S1732092AbfDJNjS (ORCPT + 31 others); Wed, 10 Apr 2019 09:39:18 -0400 Received: from fllv0015.ext.ti.com ([198.47.19.141]:49780 "EHLO fllv0015.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731979AbfDJNiq (ORCPT ); Wed, 10 Apr 2019 09:38:46 -0400 Received: from fllv0035.itg.ti.com ([10.64.41.0]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id x3ADcaf6020016; Wed, 10 Apr 2019 08:38:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1554903516; bh=aX8lwbOZJQ4U89s0jHitfwLBstHyamZsm+uVnSzL8BM=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=DX4SeSV4/276HyXMLyrjSQNS5IbV8Ei8OiclexyB5Ch3Tq9BQ9PgfKrsS7gs6S5VT dq/PM/OQCDVBQo1hiZqjqNg1qbRth0Z06FDCN3SLl4OyzUbQoIPxZKXmhh7FIYeHUO E7fg5QDhe7NTroV54A15XP319DNW7qMgxIhm/VTg= Received: from DLEE114.ent.ti.com (dlee114.ent.ti.com [157.170.170.25]) by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x3ADcaof085359 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 10 Apr 2019 08:38:36 -0500 Received: from DLEE113.ent.ti.com (157.170.170.24) by DLEE114.ent.ti.com (157.170.170.25) 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 fllv0040.itg.ti.com (10.64.41.20) by DLEE113.ent.ti.com (157.170.170.24) 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 fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id x3ADcZAF071533; Wed, 10 Apr 2019 08:38:35 -0500 From: Dan Murphy To: , , , , , CC: , , , Dan Murphy Subject: [PATCH v2 6/6] leds: lm36274: Introduce the TI LM36274 LED driver Date: Wed, 10 Apr 2019 08:38:33 -0500 Message-ID: <20190410133833.28859-6-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 Introduce the LM36274 LED driver. This driver uses the ti-lmu MFD driver to probe this LED driver. The driver configures only the LED registers and enables the outputs according to the config file. The driver utilizes the ti-lmu-led-common framework to set the brightness bits. Signed-off-by: Dan Murphy --- v2 - No changes - https://lore.kernel.org/patchwork/patch/1058778/ drivers/leds/Kconfig | 9 +- drivers/leds/Makefile | 1 + drivers/leds/leds-lm36274.c | 174 ++++++++++++++++++++++++++++++++++++ 3 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 drivers/leds/leds-lm36274.c -- 2.21.0.5.gaeb582a983 diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index 2d1576f4d5d6..c0bf59544886 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -783,12 +783,19 @@ config LEDS_LM3697 Say Y to enable the LM3697 LED driver for TI LMU devices. This supports the LED device LM3697. +config LEDS_LM36274 + tristate "LED driver for LM36274" + depends on LEDS_TI_LMU_COMMON + help + Say Y to enable the LM36274 LED driver for TI LMU devices. + This supports the LED device LM36274. + config LEDS_TI_LMU_COMMON tristate "LED driver for TI LMU" help Say Y to enable the LED driver for TI LMU devices. This supports common features between the TI LM3532, LM3631, LM3632, - LM3633, LM3695 and LM3697. + LM3633, LM3695, LM3697 and LM36274 comment "LED Triggers" source "drivers/leds/trigger/Kconfig" diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile index 2eb0225d8dc6..7ff67215b38c 100644 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile @@ -81,6 +81,7 @@ obj-$(CONFIG_LEDS_LM3692X) += leds-lm3692x.o obj-$(CONFIG_LEDS_SC27XX_BLTC) += leds-sc27xx-bltc.o obj-$(CONFIG_LEDS_LM3601X) += leds-lm3601x.o obj-$(CONFIG_LEDS_LM3697) += leds-lm3697.o +obj-$(CONFIG_LEDS_LM36274) += leds-lm36274.o obj-$(CONFIG_LEDS_TI_LMU_COMMON) += ti-lmu-led-common.o # LED SPI Drivers diff --git a/drivers/leds/leds-lm36274.c b/drivers/leds/leds-lm36274.c new file mode 100644 index 000000000000..6a419c47c47f --- /dev/null +++ b/drivers/leds/leds-lm36274.c @@ -0,0 +1,174 @@ +// SPDX-License-Identifier: GPL-2.0 +// TI LM36274 LED chip family driver +// Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#define LM36274_MAX_STRINGS 4 +#define LM36274_BL_EN BIT(4) + +/** + * struct lm36274 + * @pdev: platform device + * @led_dev: led class device + * @lmu_data: Register and setting values for common code + * @regmap: Devices register map + * @dev: Pointer to the devices device struct + * @led_sources - The LED strings supported in this array + * @num_leds - Number of LED strings are supported in this array + */ +struct lm36274 { + struct platform_device *pdev; + struct led_classdev led_dev; + struct ti_lmu_bank lmu_data; + struct regmap *regmap; + struct device *dev; + + u32 led_sources[LM36274_MAX_STRINGS]; + int num_leds; +}; + +static int lm36274_brightness_set(struct led_classdev *led_cdev, + enum led_brightness brt_val) +{ + struct lm36274 *led = container_of(led_cdev, struct lm36274, led_dev); + + return ti_lmu_common_set_brightness(&led->lmu_data, brt_val); +} + +static int lm36274_init(struct lm36274 *lm36274_data) +{ + int enable_val = 0; + int i; + + for (i = 0; i < lm36274_data->num_leds; i++) + enable_val |= (1 << lm36274_data->led_sources[i]); + + if (!enable_val) { + dev_err(lm36274_data->dev, "No LEDs were enabled\n"); + return -EINVAL; + } + + enable_val |= LM36274_BL_EN; + + return regmap_write(lm36274_data->regmap, LM36274_REG_BL_EN, + enable_val); +} + +static int lm36274_parse_dt(struct lm36274 *lm36274_data) +{ + struct fwnode_handle *child = NULL; + char label[LED_MAX_NAME_SIZE]; + struct device *dev = &lm36274_data->pdev->dev; + const char *name; + int child_cnt; + int ret = -EINVAL; + + /* There should only be 1 node */ + child_cnt = device_get_child_node_count(dev); + if (child_cnt != 1) + return ret; + + device_for_each_child_node(dev, child) { + ret = fwnode_property_read_string(child, "label", &name); + if (ret) + snprintf(label, sizeof(label), + "%s::", lm36274_data->pdev->name); + else + snprintf(label, sizeof(label), + "%s:%s", lm36274_data->pdev->name, name); + + lm36274_data->num_leds = fwnode_property_read_u32_array(child, + "led-sources", + NULL, 0); + if (lm36274_data->num_leds <= 0) + return -ENODEV; + + ret = fwnode_property_read_u32_array(child, "led-sources", + lm36274_data->led_sources, + lm36274_data->num_leds); + if (ret) { + dev_err(dev, "led-sources property missing\n"); + return -EINVAL; + } + + fwnode_property_read_string(child, "linux,default-trigger", + &lm36274_data->led_dev.default_trigger); + + } + + lm36274_data->lmu_data.regmap = lm36274_data->regmap; + lm36274_data->lmu_data.max_brightness = MAX_BRIGHTNESS_11BIT; + lm36274_data->lmu_data.msb_brightness_reg = LM36274_REG_BRT_MSB; + lm36274_data->lmu_data.lsb_brightness_reg = LM36274_REG_BRT_LSB; + + lm36274_data->led_dev.name = label; + lm36274_data->led_dev.max_brightness = MAX_BRIGHTNESS_11BIT; + lm36274_data->led_dev.brightness_set_blocking = lm36274_brightness_set; + + return ret; +} + +static int lm36274_probe(struct platform_device *pdev) +{ + struct ti_lmu *lmu = dev_get_drvdata(pdev->dev.parent); + struct lm36274 *lm36274_data; + int ret; + + lm36274_data = devm_kzalloc(&pdev->dev, sizeof(*lm36274_data), + GFP_KERNEL); + if (!lm36274_data) { + ret = -ENOMEM; + return ret; + } + + lm36274_data->pdev = pdev; + lm36274_data->dev = lmu->dev; + lm36274_data->regmap = lmu->regmap; + dev_set_drvdata(&pdev->dev, lm36274_data); + + ret = lm36274_parse_dt(lm36274_data); + if (ret) { + dev_err(lm36274_data->dev, "Failed to parse DT node\n"); + return ret; + } + + ret = lm36274_init(lm36274_data); + if (ret) { + dev_err(lm36274_data->dev, "Failed to init the device\n"); + return ret; + } + + return devm_led_classdev_register(lm36274_data->dev, + &lm36274_data->led_dev); +} + +static const struct of_device_id of_lm36274_leds_match[] = { + { .compatible = "ti,lm36274-backlight", }, + {}, +}; +MODULE_DEVICE_TABLE(of, of_lm36274_leds_match); + +static struct platform_driver lm36274_driver = { + .probe = lm36274_probe, + .driver = { + .name = "lm36274-leds", + }, +}; +module_platform_driver(lm36274_driver) + +MODULE_DESCRIPTION("Texas Instruments LM36274 LED driver"); +MODULE_AUTHOR("Dan Murphy "); +MODULE_LICENSE("GPL v2");