From: Andres Salomon <dilinger@queued.net>
To: Philip Prindeville <philipp@redfish-solutions.com>
Cc: platform-driver-x86@vger.kernel.org,
Alessandro Zummo <a.zummo@towertech.it>,
Richard Purdie <rpurdie@rpsys.net>,
Ed Wildgoose <kernel@wildgooses.com>,
David Woodhouse <dwmw2@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 1/1] alix2: supplement driver to include GPIO button support
Date: Wed, 11 Jan 2012 02:39:07 -0800 [thread overview]
Message-ID: <20120111023907.6665c72d@debxo> (raw)
In-Reply-To: <1325896470-31094-1-git-send-email-philipp@redfish-solutions.com>
On Fri, 6 Jan 2012 17:34:30 -0700
Philip Prindeville <philipp@redfish-solutions.com> wrote:
> From: "Philip A. Prindeville" <philipp@redfish-solutions.com>
>
> GPIO 24 is used in reference designs as a soft-reset button, and
> the alix2 is no exception. Add it as a gpio-button.
>
> Use symbolic values to describe BIOS addresses.
>
> Record the model number.
>
> Signed-off-by: Philip A. Prindeville <philipp@redfish-solutions.com>
> Acked-by: Ed Wildgoose <kernel@wildgooses.com>
> ---
> arch/x86/platform/geode/alix.c | 53
> ++++++++++++++++++++++++++++++++++++---- 1 files changed, 48
> insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/platform/geode/alix.c
> b/arch/x86/platform/geode/alix.c index dc5f1d3..a10476d42 100644
> --- a/arch/x86/platform/geode/alix.c
> +++ b/arch/x86/platform/geode/alix.c
> @@ -6,6 +6,7 @@
> *
> * Copyright (C) 2008 Constantin Baranov <const@mimas.ru>
> * Copyright (C) 2011 Ed Wildgoose <kernel@wildgooses.com>
> + * and Philip Prindeville
> <philipp@redfish-solutions.com> *
> * TODO: There are large similarities with leds-net5501.c
> * by Alessandro Zummo <a.zummo@towertech.it>
> @@ -24,14 +25,49 @@
> #include <linux/leds.h>
> #include <linux/platform_device.h>
> #include <linux/gpio.h>
> +#include <linux/input.h>
> +#include <linux/gpio_keys.h>
>
> #include <asm/geode.h>
>
> +#define BIOS_SIGNATURE_TINYBIOS 0x000f0000
> +#define BIOS_SIGNATURE_COREBOOT 0x00000050
> +#define BIOS_REGION_SIZE 0x00010000
No sense keeping the preceding 0s in those definitions; they just add
noise.
> +
> +static int model = 0;
The 0 assignment is unnecessary; 0 is the default.
> +
> static bool force = 0;
> module_param(force, bool, 0444);
> /* FIXME: Award bios is not automatically detected as Alix platform
> */ MODULE_PARM_DESC(force, "Force detection as ALIX.2/ALIX.3
> platform");
> +static struct gpio_keys_button alix_gpio_buttons[] = {
> + {
> + .code = KEY_RESTART,
> + .gpio = 24,
> + .active_low = 1,
> + .desc = "Reset button",
> + .type = EV_KEY,
> + .wakeup = 0,
> + .debounce_interval = 100,
> + .can_disable = 0,
> + }
> +};
> +
> +static struct gpio_keys_platform_data alix_buttons_data = {
> + .buttons = alix_gpio_buttons,
> + .nbuttons = ARRAY_SIZE(alix_gpio_buttons),
> + .poll_interval = 20,
> +};
> +
> +static struct platform_device alix_buttons_dev = {
> + .name = "gpio-keys-polled",
> + .id = 1,
> + .dev = {
> + .platform_data = &alix_buttons_data,
> + }
> +};
> +
> static struct gpio_led alix_leds[] = {
> {
> .name = "alix:1",
> @@ -64,17 +100,22 @@ static struct platform_device alix_leds_dev = {
> .dev.platform_data = &alix_leds_data,
> };
>
> +static struct __initdata platform_device *alix_devs[] = {
> + &alix_buttons_dev,
> + &alix_leds_dev,
> +};
> +
> static void __init register_alix(void)
> {
> /* Setup LED control through leds-gpio driver */
> - platform_device_register(&alix_leds_dev);
> + platform_add_devices(alix_devs, ARRAY_SIZE(alix_devs));
> }
>
> static int __init alix_present(unsigned long bios_phys,
> const char *alix_sig,
> size_t alix_sig_len)
> {
> - const size_t bios_len = 0x00010000;
> + const size_t bios_len = BIOS_REGION_SIZE;
> const char *bios_virt;
> const char *scan_end;
> const char *p;
> @@ -109,7 +150,9 @@ static int __init alix_present(unsigned long
> bios_phys, *a = '\0';
>
> tail = p + alix_sig_len;
> - if ((tail[0] == '2' || tail[0] == '3')) {
> + if ((tail[0] == '2' || tail[0] == '3' || tail[0] ==
> '6')) {
> + model = tail[0] - '0';
'model' is set here, but not used anywhere?
> +
> printk(KERN_INFO
> "%s: system is recognized as
> \"%s\"\n", KBUILD_MODNAME, name);
> @@ -128,8 +171,8 @@ static int __init alix_init(void)
> if (!is_geode())
> return 0;
>
> - if (alix_present(0xf0000, tinybios_sig, sizeof(tinybios_sig)
> - 1) ||
> - alix_present(0x500, coreboot_sig, sizeof(coreboot_sig) -
> 1))
Hm, this is 0x500 here...
> + if (alix_present(BIOS_SIGNATURE_TINYBIOS, tinybios_sig,
> sizeof(tinybios_sig) - 1) ||
> + alix_present(BIOS_SIGNATURE_COREBOOT, coreboot_sig,
But the definition above for SIGNATURE_COREBOOT is 0x50. Is that a
typo?
> sizeof(coreboot_sig) - 1)) register_alix();
>
> return 0;
next prev parent reply other threads:[~2012-01-11 11:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-07 0:34 [PATCH 1/1] alix2: supplement driver to include GPIO button support Philip Prindeville
2012-01-11 10:39 ` Andres Salomon [this message]
2012-01-14 7:05 ` [PATCH v2 " Philip Prindeville
2012-01-23 11:09 ` Andres Salomon
-- strict thread matches above, loose matches on Subject: below --
2011-12-31 10:08 [PATCH " Philip Prindeville
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120111023907.6665c72d@debxo \
--to=dilinger@queued.net \
--cc=a.zummo@towertech.it \
--cc=akpm@linux-foundation.org \
--cc=dwmw2@infradead.org \
--cc=kernel@wildgooses.com \
--cc=philipp@redfish-solutions.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rpurdie@rpsys.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.