summaryrefslogtreecommitdiffstats
path: root/arch
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'sa11x0-lcd' into sa11x0Russell King2012-03-2610-55/+275
|\ | | | | | | | | Conflicts: arch/arm/mach-sa1100/assabet.c
| * FB: sa11x0: convert to use platform resource and ioremap()Russell King2012-02-241-10/+0Star
| | | | | | | | | | | | | | | | Convert the sa11x0 framebuffer driver to obtain the base address of its hardware registers from the platform resources, and ioremap this rather than relying on the static mappings. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * FB: sa11x0: convert shannon display enable accesses to use GPIO subsystemRussell King2012-02-211-1/+1
| | | | | | | | | | | | | | | | Rather than accessing GPSR and GPCR directly, use the GPIO subsystem instead. Acked-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * FB: sa1100: remove global sa1100fb_.*_power function pointersRussell King2012-02-215-41/+64
| | | | | | | | | | | | | | | | | | Now that we have platform data contained within the individual board code, we can get rid of the global function pointers, placing them inside the platform data instead. Acked-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * FB: sa1100: move platform data to platform filesRussell King2012-02-218-5/+212
| | | | | | | | | | | | | | | | Move platform data out of the sa1100fb driver into the various platform files themselves. Acked-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: remove unused DMA controller definitionsRussell King2012-03-262-218/+3Star
| | | | | | | | | | | | | | | | Remove the new unused DMA controller definitions from mach/SA-1100.h. These are now private to the SA-11x0 DMA engine driver and contained within the driver. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: remove old SoC private DMA driverRussell King2012-03-263-466/+1Star
| | | | | | | | | | | | | | Now that all users are converted over to using the DMA engine API, we can get rid of the old platform dependent DMA driver. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | Merge branch 'sa11x0-ir' into sa11x0Russell King2012-03-261-0/+25
|\ \
| * | ARM: sa11x0: add SA-11x0 DMA deviceRussell King2012-03-071-0/+25
| |/ | | | | | | | | | | | | Add sa11x0 DMA platform device and resources to the list of generic platform devices for SA11x0 machines. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | Merge branch 'sa1111' into sa11x0Russell King2012-03-267-266/+227Star
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: arch/arm/common/sa1111.c arch/arm/mach-sa1100/neponset.c Fixed: arch/arm/mach-sa1100/assabet.c for the neponset changes
| * | ARM: sa11x0: don't static map sa1111Russell King2012-03-243-15/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | The sa1111 support will ioremap() the device; there is no need for platforms to setup a static mapping for this. Remove the static mapping for this device from badge4, jornada720 and neponset. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: use dev_err() rather than printk()Russell King2012-03-241-1/+1
| | | | | | | | | | | | | | | | | | | | | Use dev_err() to report device specific errors rather than printk(). Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: cleanup sub-device registration and unregistrationRussell King2012-03-241-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | Move the releasing of resources out of the release function - this allows a cleaner and more conventional arrangement of the registration failure paths and a saner unregistration process for these devices. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: only setup DMA for DMA capable devicesRussell King2012-03-241-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | It's pointless registering the PS/2 interfaces with the dmabounce code when there's no DMA support for these in hardware, so only setup the DMA masks for two subdevices which support DMA - the OHCI and SAC. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: register sa1111 devices with dmabounce in bus notifierRussell King2012-03-241-55/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use the bus notifier to register sa1111 devices with dmabounce, rather than after the device has been registered, potentially racing with driver binding. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: move USB interface register definitions to ohci-sa1111.cRussell King2012-03-241-25/+1Star
| | | | | | | | | | | | | | | | | | | | | | | | Move the USB interface register definitions into the driver, rather than keeping them in a common place. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: move PCMCIA interface register definitions to sa1111_generic.cRussell King2012-03-241-43/+2Star
| | | | | | | | | | | | | | | | | | | | | | | | Move the PCMCIA interface register definitions into the driver, rather than keeping them in a common place. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: move PS/2 interface register definitions to sa1111p2.cRussell King2012-03-241-38/+1Star
| | | | | | | | | | | | | | | | | | | | | | | | Move the PS/2 interface register definitions into the driver, rather than keeping them in a common location. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: delete unused physical GPIO register definitionsRussell King2012-03-241-16/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the unused GPIO register definitions - we access GPIO registers through the base + offset method, and having the phys address definitions is unnecessary duplication. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: provide a generic way to prevent devices from registeringRussell King2012-03-246-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some platforms don't want certain devices to be registered, because, eg, the interface is not wired. Provide a way for platforms to prevent various devices from being registered via a devid bitmask in the platform data. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: change devid to be a bitmaskRussell King2012-02-092-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | Change the sa1111 device id to be a bitmask. This allows us to specify the actual device, while allowing a single driver to bind to both PS2 devices. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa11x0: badge4: move board specific ohci initialization to badge4.cRussell King2012-02-091-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | Move the handling of the 5v supply into badge4.c, removing this board specific detail from the sa1111 ohci driver. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: add platform enable/disable functionsRussell King2012-02-092-7/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add platform hooks to be called when individual sa1111 devices are enabled and disabled. This will allow us to move some platform specifics out of the individual drivers. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: add shutdown hook to sa1111_driver structureRussell King2012-02-092-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | Add a shutdown hook to the sa1111_driver structure to allow drivers to be notified of system reboots and shutdowns. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: implement support for sparse IRQsRussell King2012-02-091-11/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement the necessary allocation/freeing functionality to support sparse IRQs with the SA-1111 device. On non-sparse IRQ platforms, this allows us to dynamically allocate from within the available IRQ number space. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: finish "allow cascaded IRQs to be used by platforms"Russell King2012-02-091-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 19851c58e680 (sa1111: allow cascaded IRQs to be used by platforms) moved the IRQ definitions to the .c file, and added an irq_base member to the private data structure. The inerrupt demultiplexer uses irq_base, but the interrupt setup code does not. Also, although the commit adds a private data structure to pass this data, it isn't even referenced, resulting in irq_base being zero. We also copied the IRQ numbers from the device info array into the actual devices, resulting in wrong interrupt numbers passed to the sub-devices. The net effect of this is that we always overwrite IRQs 0-54, even if they are allocated elsewhere in the system. Add the code necessary to setup the private irq_base, and use it in the IRQ setup code. Make the SA-1111 probe fail with -EINVAL if there is no platform data provided. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: add sa1111 core driver .owner initializerRussell King2012-02-091-0/+1
| | | | | | | | | | | | | | | | | | | | | Add an initializer for the struct device_driver .owner member. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: fix PWM state on suspendRussell King2012-02-091-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should not write to the SA1111 registers after setting the SLEEP bit. Moreover, the manual says that the PWM registers should be disabled before we enter sleep. So, move the clearing of these registers earlier in the suspend sequence. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | ARM: sa1111: fix memory request/grant setup on PM eventsRussell King2012-02-091-1/+11
| |/ | | | | | | | | | | | | | | We weren't re-enabling the memory request/grant signals on resume, causing DMA devices on the sa1111 to fail. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: don't static map neponset registersRussell King2012-02-091-6/+1Star
| | | | | | | | | | | | | | Now that we ioremap() the neponset register space, there's no need to static map the neponset registers. Get rid of this static mapping. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: move register definitions to neponset.cRussell King2012-02-092-71/+91
| | | | | | | | | | | | | | | | Move the board specific neponset register definitions to the board file, rather than mach/neponset.h. However, as the NCR_0 register definitions are used by some drivers, leave these behind. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: assabet/neponest: create neponset device in assabet.cRussell King2012-02-092-43/+25Star
| | | | | | | | | | | | | | | | | | The neponset board is a daughter board for the Assabet. Create the neponset platform device in assabet.c, where we don't have to wrap it with machine_is_assabet() stuff. We also create this device dynamically rather than keeping it as a static device. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: suspend/resume in _noirq stateRussell King2012-02-091-9/+15
| | | | | | | | | | | | | | | | | | Suspend and resume in the _noirq state, so that we're saving the state of the modem control signals as late as possible, and restoring them as early as possible. There's nothing to do in thaw/poweroff methods as we've already saved the necessary state. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: place smc91x and sa1111 resources in neponset deviceRussell King2012-02-091-0/+13
| | | | | | | | | | | | | | Complete the neponset device resources by covering the children's memory resources in the parent neponset device. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: get parent IRQ from neponset device resourceRussell King2012-02-091-7/+13
| | | | | | | | | | | | | | Obtain the parent IRQ from the neponset device resource rather than hard-coding it into the code. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: implement support for sparse IRQsRussell King2012-02-092-58/+61
| | | | | | | | | | | | | | | | | | Implement the necessary allocation/freeing functionality to support sparse IRQs with the Neponset device. On non-sparse IRQ platforms, this allows us to dynamically allocate from within the available IRQ number space. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: dynamically create neponset child devicesRussell King2012-02-091-28/+28
| | | | | | | | | | | | | | | | Use platform_device_register_full() to dynamically create the various neponset child platform devices, and place them below the neponset device itself to ensure proper PM ordering and device structure. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: save and restore MDM_CTL_0Russell King2012-02-091-11/+42
| | | | | | | | | | | | | | | | Save and restore the modem output control register across a suspend/ resume, as well as the NCR register. Place these in a locally allocated data structure rather than needing a new static variable. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: add driver .owner initializerRussell King2012-02-091-0/+1
| | | | | | | | | | | | Ensure that the driver .owner field is properly initialized. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: shuffle some code aroundRussell King2012-02-091-101/+101
| | | | | | | | | | | | | | Move the IRQ handler along side the rest of the IRQ code, and rearrange the include files. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: provide function to manipulate NCR_0Russell King2012-02-092-0/+13
| | | | | | | | | | | | | | | | | | Rather than having direct register accesses to NCR_0 scattered amongst the code, provide a function instead. This contains the necessary race protection for this platform, ensuring that updates to this register are safe. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: neponset: fix interrupt setupRussell King2012-02-091-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since ARM was converted to genirq, the neponset IRQ implementation has gradually broken as a result of various subtle changes being introduced into genirq. It used to be that simple IRQs did not need an IRQ chip. This is no longer the case, and genirq barfs in irq_set_handler(). Fix this by introducing a dummy no-op chip, and registering it along with the flow handler. Neponset IRQs really don't have any masking ability - all we have is a status register to allow us to decode the source, and a three input OR gate inside a CPLD. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: assabet: ensure that GPIO27 is drivenRussell King2012-02-091-0/+8
| | | | | | | | | | | | | | | | | | GPIO27 is just connected to a CPLD input without any pull-ups or pull- downs. If GPIO27 is left as an input, it will float around mid-supply, which for CMOS inputs is the worst place for a pin to be. Ensure that this pin is driven. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: assabet: avoid glitching GPIOs when setting outputsRussell King2012-02-091-2/+2
| | | | | | | | | | | | | | | | Avoid glitching the GPIO signals during initialization, which can have undesirable effects. Ensure that the desired pin state is set before we change the GPIO pin direction to be an output. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: assabet: deassert QMUTE to codec while codec is unpoweredRussell King2012-02-091-2/+2
| | | | | | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: convert to use DEFINE_RES_xxx macrosRussell King2012-02-0915-257/+61Star
| | | | | | | | | | | | | | Convert StrongARM-11x0 platforms and core SoC code to use the DEFINE_RES_xxx macros. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: fix section mismatch warningsRussell King2012-02-092-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Neponset calls sa1110_mb_disable() from __devinit code, but sa1110_mb_disable() is marked __init, and so causes a section mismatch warning. As sa1110_mb_enable() and sa1110_mb_disable() need to be callable from suspend/resume paths as well, they must not be marked __init or __devinit. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: fix sleep entryRussell King2012-02-091-15/+22
| | | | | | | | | | | | | | | | Sometimes, we get stuck while trying to enter sleep. This seems to occur if we do not have udelay() in the instruction cache. Avoid this by requesting a short delay prior to modifying the SDRAM timings. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: sa11x0: fix off-by-one resource sizesRussell King2012-02-092-5/+5
|/ | | | | | | | | | | Hackkit defined its flash memory resource to be 32M + 1 byte. Jornada defined the Epson video controller resources to be one byte larger than they should be, and mis-mapped the SA-1111 companion chip one byte smaller than it should be. Fix these. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge tag 'fbdev-fixes-for-3.3-1' of git://github.com/schandinat/linux-2.6Linus Torvalds2012-02-083-12/+28
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fbdev fixes for 3.3 It includes: - compile fix for fsl-diu-fb - fix for a suspend/resume issue in atmel_lcdfb - fix for a suspend/resume issue in OMAP - workaround for a hardware bug to avoid physical damage in OMAP - really trivial dead code removal in intelfb * tag 'fbdev-fixes-for-3.3-1' of git://github.com/schandinat/linux-2.6: atmel_lcdfb: fix usage of CONTRAST_CTR in suspend/resume intelfb: remove some dead code drivers/video: compile fixes for fsl-diu-fb.c OMAPDSS: HDMI: PHY burnout fix OMAP: 4430SDP/Panda: add HDMI HPD gpio OMAP: 4430SDP/Panda: setup HDMI GPIO muxes OMAPDSS: remove wrong HDMI HPD muxing OMAP: 4430SDP/Panda: rename HPD GPIO to CT_CP_HPD OMAP: 4430SDP/Panda: use gpio_free_array to free HDMI gpios OMAPDSS: use sync versions of pm_runtime_put