kernel-hacking-2024-linux-s.../Documentation
Magnus Damm 13977091a9 Driver Core: early platform driver
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: Magnus 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: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-16 16:17:10 -07:00
..
ABI doc: use correct debugfs mountpoint 2009-04-13 15:04:33 -07:00
accounting
acpi
aoe
arm Merge branch 'next-s3c-pm' of git://aeryn.fluff.org.uk/bjdooks/linux into devel 2009-03-26 22:44:43 +00:00
auxdisplay
blackfin
block block: update biodoc.txt on plugging 2009-04-15 08:28:11 +02:00
blockdev mflash: initial support 2009-04-07 08:12:38 +02:00
cdrom
cgroups memcg: fix documentation 2009-04-13 15:04:33 -07:00
connector
console
cpu-freq
cpuidle
cris
crypto
development-process
device-mapper
DocBook docbook: make cleandocs 2009-04-11 08:18:12 +02:00
driver-model Driver Core: early platform driver 2009-04-16 16:17:10 -07:00
dvb V4L/DVB (11138): get_dvb_firmware: add support for downloading the cx2584x firmware for pvrusb2 2009-03-30 12:43:31 -03:00
early-userspace
fault-injection
fb uvesafb: documentation update 2009-04-07 08:31:09 -07:00
filesystems nilfs2: clean up sketch file 2009-04-07 08:31:19 -07:00
firmware_class
frv
hwmon hwmon: add support for GMT G760A fan speed PWM controller 2009-04-07 08:31:03 -07:00
i2c Move the pcf8591 driver to hwmon 2009-03-30 21:46:43 +02:00
i2o
ia64 trivial: Fix misspelling of firmware 2009-03-30 15:21:59 +02:00
ide
infiniband IPoIB: Document newish features 2009-04-08 13:52:01 -07:00
input
ioctl V4L/DVB (10870a): remove all references for video_decoder.h 2009-03-30 12:43:15 -03:00
isdn gigaset: documentation update 2009-04-06 17:07:57 -07:00
ja_JP
kbuild kbuild: introduce destination-y for exported headers 2009-04-11 08:18:08 +02:00
kdump
ko_KR
laptops Merge branch 'thinkpad-acpi' into release 2009-04-05 01:42:09 -04:00
lguest lguest: barrier me harder 2009-03-30 21:55:26 +10:30
m68k
make
mips
misc-devices drivers/misc/isl29003.c: driver for the ISL29003 ambient light sensor 2009-04-01 08:59:18 -07:00
mn10300
mtd
namespaces
netlabel
networking Bonding: fix zero address hole bug in arp_ip_target list 2009-04-13 00:12:41 -07:00
parisc
PCI
pcmcia
power
powerpc Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2009-04-15 08:42:40 -07:00
prctl
RCU Doc: Fix spelling in RCU/rculist_nulls.txt. 2009-04-02 01:33:51 -07:00
s390
scheduler trivial: fix where cgroup documentation is not correctly referred to 2009-03-30 15:22:02 +02:00
scsi [SCSI] aacraid driver update 2009-04-03 09:23:11 -05:00
serial
sh
sound ALSA: add missing definitions(letters) to HD-Audio.txt 2009-04-15 11:51:50 +02:00
sparc
spi
sysctl Documentation/sysctl/net.txt: fix a typo 2009-04-13 15:04:28 -07:00
telephony
thermal
timers
trace tracing: consolidate documents 2009-04-09 07:28:10 +02:00
uml
usb USB: usbmon: Add binary API v1 2009-03-24 16:20:36 -07:00
video4linux V4L/DVB (11373): v4l2-common: add explicit v4l2_device pointer as first arg to new_(probed)_subdev 2009-04-06 21:44:24 -03:00
vm mm: add documentation describing what tsk->active_mm means vs tsk->mm 2009-04-13 15:04:32 -07:00
w1
watchdog
wimax
x86 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-04-03 15:24:35 -07:00
zh_CN
00-INDEX trivial: fix where cgroup documentation is not correctly referred to 2009-03-30 15:22:02 +02:00
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
BUG-HUNTING
c2port.txt
cachetlb.txt
Changes
CodingStyle
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
credentials.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt lanana: assign a device name and numbering for MAX3100 2009-04-07 08:44:05 -07:00
DMA-API.txt
DMA-attributes.txt
DMA-ISA-LPC.txt
DMA-mapping.txt dma-mapping: update the old macro DMA_nBIT_MASK related documentations 2009-04-07 08:31:12 -07:00
dmaengine.txt
dontdiff dontdiff: Fix asm exclude 2009-03-26 15:45:43 -07:00
dynamic-debug-howto.txt Dynamic debug: allow simple quoting of words 2009-03-24 16:38:27 -07:00
edac.txt
eisa.txt
email-clients.txt
exception.txt
feature-removal-schedule.txt i2c-voodoo3: Deprecate in favor of tdfxfb 2009-04-13 17:02:13 +02:00
gpio.txt gpio: gpio_{request,free}() now required (feature removal) 2009-04-02 19:04:51 -07:00
highuid.txt
HOWTO
hw_random.txt
ics932s401
initrd.txt
Intel-IOMMU.txt
IO-mapping.txt
io-mapping.txt
io_ordering.txt
iostats.txt
IPMI.txt
IRQ-affinity.txt
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt docs: alphabetize entries in kernel-parameters.txt 2009-04-06 13:43:43 -07:00
keys-request-key.txt
keys.txt
kobject.txt
kprobes.txt kprobes: support kretprobe and jprobe per-probe disabling 2009-04-07 08:31:08 -07:00
kref.txt
ldm.txt
leds-class.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
logo.svg
logo.txt
magic-number.txt
Makefile
ManagementStyle
markers.txt
mca.txt
md.txt Documentation/md.txt update 2009-03-31 15:18:37 +11:00
memory-barriers.txt
memory-hotplug.txt
memory.txt
mono.txt
mutex-design.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
parport-lowlevel.txt
parport.txt
pi-futex.txt
pnp.txt
preempt-locking.txt
printk-formats.txt
prio_tree.txt
rbtree.txt
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
SAK.txt
SecurityBugs
SELinux.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
slow-work.txt Document the slow work thread pool 2009-04-03 16:42:35 +01:00
SM501.txt
Smack.txt smack: Add a new '-CIPSO' option to the network address label configuration 2009-03-28 15:01:37 +11:00
sparse.txt Documentation: explain the difference between __bitwise and __bitwise__ 2009-04-11 08:18:11 +02:00
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
SubmitChecklist
SubmittingDrivers
SubmittingPatches
svga.txt
sysfs-rules.txt
sysrq.txt Merge branch 'tracing/core-v2' into tracing-for-linus 2009-04-02 00:49:02 +02:00
tomoyo.txt tomoyo: add Documentation/tomoyo.txt 2009-04-14 09:14:58 +10:00
unaligned-memory-access.txt
unicode.txt
unshare.txt
VGA-softcursor.txt
video-output.txt
volatile-considered-harmful.txt
voyager.txt
zorro.txt