From: Arnd Bergmann <arnd@arndb.de>
To: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Cc: linux-kernel@vger.kernel.org,
Jerome Oufella <jerome.oufella@savoirfairelinux.com>,
platform-driver-x86@vger.kernel.org,
linux-serial@vger.kernel.org, lm-sensors@lm-sensors.org
Subject: Re: [RFC 2/5] gpio: add support for Technologic Systems TS-5500 GPIOs
Date: Wed, 4 May 2011 18:29:12 +0200 [thread overview]
Message-ID: <201105041829.12801.arnd@arndb.de> (raw)
In-Reply-To: <1304115712-5299-3-git-send-email-vivien.didelot@savoirfairelinux.com>
On Saturday 30 April 2011, Vivien Didelot wrote:
> + ts5xxx_sbcinfo_set(&sbcinfo);
> + if (5500 != sbcinfo.board_id) {
> + printk(MODULE_NAME ": Incompatible TS Board.\n");
> + return -ENODEV;
> + }
The above should not be necessary:
> +static int __init ts5500_gpio_init(void)
> +{
> + int ret;
> +
> + ret = platform_driver_register(&ts5500_gpio_driver);
> + if (ret)
> + return ret;
> +
> + ret = platform_device_register(&gpio_device);
> + if (ret) {
> + printk(MODULE_NAME ": Failed to register platform device\n");
> + platform_driver_unregister(&ts5500_gpio_driver);
> + return ret;
> + }
> +
> + printk(MODULE_NAME ": GPIO/DIO driver loaded.\n");
> + return 0;
> +}
> +module_init(ts5500_gpio_init);
Doing it this way requires you know that you have to load the driver,
which is not good if you want to have the same kernel running on
different machines.
Better move the device registration into your platform code, in the
place where you know what device you have. The add a MODULE_DEVICE_TABLE()
entry to the module so the driver gets automatically loaded (if it's
a module), and match the platform device to the driver you register
from the module_init function.
Same for the other devices where you follow the same pattern.
Another way to do the same in a more modern fashion would be
to provide a flattened device tree that describes all your devices
and pass that into the kernel. Take a look at the CE4100 and OLPC
platforms to see how that is done.
Arnd
next prev parent reply other threads:[~2011-05-04 16:29 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-29 22:21 [RFC 0/5] Support for Technologic Systems TS-5500 board Vivien Didelot
2011-04-29 22:21 ` [RFC 1/5] platform-drivers-x86: add support for Technologic Systems TS-5xxx detection Vivien Didelot
2011-04-29 23:32 ` Greg KH
2011-05-02 21:07 ` Vivien Didelot
2011-05-02 21:55 ` Greg KH
2011-05-03 9:39 ` Alan Cox
2011-05-03 14:13 ` Greg KH
2011-04-30 10:07 ` Alan Cox
2011-05-04 15:15 ` Vivien Didelot
2011-05-04 15:29 ` Alan Cox
2011-05-04 20:34 ` Vivien Didelot
2011-05-05 13:38 ` Alan Cox
2011-05-11 22:24 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` [RFC 2/5] gpio: add support for Technologic Systems TS-5500 GPIOs Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-30 10:15 ` Alan Cox
2011-05-13 21:33 ` Vivien Didelot
2011-05-13 22:03 ` Alan Cox
2011-05-04 16:29 ` Arnd Bergmann [this message]
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` [RFC 3/5] serial: add support for Technologic Systems TS-5500 RS-485 serial port Vivien Didelot
2011-04-30 10:17 ` Alan Cox
2011-06-06 20:48 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` [RFC 4/5] leds: add support for Technologic Systems TS-5500 leds Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
2011-05-03 6:04 ` Govindraj
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` [RFC 5/5] hwmon: add support for Technologic Systems TS-5500 A-D converter Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
[not found] ` <1304115712-5299-6-git-send-email-vivien.didelot-4ysUXcep3aM1wj+D4I0NRVaTQe2KTcn/@public.gmane.org>
2011-04-30 3:39 ` [lm-sensors] " Guenter Roeck
2011-04-30 9:56 ` Jonathan Cameron
2011-05-03 15:55 ` Vivien Didelot
2011-05-03 17:33 ` Guenter Roeck
2011-05-04 9:03 ` Jonathan Cameron
2011-04-30 10:20 ` Alan Cox
2011-04-29 22:21 ` Vivien Didelot
2011-04-29 22:21 ` Vivien Didelot
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=201105041829.12801.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=jerome.oufella@savoirfairelinux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=lm-sensors@lm-sensors.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=vivien.didelot@savoirfairelinux.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).