linux/drivers/bus
Masahiro Yamada 4b7f48d395 bus: uniphier-system-bus: add UniPhier System Bus driver
The UniPhier System Bus is an external bus that connects on-board
devices to the UniPhier SoC.  Each bank (chip select) is dynamically
mapped to the CPU-viewed address base via the bus controller.  The
bus controller must be configured before any access to the bus.

This driver parses the "ranges" property of the System Bus node and
initialized the bus controller.  After the bus becomes ready, devices
below it are populated.

Note:
Each bank can be mapped anywhere in the supported address space;
there is nothing preventing us from assigning bank 0 on 0x42000000,
0x43000000, or anywhere as long as such region is not used by others.
So, the "ranges" is just one possible software configuration, which
does not seem to fit in device tree because device tree is a hardware
description language.  However, of_translate_address() requires
"ranges" in every bus node between CPUs and device mapped on the CPU
address space.  In other words, "ranges" properties must be statically
defined in device tree.  After some discussion, I decided the dynamic
address reassignment by the driver is too bothersome.  Instead, the
device tree should provide a reasonable translation setup that the OS
can rely on.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Olof Johansson <olof@lixom.net>
2015-12-22 11:22:39 -08:00
..
arm-cci.c arm-cci: Add aliases for PMU events 2015-05-29 16:43:52 +02:00
arm-ccn.c bus: arm-ccn: Fix irq affinity setting on CPU migration 2015-10-15 17:10:15 +02:00
brcmstb_gisb.c bus: brcmstb_gisb: Honor the "big-endian" and "native-endian" DT properties 2015-05-28 21:00:20 -07:00
imx-weim.c bus: imx-weim: improve error handling upon child probe-failure 2015-03-02 21:47:59 +08:00
Kconfig bus: uniphier-system-bus: add UniPhier System Bus driver 2015-12-22 11:22:39 -08:00
Makefile bus: uniphier-system-bus: add UniPhier System Bus driver 2015-12-22 11:22:39 -08:00
mips_cdmm.c MIPS: Remove "weak" from mips_cdmm_phys_base() declaration 2015-09-03 12:07:39 +02:00
mvebu-mbus.c bus: mvebu-mbus: add mv_mbus_dram_info_nooverlap() 2015-05-28 12:21:08 +02:00
omap_l3_noc.c Merge branches 'pm-sleep' and 'pm-runtime' 2015-06-19 01:18:02 +02:00
omap_l3_noc.h bus: omap_l3_noc: Fix master id address decoding for OMAP5 2015-05-04 10:21:01 -07:00
omap_l3_smx.c genirq: Remove the deprecated 'IRQF_DISABLED' request_irq() flag entirely 2015-03-05 20:53:06 +01:00
omap_l3_smx.h
omap-ocp2scp.c bus: omap-ocp2scp: Fix module alias 2015-10-12 16:10:04 -07:00
simple-pm-bus.c drivers: bus: Add Simple Power-Managed Bus Driver 2015-02-24 06:36:18 +09:00
sunxi-rsb.c bus: sunxi-rsb: Add driver for Allwinner Reduced Serial Bus 2015-10-26 10:11:58 +09:00
uniphier-system-bus.c bus: uniphier-system-bus: add UniPhier System Bus driver 2015-12-22 11:22:39 -08:00
vexpress-config.c mfd: vexpress: Add parentheses around bridge->ops->regmap_init call 2015-08-07 14:50:59 +01:00