Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp183242ybl; Wed, 11 Dec 2019 16:14:42 -0800 (PST) X-Google-Smtp-Source: APXvYqxeeiA6Ks0s5GM8e91pwSIktggMVI5h4AKOiOlybMvMV5Xjltcwq49u+OAXucixfkH/yrzx X-Received: by 2002:a05:6830:16d0:: with SMTP id l16mr4880573otr.176.1576109682680; Wed, 11 Dec 2019 16:14:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576109682; cv=none; d=google.com; s=arc-20160816; b=u6v49imq1R9ub9r4oEBZ6DBw+brdx5IBZULOQ+aecimuYIOzwZMPC7DzRnLJKVgZau iEJyeW/FJkRqQHGzRNU7kcGTaB1PuYbRwmwWKFzr96O/HlUaTqym6l8An1XaF2FQboFj IO3LrImvZrlEVqGqLNSzLCwA58wOTu6RIXhNPLf+zeiRI1NRi0pzZYPIaiPrDD/+eqMg kA+ojn3aTQiDYSQX1KZqsx2oI7fJNGGZ232d8+vyVP2IRFDbu13MguVQlFAa/xpOk9o4 05QESa98QNUf5wMT7uwMzMJTi942aBgVtVpVj5dYxGVKZAKLznjlfh+zNCtmzreHQD3w KJxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=Zjoivcf5gywcmZ5pakiyM4t1dA6cXgq/KOflTI6FfFs=; b=X+03WpxwQB/72AYrZ2IxT9nkwWcHFKvTK61++YVFlXT+W7XW94hFWisFRaviM4BbgQ 0D6dzWMWITlAr9344WhUEDm9YHIrflDTe65pe2AzGl/hInBnf7QK9oLOnv7wKd1R0z69 h7JEVSgRWDQsQ6p94DTdBHEtxXcBvBxSMAvyIQcLiyuQ8oq+MYH8Z7EJyiyuNtcFqv9u b7MiAvYCGLTJgcElLmyqDwUR7DivINiRmgwkHU/mAd0cU9qavcwFnJMNV4s8UXL0DH8+ AtRIuK9R5zJcZE2GSkrZEmwxnbHXzDVapzTSjp9PJY29/RksSbRIfQCpnlwSQZ7bfHeF l+Sg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r1si2030254otq.298.2019.12.11.16.14.30; Wed, 11 Dec 2019 16:14:42 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727323AbfLLANo (ORCPT + 99 others); Wed, 11 Dec 2019 19:13:44 -0500 Received: from mout.kundenserver.de ([212.227.126.187]:56225 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727067AbfLLANo (ORCPT ); Wed, 11 Dec 2019 19:13:44 -0500 Received: from orion.localdomain ([95.118.81.154]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MRk8w-1iHehw16t8-00TE0F; Thu, 12 Dec 2019 01:13:42 +0100 From: "Enrico Weigelt, metux IT consult" To: linux-kernel@vger.kernel.org Cc: dmitry.torokhov@gmail.com, linux-input@vger.kernel.org Subject: [PATCH v4] input: keyboard: gpio_keys_polled: use gpio lookup table Date: Thu, 12 Dec 2019 01:13:11 +0100 Message-Id: <20191212001311.4268-1-info@metux.net> X-Mailer: git-send-email 2.11.0 X-Provags-ID: V03:K1:hzkcK0KVH3HkZ1kB/dsKgamqh1CtK0vjkGCIf569CcCy32nvihO qwLG7k+DkCi9x72Y4mCC8ze4vjZwGknTijFYJYYXahXWpT5kZ4O0zVY5kdVfrsQzIEVTwYg i1PkUPFnRiKvIUu8QRkXrD7nRQxg7iK5Q6ma7e8OynDI4dpgpYPgwynH1vgye5h5OUZ2mQU UJX7cnd5XVkTnkAEJeojg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:cHgGsh2LhJ0=:OBOH/rCptuMNuuEaKYUmw4 A+dWhhYpUDvxAbG6AEpLIEVPvmuHwyRDCkPreK+/Xs624yh3mPYDoZfhpPTZ95Zg4RSvH4ARm gum4R/gvhMFu48wYm9MKPGuSkjZvdIxbV75uh7jpKnNaTFOg2lQfqzqaylZ1Xwqvd7IjcuuDX G0EmkWjO4/XU+Mo8e5UYmzqq3b6k+iha4vLPbh9EdCRuB+sv6cu8El3UQmtszW4kG58Dl7Lfa SytValFR7aCHWRa55eZGqtCUQXjurI2ENLgTiKNexUNQdg1oFW2P2eGw3vjTvlDXUe5saQokA f8A5YYv/vanNg5mIVAkNIkRqRKBiGQ08GNw8ZeMkjaOVxKoJI7L5jEEmk7WTnJbXhVgymdDUm /sUsbyZNd2FSvc5Nli3uFpUoCtF4h66irjqb0qb+uqVDiMCoh1iiaA6oOWmO9QS+0UP76v6Ga QUYslecDpoj7nLBjSnWmzISvEUJyWCMygbReWgpaa3UdNZloeRQ46W/wXPOpXixFBBLwazVG5 K/Skig4UHtOVvXbKH+gD0nHvG5JaHJg6IDo6Dv/EP927xM17uuDJda/+phiGkZ+AsyAhEeLkH npEW81vVrUxaZiQRNTCzzCTBbZJgZYYCKln2anyy3xmCcMuovlp02JgWRITc1Jj9BPP6M7yuj SlT1QlVLH3zcrFpdZ8RdTrr7cULjmo97r0oWhWsRdN7UBD0QUXmpfm1xV1nItGxS1ocMBK035 hLuRBVEHXiW+ZkTE1JGH9YHEiPs3Toj3n4K2qHcDi7/brOw97x/yag+aGjzJE1LZFHBmSNYYr OKLHSBReDM9dIsouuRgOSWUOflwXR7tdZ9Ma4VyGGUr3TCY1PnupBldeLcMm0foGQY7S8TCRf xYPIbweJ/VB9LQFa8bqA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Enrico Weigelt Support the recently introduced gpio lookup tables for attaching to gpio lines. So, harcoded gpio numbers aren't needed anymore. changes v4: * completely rewritten in a much simpler way, now just adding a third case (in the button probe loop), where neither oftree nor raw gpio number exists. changes v3: * fix printf string in gpio_keys_polled_get_gpiod() * fix unused variable 'error' in gpio_keys_polled_get_gpiod() * fix uninitialized variable in gpio_keys_polled_get_gpiod_fwnode() Cc: Dmitry Torokhov Cc: linux-input@vger.kernel.org Signed-off-by: Enrico Weigelt --- drivers/input/keyboard/gpio_keys_polled.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyboard/gpio_keys_polled.c index 6eb0a2f3f9de..9ef8c7dade27 100644 --- a/drivers/input/keyboard/gpio_keys_polled.c +++ b/drivers/input/keyboard/gpio_keys_polled.c @@ -307,7 +307,7 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) fwnode_handle_put(child); return error; } - } else if (gpio_is_valid(button->gpio)) { + } else if ((button->gpio > 0) && gpio_is_valid(button->gpio)) { /* * Legacy GPIO number so request the GPIO here and * convert it to descriptor. @@ -333,6 +333,18 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) button->gpio); return -EINVAL; } + } else { + /* try via gpio lookup table */ + bdata->gpiod = devm_gpiod_get_index(dev, NULL, i, GPIOF_IN); + if (IS_ERR(bdata->gpiod)) { + dev_err(dev, + "unable to get gpio for button %d: %ld\n", + i, PTR_ERR(bdata->gpiod)); + return PTR_ERR(bdata->gpiod); + } + + gpiod_set_consumer_name(bdata->gpiod, + button->desc ? : DRV_NAME); } bdata->last_state = -1; -- 2.11.0