From patchwork Wed Nov 1 14:24:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Rokosov X-Patchwork-Id: 160555 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:abcd:0:b0:403:3b70:6f57 with SMTP id f13csp459561vqx; Wed, 1 Nov 2023 07:25:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFIEEChgGjmYMaRVqNq+cbB5uNp5TYUd216E3nL/EhXCCtf8giCmBOkUu3wS61RhXffqhTo X-Received: by 2002:a17:90a:db92:b0:27f:df1a:caab with SMTP id h18-20020a17090adb9200b0027fdf1acaabmr14340780pjv.21.1698848746524; Wed, 01 Nov 2023 07:25:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698848746; cv=none; d=google.com; s=arc-20160816; b=UlSgLORx8zQcay0ivuZSgTscOLLoUQj/hbG/u7KH1NdMNNIshhZl/ArBVTSml77YtO 44LA1JWPqBNpwiXxUADQsQ3/+kfZGdghNn3CG1Ab75Q069hL6KHtA5dR+TXpqpIJI4AZ gJcayo1T4o4sYdFOJoUitA5mY7PLNxaoVALe2YoFnEOnO5V6MdnPYlEuZFNdVt+KyYt+ JzKKTdsS3XBdeDssCzkZQZupUj25PcpDUA6X+/4fPzACK5aEGEjGERgvPhqM8THDupGe t64wvYh+PH3MUN5rFrZGF+4YJz2M0F30nfeJZd9sK6qZzQJ7Aoblt84HZVTmT8KJJ5gy Onzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=6LKl7eLtMceiITPalU7PJalYT/n5u2oPAhHsbeQUVTs=; fh=sORWI5m16YEVk6NuaHBH7AzDgvChSOROlmEzxQvCLqs=; b=lMwt7nAHGArZ1JJ4RYlzxOQ+M01OsbkVrswf4USGe5fWSOiPvSx6qceyuhHlbH+KPb cDuoe86WZ50jRXh7kMPCgm5/of+CgdmS8zKLvQEcRL5FxhLE9eyiNs4aKc+0i7Z9klXt xdtMTn0a2IakjJBlzfB5/ZMlb07pJ+sItmM+qjQxXbRDVUqahrRLEZNKfwcG9/Aw3+PD Q7y5AxGFjIFkKVbMR5Ij+jTEjFBMpKhnsulZxRw9GCeqJz8FmdsnJKTco3IsJ8yhvzvz g77g/lX6OeZs6MHB0ncO132JFxFRD3L/JjU/MAEgU7yL9zTzsCHjwjhmYpeLXXwdmmi7 0tYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@salutedevices.com header.s=mail header.b=RPhCWIhL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=salutedevices.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id h3-20020a17090aa88300b00280cd49099asi613102pjq.46.2023.11.01.07.25.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Nov 2023 07:25:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@salutedevices.com header.s=mail header.b=RPhCWIhL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=salutedevices.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 8B1798106806; Wed, 1 Nov 2023 07:25:22 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344480AbjKAOZR (ORCPT + 35 others); Wed, 1 Nov 2023 10:25:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344209AbjKAOZG (ORCPT ); Wed, 1 Nov 2023 10:25:06 -0400 Received: from mx1.sberdevices.ru (mx1.sberdevices.ru [37.18.73.165]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DAE3111; Wed, 1 Nov 2023 07:25:00 -0700 (PDT) Received: from p-infra-ksmg-sc-msk01 (localhost [127.0.0.1]) by mx1.sberdevices.ru (Postfix) with ESMTP id B165C100024; Wed, 1 Nov 2023 17:24:58 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.sberdevices.ru B165C100024 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=salutedevices.com; s=mail; t=1698848698; bh=6LKl7eLtMceiITPalU7PJalYT/n5u2oPAhHsbeQUVTs=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From; b=RPhCWIhL4l4iyOIcdr+a2E7hmIi21yOeL1c7lAw/BByELi2eSkqtufYYQhZxt4lIQ npuuQnm6R6Tvlul2ghspRi1SauF9X6LPjxxELkT9GnHrURDmrey5KZEZ1GfEz3X2C0 5aEd4yC3QvQo6ZZu5OVo5DGtlpSrzpNc6Wzvr16Mc1R6inixm688zeFlWU6IwE9dwa GsjCd02WavZ9mBOPi92alIrlezGpUe76+3SnzHcz8p5aQnaiBrsyxzG/2SfgqOrR9a QNbmr0QVepH+iAZt/NVQDwFKZ6voJyjkVy1iT7yXMGsnTmXQDF/GTkiY559e5BOuDR nU487UoXBtHiA== Received: from p-i-exch-sc-m01.sberdevices.ru (p-i-exch-sc-m01.sberdevices.ru [172.16.192.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.sberdevices.ru (Postfix) with ESMTPS; Wed, 1 Nov 2023 17:24:58 +0300 (MSK) Received: from localhost.localdomain (100.64.160.123) by p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.37; Wed, 1 Nov 2023 17:24:57 +0300 From: Dmitry Rokosov To: , , , , , CC: , , , , , George Stark , Dmitry Rokosov Subject: [PATCH v3 04/11] leds: aw200xx: calculate dts property display_rows in the driver Date: Wed, 1 Nov 2023 17:24:38 +0300 Message-ID: <20231101142445.8753-5-ddrokosov@salutedevices.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20231101142445.8753-1-ddrokosov@salutedevices.com> References: <20231101142445.8753-1-ddrokosov@salutedevices.com> MIME-Version: 1.0 X-Originating-IP: [100.64.160.123] X-ClientProxiedBy: p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) To p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) X-KSMG-Rule-ID: 10 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Lua-Profiles: 181053 [Nov 01 2023] X-KSMG-AntiSpam-Version: 6.0.0.2 X-KSMG-AntiSpam-Envelope-From: ddrokosov@salutedevices.com X-KSMG-AntiSpam-Rate: 0 X-KSMG-AntiSpam-Status: not_detected X-KSMG-AntiSpam-Method: none X-KSMG-AntiSpam-Auth: dkim=none X-KSMG-AntiSpam-Info: LuaCore: 543 543 1e3516af5cdd92079dfeb0e292c8747a62cb1ee4, {Tracking_from_domain_doesnt_match_to}, 127.0.0.199:7.1.2;salutedevices.com:7.1.1;p-i-exch-sc-m01.sberdevices.ru:5.0.1,7.1.1;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;100.64.160.123:7.1.2, FromAlignment: s, ApMailHostAddress: 100.64.160.123 X-MS-Exchange-Organization-SCL: -1 X-KSMG-AntiSpam-Interceptor-Info: scan successful X-KSMG-AntiPhishing: Clean X-KSMG-LinksScanning: Clean X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.0.1.6960, bases: 2023/11/01 13:00:00 #22378131 X-KSMG-AntiVirus-Status: Clean, skipped X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 01 Nov 2023 07:25:22 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781372023324377854 X-GMAIL-MSGID: 1781372023324377854 From: George Stark Get rid of device tree property "awinic,display-rows". The property value actually means number of current switches and depends on how leds are connected to the device. It should be calculated manually by max used led number. In the same way it is computed automatically now. Max used led is taken from led definition subnodes. Signed-off-by: George Stark Signed-off-by: Dmitry Rokosov --- drivers/leds/leds-aw200xx.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/drivers/leds/leds-aw200xx.c b/drivers/leds/leds-aw200xx.c index 7762b3a132ac..aab8898b0330 100644 --- a/drivers/leds/leds-aw200xx.c +++ b/drivers/leds/leds-aw200xx.c @@ -379,6 +379,26 @@ static void aw200xx_disable(const struct aw200xx *const chip) return gpiod_set_value_cansleep(chip->hwen, 0); } +static bool aw200xx_probe_get_display_rows(struct device *dev, struct aw200xx *chip) +{ + struct fwnode_handle *child; + u32 max_source = 0; + + device_for_each_child_node(dev, child) { + u32 source; + int ret; + + ret = fwnode_property_read_u32(child, "reg", &source); + if (ret || source >= chip->cdef->channels) + continue; + + max_source = max(max_source, source); + } + + chip->display_rows = max_source / chip->cdef->display_size_columns + 1; + return !!chip->display_rows; +} + static int aw200xx_probe_fw(struct device *dev, struct aw200xx *chip) { struct fwnode_handle *child; @@ -386,18 +406,9 @@ static int aw200xx_probe_fw(struct device *dev, struct aw200xx *chip) int ret; int i; - ret = device_property_read_u32(dev, "awinic,display-rows", - &chip->display_rows); - if (ret) - return dev_err_probe(dev, ret, - "Failed to read 'display-rows' property\n"); - - if (!chip->display_rows || - chip->display_rows > chip->cdef->display_size_rows_max) { - return dev_err_probe(dev, ret, - "Invalid leds display size %u\n", - chip->display_rows); - } + if (!aw200xx_probe_get_display_rows(dev, chip)) + return dev_err_probe(dev, -EINVAL, + "No valid led definitions found\n"); current_max = aw200xx_imax_from_global(chip, AW200XX_IMAX_MAX_uA); current_min = aw200xx_imax_from_global(chip, AW200XX_IMAX_MIN_uA);