linux/arch/arm/mach-tegra
Stephen Warren a58116f331 arm/tegra: Use bus notifiers to trigger pinmux setup
Currently, the Tegra pinmux is initialized at different times when booting
with and without device tree:

Without device tree:

1) Pinmux and GPIO drivers are registered.
2) Pinmux is configured.
3) All other drivers are registered.

With device tree:

1) All drivers are registered and probed, including pinmux and GPIO.
2) Pinmux is configured.

This change modifies board-pinmux.c to detect pinmux and GPIO driver
registration using bus notifiers. This allows pinmux configuration to
happen immediately after the pinmux driver is probed, irrespective of
whether the pinmux driver is manually registered by board-pinmux.c, or
if it's instantiated during device tree parsing.

To support this with device tree, the pinmux init functions must be
called prior to instantiating devices from device tree, so that the
notifiers are set up before-hand.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2011-12-19 18:03:11 -08:00
..
include/mach Merge branch 'next/devel' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 20:31:25 -07:00
board-dt.c arm/tegra: Use bus notifiers to trigger pinmux setup 2011-12-19 18:03:11 -08:00
board-harmony-pcie.c arm/tegra: Harmony PCIe: Don't touch pinmux 2011-12-19 18:03:10 -08:00
board-harmony-pinmux.c arm/tegra: Refactor board-*-pinmux.c to share code 2011-12-19 18:03:11 -08:00
board-harmony-power.c arm/tegra: Harmony: Configure PMC for low-level interrupts 2011-10-13 15:04:55 -07:00
board-harmony.c Merge branch 'next/board' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 20:25:36 -07:00
board-harmony.h ARM: 7101/1: arm/tegra: Replace <mach/gpio.h> with <mach/gpio-tegra.h> 2011-09-27 00:20:53 +01:00
board-paz00-pinmux.c arm/tegra: Refactor board-*-pinmux.c to share code 2011-12-19 18:03:11 -08:00
board-paz00.c ARM: tegra: paz00: add support for wakeup gpio key 2011-12-07 21:13:47 -08:00
board-paz00.h ARM: tegra: paz00: add support for wakeup gpio key 2011-12-07 21:13:47 -08:00
board-pinmux.c arm/tegra: Use bus notifiers to trigger pinmux setup 2011-12-19 18:03:11 -08:00
board-pinmux.h arm/tegra: Refactor board-*-pinmux.c to share code 2011-12-19 18:03:11 -08:00
board-seaboard-pinmux.c arm/tegra: Refactor board-*-pinmux.c to share code 2011-12-19 18:03:11 -08:00
board-seaboard.c Merge branch 'depends/rmk/devel-stable' into next/board 2011-11-01 00:11:41 +01:00
board-seaboard.h Merge branch 'depends/rmk/gpio' into next/board 2011-10-21 16:46:26 +02:00
board-trimslice-pinmux.c arm/tegra: Refactor board-*-pinmux.c to share code 2011-12-19 18:03:11 -08:00
board-trimslice.c Merge branch 'next/board' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 20:25:36 -07:00
board-trimslice.h ARM: 7101/1: arm/tegra: Replace <mach/gpio.h> with <mach/gpio-tegra.h> 2011-09-27 00:20:53 +01:00
board.h ARM: tegra: Move tegra_common_init to tegra_init_early 2011-02-22 11:25:12 -08:00
clock.c switch assorted clock drivers to debugfs_remove_recursive() 2011-07-20 20:47:51 -04:00
clock.h ARM: tegra: clock: Add function to set SDMMC tap delay 2011-02-21 00:16:47 -08:00
common.c ARM: tegra: tegra_init_cache should be static 2011-10-13 14:08:28 -07:00
cpu-tegra.c Merge branch 'next/cleanup' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 20:11:00 -07:00
devices.c Merge branch 'next/devel' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 20:31:25 -07:00
devices.h arm/tegra: Prep boards for gpio/pinmux conversion to pdevs 2011-10-11 17:19:56 -07:00
dma.c ARM: tegra: dma: staticify some tables and functions 2011-10-13 14:08:29 -07:00
fuse.c [ARM] tegra: Add support for reading fuses 2010-10-21 18:12:09 -07:00
fuse.h [ARM] tegra: Add support for reading fuses 2010-10-21 18:12:09 -07:00
gpio-names.h [ARM] tegra: add GPIO support 2010-08-05 14:57:02 -07:00
headsmp.S [ARM] tegra: SMP support 2010-08-05 14:57:01 -07:00
hotplug.c ARM: fix wrongly patched constants 2011-01-14 12:06:26 +00:00
io.c ARM: tegra: annotate IO_*_VIRT pointers 2011-10-13 14:07:38 -07:00
irq.c ARM: tegra: irq: Add tegra_eoi 2011-05-11 16:04:16 +01:00
Kconfig arm/tegra: device tree support for ventana board 2011-10-13 15:04:54 -07:00
localtimer.c ARM: 6759/1: smp: Select local timers vs broadcast timer support runtime 2011-02-23 17:54:27 +00:00
Makefile arm/tegra: Refactor board-*-pinmux.c to share code 2011-12-19 18:03:11 -08:00
Makefile.boot Merge branch 'next/devel' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 20:31:25 -07:00
pcie.c arm/tegra: PCIe: Remove include of mach/pinmux.h 2011-12-19 18:03:10 -08:00
pinmux-t2-tables.c arm/tegra: pinmux: ioremap registers 2011-10-13 15:04:53 -07:00
pinmux.c arm/tegra: pinmux: ioremap registers 2011-10-13 15:04:53 -07:00
platsmp.c ARM: smp: fix clipping of number of CPUs 2011-10-20 22:06:57 +01:00
powergate.c ARM: tegra: tegra_powergate_is_powered should be static 2011-10-13 14:08:28 -07:00
tegra2_clocks.c ARM: tegra: tegra2_clocks: don't export some tables 2011-10-13 14:08:29 -07:00
tegra2_emc.c ARM: tegra: Add external memory controller driver 2011-02-21 00:16:45 -08:00
tegra2_emc.h ARM: tegra: Add external memory controller driver 2011-02-21 00:16:45 -08:00
timer.c ARM: tegra: tegra_rtc_read_ms should be static 2011-10-13 14:08:28 -07:00
usb_phy.c ARM: 7101/1: arm/tegra: Replace <mach/gpio.h> with <mach/gpio-tegra.h> 2011-09-27 00:20:53 +01:00