linux/drivers
Paul Mundt 28085bc5de sh: clkfwk: support clock remapping.
This implements support for ioremapping of register windows that
encapsulate clock control registers used by a struct clk, with
transparent sibling inheritance.

Root clocks at the top of a given topology often encapsulate the entire
register space of all of their sibling clocks, so this mapping can be
done once and handed down. A given clock enable/disable case maps out to
a single bit in a shared register, so this prevents creating multiple
overlapping mappings.

The mapping case breaks down in to a couple of different situations:

	- Sibling clocks without a specific mapping.
	- Root clocks without a specific mapping.
	- Any of sibling/root clocks with a specific mapping.

Sibling clocks with no specified mapping will grovel up the clock chain
and install the root clock mapping unconditionally at registration time.

Root clocks without their own mappings have a dummy BSS-initialized
mapping inserted that is handed down the chain just like any other
mapping. This permits all of the sibling clock ops to read/write using
the mapping offsets without any special configuration, enabling them to
not care whether access ultimately goes through translatable or
untranslatable memory.

Any clock with its own mapping will have the window initialized at
registration time and be ready for use by its clock ops. Failure to
establish the mapping will prevent registration, so no additional sanity
checks are needed. Sibling clocks that double as parents for the moment
will not propagate their mapping down, but this is easily tunable if the
need arises.

All clock mappings are kref refcounted, with each instance of mapping
inheritance incrementing the refcount.

Tested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2010-10-15 16:46:37 +09:00
..
accessibility
acpi Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2010-08-15 17:37:07 -07:00
amba
ata ata: update for of_device to platform_device replacement 2010-08-16 15:13:28 -06:00
atm Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
auxdisplay
base drivers/base/node.c: reduce stack usage of node_read_meminfo() 2010-08-09 20:45:02 -07:00
block of: fix missing headers for of_address_to_resource() in MTD and SysACE drivers 2010-08-17 13:16:47 -06:00
bluetooth
cdrom
char Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-08-18 09:35:08 -07:00
clocksource Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-08-16 13:32:24 +09:00
connector
cpufreq
cpuidle cpuidle: extend cpuidle and menu governor to handle dynamic states 2010-08-09 20:45:04 -07:00
crypto [S390] zcrypt: fix Kconfig dependencies 2010-08-13 10:06:54 +02:00
dca
dio
dma Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
edac Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
eisa
firewire
firmware Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2010-08-14 12:34:34 -07:00
gpio gpiolib: Implement set_debounce for WM831x GPIOs 2010-08-12 11:27:57 +02:00
gpu Merge git://git.infradead.org/~dwmw2/ideapad-2.6 2010-08-13 18:04:52 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2010-08-18 15:29:38 -07:00
hwmon hwmon: (via-cputemp) Remove bogus "SHOW" global variable 2010-08-14 21:09:02 +02:00
i2c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-08-16 13:32:24 +09:00
ide ide: use module_param_named rather than module_param_call 2010-08-11 23:04:39 +09:30
idle Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2010-08-15 11:17:52 -07:00
ieee1394
ieee802154
infiniband Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
input Input: fix faulty XXinput_* calls 2010-08-13 12:03:24 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-13 10:38:12 -07:00
leds Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
lguest
macintosh Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2010-08-12 10:06:29 -07:00
mca
md md raid-1/10 Fix bio_rw bit manipulations again 2010-08-18 16:16:05 +10:00
media v4l: Remove reference to bkl ioctl in compat ioctl handling 2010-08-14 00:24:24 +02:00
memstick memstick: fix hangs on unexpected device removal in mspro_blk 2010-08-12 08:43:31 -07:00
message fusion: add function parameter names to kernel-doc 2010-08-14 16:21:00 -07:00
mfd mfd: Fix up section mismatches in SH SDHI. 2010-09-16 17:14:40 +09:00
misc Merge branch 'params' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2010-08-12 10:01:59 -07:00
mmc mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y 2010-08-18 09:34:05 -07:00
mtd of: fix missing headers for of_address_to_resource() in MTD and SysACE drivers 2010-08-17 13:16:47 -06:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-17 18:34:37 -07:00
nubus
of
oprofile
parisc
parport Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
pci Merge git://git.infradead.org/iommu-2.6 2010-08-15 17:34:20 -07:00
pcmcia Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
platform platform/x86: move rfkill for Dell Mini 1012 to compal-laptop 2010-08-16 11:55:00 -04:00
pnp
power Merge git://git.infradead.org/battery-2.6 2010-08-12 09:58:33 -07:00
pps
ps3
rapidio
regulator regulator: Remove default DEBUG define from TPS6586x 2010-08-11 11:38:03 +01:00
rtc Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
s390 Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 2010-08-13 10:54:04 -07:00
sbus
scsi arcmsr_hba: Missing slab.h include 2010-08-17 18:07:43 -07:00
serial Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-08-20 20:52:23 +09:00
sfi
sh sh: clkfwk: support clock remapping. 2010-10-15 16:46:37 +09:00
sn
spi m68knommu: include sched.h in ColdFire/SPI driver 2010-08-18 12:44:31 +10:00
ssb
staging fs: fs_struct rwlock to spinlock 2010-08-18 08:35:46 -04:00
tc
telephony
thermal
uio
usb usb: Fix up r8a66597-hcd section mismatches. 2010-09-16 17:16:31 +09:00
uwb
vhost
video sh: free-without-alloc fix for sh_mobile_lcdcfb 2010-10-13 19:16:44 +09:00
virtio
vlynq
w1
watchdog watchdog: hpwdt (12/12): Make NMI decoding a compile-time option 2010-08-13 20:54:53 +00:00
xen Merge branch 'stable/xen-swiotlb-0.8.6' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2010-08-12 09:09:41 -07:00
zorro zorro: Fix reading of proc/bus/zorro/* in small chunks 2010-08-09 21:14:08 +02:00
Kconfig
Makefile Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-08-16 13:32:24 +09:00