Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp2455106ybi; Sun, 9 Jun 2019 12:12:26 -0700 (PDT) X-Google-Smtp-Source: APXvYqwZIsUuiqKtzKiI9iaw1Bp7c+jo6Ko/pfoJsLdnipCSMf8kJtHLZPoP+jYwFU41iIrAU+DX X-Received: by 2002:a63:1919:: with SMTP id z25mr12782549pgl.440.1560107546447; Sun, 09 Jun 2019 12:12:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560107546; cv=none; d=google.com; s=arc-20160816; b=oDkq/HFg4mHrMPerFPqtT8T31CSBgMQY35SiDBlbLv5PYbzU3+XRcOKykQP+gd89Lb NI6C3xNKj3I32VEQrqJuPoUHsFfUetQkO6LR0elubEKvAv3yznlpNnnmAdBnFwwUQUQL zrumpqPH3tIaTyGyg3XnogIiyoCMHPFPw/jB6L5tJRZsRCfRDZ5lIRm9GHqsCx6erEGu R1xCk+KlH7iZFMZHbrhetGrl46miH4H+XspAqb+xEWbAZdJJY+DKzMOEVQOcgG0THUKe WKzVSgXfriBxeotzH10+ROVjHVZdWa32KA1lfld2iQ6oQvDc6cUiVOI8IK6BfPoHdDhQ /Ppg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=Zb0S+kv68PgG+pBeAnbaHOnFNrsLe1KdA3qhUfCq5K0=; b=UMrP5R7O5ptndrx9UU7Xi5FyAKySf6ucK4H7MZpMDW0kvHbir5c9fk8qYiMvWL7iOP SyGhC/vRjxGOhrPvWvi/IjvlpBt55bzTyG40j8i/HG2PlTmy5ScVPwa0VWnkqgDztNaF W647+fxhDvH3nAZ+b3+9FQPPhiRqtBdYmBLPiAg+tyyaBIWRfUisfPvE7mofL8T8H5eG tzScXeF6Cg4OlzNbimlkaOlFARketCLegbDNBmWhGKei4pUQGCdMMBy+AYkLIMLtmgvO XVxlzdG3wQTIh39u13sfpE5iiYaqXKwNwdefdLOQ9vmgXcdKdZ9ysVH8TM9kh21sgqQu C+AA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=D8GCkkr4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o3si7444923pgp.183.2019.06.09.12.12.10; Sun, 09 Jun 2019 12:12:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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=@gmail.com header.s=20161025 header.b=D8GCkkr4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731138AbfFITJy (ORCPT + 99 others); Sun, 9 Jun 2019 15:09:54 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:46133 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730458AbfFITIz (ORCPT ); Sun, 9 Jun 2019 15:08:55 -0400 Received: by mail-wr1-f67.google.com with SMTP id n4so6933172wrw.13; Sun, 09 Jun 2019 12:08:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Zb0S+kv68PgG+pBeAnbaHOnFNrsLe1KdA3qhUfCq5K0=; b=D8GCkkr4TkYAWnJp+fnC2QxWsMtm21fqIolXl29pd3lXnNi1M4Wf0t69fxgb/Txjzl Cr6zrl0DJUiat6+rb3MEvsyiZPLdBM1ZEnhEtYiEPAbd9eONhVFyjcrafE/mZW/SAd4M UGTXzJOHeOwN7lOeJDirvQo1lyZUUUyFEo9tMkIlYKIaSB2d4BQR+SLHfmnH+o8j/ca5 vr3jyDRGDqaE2RFEPy0OQdjclf8Wb90q0UvL37BoQ6wBFBB/X3hdw04t+z+mRxwoP6y8 sydWTYSTgicOAK7UJz8bDWINM1UZoNqhCTeVMXs3R1CjmCI19ndxLyEo58ZuV4w0UtI4 wm0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Zb0S+kv68PgG+pBeAnbaHOnFNrsLe1KdA3qhUfCq5K0=; b=mYeGvh8PfUDjBqdzcpg75lJNI1knCkGFfuAwtnnoXYkBggq7+uG6sKEp4As/mNnOB9 pC56v5MuIgr6Sibx4Eqxea69ESh3nSc2KbxDCtQCuMATvnH+zTzGcX8qGzN+Z1m/da6Z OfnwUg5MVzBYbyZ8owFQAlWA8k6FfLdmw4MWC5Ufk4qq3MkhjC2h1IcdCvQTJ4jWZ71U csXqRvJIczn2ZlLTXGtCLccQFLmVpCVQfr2HPzb6sTW8fJpYadIgEeDwxgK+GDNzxNlO 1KpdlbGcHD0NzSb7V+F25jteTkgGMW6Qab85Im/y+LyJb7hN9iwwIPqmnCf0N1H7e+xT E6RQ== X-Gm-Message-State: APjAAAWropQG2zoSyRapxNDANxHz/JXxK50FT1hfpw8KaW9DOED8TGAD lwPGcliIEHUl6XlA4U0P0lZSB6KQ X-Received: by 2002:a05:6000:1289:: with SMTP id f9mr3775360wrx.125.1560107333026; Sun, 09 Jun 2019 12:08:53 -0700 (PDT) Received: from myhost.home (ckm12.neoplus.adsl.tpnet.pl. [83.31.88.12]) by smtp.gmail.com with ESMTPSA id y38sm14725041wrd.41.2019.06.09.12.08.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Jun 2019 12:08:52 -0700 (PDT) From: Jacek Anaszewski To: linux-leds@vger.kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, pavel@ucw.cz, robh@kernel.org, dtor@google.com, linux@roeck-us.net, dmurphy@ti.com, jacek.anaszewski@gmail.com Subject: [PATCH v5 15/26] leds: lm3601x: Use generic support for composing LED names Date: Sun, 9 Jun 2019 21:07:52 +0200 Message-Id: <20190609190803.14815-16-jacek.anaszewski@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190609190803.14815-1-jacek.anaszewski@gmail.com> References: <20190609190803.14815-1-jacek.anaszewski@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Switch to using generic LED support for composing LED class device name. Signed-off-by: Jacek Anaszewski Tested-by: Dan Murphy Acked-by: Pavel Machek --- drivers/leds/leds-lm3601x.c | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/drivers/leds/leds-lm3601x.c b/drivers/leds/leds-lm3601x.c index 081aa71e43a3..b02972f1a341 100644 --- a/drivers/leds/leds-lm3601x.c +++ b/drivers/leds/leds-lm3601x.c @@ -10,7 +10,6 @@ #include #include #include -#include #define LM3601X_LED_IR 0x0 #define LM3601X_LED_TORCH 0x1 @@ -90,8 +89,6 @@ struct lm3601x_led { struct regmap *regmap; struct mutex lock; - char led_name[LED_MAX_NAME_SIZE]; - unsigned int flash_timeout; unsigned int last_flag; @@ -322,10 +319,12 @@ static const struct led_flash_ops flash_ops = { .fault_get = lm3601x_flash_fault_get, }; -static int lm3601x_register_leds(struct lm3601x_led *led) +static int lm3601x_register_leds(struct lm3601x_led *led, + struct fwnode_handle *fwnode) { struct led_classdev *led_cdev; struct led_flash_setting *setting; + struct led_init_data init_data = {}; led->fled_cdev.ops = &flash_ops; @@ -342,20 +341,25 @@ static int lm3601x_register_leds(struct lm3601x_led *led) setting->val = led->flash_current_max; led_cdev = &led->fled_cdev.led_cdev; - led_cdev->name = led->led_name; led_cdev->brightness_set_blocking = lm3601x_brightness_set; led_cdev->max_brightness = DIV_ROUND_UP(led->torch_current_max, LM3601X_TORCH_REG_DIV); led_cdev->flags |= LED_DEV_CAP_FLASH; - return led_classdev_flash_register(&led->client->dev, &led->fled_cdev); + init_data.fwnode = fwnode; + init_data.devicename = led->client->name; + init_data.default_label = (led->led_mode == LM3601X_LED_TORCH) ? + "torch" : "infrared"; + + return led_classdev_flash_register_ext(&led->client->dev, + &led->fled_cdev, &init_data); } -static int lm3601x_parse_node(struct lm3601x_led *led) +static int lm3601x_parse_node(struct lm3601x_led *led, + struct fwnode_handle **fwnode) { struct fwnode_handle *child = NULL; int ret = -ENODEV; - const char *name; child = device_get_next_child_node(&led->client->dev, child); if (!child) { @@ -376,17 +380,6 @@ static int lm3601x_parse_node(struct lm3601x_led *led) goto out_err; } - ret = fwnode_property_read_string(child, "label", &name); - if (ret) { - if (led->led_mode == LM3601X_LED_TORCH) - name = "torch"; - else - name = "infrared"; - } - - snprintf(led->led_name, sizeof(led->led_name), - "%s:%s", led->client->name, name); - ret = fwnode_property_read_u32(child, "led-max-microamp", &led->torch_current_max); if (ret) { @@ -411,6 +404,8 @@ static int lm3601x_parse_node(struct lm3601x_led *led) goto out_err; } + *fwnode = child; + out_err: fwnode_handle_put(child); return ret; @@ -419,6 +414,7 @@ static int lm3601x_parse_node(struct lm3601x_led *led) static int lm3601x_probe(struct i2c_client *client) { struct lm3601x_led *led; + struct fwnode_handle *fwnode; int ret; led = devm_kzalloc(&client->dev, sizeof(*led), GFP_KERNEL); @@ -428,7 +424,7 @@ static int lm3601x_probe(struct i2c_client *client) led->client = client; i2c_set_clientdata(client, led); - ret = lm3601x_parse_node(led); + ret = lm3601x_parse_node(led, &fwnode); if (ret) return -ENODEV; @@ -442,7 +438,7 @@ static int lm3601x_probe(struct i2c_client *client) mutex_init(&led->lock); - return lm3601x_register_leds(led); + return lm3601x_register_leds(led, fwnode); } static int lm3601x_remove(struct i2c_client *client) -- 2.11.0