• Magnus Damm's avatar
    Driver Core: early platform driver · 13977091
    Magnus Damm authored
    V3 of the early platform driver implementation.
    
    Platform drivers are great for embedded platforms because we can separate
    driver configuration from the actual driver.  So base addresses,
    interrupts and other configuration can be kept with the processor or board
    code, and the platform driver can be reused by many different platforms.
    
    For early devices we have nothing today.  For instance, to configure early
    timers and early serial ports we cannot use platform devices.  This
    because the setup order during boot.  Timers are needed before the
    platform driver core code is available.  The same goes for early printk
    support.  Early in this case means before initcalls.
    
    These early drivers today have their configuration either hard coded or
    they receive it using some special configuration method.  This is working
    quite well, but if we want to support both regular kernel modules and
    early devices then we need to have two ways of configuring the same
    driver.  A single way would be better.
    
    The early platform driver patch is basically a set of functions that allow
    drivers to register themselves and architecture code to locate them and
    probe.  Registration happens through early_param().  The time for the
    probe is decided by the architecture code.
    
    See Documentation/driver-model/platform.txt for more details.
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: default avatarMagnus Damm <damm@igel.co.jp>
    Cc: Paul Mundt <lethal@linux-sh.org>
    Cc: Kay Sievers <kay.sievers@vrfy.org>
    Cc: David Brownell <david-b@pacbell.net>
    Cc: Tejun Heo <htejun@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    13977091
platform.c 30 KB