From nobody Thu Apr 9 13:57:09 2026 Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11174285056 for ; Sun, 8 Mar 2026 01:56:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772934983; cv=none; b=gIZva6HGxnkBlrWmhUmBwmu4kgXPdBsqf9+MgUr+n2XPcL1QotDKJPr4rz8y2TrKCxr1wlOI88jImcPqtGpDr8GXlBO2YSzN9NJeLWO4E0imBVWpTYnMGhe/CJyHbtHDoJvpVlfZi5ih4VOaFxXOz0lQo67fRGdC9cW5ZdAvgyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772934983; c=relaxed/simple; bh=wihT8f2B57JCAW4+hnTQatiO39AokSGgcJkHwOJkhIo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VRCaEU3yPiXh/r/BS1ogCAmZKzDfdR6aox+EMqKCpqJ+AEuIIROnSF9YB6FtNe2gqwuKcP/l4gIOGGrcSIOvkPw6Z19PsrclJm9+i0zejwSKCD5cmMJXVktGxtK5I8MkuBl836CDdcXydEmTH8QcAF4KftMTkDZETyegC+ffkCE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GX/zlQjF; arc=none smtp.client-ip=209.85.219.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GX/zlQjF" Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-89a44a4baf1so3461876d6.3 for ; Sat, 07 Mar 2026 17:56:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772934980; x=1773539780; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uVzNmWbW6cP/6PYv9jBlbu21HDCAtNdYngPdNFBqaQY=; b=GX/zlQjFiQyf+Gb3Yaxhyx5qNKj9gmD9vOR2heHy/JKvrH2ImaBPmT8qRrz+EoP8ls MjB+CIuwf6n77UsRcz2tDtNR+9fZ5t220Mq48ZyI8kGIUwblfGvm7rDkoOgPf7rv8WSw b13vUW/i90WDSoG7ueX7iTHkT0+dYsbR82Yzt0jZbiOC6tUMDOecXSPaJNCja5kUbvzH oBUvfAYItoSwmir+FYkv2udzxr9TkQJ5bxx1Yv6Odrygwtwd/VYypgCeWp2Q97NgGeyX ROZlCH50Mj1NolPstP/mG3o+eB5Ck29Yl5yh+mPcIYr2JrtuFQ05rgD/xBVzZPcW35s/ usfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772934980; x=1773539780; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uVzNmWbW6cP/6PYv9jBlbu21HDCAtNdYngPdNFBqaQY=; b=BGAzn5s/HTItFQuC8mZokPtkh3WZIKA+/8wJPaS6nb7SGN93iXIoPM8bhwWgfGIcu9 qWz9w9FVq3jXgSpq2Dx/QLXJ1mtxF1zY/kwzaN1pxGwJ0wOY3hArjgKyEvii0yRWtpiv LR7qI3aTOVeHzCaGAYjrj6L2nZSdB68NHy0M0UXmoC5BzHsbiyAJG6X9SP7fmjYsydY+ 1UKs61UJW4XH2FYeRXxe+WI+AXDItPIGhwGuNCfslMtDUfNhic9QIyxgR1PGgBZg1/hd TCfkoevpiaHoEToxKrQCc/VCwJWPI5vCDpOh4w/oWJ36DvPumRyLTnxKqCfq6Dlyu3CX yJiQ== X-Forwarded-Encrypted: i=1; AJvYcCUPyKmmFsUWpVkfxXNb+NmtFvZqym8Hs1m6KRvWbAclyKdx1EZRQMuMJLria6IfNZ5FmLqOxRtBoD+XktQ=@vger.kernel.org X-Gm-Message-State: AOJu0Ywsfy7Tl1d99vjrKTn3FZB5zB3sjyE6hO03M/+wxVyjfVR0lO2N sex9dojCaywXaRPBshccvTgD2RtpZwvJ1EPkVAkNwY1JZPBRDyYVezuYpGcW7g== X-Gm-Gg: ATEYQzx7/45IMAFMHsfDVGFNWz0pr8zjL3kTyQOMPeCcI1PPzzlT+4liRIdi8BB7sqM NgH7oSr2T2vLetzdUr7dX3vElkHXkZKcHzipA6wgshVG48a6kgBmuf5lQ/7KfyMpU2R6MmM0UYT Epyf8my5NIQPj8ZLsIdhCcXmKpaD/K8MTsBcWyl/zZR3k9iaZBF3TJ/of3UIyGtMHGUGP9Ehj8F 6symhSp9UwaS94wKrjSTGpKcOtDxn1wYQGlEQOUNQQtv3MDh8kK27pZ8oTrFkgspW8HY96HOutb mm9xVRP+q3lmACyrz7i4/6BvwhGVx3CFOuKr+AkUAAaRzVDZaJa+V2HKkvaOdS8sH5A5z30Q/S6 NOp0uXuhtGMKC6PXhJWdGZqKGKVyH+euN6Z34ogQIsqNcALyjoHamoSel2J27I8DvDu0Aekfzik qo/NR00apWi1HjzGHhOi/1ls2k2EhFEiL1vEKzPCTS2R7UyS54mcM= X-Received: by 2002:a05:620a:470b:b0:8a1:b5ab:bbd6 with SMTP id af79cd13be357-8cd6d4fb49fmr916484985a.71.1772934979988; Sat, 07 Mar 2026 17:56:19 -0800 (PST) Received: from localhost.localdomain ([202.63.77.193]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8cd6f57291esm447786985a.50.2026.03.07.17.56.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Mar 2026 17:56:19 -0800 (PST) From: Bevan Weiss To: Lee Jones , Pavel Machek Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, Bevan Weiss Subject: [PATCH v2 1/1] leds: syscon: Add tristate option Date: Sun, 8 Mar 2026 12:56:04 +1100 Message-ID: <20260308015604.2318336-2-bevan.weiss@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260308015604.2318336-1-bevan.weiss@gmail.com> References: <20260308015604.2318336-1-bevan.weiss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This reverts commit f7d98a65d031 ("leds: syscon: Make the driver explicitly non-modular"). OpenWrt builds with a single .config for a given subtarget, whilst boards below that subtarget may not want to carry the disk usage of all options. So there is a preference to have all functionality not required on all boards as modules that can simply not be included in a given board rootfs to reduce disk usage. Additional changes: - (int)(struct platform_device *pdev) =3D> void return - Add MODULE_DESCRIPTION and MODULE_LICENSE macros - Add tristate option to Kconfig Signed-off-by: Bevan Weiss --- drivers/leds/Kconfig | 4 ++-- drivers/leds/leds-syscon.c | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index 597d7a79c988..ea3afc76a9c6 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -903,8 +903,8 @@ config LEDS_POWERNV will be called leds-powernv. =20 config LEDS_SYSCON - bool "LED support for LEDs on system controllers" - depends on LEDS_CLASS=3Dy + tristate "LED support for LEDs on system controllers" + depends on LEDS_CLASS depends on MFD_SYSCON depends on OF help diff --git a/drivers/leds/leds-syscon.c b/drivers/leds/leds-syscon.c index d633ad519d0c..bc968e8a326d 100644 --- a/drivers/leds/leds-syscon.c +++ b/drivers/leds/leds-syscon.c @@ -6,7 +6,7 @@ * Author: Linus Walleij */ #include -#include +#include #include #include #include @@ -121,17 +121,31 @@ static int syscon_led_probe(struct platform_device *p= dev) return 0; } =20 +static void syscon_led_remove(struct platform_device *pdev) +{ + struct syscon_led *sled =3D platform_get_drvdata(pdev); + + led_classdev_unregister(&sled->cdev); + /* Turn it off */ + regmap_update_bits(sled->map, sled->offset, sled->mask, 0); +} + static const struct of_device_id of_syscon_leds_match[] =3D { { .compatible =3D "register-bit-led", }, {}, }; =20 +MODULE_DEVICE_TABLE(of, of_syscon_leds_match); + static struct platform_driver syscon_led_driver =3D { .probe =3D syscon_led_probe, + .remove =3D syscon_led_remove, .driver =3D { .name =3D "leds-syscon", .of_match_table =3D of_syscon_leds_match, - .suppress_bind_attrs =3D true, }, }; -builtin_platform_driver(syscon_led_driver); +module_platform_driver(syscon_led_driver); + +MODULE_DESCRIPTION("SYSCON LED driver"); +MODULE_LICENSE("GPL"); --=20 2.43.0