summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-02-19MFD: mcp-core: remove legacy driver suspend/resume methodsRussell King2-30/+0
The legacy driver suspend/resume methods are no longer used, so get rid of them. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: convert to use dev_pm_opsRussell King2-15/+19
Convert the ucb1x00-core driver to use dev_pm_ops rather than the legacy members in the mcp driver. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: mcp-sa11x0: complain if mcp clock is left enabledRussell King1-0/+7
Issue a warning if the mcp clock was left enabled by some driver when we're suspending or tearing down the core driver for the device. This is an aid for debugging missing disable calls. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: disable mcp clock when bus is not requiredRussell King1-4/+5
The ucb1x00-core was leaving the mcp clock enabled indefinitely after probe. This needlessly wastes power. Add the necessary disables to ensure that the clock remains off when we don't need it. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: add missing ucb1x00_enable()/ucb1x00_disable()Russell King1-1/+15
ucb1x00_enable() and ucb1x00_disable() are used for power saving on the SIB interface, allowing the host supplied clock to be disabled when not required. We require drivers which access the ucb1x00 to ensure that they have enabled the clock prior to accessing the device, and they should disable it once they're done. As we don't expect gpiolib users to be aware of this detail, we must make these calls in the gpiolib interfaces. Add them. Also add them to the resume method, which needs to re-establish the GPIO pin settings. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: scan drivers in same order they're registeredRussell King1-4/+4
Cosmetic patch to scan the list of drivers in the order that the drivers are registered, rather than the reverse order. This avoids surprises when drivers get probed in the reverse order, and input devices get registered in a different order due to bind/unbind than from boot. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: add owner and dev initializers to gpio structureRussell King1-0/+2
Register the gpio device with proper .owner and .dev elements set appropraitely. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: clean up device handling in probeRussell King1-14/+16
Clean up the device handling so we can use the struct device sanely. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: use mutexes instead of semaphoresRussell King2-10/+9
Convert the ucb1x00 driver to use mutexes rather than the depreciated semaphores for exclusive access to the ADC. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: add .owner initializer and module aliasRussell King1-0/+2
Add a .owner initializer to the UCB1x00 mcp driver structure, and set an appropriate module alias to identify this driver. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: add handling for ucb1x00 resetRussell King2-4/+20
Provide a way to handle the software controlled ucb1x00 reset signal from the ucb1x00-core driver without having to code platform specifics into these drivers. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-core: get rid of mach/hardware.h includeRussell King1-2/+0
Nothing in this driver requires anything from the machine/platform headers, so remove this needless header file. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: ucb1x00-ts: provide input layer with device parentRussell King1-0/+1
Provide the input layer struct device with its parent device, so that the input layer's device appears in the correct place in the device tree. This also allows the input device to be visibily associated with its hardware. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-19MFD: mcp/ucb1x00: separate ucb1x00 driver data from the MCP dataRussell King8-11/+24
Patch taken from 5dd7bf59e0 (ARM: sa11x0: Implement autoloading of codec and codec pdata for mcp bus.) by Jochen Friedrich <jochen@scram.de>. This adds just the codec data part of the patch. Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: split si->dev for IrDA transmit and receive buffersRussell King1-7/+11
The sa11x0-ir device is not the device which is doing the DMA, the DMA is being performed by a separate DMA engine. Split the struct device associated with each DMA channel from the main struct device, but for the time being initialize it from the main struct device. This is another preparatory step to converting this driver to use the DMA engine API. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: fix size of SIR transmit bufferRussell King1-1/+1
The SIR transmit buffer was being allocated as 4000 bytes. IrDA now has constants for the buffer sizes, and defines the maximum wrapped SIR packet to be 4269 bytes as indicated by IRDA_SIR_MAX_FRAME. Use this definition to allocate the transmit buffer instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: convert to use scatterlist DMA APIRussell King1-21/+21
Convert the sa11x0 IrDA driver to use the scatterlist DMA API. This is a preparatory patch for converting the driver to use the DMA engine API, which requires a struct scatterlist for every transfer. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: get rid of si->hscr0Russell King1-8/+5
si->hscr0 is initialized to zero, and never changed. Get rid of this redundant variable. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: move sa1100_irda_txdma_irqRussell King1-55/+53
Move the FIR DMA transmit completion function along-side the other FIR protocol functions. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: move SIR and FIR interrupt supportRussell King1-149/+141
Move the interrupt handlers to the SIR and FIR sections of the file. This improves the localization of the protocol handlers. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: indirect handling of SIR and FIR interruptsRussell King1-26/+24
Use the same method for doing this as we do for the tx_start functions. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: split SIR and FIR tx functionsRussell King1-52/+66
Split the SIR and FIR transmit functions, as they behave differently. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: factor out speed checksRussell King1-12/+13
Whenever we complete a transmit, we always check for a speed change. This check was open coded in several places. Provide a helper function to do this instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: move sa1100_irda_{startup,shutdown,suspend,resume}Russell King1-131/+131
Places these functions in better locations in the file, near where they are used. This saves some tiresome paging up/down. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: fix leak of tx skbRussell King1-10/+19
Ensure that we unmap and free a pending transmit skb when the interface is stopped. We rearrange the code a little bit to give all places a similar layout when freeing the skb in both the completion and interface stop paths - this gives some consistency to the code. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: containerize DMA dataRussell King1-46/+48
Both the transmit and receive DMA store identical data: the skb, dma address, and the dma registers. Move this data into its own data structure. The following replacements were used: rxskb -> dma_rx.skb rxbuf_dma -> dma_rx.dma rxdma -> dma_rx.regs txskb -> dma_tx.skb txbuf_dma -> dma_tx.dma txdma -> dma_tx.regs Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: obtain interrupt number from platform resourcesRussell King1-3/+6
Convert the sa11x0-ir driver to obtain its interrupt number from the platform device resources, rather than via the asm/irq.h include. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: set netdev's parent struct deviceRussell King1-0/+2
Add the missing SET_NETDEV_DEV() call to set the parent device correctly for this network interface. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: handle DMA mapping errors properlyRussell King1-2/+14
Handle DMA mapping errors in the rx skb allocation and tx paths. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09NET: sa11x0-ir: fix documentation bugRussell King1-1/+1
Spell the module parameter correctly in comments. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09ARM: sa1111: change devid to be a bitmaskRussell King2-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>
2012-02-09ARM: sa11x0: badge4: move board specific ohci initialization to badge4.cRussell King2-14/+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>
2012-02-09ARM: sa1111: add platform enable/disable functionsRussell King5-15/+51
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>
2012-02-09ARM: sa1111: add shutdown hook to sa1111_driver structureRussell King2-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>
2012-02-09ARM: sa1111: implement support for sparse IRQsRussell King1-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>
2012-02-09ARM: sa1111: finish "allow cascaded IRQs to be used by platforms"Russell King1-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>
2012-02-09ARM: sa1111: add .owner initializer to sa1111 driver structuresRussell King2-0/+2
Add a .owner initializer to the sa1111 driver structures to allow allow the modules to be associated with their driver structures. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-02-09ARM: sa1111: add sa1111 core driver .owner initializerRussell King1-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>
2012-02-09ARM: sa1111: fix PWM state on suspendRussell King1-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>
2012-02-09ARM: sa1111: fix memory request/grant setup on PM eventsRussell King1-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>
2012-02-09ARM: sa11x0: neponset: don't static map neponset registersRussell King1-6/+1
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>
2012-02-09ARM: sa11x0: neponset: move register definitions to neponset.cRussell King2-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>
2012-02-09ARM: sa11x0: assabet/neponest: create neponset device in assabet.cRussell King2-43/+25
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>
2012-02-09ARM: sa11x0: neponset: suspend/resume in _noirq stateRussell King1-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>
2012-02-09ARM: sa11x0: neponset: place smc91x and sa1111 resources in neponset deviceRussell King1-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>
2012-02-09ARM: sa11x0: neponset: get parent IRQ from neponset device resourceRussell King1-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>
2012-02-09ARM: sa11x0: neponset: implement support for sparse IRQsRussell King2-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>
2012-02-09ARM: sa11x0: neponset: dynamically create neponset child devicesRussell King1-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>
2012-02-09ARM: sa11x0: neponset: save and restore MDM_CTL_0Russell King1-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>
2012-02-09ARM: sa11x0: neponset: add driver .owner initializerRussell King1-0/+1
Ensure that the driver .owner field is properly initialized. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>