aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/plat-s3c64xx
AgeCommit message (Collapse)Author
2009-09-18Merge branch 'next-s3c-fixes' of git://aeryn.fluff.org.uk/bjdooks/linuxRussell King
2009-09-17Merge branch 'next-s3c64xx-fixes' into next-s3c-fixesBen Dooks
2009-09-17ARM: S3C64XX: Provide for board-specific IRQsMark Brown
Set up some IRQ space to allocation to off-SoC interrupt controllers. Default this to 16 IRQs. If individual boards require more than this then they will need to modify this file so allocating a small number helps reduce the number of modifications required. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C64XX: DMA: Debugged alloc's with GFP_KERNEL flag in Intr context.Jassi
s3c2410_dma_enqueue makes call to kzalloc and dma_pool_alloc with GFP_KERNEL flag set, this can be an issue for drivers, like I2S, which call s3c2410_dma_enqueue from dma-bufferdone callback. Change the flag GFP_KERNEL to GFP_ATOMIC to avoid any problems. Signed-Off-by: Jassi <jassi.brar@samsung.com> [ben-linux@fluff.org: Minor description edit and re-wrap] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C64XX: DMA: 'size' argument of dma_pool_createJassi
Provide actual minimum(struct pl080s_lli) size of block to dma_pool_create call, instead of hardcoded 32 bytes. Signed-Off-by: Jassi <jassi.brar@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C64XX: DMA: struct s3c64xx_dma_buff lli fix.Jassi
Correct the lli structure in struct s3c64xx_dma_buff which should have been 'struct pl080s_lli' (samsung specific) instead of the generic version 'struct pl080_lli' Signed-Off-by: Jassi <jassi.brar@samsung.com> [ben-linux@fluff.org: Edited description and subject fields] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C64XX: Fix divider value calculation in s3c64xx_roundrate_clksrcThomas Abraham
In s3c64xx_roundrate_clksrc function, the calculation is wrong. This patch fixes this calculation. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C6410: update clk->parent when setting clock sourceThomas Abraham
This ensures the clock hierarchy data structures are updated when we change the clock source in the actual hardware registers. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> [ben-linux@fluff.org: Minor re-indentation of subject] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C6410: use correct divider_shift in setrate_clksrc()Thomas Abraham
In s3c64xx_setrate_clksrc() we used sclk->shift, but actually need to use sclk->divider_shift to correctly calculate the value for the divider register. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> [ben-linux@fluff.org: Minor re-indentation of description] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-12Merge branch 'master' into develRussell King
2009-08-16ARM: S3C: Add S3C_DEV_NAND Kconfig entryBen Dooks
Currently the S5PC100 does not define S3C_PA_NAND, leaving the NAND device definitions in arch/arm/plat-s3c/dev-nand.c unbuildable. Add a KConfig entry to select whether this is built. As backwards compatibility, both the S3C24XX and S3C64XX define the new configuration in their main Kconfig files until better support for basing this selection on a per-machine basis can be sorted out. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-08-14ARM: S3C: Move S3C64xx audio devices into S3C64xx directoryMark Brown
Allowing us to make the Kconfig a little bit saner. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30Merge branch 's3c-fixes-rc4' of git://aeryn.fluff.org.uk/bjdooks/linuxRussell King
2009-07-29S3C64XX: Fix ARMCLK configurationMark Brown
The value of armclk_mask needs to be inverted for use as a mask on the register value when updating ARM_RATIO. This is critical for cpufreq support, without it attempts to scale the frequency of the core trash pretty much the entire clock tree. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-29S3C64XX: Fix get_rate() for ARMCLKMark Brown
If the requested clock is faster than the parent clock then the parent clock is the closest we can get to the request so we need to return that instead of the requested clock. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-25ARM: includecheck fix: plat-s3c64xx/pm.cJaswinder Singh Rajput
fix the following 'make includecheck' warning: arch/arm/plat-s3c64xx/pm.c: plat/regs-gpio.h is included more than once. Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Acked-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-06-22[ARM] S3C64XX: add to_irq() support for EINT() GPIOMarek Szyprowski
N group Add to_irq() function to onvert gpio to irq for external interrupt group (GPN). Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-06-22[ARM] S3C64XX: clock.c: fix typo in usb-host clock ctrlbitPeter Korsgaard
The usb-host clock was using the wrong define (the SCLK enable for the usb-host-bus) to change the HCLK register instead of the HCLK_UHOST bit. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-06-22[ARM] S3C64XX: fix HCLK gate definesPeter Korsgaard
A few typos seems to have sneaked into the HCLK gate defines, causing the usb host clock to not get enabled. Fix them according to the reference manual and throw in the 3d accel bit for good measure. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-06-16[ARM] S3C64XX: Initial support for DVFSMark Brown
This patch provides initial support for CPU frequency scaling on the Samsung S3C ARM processors. Currently only S3C6410 processors are supported, though addition of another data table with supported clock rates should be sufficient to enable support for further CPUs. Use the regulator framework to provide optional support for DVFS in the S3C cpufreq driver. When a software controllable regulator is configured the driver will use it to lower the supply voltage when running at a lower frequency, giving improved power savings. When regulator support is disabled or no regulator can be obtained for VDDARM the driver will fall back to scaling only the frequency. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-06-10Merge branch for-rmk-devel of git://aeryn.fluff.org.uk/bjdooks/linux into develRussell King
2009-05-18[ARM] S3C: Merge next-s3c64xx-dma2 into for-rmk-develBen Dooks
Merge branch 'next-s3c64xx-dma2' into for-rmk-devel Conflicts: arch/arm/plat-s3c64xx/Makefile
2009-05-18[ARM] S3C64XX: Lower severity of DMA loggingMark Brown
The message was missing a severity macro so pick pr_debug(). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18[ARM] S3C64XX: DMA supportBen Dooks
Add support for the DMA blocks in the S3C64XX series of CPUS, which are based on the ARM PL080 PrimeCell system. Unfortunately, these DMA controllers diverge from the PL080 design by adding another DMA controller register and configuration for OneNAND. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-17[ARM] S3C64XX: Use common watchdog reset for system reset.Ben Dooks
Use the newly moved <plat/watchdog-reset.h> to perform the arch_reset() call which has been unimplemented for a while. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-15[ARM] S3C64XX: fix GPIO debugMarek Szyprowski
Fix compilation bug when debug was enabled Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-15[ARM] S3C64XX: GPIO include cleanupMarek Szyprowski
Cleanup arm/plat-s3c64xx/include/plat/gpio-bank-h.h include file. Using shift-left operation with value >32 is a bad habit. Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add ARM clockBen Dooks
Add ARM clock to provide 'arm' from the APLL to the ARM core. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Configure clocks for DMA controllerMark Brown
Add missing DMA controller block clocks. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add HCLKx2Werner Almesberger
Add doubled HCLK to S3C64xx. Signed-off-by: Werner Almesberger <werner@openmoko.org> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C6410: Add CAMIF clockWerner Almesberger
Add camera interface clock to S3C6410. Signed-off-by: Werner Almesberger <werner@openmoko.org> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add S3C6400 SDHCI setup supportBen Dooks
Add support for S3C6400 SDHCI channels 0 and 1, making the GPIO code common to both S3C6400 and S3C6410. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add S3C6400 CPU detection.Ben Dooks
Add detection support for the S3C6400 SoC which has it's id register in a different place to the S3C6410. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C6400: Core support for S3C6400 SoCBen Dooks
Add the core support files for the Samsung S3C6400 SoC. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] VIC: Add power management deviceBen Dooks
Add power management support to the VIC by registering each VIC as a system device to get suspend/resume events going. Since the VIC registeration is done early, we need to record the VICs in a static array which is used to add the system devices later once the initcalls are run. This means there is now a configuration value for the number of VICs in the system. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C: GPIO PM core GPIOlib integrationBen Dooks
Move the GPIO suspend/resume support inline with the gpiolib support so that it will work with both the S3C24XX and S3C64XX series. The s3c_gpio_chip is extended to have a pm callback and a save block to keep the state of the GPIO over suspend, and the code from the s3c24xx implementation is added to a new common file. The suspend process now uses the list of registered chips to go through saving and restoring each one as appropriate, using the pm callback to select the appropriate routine depending on the type of control register present. This change also means that any additional GPIO added should not require changes to the PM. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add IRQ PM codeBen Dooks
Add support for saving the state of the IRQ registers over suspend. This requires moving the S3C64XX UART registers into <plat/regs-serial.h> and adding irq-pm.c which saves the state of all the IRQ registers. The irq-pm.c saves all the IRQ registers, including the IRQ_EINT and IRQ_EINT_GROUP registers as it was easier than adding three different files. Also ensuring that all the registers are restored to the same state as before suspend is considered to be the best thing to do. Note, we do not suspend the VIC here, this is done by the VIC driver itself. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add generic s3c64xx sys device.Ben Dooks
Add an s3c64xx_sysclass and device for items that currently want to bind to any s3c64xx processor. The first user of this will be parts of the s3c64xx suspend support which need to save device state over suspend/resume. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Initial support for PM (suspend to RAM)Ben Dooks
Add the initial support for the S3C64XX based systems to use suspend-to-RAM to sleep. Includes basic debugging for use with the SMDK6410 usign the LEDs on the baseboard. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add USB OHCI supportBen Dooks
Add USB OHCI host definitions. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-03-10[ARM] S3C64XX: add AHB_CON and SPCON register address definitionsBen Dooks
Add the address definitions for S3C64XX_AHB_CONx and SPCON registers for use in the PM code. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-03-10[ARM] S3C64XX: Add definitions for the GPIO memory port configurationsBen Dooks
Add defines for the registers that control the GPIO pins that are run the memory interface. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-03-10[ARM] S3C64XX: SYSCON power and sleep control register definesBen Dooks
Add the register defines for the sleep and power control functions in the S3C64XX SYSCON register block. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-03-10[ARM] S3C64XX: Add S3C64XX_SPCON register bit definitionsBen Dooks
Add the definitions for the SPCON register in the GPIO block. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-03-10[ARM] S3C64XX: Add GPIO SPCONSLP and SLPEN register definitionsBen Dooks
Add GPIO register definitions for SPCONSLP and SLPEN for controlling the state of the pins over sleep. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-03-10[ARM] S3C64XX: Add EINT group regs and move IRQ_EINT to regs-gpio.hBen Dooks
Add definitions for the EINT group registers and move the EINT IRQ register definitions out of arch/arm/plat-s3c64xx/irq-eint.c so that they are available for re-use with PM and the other code. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-03-10[ARM] S3C64XX: Add modem registers and a virtual mapBen Dooks
Add the modem registers and a virtual mapping for the modem block. This is is required as there are registers that control the LCD block that need to be saved over suspend as well as interrupt controls. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-03-06Merge branch 'master' of ↵Ben Dooks
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into s3c-fixes
2009-02-27[ARM] S3C64XX: Fix s3c64xx_setrate_clksrcWerner Almesberger
Some of the rate selection logic in s3c64xx_setrate_clksrc uses what appears to be parent clock selection logic. This patch corrects it. I also added a check for overly large dividers to prevent them from changing unrelated clocks. Signed-off-by: Werner Almesberger <werner@openmoko.org> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-02-27[ARM] S3C64XX: sparse warnings in arch/arm/plat-s3c64xx/irq.cBen Dooks
Fix the following sparse warnings in arch/arm/plat-s3c64xx/irq.c arch/arm/plat-s3c64xx/irq.c:210:23: warning: incorrect type in initializer (different address spaces) arch/arm/plat-s3c64xx/irq.c:210:23: expected void *reg_base arch/arm/plat-s3c64xx/irq.c:210:23: got void [noderef] <asn:2>*regs arch/arm/plat-s3c64xx/irq.c:215:2: warning: incorrect type in argument 1 (different address spaces) arch/arm/plat-s3c64xx/irq.c:215:2: expected void const volatile [noderef] <asn:2>*<noident> arch/arm/plat-s3c64xx/irq.c:215:2: got void * Signed-off-by: Ben Dooks <ben-linux@fluff.org>