From patchwork Sat Sep 19 05:31:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexander Dahl X-Patchwork-Id: 255381 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3BE90C43465 for ; Sat, 19 Sep 2020 05:45:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0BAD820758 for ; Sat, 19 Sep 2020 05:45:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726321AbgISFpj (ORCPT ); Sat, 19 Sep 2020 01:45:39 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:59377 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726054AbgISFpj (ORCPT ); Sat, 19 Sep 2020 01:45:39 -0400 Received: from methusalix.internal.home.lespocky.de ([92.117.44.159]) by mrelayeu.kundenserver.de (mreue107 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N0nOF-1ke2RV0sfF-00wooU; Sat, 19 Sep 2020 07:32:20 +0200 Received: from lemmy.internal.home.lespocky.de ([192.168.243.176] helo=lemmy.home.lespocky.de) by methusalix.internal.home.lespocky.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1kJVTt-0004nF-K2; Sat, 19 Sep 2020 07:32:18 +0200 Received: (nullmailer pid 7641 invoked by uid 2001); Sat, 19 Sep 2020 05:32:17 -0000 From: Alexander Dahl To: linux-leds@vger.kernel.org, devicetree@vger.kernel.org Cc: Jacek Anaszewski , Pavel Machek , Dan Murphy , Rob Herring , linux-kernel@vger.kernel.org, Peter Ujfalusi , =?utf-8?q?Marek_Beh=C3=BAn?= , Alexander Dahl , Alexander Dahl , Denis Osterland-Heim Subject: [PATCH v5 1/3] leds: pwm: Remove platform_data support Date: Sat, 19 Sep 2020 07:31:43 +0200 Message-Id: <20200919053145.7564-2-post@lespocky.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200919053145.7564-1-post@lespocky.de> References: <20200919053145.7564-1-post@lespocky.de> MIME-Version: 1.0 X-Scan-Signature: 4bf9351666375fa7ad51de20efbfb169 X-Provags-ID: V03:K1:ZapwOjmSjjVYc3LmLhMI3dSVtvP2XiO/5ktb3Tr2uTUx0YpWQPt t1eZHLdQadXU+YYjDWSA1BJD3onv11nsn4VGz+dl4rNkHZsSrgwAAZkVffoAj3en7Y3Dcxn WDOxyHDuYOwtodFrTnGsCKN6UWsqlhelLySCHfFcdXrH4xRjW0y1aWWdl7gT8osNfVekBFf Psp3QF9uFsysCmTEuRa+A== X-UI-Out-Filterresults: notjunk:1; V03:K0:NE+LY5/+wtw=:jynDN0i9tG/sDxNaF6gynw PgX3yUk1FwMiMfQkZdhFC8nZp9FjQsZieR23OglQYhIQaPMqopX+e/E2LxfNknkH861xeppCR iveS7zRrrRmLMvoJZbp80jOmW1m7eJqzSIb9Afleb3YXpdNofJb3nWfTYKsDBIjHDFe6hHlVl ZL+VwDPOTue3WpTNkOcJVu5Ys0CL5eH2YlHYvowaotuRaVjH4DXjsviDSdP/A+D8pj8eV/GZT uFXkAnr0b/gAds1cZ0PdZr8a3DPtrGtCX/0qPCBNnT9JqCnSttMcNk9ya17VG8W/os+l0npgu w11jXxM+/Omjf5r080Lmmtyoa6U6osUW8vMU8vduXydUgQs5cXr4QHHn+4h4EmHi6DTCjcgLu YeOufNwkUNke5OxocG7IjyBPZnltxi31NAyeT0LAU9//o3mwjEBtEwlH8j2YprwpQNMYG+Shh IfLPzsevktz+ejHt3iefN7xCz2ZDKSMYitpsDwbHenFkLZDDtd+2B5guWT7EkGRWxK+HkOaxr XEkgInirybe9IrqvZUFAIWiSbOducCQT8S7Adph+ryWxlyHBD9o4eniQ7Sl8/lB9Za50OILD9 sna9wKePjjnLbP0xuRPPGM5wI3GghPEMgl1CCkicEHnlqTeRLKQ8qK+/nQV/99mHn/hlVu0X6 vnN9vdlgrHzBg12HUaj1ge275B8r6VFgYHrONMNjeofc+HLniPNXaRD6isqVJxRISylGAGcv1 nMdLFNyPpTvUWKw8kFeMjuhHeNMNSiN1P4WdXFXor8Ebnz/mWdpDfMX5d/B8oeoqdTNDGDsCC szjg+Crgdf0R11l1+QDvAPY88Rf5eta9E23YIaBgLOTF98vQDMVgi6R/G5k/0XnkLHJe32J Precedence: bulk List-ID: X-Mailing-List: linux-leds@vger.kernel.org Since commit 141f15c66d94 ("leds: pwm: remove header") that platform interface is not usable from outside and there seems to be no in tree user anymore. All in-tree users of the leds-pwm driver seem to use DT currently. Getting rid of the old platform interface will allow the leds-pwm driver to switch over from 'devm_led_classdev_register()' to 'devm_led_classdev_register_ext()' later. Signed-off-by: Alexander Dahl Cc: Denis Osterland-Heim Cc: Marek Behún Reviewed-by: Marek Behún --- Notes: v5: * added this patch to series (replacing another patch with a not working, different approach) drivers/leds/leds-pwm.c | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/drivers/leds/leds-pwm.c b/drivers/leds/leds-pwm.c index e35a97c1d828..4e9954f8f7eb 100644 --- a/drivers/leds/leds-pwm.c +++ b/drivers/leds/leds-pwm.c @@ -25,11 +25,6 @@ struct led_pwm { unsigned int max_brightness; }; -struct led_pwm_platform_data { - int num_leds; - struct led_pwm *leds; -}; - struct led_pwm_data { struct led_classdev cdev; struct pwm_device *pwm; @@ -61,6 +56,7 @@ static int led_pwm_set(struct led_classdev *led_cdev, return pwm_apply_state(led_dat->pwm, &led_dat->pwmstate); } +__attribute__((nonnull)) static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv, struct led_pwm *led, struct fwnode_handle *fwnode) { @@ -74,10 +70,7 @@ static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv, led_data->cdev.max_brightness = led->max_brightness; led_data->cdev.flags = LED_CORE_SUSPENDRESUME; - if (fwnode) - led_data->pwm = devm_fwnode_pwm_get(dev, fwnode, NULL); - else - led_data->pwm = devm_pwm_get(dev, led->name); + led_data->pwm = devm_fwnode_pwm_get(dev, fwnode, NULL); if (IS_ERR(led_data->pwm)) return dev_err_probe(dev, PTR_ERR(led_data->pwm), "unable to request PWM for %s\n", @@ -143,15 +136,11 @@ static int led_pwm_create_fwnode(struct device *dev, struct led_pwm_priv *priv) static int led_pwm_probe(struct platform_device *pdev) { - struct led_pwm_platform_data *pdata = dev_get_platdata(&pdev->dev); struct led_pwm_priv *priv; - int count, i; int ret = 0; + int count; - if (pdata) - count = pdata->num_leds; - else - count = device_get_child_node_count(&pdev->dev); + count = device_get_child_node_count(&pdev->dev); if (!count) return -EINVAL; @@ -161,16 +150,7 @@ static int led_pwm_probe(struct platform_device *pdev) if (!priv) return -ENOMEM; - if (pdata) { - for (i = 0; i < count; i++) { - ret = led_pwm_add(&pdev->dev, priv, &pdata->leds[i], - NULL); - if (ret) - break; - } - } else { - ret = led_pwm_create_fwnode(&pdev->dev, priv); - } + ret = led_pwm_create_fwnode(&pdev->dev, priv); if (ret) return ret; From patchwork Sat Sep 19 05:31:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexander Dahl X-Patchwork-Id: 255382 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1B972C43463 for ; Sat, 19 Sep 2020 05:38:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E7636207D3 for ; Sat, 19 Sep 2020 05:38:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726293AbgISFiD (ORCPT ); Sat, 19 Sep 2020 01:38:03 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:35647 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726119AbgISFiD (ORCPT ); Sat, 19 Sep 2020 01:38:03 -0400 X-Greylist: delayed 312 seconds by postgrey-1.27 at vger.kernel.org; Sat, 19 Sep 2020 01:38:02 EDT Received: from methusalix.internal.home.lespocky.de ([92.117.44.159]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MAtoX-1kCfqh2xQ1-00BLrK; Sat, 19 Sep 2020 07:32:30 +0200 Received: from lemmy.internal.home.lespocky.de ([192.168.243.176] helo=lemmy.home.lespocky.de) by methusalix.internal.home.lespocky.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1kJVTv-0004nL-2Z; Sat, 19 Sep 2020 07:32:28 +0200 Received: (nullmailer pid 7650 invoked by uid 2001); Sat, 19 Sep 2020 05:32:18 -0000 From: Alexander Dahl To: linux-leds@vger.kernel.org, devicetree@vger.kernel.org Cc: Jacek Anaszewski , Pavel Machek , Dan Murphy , Rob Herring , linux-kernel@vger.kernel.org, Peter Ujfalusi , =?utf-8?q?Marek_Beh=C3=BAn?= , Alexander Dahl , Alexander Dahl Subject: [PATCH v5 2/3] leds: pwm: Allow automatic labels for DT based devices Date: Sat, 19 Sep 2020 07:31:44 +0200 Message-Id: <20200919053145.7564-3-post@lespocky.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200919053145.7564-1-post@lespocky.de> References: <20200919053145.7564-1-post@lespocky.de> MIME-Version: 1.0 X-Scan-Signature: 09af0b23b5b967e4a9b70abe2712470c X-Provags-ID: V03:K1:0ROL4hCNah2uLQm6AeiHUgcNWsVO18uCbMk7h8IfdBnTQ7ZBM/h cloPvjgiH2stTOVhu0HWMffuADoAL0QA+zuvDrbAM9v60EkR1SG95xf4xys/mQYmgjORqJ1 I6/six9CnKdg11rdqQF4wv+xEbxg2t/lKTlNfEht2gYTsybdYKSZsxmZTvBKyVDuXGXazQt b5A+V6jP3bcKlikfe7sVg== X-UI-Out-Filterresults: notjunk:1; V03:K0:CQr5XYCP1Hk=:4dlZ+SN/2rAP/OxMoXeTn1 DkuvohQXqsSkzFnzxZdkSmjoKArGUV5YazbClPMl7jIj0U2ipjsVz4dTbDw1kPjDM4onTQNiS rH7kHHMlOnJBZnQSfd+US3AazVqFAQJgOqp99WkwwPu5OLVetP0R+eFPlpH8iUM7PQYcPnp5K i06MGTDpl5y1tbWsyc3iA4UPx2HJ2kPAKCa7TpCLQHxXyj01kQ2phuHvs7Sbi535mZh5mWuFG sm4iJQ66nTbgxqUUpWrxzB2lzyB5H3Xk5iDsGKvrNmD4Nm6l1RpM2gNcSlWRP3m/N76xRRQal p5TslcyVzTYMjMQZ/LcVfse7kf4/4RLtZcH/suL5XpE+A+z8AGmC8uctYPcJpJ2xXXYA+avgK BgraezcFuVem57Mtv7hU05cP+vphdQBfjB+UM5QyzuRnMWWraag/WxYSnNmF5RA7ZknGaEsTX wmtyEXyNW40Fl8lM6ETVlRorSsA/EM2T6l2rW8kv/FYm+O5SHi4SbAH9J5qZ5pRvtaArDGlz6 GEmqsvJ2v/AQECq5FrI11Vw3ggm0C6w8muQPTQnbNy66n9jomGS+OE4SInmJ8U85j4jdA0SOs RVvWjYYyJpAo4QTiREIqMppsWg85aRLFAKj+H+O4R1xobC7df6Mb/8xG9F+FgTVJbNJIU5vaI XfYAt7O9tiS0/rBv6w8H4Xgc1mhD2+vzyuIycIS87SX1R+9ARsyvtKHB2PgCWc7dTCctCJGKI Rfx3lD0jZzlm8swC7CVwhVR+r2Hl1jaRhqB/IEWoYmxtjXIeUBIoUITeBDFfAfZg63fO/k1PB 4zMbyN9z6IQ9RLtJSjfdQIFZGNtpeR1hGgK9qGwY/fckk7070MXtw0hdlt83P6mR3y/Hlxf Precedence: bulk List-ID: X-Mailing-List: linux-leds@vger.kernel.org If LEDs are configured through device tree and the property 'label' is omitted, the label is supposed to be generated from the properties 'function' and 'color' if present. While this works fine for e.g. the 'leds-gpio' driver, it did not for 'leds-pwm'. The reason is, you get this label naming magic only if you add a LED device through 'devm_led_classdev_register_ext()' and pass a pointer to the current device tree node. For the following node from dts the LED appeared as 'led-5' in sysfs before and as 'red:debug' after this change. pwm_leds { compatible = "pwm-leds"; led-5 { function = LED_FUNCTION_DEBUG; color = ; pwms = <&pwm0 2 10000000 0>; max-brightness = <127>; linux,default-trigger = "heartbeat"; panic-indicator; }; }; Signed-off-by: Alexander Dahl Cc: Marek Behún --- Notes: v4 -> v5: * updated commit message v3 -> v4: * simplified implementation based on a new change in led-core * removed Acked-by due to changed implementation v2 -> v3: * added Acked-by v1 -> v2: * no change to this patch drivers/leds/leds-pwm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/leds/leds-pwm.c b/drivers/leds/leds-pwm.c index 4e9954f8f7eb..8881d465701d 100644 --- a/drivers/leds/leds-pwm.c +++ b/drivers/leds/leds-pwm.c @@ -61,6 +61,7 @@ static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv, struct led_pwm *led, struct fwnode_handle *fwnode) { struct led_pwm_data *led_data = &priv->leds[priv->num_leds]; + struct led_init_data init_data = { .fwnode = fwnode }; int ret; led_data->active_low = led->active_low; @@ -80,7 +81,7 @@ static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv, pwm_init_state(led_data->pwm, &led_data->pwmstate); - ret = devm_led_classdev_register(dev, &led_data->cdev); + ret = devm_led_classdev_register_ext(dev, &led_data->cdev, &init_data); if (ret) { dev_err(dev, "failed to register PWM led for %s: %d\n", led->name, ret);