From patchwork Tue May 7 20:11:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163553 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp1788178ilm; Tue, 7 May 2019 13:12:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqxt5ojY/qzVrP09Y/dYqfb2iQSS5N0OKVACdLegob2yITymQqBb29jS8DHZ2n/xJ2NAJVJ5 X-Received: by 2002:a63:9d8d:: with SMTP id i135mr25356577pgd.245.1557259934177; Tue, 07 May 2019 13:12:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557259934; cv=none; d=google.com; s=arc-20160816; b=ovnPJVHvkpV2rAyXjvc8SiRsmbiTkxx3aGOkBAEE06cC+1Vvw6NS8b8ZH5+88PYBeV 8ekpDqgRpTLMWPNmxbStGIHfWzpWuuwZoi12lea5WKAXcs61ghVJ0LOmM5DBoJGM9hpA Hocn2YO2pdnYWjmy1vWJk2kqYeI4sMyo1xEoupJS+RIQSYtF/PHcLb6JWDo9gznDj3su IP/mWKt9AsNsT3zf9ZVU8DQhXJvHF82I8SDOrT9HLvtpHBAIzUUSrw83di19KCwSdHa9 Yhy8ADanXK4jpjpgw3aG8GI1qUq8GpxHRHrHIqcO7djXkChlEZhXTIONOE/0B979L6BT FNgQ== 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=LjSX35Zd9AAVl0gh4n5sT6SVSu9q2cBivqmA5diC3lY=; b=GNE8/mSy42hPWjJD/gv8bGfqU8ZHgKbR6B+R+/6ftBJTxHPstTeymxCDFrxN1Cdej5 /QiPBw9+eGhG+H0TPaz11r3z0AXTTRrG8p8S0mfG+belueHo9Z8UAkD3fUFflqiY/hHi tzUN3Y82fscyiXgvdmvIeJRTA8ub5QUmTJS+CwB6MTZiShLbtr04zHSSKI+GMdv8fvAq ra6HBRnxCA8BmWUdrqr4LYpCnSSzwL8FW69KXVgnZDpL0HZqoplYh53l6gH5bHpLps6C Z58z8Pgf6zYk7y6ODjN0eOcVgSVt2K7/yadEHLRQJbaIr+QfimmWMQcj9zkT42XkYEpN CqTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=UNAxWNf6; 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 q11si18831890pgv.373.2019.05.07.13.12.13; Tue, 07 May 2019 13:12:14 -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=UNAxWNf6; 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 S1727161AbfEGUMN (ORCPT + 30 others); Tue, 7 May 2019 16:12:13 -0400 Received: from fllv0015.ext.ti.com ([198.47.19.141]:51582 "EHLO fllv0015.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726679AbfEGUMM (ORCPT ); Tue, 7 May 2019 16:12:12 -0400 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id x47KBrod027910; Tue, 7 May 2019 15:11:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557259913; bh=LjSX35Zd9AAVl0gh4n5sT6SVSu9q2cBivqmA5diC3lY=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=UNAxWNf66CSP/KYNQPq7DISHIJU7g7XR7BuzW3HltlV8ed+rDJTWQvP32LncWup5h p5sBHs17S8xJ8E9YSOdwJELy1f2WSuiNccb8J/l/Je4G0pycPLK7MxbIYArQ1Fo76x ww6KC8YMGI4nzyp9hZS9din79DViLRa5ITVrFNrE= Received: from DLEE108.ent.ti.com (dlee108.ent.ti.com [157.170.170.38]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x47KBrJP102925 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 7 May 2019 15:11:53 -0500 Received: from DLEE101.ent.ti.com (157.170.170.31) by DLEE108.ent.ti.com (157.170.170.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Tue, 7 May 2019 15:11:53 -0500 Received: from fllv0040.itg.ti.com (10.64.41.20) by DLEE101.ent.ti.com (157.170.170.31) 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; Tue, 7 May 2019 15:11:53 -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 x47KBrhi013903; Tue, 7 May 2019 15:11:53 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy Subject: [PATCH v4 1/6] regulator: lm363x: Make the gpio register enable flexible Date: Tue, 7 May 2019 15:11:54 -0500 Message-ID: <20190507201159.13940-2-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190507201159.13940-1-dmurphy@ti.com> References: <20190507201159.13940-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 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 --- 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 Tue May 7 20:11:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163556 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp1788492ilm; Tue, 7 May 2019 13:12:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqyAgDYngUb59/bLTbf+42Exc6EEaqWMW2wcpPX5eAN6mcICUu5J18CoRZgHrUxk676ojd+t X-Received: by 2002:a62:6c88:: with SMTP id h130mr11290369pfc.106.1557259950049; Tue, 07 May 2019 13:12:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557259950; cv=none; d=google.com; s=arc-20160816; b=UMUeRBgy+BkJTWkqLvMKHXN3vIKhL0U5fJR0rFBv5OmoW8QV4R3AOzghHJD7CYAqmD VMnH8gAtDpsxTcEY6VXAFOqo00LVxry087IK3wsags3AZEfGBRiB6QelEiwZ20HRn0V5 /hyOoW81vx3zkXFO+Z9J8rh9AB1ZxoLuX4zQ9nvbEVf2DLGGmAm4BRyVVT4u8cRN96MT Fh6u3IyRx6x2QZRvOYdFxpvR+yNL0PuPAgg3Ss/y3UML86iQ1k0H5HpLoI6hqDcxE6Ll OmMeW1TM9EI3jtY3cAH0oec33VtQkNWp9riJBT+qPj8SL8evB3Bx5/g3pS20oYfISb7B 8W7w== 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=4lobOehpHKxAz9Z2v1fQplOERI0AEUJYx6XR9ln2I/Y=; b=Uh2LLGEzN1qZynHzIgZ0UJtSShcuuJcVrI+4CypBHzPyqDdm1tW+y/+4hAILBy8Hn2 Qg/rIslNkpeoIMqu8XI0ixkmBs/gB3NVvKaTx5h0sHjhLGEmmizQzrTZqaYb+dSeP6HH 9cL9sUk5Vyua7Y5TRIoI5xrbzRIl3fol0D9sukbhb1oZgFNfWYA5pEvc6WfPeiCmpo0u b4iP0OY49L4pBFkwoJIe9jzxDDkkt0PC4bovJ4ydRTI2lhbIBBUFcwz+mij7PX2A7Lja gnL10gy93lw+wDWQuSkUj5YibYu1Oleovd4mWQ3Fzg5RMzUfTD7B4Vo4guv5U5VEG0n2 6YUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=wUgyjDDn; 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 x18si20784614pgi.193.2019.05.07.13.12.29; Tue, 07 May 2019 13:12:30 -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=wUgyjDDn; 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 S1727199AbfEGUM2 (ORCPT + 30 others); Tue, 7 May 2019 16:12:28 -0400 Received: from fllv0016.ext.ti.com ([198.47.19.142]:41346 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726495AbfEGUMG (ORCPT ); Tue, 7 May 2019 16:12:06 -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 x47KBsOm103333; Tue, 7 May 2019 15:11:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557259914; bh=4lobOehpHKxAz9Z2v1fQplOERI0AEUJYx6XR9ln2I/Y=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=wUgyjDDnORdUYEWUz5S0oBdiZlenR+GZ4CDSUcO4g+ZHcpfXYFrDGsLNm4ZnUOq1Z ufZUwmmA0vUuvXkXE3d4a2k6zvmCsKLyJiF4IBGd47G4BsdzbqIKRs05wbWTHCZ6hm k9VYqJtI+GthdioxE5OLMJGVMMc4lEbpZg+stTK0= 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 x47KBsms108668 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 7 May 2019 15:11:54 -0500 Received: from DFLE111.ent.ti.com (10.64.6.32) 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; Tue, 7 May 2019 15:11:53 -0500 Received: from lelv0327.itg.ti.com (10.180.67.183) 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 via Frontend Transport; Tue, 7 May 2019 15:11:53 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by lelv0327.itg.ti.com (8.15.2/8.15.2) with ESMTP id x47KBrGt035466; Tue, 7 May 2019 15:11:53 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy , Rob Herring Subject: [PATCH v4 2/6] dt-bindings: mfd: Add lm36274 bindings to ti-lmu Date: Tue, 7 May 2019 15:11:55 -0500 Message-ID: <20190507201159.13940-3-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190507201159.13940-1-dmurphy@ti.com> References: <20190507201159.13940-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 Reviewed-by: Rob Herring Signed-off-by: Dan Murphy --- .../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 782d3c9812ed..2296b8f24de4 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 properties: - 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 Tue May 7 20:11:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163551 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp1788112ilm; Tue, 7 May 2019 13:12:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqzZv1nSAHQrmg+vvGeqd6YZQ3P6nLNqPfaU+BludYom1g0B0fhU7AlwGyg76ZbKjBQP9io+ X-Received: by 2002:a63:e956:: with SMTP id q22mr42217828pgj.277.1557259930532; Tue, 07 May 2019 13:12:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557259930; cv=none; d=google.com; s=arc-20160816; b=RfoV+XYcsCX/p0+/nImuje5eqeXAAIdRMH9uEfEeio5uBcAXc3tjuWmM64yyMBdSeF P8Ms7xo0zy+mAoumMrITFzPnLdSqOu3m0wBLxiFmWmAZ8gFfuq+SWFGuHspF1Ei+kAs6 ze0c3afI6DrQHNykBuk+UW4OcDOkxV1oYvwPxJUOKVKngkFOpW9/KRZAIaxkMSknoZ1i dNL5KS7BlxSgFvr2pjRoFrKLzpFMWYAhvag+cyM/x42qElHzCmkU6mKl4LVXpjsWaVWi Z5IIIF2HVYDUUiqNYan+U3jqot6RyZPtKy4QuzL4/ceG+gxMTNz+RBXvyJiKJIOQqeq8 goTg== 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=Yly9sJcWMeuDQbobJ18oTecNXjdhRo3R7wQ3SynYIJE=; b=gJQ7YApUOn7E2vg5pXq9DDpz1bZShi59DCswQA2FaU3NjwXAkRLnopjU4FLTnEQ3En 2EiHCbueldCTcah4DrjTU+yFXJtJZkTfOLHqqn25dwo/+UT63dupBghN+++G2JjaHr9T CJygxifnkdGuSBYvI+wO/zUwuVgELmo0z4MnkkCsJVh3Edfb0BwWNlCEfEAewbFDHPQH kr/rVpfvA+fT20ph+J8LPfbb1QS8rC3EvULAmBI7Ls6PkwG4vZIToPFuzkGyBKzrB+la 9NS9SuGrmc5TOq114x+L3B6ICASsUZ+a44VaLDajMXz6i3ApEvNM8PPB9lWOWA33u/fW XSuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=CTn7GRN+; 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 g17si922406plo.229.2019.05.07.13.12.09; Tue, 07 May 2019 13:12:10 -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=CTn7GRN+; 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 S1727136AbfEGUMJ (ORCPT + 30 others); Tue, 7 May 2019 16:12:09 -0400 Received: from fllv0016.ext.ti.com ([198.47.19.142]:41350 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726503AbfEGUMH (ORCPT ); Tue, 7 May 2019 16:12:07 -0400 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id x47KBsHE103337; Tue, 7 May 2019 15:11:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557259914; bh=Yly9sJcWMeuDQbobJ18oTecNXjdhRo3R7wQ3SynYIJE=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=CTn7GRN+W5OL+aBbTbkGuu8Yx/0U6vUxWdf1uKYA8F0GIYG6/NZcRtvD6HRjQFLbc L4qnBnfeQBQgru4Rxdra+s2Uiw2r5doebxNBtHlg3QyQKJjiCC/3TmxtlQ4vvQi445 YcRL5PSMj62mE6nu8MfGKNufeuArnNmVAThjTn4M= Received: from DLEE115.ent.ti.com (dlee115.ent.ti.com [157.170.170.26]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x47KBsJU102934 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 7 May 2019 15:11:54 -0500 Received: from DLEE104.ent.ti.com (157.170.170.34) by DLEE115.ent.ti.com (157.170.170.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Tue, 7 May 2019 15:11:53 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DLEE104.ent.ti.com (157.170.170.34) 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; Tue, 7 May 2019 15:11:53 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id x47KBru0032620; Tue, 7 May 2019 15:11:53 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy Subject: [PATCH v4 3/6] mfd: ti-lmu: Add LM36274 support to the ti-lmu Date: Tue, 7 May 2019 15:11:56 -0500 Message-ID: <20190507201159.13940-4-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190507201159.13940-1-dmurphy@ti.com> References: <20190507201159.13940-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 register support to the ti-lmu MFD driver. Signed-off-by: Dan Murphy --- drivers/mfd/Kconfig | 5 ++--- drivers/mfd/ti-lmu.c | 14 ++++++++++++++ include/linux/mfd/ti-lmu-register.h | 23 +++++++++++++++++++++++ include/linux/mfd/ti-lmu.h | 4 ++++ 4 files changed, 43 insertions(+), 3 deletions(-) -- 2.21.0.5.gaeb582a983 diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index fcae244229b3..5606411038bb 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -1311,9 +1311,8 @@ config MFD_TI_LMU select REGMAP_I2C help Say yes here to enable support for TI LMU chips. - - TI LMU MFD supports LM3532, LM3631, LM3632, LM3633, and LM3695. - It consists of backlight, LED and regulator driver. + TI LMU MFD supports LM3532, LM3631, LM3632, LM3633, LM3695 and + LM36274. It consists of backlight, LED and regulator driver. It provides consistent device controls for lighting functions. config MFD_OMAP_USB_HOST diff --git a/drivers/mfd/ti-lmu.c b/drivers/mfd/ti-lmu.c index 89b1c5b584af..691ab9dd6236 100644 --- a/drivers/mfd/ti-lmu.c +++ b/drivers/mfd/ti-lmu.c @@ -111,6 +111,17 @@ static const struct mfd_cell lm3695_devices[] = { }, }; +static const struct mfd_cell lm36274_devices[] = { + LM363X_REGULATOR(LM36274_BOOST), + LM363X_REGULATOR(LM36274_LDO_POS), + LM363X_REGULATOR(LM36274_LDO_NEG), + { + .name = "lm36274-leds", + .id = LM36274, + .of_compatible = "ti,lm36274-backlight", + }, +}; + #define TI_LMU_DATA(chip, max_reg) \ static const struct ti_lmu_data chip##_data = \ { \ @@ -123,6 +134,7 @@ TI_LMU_DATA(lm3631, LM3631_MAX_REG); TI_LMU_DATA(lm3632, LM3632_MAX_REG); TI_LMU_DATA(lm3633, LM3633_MAX_REG); TI_LMU_DATA(lm3695, LM3695_MAX_REG); +TI_LMU_DATA(lm36274, LM36274_MAX_REG); static int ti_lmu_probe(struct i2c_client *cl, const struct i2c_device_id *id) { @@ -191,6 +203,7 @@ static const struct of_device_id ti_lmu_of_match[] = { { .compatible = "ti,lm3632", .data = &lm3632_data }, { .compatible = "ti,lm3633", .data = &lm3633_data }, { .compatible = "ti,lm3695", .data = &lm3695_data }, + { .compatible = "ti,lm36274", .data = &lm36274_data }, { } }; MODULE_DEVICE_TABLE(of, ti_lmu_of_match); @@ -200,6 +213,7 @@ static const struct i2c_device_id ti_lmu_ids[] = { { "lm3632", LM3632 }, { "lm3633", LM3633 }, { "lm3695", LM3695 }, + { "lm36274", LM36274 }, { } }; MODULE_DEVICE_TABLE(i2c, ti_lmu_ids); diff --git a/include/linux/mfd/ti-lmu-register.h b/include/linux/mfd/ti-lmu-register.h index 76998b01764b..076d8dea38fd 100644 --- a/include/linux/mfd/ti-lmu-register.h +++ b/include/linux/mfd/ti-lmu-register.h @@ -189,4 +189,27 @@ #define LM3695_REG_BRT_MSB 0x14 #define LM3695_MAX_REG 0x14 + +/* LM36274 */ +#define LM36274_REG_REV 0x01 +#define LM36274_REG_BL_CFG_1 0x02 +#define LM36274_REG_BL_CFG_2 0x03 +#define LM36274_REG_BRT_LSB 0x04 +#define LM36274_REG_BRT_MSB 0x05 +#define LM36274_REG_BL_EN 0x08 + +#define LM36274_REG_BIAS_CONFIG_1 0x09 +#define LM36274_EXT_EN_MASK BIT(0) +#define LM36274_EN_VNEG_MASK BIT(1) +#define LM36274_EN_VPOS_MASK BIT(2) + +#define LM36274_REG_BIAS_CONFIG_2 0x0a +#define LM36274_REG_BIAS_CONFIG_3 0x0b +#define LM36274_REG_VOUT_BOOST 0x0c +#define LM36274_REG_VOUT_POS 0x0d +#define LM36274_REG_VOUT_NEG 0x0e +#define LM36274_VOUT_MASK 0x3F + +#define LM36274_MAX_REG 0x13 + #endif diff --git a/include/linux/mfd/ti-lmu.h b/include/linux/mfd/ti-lmu.h index 54e9d272e81c..0957598c7d41 100644 --- a/include/linux/mfd/ti-lmu.h +++ b/include/linux/mfd/ti-lmu.h @@ -26,6 +26,7 @@ enum ti_lmu_id { LM3632, LM3633, LM3695, + LM36274, LMU_MAX_ID, }; @@ -67,6 +68,9 @@ enum lm363x_regulator_id { LM3632_BOOST, /* Boost output */ LM3632_LDO_POS, /* Positive display bias output */ LM3632_LDO_NEG, /* Negative display bias output */ + LM36274_BOOST, /* Boost output */ + LM36274_LDO_POS, /* Positive display bias output */ + LM36274_LDO_NEG, /* Negative display bias output */ }; /** From patchwork Tue May 7 20:11:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163552 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp1788116ilm; Tue, 7 May 2019 13:12:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqyowsI7tEX3P5rmywj9nV5S1LJVrabYNNxIAt8AzUf3otknXgLDS1oKDlgguiVMANT6APD1 X-Received: by 2002:a17:902:266:: with SMTP id 93mr42808904plc.201.1557259930939; Tue, 07 May 2019 13:12:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557259930; cv=none; d=google.com; s=arc-20160816; b=FR0aTpwHRYIa4fSEN6fjC0SBwTbRUrcu6D21djYIZTHDknklAModIg3OkG66VQPqVp co1IT3tgdBsRDdixD0uztQTGM6dnfOCs+UyTE0PjzeitpoGdeGwUl6miFT0RaDlMuNbF X0RhkofVYIxZA8qrP5Qkamuzt4rqz+xW3BrM6Gh2jyNWQgDj41NQmxLAaWHEGzFEGSGC AO2vjCIdWySrovkxg6dsjLY6g4vcDfLgzMDWg/kuaZraesHPS5is+rzVAm56F7qdDXng urIk5CNgiNhf3zsYMqFOYat1oYk0KYVNKD/RUsND+X7qWFxhbEtXuCfllGqllTLf15Ry NytQ== 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=itExORL3KdLT3HQGYDuVv7awOOxxOEGDK+mdWtGGt8g=; b=GB6uQX8N8JVUgl+wmLFYAT6QR/Iy1XlY8jlgbU7EKpALl/JMT+sSH9bJvxjGZyysas yVFj8iIgqpn3BlUxc73o43q9IfUa+VjJ01INjAOcHWEUfae0zs2QCPxnuYmR8M6qbLdW K0FKVSNJiwP62EgWrDUpW6oE7NVgNeXTPvptKmqecf/bC9/fmJX6RvXb5a1Za6HSuxmY 0tmBSStalks5Qa26dr/Uhs3hlDTfxu3T5vQHwmsx/xUWJVqonyJttIMIFd6j18jdVvU+ 0R/GCmQK6PvpuI3zYrkugIBTOgHDhqB0DrATjHCXvxqA393qma28BRP9izHxoYgRNsKl YHzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=hZOZ38E9; 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 g17si922406plo.229.2019.05.07.13.12.10; Tue, 07 May 2019 13:12:10 -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=hZOZ38E9; 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 S1727149AbfEGUMJ (ORCPT + 30 others); Tue, 7 May 2019 16:12:09 -0400 Received: from lelv0143.ext.ti.com ([198.47.23.248]:46134 "EHLO lelv0143.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727123AbfEGUMI (ORCPT ); Tue, 7 May 2019 16:12:08 -0400 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by lelv0143.ext.ti.com (8.15.2/8.15.2) with ESMTP id x47KBs7q003405; Tue, 7 May 2019 15:11:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557259914; bh=itExORL3KdLT3HQGYDuVv7awOOxxOEGDK+mdWtGGt8g=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=hZOZ38E9irJM7FYIVr01cqnh8/IWg7BRsdA/RddDAUW+lqkg4fCVDQnhuWdn8/3Ng XB69qIIc/YIr7Nx/zUK0RZxTWK3EQyLX1arinpoPJ1Go104yYeq2Bi8p9hyNliXIDZ cDC9K20SjdZrnDNfvos8s7XneJKFzqex2SWL3iRQ= Received: from DLEE113.ent.ti.com (dlee113.ent.ti.com [157.170.170.24]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x47KBs9X102938 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 7 May 2019 15:11:54 -0500 Received: from DLEE104.ent.ti.com (157.170.170.34) 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; Tue, 7 May 2019 15:11:54 -0500 Received: from fllv0040.itg.ti.com (10.64.41.20) by DLEE104.ent.ti.com (157.170.170.34) 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; Tue, 7 May 2019 15:11:54 -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 x47KBsk6013909; Tue, 7 May 2019 15:11:54 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy Subject: [PATCH v4 4/6] regulator: lm363x: Add support for LM36274 Date: Tue, 7 May 2019 15:11:57 -0500 Message-ID: <20190507201159.13940-5-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190507201159.13940-1-dmurphy@ti.com> References: <20190507201159.13940-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 --- 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 Tue May 7 20:11:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163555 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp1788326ilm; Tue, 7 May 2019 13:12:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqw5N7G/DawNB5kKvLCCMUgpM0jeI1syPkmF9bTZpDTMP7n7oPRhAHbY13EEKAuIhn+kkP9z X-Received: by 2002:a17:902:74cc:: with SMTP id f12mr15786648plt.213.1557259941758; Tue, 07 May 2019 13:12:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557259941; cv=none; d=google.com; s=arc-20160816; b=WB33Lyc2BQx2+/QR0vj8ktYTZO438fSKIePqFYizGf1HccoVcD2KgJ7eh4216k4osj cLD7xEa4cVvvZr/HdMlMYH6zRHWV9bD24dyeFkhtHdNTIGA6C67IrsCvSle8vnPlSHGz LMzeXrUnIcd8nMUDyyPdsnugN96Y32LNN37nwbtp2JfTBM5/K/OdqT2XarYop+AP2prS d/ZnoZtUUkDvlvhBbW9LFc9azdAS2r4fJNmx+bdGkilk/Cg7reL4PNc7oCk9UcEa+ub7 OThZ29NafU2sNWl1qjMzTXd9S4yCf/4c4kTyGuKFzirSOoDONZek0D2Uci4nHqnUOkeF vGVg== 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=DRVV299Ci0j5Cexq/cMMqdAHfnEZfgwA2Ei4XT3yojQ=; b=LUuVvJD0D3PEB/kpySB5EPFECYxjgeBTFaKjlBHdAMZ3MxJq33gaTbjMuLCyTVhLSw tTHMRWdhHMHOrGDDSVI5aTEYIlYzShsKVfD0ESqcAKA2tA94ntXXlu2r5t/8+nO4FOtY AQEY/kvVzeRvuLOiwZrRY6MvKcTfdeB4JXQ8oGQ0kUAJ0sEgMYS+uyVxC10PsG2Ah7DP mcW4MKyanaY2DBd0cKwMG7OiC5do9y0B/TRrYKeQzitdf1ZuRTUNUK3vJgzBbvQUhOZ7 06Dmv4LzZL4cgjyW6jmlhGMZyq6I5Qiiq1ENytrHFTf+mXepWphw90aboVwLU4rdbleC oYPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=jCcHdaJi; 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 v19si18741974pgi.141.2019.05.07.13.12.21; Tue, 07 May 2019 13:12:21 -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=jCcHdaJi; 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 S1727190AbfEGUMV (ORCPT + 30 others); Tue, 7 May 2019 16:12:21 -0400 Received: from fllv0016.ext.ti.com ([198.47.19.142]:41396 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727175AbfEGUMU (ORCPT ); Tue, 7 May 2019 16:12:20 -0400 Received: from fllv0034.itg.ti.com ([10.64.40.246]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id x47KBstm103342; Tue, 7 May 2019 15:11:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557259914; bh=DRVV299Ci0j5Cexq/cMMqdAHfnEZfgwA2Ei4XT3yojQ=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=jCcHdaJiK3MjW2FiK0JDtu07d9nFt93s/OMe+9158m9QT895X6WMxJ2a8JWIglS3u x2vADdrS34bpFGmUE4Sg6WhQvZKK/RM4XOG5ixcvlHVxrVrsVSfSX0gXpk/sSafsxn nzP3Ykov1/Bf6eRaHu4N21l2uLJeIE3a0+0bGE2w= Received: from DFLE115.ent.ti.com (dfle115.ent.ti.com [10.64.6.36]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x47KBslq104702 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 7 May 2019 15:11:54 -0500 Received: from DFLE111.ent.ti.com (10.64.6.32) 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; Tue, 7 May 2019 15:11:54 -0500 Received: from lelv0327.itg.ti.com (10.180.67.183) 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 via Frontend Transport; Tue, 7 May 2019 15:11:54 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by lelv0327.itg.ti.com (8.15.2/8.15.2) with ESMTP id x47KBscb035474; Tue, 7 May 2019 15:11:54 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy , Rob Herring Subject: [PATCH v4 5/6] dt-bindings: leds: Add LED bindings for the LM36274 Date: Tue, 7 May 2019 15:11:58 -0500 Message-ID: <20190507201159.13940-6-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190507201159.13940-1-dmurphy@ti.com> References: <20190507201159.13940-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 LED specific bindings. Reviewed-by: Rob Herring Signed-off-by: Dan Murphy --- .../devicetree/bindings/leds/leds-lm36274.txt | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Documentation/devicetree/bindings/leds/leds-lm36274.txt -- 2.21.0.5.gaeb582a983 diff --git a/Documentation/devicetree/bindings/leds/leds-lm36274.txt b/Documentation/devicetree/bindings/leds/leds-lm36274.txt new file mode 100644 index 000000000000..329393700191 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/leds-lm36274.txt @@ -0,0 +1,82 @@ +* Texas Instruments LM36274 4-Channel LCD Backlight Driver w/Integrated Bias + +The LM36274 is an integrated four-channel WLED driver and LCD bias supply. +The backlight boost provides the power to bias four parallel LED strings with +up to 29V total output voltage. The 11-bit LED current is programmable via +the I2C bus and/or controlled via a logic level PWM input from 60 μA to 30 mA. + +Parent device properties are documented in ../mfd/ti_lmu.txt +Regulator properties are documented in ../regulator/lm363x-regulator.txt + +Required backlight properties: + - compatible: + "ti,lm36274-backlight" + - reg : 0 + - #address-cells : 1 + - #size-cells : 0 + - led-sources : Indicates which LED strings will be enabled. + Values from 0-3, sources is 0 based so strings will be + source value + 1. + +Optional backlight properties: + - label : see Documentation/devicetree/bindings/leds/common.txt + - linux,default-trigger : + see Documentation/devicetree/bindings/leds/common.txt + +Example: + +HVLED string 1 and 3 are controlled by control bank A and HVLED 2 string is +controlled by control bank B. + +lm36274@11 { + compatible = "ti,lm36274"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x11>; + + enable-gpios = <&gpio1 28 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"; + }; + }; +}; + +For more product information please see the link below: +http://www.ti.com/lit/ds/symlink/lm36274.pdf From patchwork Tue May 7 20:11:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163554 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp1788257ilm; Tue, 7 May 2019 13:12:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqzhd9+F7kszr+Xc7/u/rWzEZPOltm0N8AePp+LlF+73j6RWpX52ZVgV+F8ukx/lVgMSfbeT X-Received: by 2002:a17:902:8507:: with SMTP id bj7mr21059539plb.214.1557259938191; Tue, 07 May 2019 13:12:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557259938; cv=none; d=google.com; s=arc-20160816; b=VHg3LIfpJc9yEmNozckZPepG6ymq5C43IFU2bLN/UjYLRGTm0MuoWhPjbViVWfH8do pPINu3cUINrPXYg/x48uYqbr2YWpJBvvqq+n+MUMd2C5q/+ONdypVNczDEeATs8uxdXc 3zJ4GAS7ZEG0IS6+kMgqo8TYtd1bi9s6s/hpqOKJjOizHl4Sqzhd0yV5n3Uj6txn/3LM g1K+V2yTONANvLkseRGk7bwjWPbK2V7wpvA8TMJCC9BT7NU+88iuwZzR/tL7r83JLqTN NehVqAn1SubbDB93cSck1C+kr4SCmD1Jx/hhf/CGNTqG6zy5Dna6pVbTfiUN/Badu/Cx huKA== 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=m4RFJ9RmVWrEHlU3lwMVq4m46Orb+tuVXVAz3ATT0Po=; b=y+mmddCp922eFUcxgODLMuCAZe7j/XuRrZmI5BNFchwggQtN+DxBGLfHIpkXsP9Sik 2vygILm5UH2As6gykBmFjDyeTGEghXIdYsRCWHXu+XzvzYU1TZqqnn+15htJ7GY23+fS w4rcyY7zs8t2ci9Geb9ZUb+T3K0Y0cvKPW1FF3JEM/AUn2aWTy9+uMIE9Davdlr4Rudo aj+TIx0pq9kImshmMgp+Et1utgrHqfwWCoJVyggyiyZagvXqr7dQIEjY4UgjSPGZbXaf yxYROOLYw4yf53Z8sjvajoJoUNaXplRh7AaC8ODxSwhAa5OLsO7Qf1+6ceLN7sMmhO7H QYrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=iqF3ankW; 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 v19si18741974pgi.141.2019.05.07.13.12.17; Tue, 07 May 2019 13:12:18 -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=iqF3ankW; 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 S1727173AbfEGUMR (ORCPT + 30 others); Tue, 7 May 2019 16:12:17 -0400 Received: from lelv0142.ext.ti.com ([198.47.23.249]:59486 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726225AbfEGUMJ (ORCPT ); Tue, 7 May 2019 16:12:09 -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 x47KBtQw088558; Tue, 7 May 2019 15:11:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557259915; bh=m4RFJ9RmVWrEHlU3lwMVq4m46Orb+tuVXVAz3ATT0Po=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=iqF3ankW/J8HIuIuA/CWAjZmBUTOwdfkCK3y37QCzPumsmjxtBE4xTCwuAV6SqzdG Ft5VtePGrm3DoN6HuOQlsXuY5Vb9k2snWH9KGemWH5Q3UrlSQIXJLynn4UCBrgcAZT BQWri0G3CGogJFqN7Js3pVKfy0Aib9Npj7mDNDGw= 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 x47KBtHD108681 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 7 May 2019 15:11:55 -0500 Received: from DFLE102.ent.ti.com (10.64.6.23) 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; Tue, 7 May 2019 15:11:54 -0500 Received: from fllv0040.itg.ti.com (10.64.41.20) by DFLE102.ent.ti.com (10.64.6.23) 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; Tue, 7 May 2019 15:11:54 -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 x47KBsZG013913; Tue, 7 May 2019 15:11:54 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy Subject: [PATCH v4 6/6] leds: lm36274: Introduce the TI LM36274 LED driver Date: Tue, 7 May 2019 15:11:59 -0500 Message-ID: <20190507201159.13940-7-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190507201159.13940-1-dmurphy@ti.com> References: <20190507201159.13940-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 (Lighting Management Unit) LED common framework to set the brightness bits. Signed-off-by: Dan Murphy --- drivers/leds/Kconfig | 7 ++ drivers/leds/Makefile | 1 + drivers/leds/leds-lm36274.c | 174 ++++++++++++++++++++++++++++++++++++ 3 files changed, 182 insertions(+) create mode 100644 drivers/leds/leds-lm36274.c -- 2.21.0.5.gaeb582a983 diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index 255fdd5e8491..db83a3feca01 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -791,6 +791,13 @@ 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. + comment "LED Triggers" source "drivers/leds/trigger/Kconfig" diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile index 8ab825c8b5c3..c229432b7fe7 100644 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile @@ -82,6 +82,7 @@ obj-$(CONFIG_LEDS_SC27XX_BLTC) += leds-sc27xx-bltc.o obj-$(CONFIG_LEDS_LM3601X) += leds-lm3601x.o obj-$(CONFIG_LEDS_TI_LMU_COMMON) += leds-ti-lmu-common.o obj-$(CONFIG_LEDS_LM3697) += leds-lm3697.o +obj-$(CONFIG_LEDS_LM36274) += leds-lm36274.o # LED SPI Drivers obj-$(CONFIG_LEDS_CR0014114) += leds-cr0014114.o diff --git a/drivers/leds/leds-lm36274.c b/drivers/leds/leds-lm36274.c new file mode 100644 index 000000000000..b47786d36d21 --- /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");