Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1116401rwb; Fri, 7 Oct 2022 08:18:28 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4P6gJY1z/Fdl3wc+CseRrNqeDTh+my4wLmVq7hqmZJX+ALnzof//HB2ehRURX3/lQxjvro X-Received: by 2002:a17:906:eec9:b0:73d:c369:690f with SMTP id wu9-20020a170906eec900b0073dc369690fmr4502336ejb.767.1665155908590; Fri, 07 Oct 2022 08:18:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665155908; cv=none; d=google.com; s=arc-20160816; b=ENel+Hw0UNZHwl2Xbtlmb9eUcyF5u8hEc2p7OR3XgtWVJbDVEQpOQbLWlHFULBD3DU OUUs27eqvY6NRjPQRnalkQQstod89NegTdY2h3z7geR2yDFX5FlSAyoW9v+Ly70/nVDu 8lGj7NL/fjlBUA7uaeSPFZemyhojtWBX2R2R5KkNpO9H8BKQbnKz7LHu9FtMsb5SWQ3I +CRzbyul70mQHW9Zt6dQltrb0//hl60Yzt2zunatjmS2o/IhWNHSK6eieXsOKQMWNvsf 2Lf2ksCQynV/g8AmkP3MH4LnLYyE87yBGghg0A3679U0Hn8xXI3SSdRx/qrnq7WU80V5 CJ7g== 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 :message-id:date:subject:cc:to:from; bh=/dFMaQa9aI9KhTGAplfezKOTC8zLEJRmbY+EkJ3yu0A=; b=ZwVV0/GRWmMVm78rSx8BIkPZHEa4Oz2TsozkJsjTuC5KcFj5lasaylb7Wc/xTEJPp7 2OA7PMRT/9LLga0EQyfAPpbU3NUqNw87MBEmGjnHFzKnfR4pEQ2Epiak4/a0ER+7WAOg FOqiBakmweVkRziaCwvzqJugxhyNA2o8smLb9tNRHxFNGW20IRV0cJdePW8ZoBWfWlV7 +vGBE21c4sp2krB9M1fXEoSUV9Tg0z5SW74cthjcKJhUFbB8Onvh1rm5kRoUCipPnysz qSvCKpt7DE/KI9Bz9Qf5n4Y2iidR/10gtkOYRDwGr3x2dBdnwkIcGpdpQH8llsrKmkM+ OOOQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hg7-20020a1709072cc700b007303db545e6si2535511ejc.786.2022.10.07.08.18.03; Fri, 07 Oct 2022 08:18:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229605AbiJGO4z (ORCPT + 99 others); Fri, 7 Oct 2022 10:56:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229737AbiJGO4x (ORCPT ); Fri, 7 Oct 2022 10:56:53 -0400 Received: from smtpout1.mo528.mail-out.ovh.net (smtpout1.mo528.mail-out.ovh.net [46.105.34.251]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7E33B03D3; Fri, 7 Oct 2022 07:56:51 -0700 (PDT) Received: from pro2.mail.ovh.net (unknown [10.109.146.13]) by mo528.mail-out.ovh.net (Postfix) with ESMTPS id 9374512E155B2; Fri, 7 Oct 2022 16:56:49 +0200 (CEST) Received: from localhost.localdomain (88.161.25.233) by DAG1EX1.emp2.local (172.16.2.1) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12; Fri, 7 Oct 2022 16:56:48 +0200 From: Jean-Jacques Hiblot To: , , , , CC: , , , , , , , , Jean-Jacques Hiblot Subject: [PATCH v4 0/6] Add a multicolor LED driver for groups of monochromatic LEDs Date: Fri, 7 Oct 2022 16:56:35 +0200 Message-ID: <20221007145641.3307075-1-jjhiblot@traphandler.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [88.161.25.233] X-ClientProxiedBy: CAS1.emp2.local (172.16.1.1) To DAG1EX1.emp2.local (172.16.2.1) X-Ovh-Tracer-Id: 4481363105489435099 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvfedrfeeijedgkeefucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucenucfjughrpefhvfevufffkffoggfgtghisehtkeertdertddtnecuhfhrohhmpeflvggrnhdqlfgrtghquhgvshcujfhisghlohhtuceojhhjhhhisghlohhtsehtrhgrphhhrghnughlvghrrdgtohhmqeenucggtffrrghtthgvrhhnpeejuefhkeelgffhlefhtefhgeektdevvdfgkeeltdehgeeujeeutdehkeeuhffftdenucfkpheptddrtddrtddrtddpkeekrdduiedurddvhedrvdeffeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphhouhhtpdhhvghlohepphhrohdvrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomhepjhhjhhhisghlohhtsehtrhgrphhhrghnughlvghrrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdfovfetjfhoshhtpehmohehvdek X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE 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 Some HW design implement multicolor LEDs with several monochromatic LEDs. Grouping the monochromatic LEDs allows to configure them in sync and use the triggers. The PWM multicolor LED driver implements such grouping but only for PWM-based LEDs. As this feature is also desirable for the other types of LEDs, this series implements it for any kind of LED device. changes v2->v3, only minor changes: - rephrased the Kconfig descritpion - make the sysfs interface of underlying LEDs read-only only if the probe is successful. - sanitize the header files - removed the useless call to dev_set_drvdata() - use dev_fwnode() to get the fwnode to the device. changes v1->v2: - Followed Rob Herrings's suggestion to make the dt binding much simpler. - Added a patch to store the color property of a LED in its class structure (struct led_classdev). Jean-Jacques Hiblot (6): devres: provide devm_krealloc_array() leds: class: simplify the implementation of devm_of_led_get() leds: provide devm_of_led_get_optional() leds: class: store the color index in struct led_classdev dt-bindings: leds: Add binding for a multicolor group of LEDs leds: Add a multicolor LED driver to group monochromatic LEDs Documentation/ABI/testing/sysfs-class-led | 9 ++ .../bindings/leds/leds-group-multicolor.yaml | 64 ++++++++ drivers/leds/led-class.c | 65 ++++++-- drivers/leds/rgb/Kconfig | 10 ++ drivers/leds/rgb/Makefile | 1 + drivers/leds/rgb/leds-group-multicolor.c | 152 ++++++++++++++++++ include/linux/device.h | 13 ++ include/linux/leds.h | 3 + 8 files changed, 303 insertions(+), 14 deletions(-) create mode 100644 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml create mode 100644 drivers/leds/rgb/leds-group-multicolor.c -- 2.25.1