From patchwork Mon May 6 19:16:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163452 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp359933ilm; Mon, 6 May 2019 12:16:28 -0700 (PDT) X-Google-Smtp-Source: APXvYqzt4CTXxOUtozfRdhDoYk7xV0vi+PzkGbcU+ZFJD90pdt/XoIfFBTfaBzkgU//jo7QwEoGH X-Received: by 2002:a65:44c7:: with SMTP id g7mr29795921pgs.399.1557170188443; Mon, 06 May 2019 12:16:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557170188; cv=none; d=google.com; s=arc-20160816; b=HjVdBwqfwdd9xDMb2OOetT87kSFaRnD/wCiuOCCCEuVUFGgLJ9kXInTXN4iSQ5GN5E oj3dEVShu6lIaE29+tgeTXAGBwqPLv2kkHVS7RBfKM2/kANU5UNbBQKlVERJZpq5KD9v uVQkMc2bG0WAZvBjUllRQjD1vofET7JzVPaPAlEsoTTCyL582t1VlscR/ggU9u7cVuLu m+PDfeP3eFidZcmyrWbv8+3/0DfLgFq1OJFC4yW2wYD9sZ4JbL/GKVzeNAYl+S/XejKQ 9ZmDU0BBjHA//TkThf14ATH6mrqy2mVe6LONMJKU3OstTfdLXLvfe3Crp88w7i9dqk+W aSPQ== 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=UEEu6EW5RKCMxXIvwGPUXJedNiwF4BNlTRlApjnyOo0=; b=ZaZN52pADORxeAXOtQZgz3yq1PGwSBQsnEZrILaiPFhh1ydpjeE2mA4shoQSr69V7u 8uBQRil+3U1TSsK1eC7KBiDJqXeXZEUh34EQKIfiaVrr2n8ACTUO67ri3xk1RxYs7qNG 5NR1fLkXPv2RwhO97dNGhfxUUoFq/ZEme+iN+7IFGFTciIboiyVhdTBU8z3KF51GrO7A t6KSmGCdSdQvETo68TP3JDgPdlFyW196MxcFarlkYZUhzQetx+s88ISv6iq9KEGpIMPP klijDCWkMM7xXrS6sOQrrGcvCvKWavXtK1rjORlXvFYw2t+GjKXeXTL1i01Ixg+zAQka eMsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=zR9YyaRA; spf=pass (google.com: best guess record for domain of linux-leds-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-leds-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 j8si9512944pfh.239.2019.05.06.12.16.28; Mon, 06 May 2019 12:16:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-leds-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=zR9YyaRA; spf=pass (google.com: best guess record for domain of linux-leds-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-leds-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 S1726564AbfEFTQ1 (ORCPT + 1 other); Mon, 6 May 2019 15:16:27 -0400 Received: from fllv0016.ext.ti.com ([198.47.19.142]:45156 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726560AbfEFTQ0 (ORCPT ); Mon, 6 May 2019 15:16:26 -0400 Received: from fllv0035.itg.ti.com ([10.64.41.0]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id x46JG9sb023385; Mon, 6 May 2019 14:16:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557170169; bh=UEEu6EW5RKCMxXIvwGPUXJedNiwF4BNlTRlApjnyOo0=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=zR9YyaRARunEBzIGpN27QGOe6JJHXtji4e6efOfNhTMyqdgk+hLti6PSXtdU3ZuLu MjD8MNHTYhRaTH90kG1lUbx52aJwmKdtpt9mVfJMjaalTToOTvyrkw+8Qbc+pVjfOW QhBXIbPA/VPcIQL7zeIuCFUTp1ojq0EF5iOhGgiM= Received: from DFLE109.ent.ti.com (dfle109.ent.ti.com [10.64.6.30]) by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x46JG94L099373 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 6 May 2019 14:16:09 -0500 Received: from DFLE102.ent.ti.com (10.64.6.23) by DFLE109.ent.ti.com (10.64.6.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Mon, 6 May 2019 14:16:09 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) 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; Mon, 6 May 2019 14:16:09 -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 x46JG9LI090692; Mon, 6 May 2019 14:16:09 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy , Rob Herring Subject: [PATCH v4 2/7] dt-bindings: mfd: LMU: Add the ramp up/down property Date: Mon, 6 May 2019 14:16:09 -0500 Message-ID: <20190506191614.25051-3-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190506191614.25051-1-dmurphy@ti.com> References: <20190506191614.25051-1-dmurphy@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-leds-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-leds@vger.kernel.org Document the ramp-up and ramp-down property in the binding. Removing the "sec" from the property definition as seconds is implied. Reviewed-by: Rob Herring Signed-off-by: Dan Murphy --- v4 - Change property->properties, changed ramp-up/down-ms to ramp-up/down-us - https://lore.kernel.org/patchwork/patch/1068614/ v3 - No changes added Reviewed-by Rob - https://lore.kernel.org/patchwork/patch/1058759/ v2 - Fixed commit message as this was not just a modification but adding documentation https://lore.kernel.org/patchwork/patch/1054504/ .../devicetree/bindings/mfd/ti-lmu.txt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) -- 2.21.0.5.gaeb582a983 diff --git a/Documentation/devicetree/bindings/mfd/ti-lmu.txt b/Documentation/devicetree/bindings/mfd/ti-lmu.txt index 86ca786d54fc..160eb0a5e21a 100644 --- a/Documentation/devicetree/bindings/mfd/ti-lmu.txt +++ b/Documentation/devicetree/bindings/mfd/ti-lmu.txt @@ -23,8 +23,14 @@ Required properties: 0x36 for LM3633, LM3697 0x63 for LM3695 -Optional property: +Optional properties: - enable-gpios: A GPIO specifier for hardware enable pin. + - ramp-up-us: Current ramping from one brightness level to + the a higher brightness level. + Range from 2048 us - 117.44 s + - ramp-down-us: Current ramping from one brightness level to + the a lower brightness level. + Range from 2048 us - 117.44 s Required node: - backlight: All LMU devices have backlight child nodes. @@ -90,7 +96,7 @@ lm3631@29 { lcd_bl { led-sources = <0 1>; - ramp-up-msec = <300>; + ramp-up-us = <300000>; }; }; }; @@ -152,15 +158,15 @@ lm3633@36 { main { label = "main_lcd"; led-sources = <1 2>; - ramp-up-msec = <500>; - ramp-down-msec = <500>; + ramp-up-us = <500000>; + ramp-down-us = <500000>; }; front { label = "front_lcd"; led-sources = <0>; - ramp-up-msec = <1000>; - ramp-down-msec = <0>; + ramp-up-us = <1000000>; + ramp-down-us = <0>; }; }; @@ -212,8 +218,8 @@ lm3697@36 { lcd { led-sources = <0 1 2>; - ramp-up-msec = <200>; - ramp-down-msec = <200>; + ramp-up-us = <200000>; + ramp-down-us = <200000>; }; }; From patchwork Mon May 6 19:16:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163454 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp359958ilm; Mon, 6 May 2019 12:16:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqzmgJCgjsRzT0te3iTeab+7z93tHtGI+dgPJgwWjzIRawscCFBgWa0bWYhHnry4vwOWAtLS X-Received: by 2002:aa7:86c3:: with SMTP id h3mr34674174pfo.169.1557170189597; Mon, 06 May 2019 12:16:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557170189; cv=none; d=google.com; s=arc-20160816; b=N9eeh2ep9l4Rfe2SiKhnw8STlN9R4KseJpyrZQukRmL0fwS3nvvNnhz99gKAFnFVzv x2fJ/M90YWvdnGPLpHYUXg8pZhsXMqb0487NrDt+fZSyw4QDJ97Ge35CmPDy8qqeoPx7 xJNpB0FKhF2tnjV++9OEvzFkKJz1EK1VkrLpzDPbp7GyFeMQaiyU7pCI1o9GosBlUTr4 21a57G4NPtiuy6i+qOLMPyycXJ0ZM2oz7QGfFSZx+ychBH5bHsLVPeYyTouNv2C3Qbkz iA/lALRTGVlguCY/JN2fYgJy/YTxZqIi62WXLMQXrq7njR6U0aiZ+oeRaVisK3mSMgZP LI/g== 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=EOysHEmVprVHbA6cHKUPLGkNbCYJbZUuBPXeor5VM8A=; b=jCuvLav5yuYHQ0pCnfAsbH4uvY21zacoNaRESuq7lVgDgJhOHdyZpq0MNlcS2RQReV kLMGNQQgTYI1Ho7xMSCkx3y5sGcmnfZgistgRip4GI408e/fv7umN+56xRT9gZmuu0im o7Ma1/7+OrJvQ4GIkZC2389V/OHDCOAOAFw2wlIMzVbd0krFI4LjYblYeTSm5vDR7iQe +ijAW2KbZHewb2vWaDQqyNg14LWIGUsbPzughgKD2JtWEd4Q8lmFUE2Zp+/Ao5POuPCS kRFUpUtMtm3Ecmx2PoZMa0y5OgTiVH95hh5Xc2ZVYSf5YREuFcwAXcpyYRFJ3wLS4IeQ TvRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=Tjt7JkG6; spf=pass (google.com: best guess record for domain of linux-leds-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-leds-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 j8si9512944pfh.239.2019.05.06.12.16.29; Mon, 06 May 2019 12:16:29 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-leds-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=Tjt7JkG6; spf=pass (google.com: best guess record for domain of linux-leds-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-leds-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 S1726352AbfEFTQ2 (ORCPT + 1 other); Mon, 6 May 2019 15:16:28 -0400 Received: from fllv0015.ext.ti.com ([198.47.19.141]:52828 "EHLO fllv0015.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726175AbfEFTQZ (ORCPT ); Mon, 6 May 2019 15:16:25 -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 x46JG9gb075436; Mon, 6 May 2019 14:16:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557170169; bh=EOysHEmVprVHbA6cHKUPLGkNbCYJbZUuBPXeor5VM8A=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=Tjt7JkG6HNcnWS3G9wg3FhqCdiA4YJFgvAHC3g5/dLkqNnVft4I+7/DrJNsig3J+3 ESOjNdMRunO2U8SWC0apZR2Jx45SGEpaepW3C/8tPWn8esR9pL8/56Vw1/87pgtI81 YRFynWzKZXY51gyGrj8iwJ1Tgpw/tvKfTR3u6a2o= Received: from DFLE114.ent.ti.com (dfle114.ent.ti.com [10.64.6.35]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x46JG932074985 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 6 May 2019 14:16:09 -0500 Received: from DFLE114.ent.ti.com (10.64.6.35) by DFLE114.ent.ti.com (10.64.6.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Mon, 6 May 2019 14:16:09 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DFLE114.ent.ti.com (10.64.6.35) 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; Mon, 6 May 2019 14:16:09 -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 x46JG9FH077967; Mon, 6 May 2019 14:16:09 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy Subject: [PATCH v4 4/7] leds: TI LMU: Add common code for TI LMU devices Date: Mon, 6 May 2019 14:16:11 -0500 Message-ID: <20190506191614.25051-5-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190506191614.25051-1-dmurphy@ti.com> References: <20190506191614.25051-1-dmurphy@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-leds-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-leds@vger.kernel.org Create a TI LMU common framework for TI LMU devices that share common features. Currently the runtime ramp and brightness setting have been identified as common features with common register settings. This work is derived from Milo Kims TI LMU MFD code. Acked-by: Pavel Machek Signed-off-by: Dan Murphy --- v4 - Renamed the files from ti-lmu-led-common to leds-ti-lmu-common, updated the ramp-up/down variable from ms->us, fixed Kconfig, updated common header name - https://lore.kernel.org/patchwork/patch/1068615/ v3 - No changes - https://lore.kernel.org/patchwork/patch/1058764/ v2 - Added support for the brightness resolution parameter as it is a global parameter for all LMU devices, no other changes were made - https://lore.kernel.org/patchwork/patch/1054500/ drivers/leds/Kconfig | 8 ++ drivers/leds/Makefile | 1 + drivers/leds/leds-ti-lmu-common.c | 156 +++++++++++++++++++++++++++++ include/linux/leds-ti-lmu-common.h | 47 +++++++++ 4 files changed, 212 insertions(+) create mode 100644 drivers/leds/leds-ti-lmu-common.c create mode 100644 include/linux/leds-ti-lmu-common.h -- 2.21.0.5.gaeb582a983 diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index da00b9ed5a5c..a88dad3be96c 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -776,6 +776,14 @@ config LEDS_NIC78BX To compile this driver as a module, choose M here: the module will be called leds-nic78bx. +config LEDS_TI_LMU_COMMON + tristate "LED driver for TI LMU" + depends on REGMAP + 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. + comment "LED Triggers" source "drivers/leds/trigger/Kconfig" diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile index 7a8b1f55d459..9d7cdd363603 100644 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile @@ -80,6 +80,7 @@ obj-$(CONFIG_LEDS_MT6323) += leds-mt6323.o 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_TI_LMU_COMMON) += leds-ti-lmu-common.o # LED SPI Drivers obj-$(CONFIG_LEDS_CR0014114) += leds-cr0014114.o diff --git a/drivers/leds/leds-ti-lmu-common.c b/drivers/leds/leds-ti-lmu-common.c new file mode 100644 index 000000000000..adc7293004f1 --- /dev/null +++ b/drivers/leds/leds-ti-lmu-common.c @@ -0,0 +1,156 @@ +// SPDX-License-Identifier: GPL-2.0 +// Copyright 2015 Texas Instruments +// Copyright 2018 Sebastian Reichel +// Copyright 2018 Pavel Machek +// TI LMU LED common framework, based on previous work from +// Milo Kim + +#include +#include +#include + +#include + +const static int ramp_table[16] = {2048, 262000, 524000, 1049000, 2090000, + 4194000, 8389000, 16780000, 33550000, 41940000, + 50330000, 58720000, 67110000, 83880000, + 100660000, 117440000}; + +static int ti_lmu_common_update_brightness(struct ti_lmu_bank *lmu_bank, + int brightness) +{ + struct regmap *regmap = lmu_bank->regmap; + u8 reg, val; + int ret; + + /* + * Brightness register update + * + * 11 bit dimming: update LSB bits and write MSB byte. + * MSB brightness should be shifted. + * 8 bit dimming: write MSB byte. + */ + if (lmu_bank->max_brightness == MAX_BRIGHTNESS_11BIT) { + reg = lmu_bank->lsb_brightness_reg; + ret = regmap_update_bits(regmap, reg, + LMU_11BIT_LSB_MASK, + brightness); + if (ret) + return ret; + + val = brightness >> LMU_11BIT_MSB_SHIFT; + } else { + val = brightness; + } + + reg = lmu_bank->msb_brightness_reg; + + return regmap_write(regmap, reg, val); +} + +int ti_lmu_common_set_brightness(struct ti_lmu_bank *lmu_bank, int brightness) +{ + return ti_lmu_common_update_brightness(lmu_bank, brightness); +} +EXPORT_SYMBOL(ti_lmu_common_set_brightness); + +static int ti_lmu_common_convert_ramp_to_index(unsigned int usec) +{ + int size = ARRAY_SIZE(ramp_table); + int i; + + if (usec <= ramp_table[0]) + return 0; + + if (usec > ramp_table[size - 1]) + return size - 1; + + for (i = 1; i < size; i++) { + if (usec == ramp_table[i]) + return i; + + /* Find an approximate index by looking up the table */ + if (usec > ramp_table[i - 1] && usec < ramp_table[i]) { + if (usec - ramp_table[i - 1] < ramp_table[i] - usec) + return i - 1; + else + return i; + } + } + + return -EINVAL; +} + +int ti_lmu_common_set_ramp(struct ti_lmu_bank *lmu_bank) +{ + struct regmap *regmap = lmu_bank->regmap; + u8 ramp, ramp_up, ramp_down; + + if (lmu_bank->ramp_up_usec == 0 && lmu_bank->ramp_down_usec == 0) { + ramp_up = 0; + ramp_down = 0; + } else { + ramp_up = ti_lmu_common_convert_ramp_to_index(lmu_bank->ramp_up_usec); + ramp_down = ti_lmu_common_convert_ramp_to_index(lmu_bank->ramp_down_usec); + } + + if (ramp_up < 0 || ramp_down < 0) + return -EINVAL; + + ramp = (ramp_up << 4) | ramp_down; + + return regmap_write(regmap, lmu_bank->runtime_ramp_reg, ramp); + +} +EXPORT_SYMBOL(ti_lmu_common_set_ramp); + +int ti_lmu_common_get_ramp_params(struct device *dev, + struct fwnode_handle *child, + struct ti_lmu_bank *lmu_data) +{ + int ret; + + ret = fwnode_property_read_u32(child, "ramp-up-us", + &lmu_data->ramp_up_usec); + if (ret) + dev_warn(dev, "ramp-up-us property missing\n"); + + + ret = fwnode_property_read_u32(child, "ramp-down-us", + &lmu_data->ramp_down_usec); + if (ret) + dev_warn(dev, "ramp-down-us property missing\n"); + + return 0; +} +EXPORT_SYMBOL(ti_lmu_common_get_ramp_params); + +int ti_lmu_common_get_brt_res(struct device *dev, struct fwnode_handle *child, + struct ti_lmu_bank *lmu_data) +{ + int ret; + + ret = device_property_read_u32(dev, "ti,brightness-resolution", + &lmu_data->max_brightness); + if (ret) + ret = fwnode_property_read_u32(child, + "ti,brightness-resolution", + &lmu_data->max_brightness); + if (lmu_data->max_brightness <= 0) { + lmu_data->max_brightness = MAX_BRIGHTNESS_8BIT; + return ret; + } + + if (lmu_data->max_brightness > MAX_BRIGHTNESS_11BIT) + lmu_data->max_brightness = MAX_BRIGHTNESS_11BIT; + + + return 0; +} +EXPORT_SYMBOL(ti_lmu_common_get_brt_res); + +MODULE_DESCRIPTION("TI LMU common LED framework"); +MODULE_AUTHOR("Sebastian Reichel"); +MODULE_AUTHOR("Dan Murphy "); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("ti-lmu-led-common"); diff --git a/include/linux/leds-ti-lmu-common.h b/include/linux/leds-ti-lmu-common.h new file mode 100644 index 000000000000..5eb111f38803 --- /dev/null +++ b/include/linux/leds-ti-lmu-common.h @@ -0,0 +1,47 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +// TI LMU Common Core +// Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/ + +#ifndef _TI_LMU_COMMON_H_ +#define _TI_LMU_COMMON_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define LMU_11BIT_LSB_MASK (BIT(0) | BIT(1) | BIT(2)) +#define LMU_11BIT_MSB_SHIFT 3 + +#define MAX_BRIGHTNESS_8BIT 255 +#define MAX_BRIGHTNESS_11BIT 2047 + +struct ti_lmu_bank { + struct regmap *regmap; + + int max_brightness; + + u8 lsb_brightness_reg; + u8 msb_brightness_reg; + + u8 runtime_ramp_reg; + u32 ramp_up_usec; + u32 ramp_down_usec; +}; + +int ti_lmu_common_set_brightness(struct ti_lmu_bank *lmu_bank, int brightness); + +int ti_lmu_common_set_ramp(struct ti_lmu_bank *lmu_bank); + +int ti_lmu_common_get_ramp_params(struct device *dev, + struct fwnode_handle *child, + struct ti_lmu_bank *lmu_data); + +int ti_lmu_common_get_brt_res(struct device *dev, struct fwnode_handle *child, + struct ti_lmu_bank *lmu_data); + +#endif /* _TI_LMU_COMMON_H_ */ From patchwork Mon May 6 19:16:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 163453 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:81:0:0:0:0 with SMTP id l1csp359936ilm; Mon, 6 May 2019 12:16:28 -0700 (PDT) X-Google-Smtp-Source: APXvYqyK1qYpQDvf7ogJMF0qDE6YAnU1PDMRGK6TPoAGMMy/MHGEyqajob/1NZwb7Vzr61ki0Jo2 X-Received: by 2002:a17:902:2a:: with SMTP id 39mr34343459pla.64.1557170188657; Mon, 06 May 2019 12:16:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557170188; cv=none; d=google.com; s=arc-20160816; b=xZcqoBC7YSFw+ETBf3wZcChXTB7spL+AQQxaUPREmIXzGDCjkrtXOewemOmd4zmCk7 D3rDwWDa1QbAHHYEwblPu6N7j0O/Nvk7NaXe3MtbcXpkvgOx7nBtHDrU97EA0Au96+zu OCnIYAD1glI8HL5HlMmZY9vM0hRbux1Ug53JNO13I1ZA+dlwKMvfFqpvfxSseE0ofYcQ ydLADbtqkMWvDnhd8nBFl7N64AYg/ujq8J7Oma14De3aJ/IwQrZPY21sL0bvw1BYqMC/ nGpgVPG7zhjcP45frRxkslX3JrYja72xjw3dXYx4shg6a47eQYEFk/z6hiPBWkEJtg6I PUfQ== 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=otLfGOeGObKMgQEnDiF4xGk2Wx0tMDViixhBDAXog6o=; b=Yelk0OhoW3pkX0Knqpf69aAXIzsHsmygVI+Kmylg+c4thRQ4kCg1jDA1PhwQdmGtb1 F6OEduQou3jbH8hVzEcdNBTdAXD7U7xgt3pOycDf4+nyPVZg5YzumtIk+u59SerOSVVD wC196UDcw5aNE87GivsWyPALhvpaxZAneXntonAcQMlXNm4YAE9Vy05k3ycP4vJ+GJRy wTcYMWNR+UtoShWoaOU1UvoLc6N0XML50ZMiVQ5qhE3OCJPstZImK0OqrY90v+v+CWUz v+XaDERyLPYREsKaEUmhcZ2evx+hak3L45vvueEncc1EpI5eNFQ7BrNNWKdaLjIRaFbe iVcw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=XCmyKfKF; spf=pass (google.com: best guess record for domain of linux-leds-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-leds-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 j8si9512944pfh.239.2019.05.06.12.16.28; Mon, 06 May 2019 12:16:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-leds-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=XCmyKfKF; spf=pass (google.com: best guess record for domain of linux-leds-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-leds-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 S1726574AbfEFTQ2 (ORCPT + 1 other); Mon, 6 May 2019 15:16:28 -0400 Received: from fllv0015.ext.ti.com ([198.47.19.141]:52830 "EHLO fllv0015.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726450AbfEFTQ0 (ORCPT ); Mon, 6 May 2019 15:16:26 -0400 Received: from lelv0266.itg.ti.com ([10.180.67.225]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id x46JGAN0075440; Mon, 6 May 2019 14:16:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1557170170; bh=otLfGOeGObKMgQEnDiF4xGk2Wx0tMDViixhBDAXog6o=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=XCmyKfKF24mru4bfIDoNa5/KOE07ALrCFs0D0H/93VQRhuzi2R965DrJHy8zz1Q/9 QhQcRrpfdsUlJXDWWdSlSb/1iSngOMYZDeSuz48Vt9XvmexVtq3nfT2n9a7VktWKS0 MIN7A3ye3kV9ntKQU8L/VZtrQcvRBD62xipUt8AM= Received: from DLEE110.ent.ti.com (dlee110.ent.ti.com [157.170.170.21]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x46JGA8E092533 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 6 May 2019 14:16:10 -0500 Received: from DLEE111.ent.ti.com (157.170.170.22) by DLEE110.ent.ti.com (157.170.170.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Mon, 6 May 2019 14:16:09 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DLEE111.ent.ti.com (157.170.170.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; Mon, 6 May 2019 14:16:09 -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 x46JG9L4090733; Mon, 6 May 2019 14:16:09 -0500 From: Dan Murphy To: , CC: , , , , Dan Murphy , Rob Herring Subject: [PATCH v4 5/7] dt-bindings: ti-lmu: Modify dt bindings for the LM3697 Date: Mon, 6 May 2019 14:16:12 -0500 Message-ID: <20190506191614.25051-6-dmurphy@ti.com> X-Mailer: git-send-email 2.21.0.5.gaeb582a983 In-Reply-To: <20190506191614.25051-1-dmurphy@ti.com> References: <20190506191614.25051-1-dmurphy@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-leds-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-leds@vger.kernel.org The LM3697 is a single function LED driver. The single function LED driver needs to reside in the LED directory as a dedicated LED driver and not as a MFD device. The device does have common brightness and ramp features and those can be accomodated by a TI LMU framework. The LM3697 dt binding needs to be moved from the ti-lmu.txt and a dedicated LED dt binding needs to be added. The new LM3697 LED dt binding will then reside in the Documentation/devicetree/bindings/leds directory and follow the current LED and general bindings guidelines. Reviewed-by: Rob Herring Signed-off-by: Dan Murphy --- v4 - Made assiciated ramp bindings changes and capitalization issue otherwise no change - https://lore.kernel.org/patchwork/patch/1068618/ v3 - No changes added Reviewed-by Rob - https://lore.kernel.org/patchwork/patch/1058762/ v2 - Made changes to reference ti,brightness-resolution to the ti-lmu.txt - https://lore.kernel.org/patchwork/patch/1054501/ .../devicetree/bindings/leds/leds-lm3697.txt | 73 +++++++++++++++++++ .../devicetree/bindings/mfd/ti-lmu.txt | 27 +------ 2 files changed, 74 insertions(+), 26 deletions(-) create mode 100644 Documentation/devicetree/bindings/leds/leds-lm3697.txt -- 2.21.0.5.gaeb582a983 diff --git a/Documentation/devicetree/bindings/leds/leds-lm3697.txt b/Documentation/devicetree/bindings/leds/leds-lm3697.txt new file mode 100644 index 000000000000..63992d732959 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/leds-lm3697.txt @@ -0,0 +1,73 @@ +* Texas Instruments - LM3697 Highly Efficient White LED Driver + +The LM3697 11-bit LED driver provides high- +performance backlight dimming for 1, 2, or 3 series +LED strings while delivering up to 90% efficiency. + +This device is suitable for display and keypad lighting + +Required properties: + - compatible: + "ti,lm3697" + - reg : I2C slave address + - #address-cells : 1 + - #size-cells : 0 + +Optional properties: + - enable-gpios : GPIO pin to enable/disable the device + - vled-supply : LED supply + +Required child properties: + - reg : 0 - LED is Controlled by bank A + 1 - LED is Controlled by bank B + - led-sources : Indicates which HVLED string is associated to which + control bank. This is a zero based property so + HVLED1 = 0, HVLED2 = 1, HVLED3 = 2. + Additional information is contained + in Documentation/devicetree/bindings/leds/common.txt + +Optional child properties: + - ti,brightness-resolution - see Documentation/devicetree/bindings/mfd/ti-lmu.txt + - ramp-up-us: see Documentation/devicetree/bindings/mfd/ti-lmu.txt + - ramp-down-us: see Documentation/devicetree/bindings/mfd/ti-lmu.txt + - 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. + +led-controller@36 { + compatible = "ti,lm3697"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x36>; + + enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>; + vled-supply = <&vbatt>; + + led@0 { + reg = <0>; + led-sources = <0 2>; + ti,brightness-resolution = <2047>; + ramp-up-us = <5000>; + ramp-down-us = <1000>; + label = "white:first_backlight_cluster"; + linux,default-trigger = "backlight"; + }; + + led@1 { + reg = <1>; + led-sources = <1>; + ti,brightness-resolution = <255>; + ramp-up-us = <500>; + ramp-down-us = <1000>; + label = "white:second_backlight_cluster"; + linux,default-trigger = "backlight"; + }; +} + +For more product information please see the link below: +http://www.ti.com/lit/ds/symlink/lm3697.pdf diff --git a/Documentation/devicetree/bindings/mfd/ti-lmu.txt b/Documentation/devicetree/bindings/mfd/ti-lmu.txt index e3efefb194c5..782d3c9812ed 100644 --- a/Documentation/devicetree/bindings/mfd/ti-lmu.txt +++ b/Documentation/devicetree/bindings/mfd/ti-lmu.txt @@ -8,7 +8,6 @@ TI LMU driver supports lighting devices below. LM3632 Backlight and regulator LM3633 Backlight, LED and fault monitor LM3695 Backlight - LM3697 Backlight and fault monitor Required properties: - compatible: Should be one of: @@ -16,11 +15,10 @@ Required properties: "ti,lm3632" "ti,lm3633" "ti,lm3695" - "ti,lm3697" - reg: I2C slave address. 0x11 for LM3632 0x29 for LM3631 - 0x36 for LM3633, LM3697 + 0x36 for LM3633 0x63 for LM3695 Optional properties: @@ -51,7 +49,6 @@ Optional nodes: Required properties: - compatible: Should be one of: "ti,lm3633-fault-monitor" - "ti,lm3697-fault-monitor" - leds: LED properties for LM3633. Please refer to [2]. - regulators: Regulator properties for LM3631 and LM3632. Please refer to [3]. @@ -216,25 +213,3 @@ lm3695@63 { }; }; }; - -lm3697@36 { - compatible = "ti,lm3697"; - reg = <0x36>; - - enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>; - - backlight { - compatible = "ti,lm3697-backlight"; - - lcd { - ti,brightness-resolution = <255>; - led-sources = <0 1 2>; - ramp-up-us = <200000>; - ramp-down-us = <200000>; - }; - }; - - fault-monitor { - compatible = "ti,lm3697-fault-monitor"; - }; -};