summaryrefslogtreecommitdiff
path: root/arch/arm/plat-s3c24xx
AgeCommit message (Collapse)AuthorFilesLines
2009-09-12Merge branch 'master' into develRussell King1-1/+1
2009-08-16ARM: S3C: Add S3C_DEV_NAND Kconfig entryBen Dooks1-0/+1
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-14Merge branch 'next-s3c64xx-moves' into next-s3cBen Dooks3-425/+0
2009-08-14Merge branch 'next-s3c24xx-cpufreq' into next-s3cBen Dooks13-1/+2629
2009-08-14Merge branch 'next-s3c24xx' into next-s3cBen Dooks6-0/+144
2009-08-14ARM: S3C24XX: Add SPI bus 1 on GPD8 through GPD10Ben Dooks3-0/+45
Add configuration callback for SPI bus 1 on GPD[8..10] and ensure the correct GPIO configuration register definitions in regs-gpio.h Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-08-14ARM: S3C24XX: Add platform device for AC97 controllerMark Brown1-0/+50
Move the definition of the "generic" IRQ in the process. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-08-14ARM: S3C24XX: Add FIQ IRQ routing supportBen Dooks2-0/+49
Add support for routing an IRQ from the normal ARM IRQ mechanism to the FIQ input of the processor. Note, also fix a bug where the init_FIQ() function has not been called when CONFIG_FIQ is enabled. Signed-off-by; Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-08-14ARM: S3C24XX: Fix clkout mpx errorDavide Rizzo1-1/+1
Bug correction: CLK Outputs cannot have XTAL as parent Signed-off-by: Davide Rizzo <elpa.rizzo@gmail.com> [ben-linux@fluff.org: updated patch subject] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-31ARM: S3C: move timer/pwm handling from plat-s3c24xx to plat-s3cPeter Korsgaard2-406/+0
The s3c64xx devices use the same hardware core as s3c24xx, so move the timer/pwm handling to plat-s3c so it can be used by both. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-31ARM: S3C: move s3c_device_nand from plat-s3c24xx to plat-s3cPeter Korsgaard1-19/+0
Move the s3c_device_nand platform device from plat-s3c24xx to plat-s3c, now that the nand driver also support the s3c64xx devices. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C: PWM fix for low duty cyclePeter Korsgaard1-0/+4
The pwm hardware only checks the compare register after a decrement, so the pin never toggles if tcmp = tcnt. This happens when a very low duty cycle is requested. Fix it by always ensuring that tcmp < tcnt. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C: CPUFREQ: Add debugfs support for cpufreqBen Dooks7-0/+307
Add debugfs support for the cpufreq driver to allow information about the system state to be exported to the user. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C2410: Add S3C2410A sysdev.Ben Dooks2-1/+2
Add a sysdev S3C2410A sysdev to allow the differentiation of the S3C2410A from the S3C2410. This is needed for the CPUFREQ code to enable the extra features and update cpu specific information. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C24XX: CPUFREQ: S3C2412/S3C2443 IO timing supportBen Dooks4-1/+322
Add IO bank timing support for S3C2412/S3C2443. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C2440: CPUFREQ: Add crystal frequency Kconfig entries.Ben Dooks1-2/+14
Add entries to select the crystal to select for each different supported board. This information is then available for anything else requiring this, such as the CPUFreq PLL tables. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C2440: CPUFREQ: Add PLL tablesBen Dooks4-0/+241
Add PLL tables for the S3C2440. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C2440: CPUFREQ: Add core support.Ben Dooks3-0/+318
Add core support for frequency scaling on the S3C2440 SoC. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C2410: CPUFREQ: Add core support.Ben Dooks3-0/+72
Add core support for frequency scaling on the S3C2410 SoC. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C2410: CPUFREQ: Add io-timing support.Ben Dooks3-0/+442
Add io-timing support for frequency scaling on the S3C2410 SoC. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C: CPUFREQ: Move struct s3c_cpufreq_config to cpu-freq-core.hBen Dooks1-0/+25
Move the structure s3c_cpufreq_config from cpu-freq.h to the less advertised cpu-freq-core.h as it is not needed by anything outside the core drivers. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30ARM: S3C24XX: CPUFREQ: Add core support.Ben Dooks3-0/+889
Add the core of the support for enabling the CPUFreq driver on all S3C24XX based systems. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-18ARM: S3C: Add ADC synchronous read call.Ben Dooks1-11/+53
To add HWMON support, we need a synchronous read() call that blocks until completion. Add the client that is being service to the select and convert callbacks to make the code easier. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-18ARM: S3C: Update hwmon device definition and nameBen Dooks1-1/+1
Change the hwmon device name to something more generic as this should be functional for both the s3c24xx and s3c64xx archs. Since it has yet to have a driver, it is pretty safe to change as there are no extant users. Also add the necessary entry in devs.h which seems to have been missed out at somepoint. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-06-23[ARM] S3C24XX: Fix spi-bus configuration build errorsBen Dooks2-4/+2
The commit ec976d6eb021dc8f2994248c310a41540f4756bd removed a number of gpio definitions from <mach/hardware.h> but misssed updating these two files: Fix the following build errors by including <linux/gpio.h>: arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c: In function 's3c24xx_spi_gpiocfg_bus1_gpg5_6_7': arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c:25: error: implicit declaration of function 's3c2410_gpio_cfgpin' arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c:28: error: implicit declaration of function 's3c2410_gpio_pullup' arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c: In function 's3c24xx_spi_gpiocfg_bus0_gpe11_12_13': arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c:25: error: implicit declaration of function 's3c2410_gpio_cfgpin' arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c:28: error: implicit declaration of function 's3c2410_gpio_pullup' Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-06-23[ARM] S3C24XX: Fix use of CONFIG_S3C24XX_PWMBen Dooks1-1/+1
CONFIG_S3C24XX_PWM was defined in arch/arm/plat-s3c24xx/Kconfig but not used anywhere else as the corresponding makefile used CONFIG_HAVE_PWM (selected by CONFIG_S3C24XX_PWM) to compile the PWM driver. Change the makefile to use CONFIG_S3C24XX_PWM to compile this driver to ensure it is only build when needed. 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 King15-427/+305
2009-05-21[ARM] S3C24XX: Merge devel-gpioBen Dooks7-79/+76
Merge branch 'devel-gpio' into for-rmk-devel
2009-05-18[ARM] S3C24XX: GPIO: Fix missing GPIOs in gpiolibBen Dooks1-1/+10
The GPG bank has 16 IOs, not 10. Add the missing GPH bank. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18[ARM] S3C24XX: GPIO: Move gpiolib initialisation earlierBen Dooks1-1/+1
The arch_initcall() is too late for board initialisation to use gpiolib when doing their machine specific initilisation via the .init_machine callback. Bring the file into line with the s3c64xx implementation and use the core_initcall() to register the GPIO chips. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18[ARM] S3C24XX: GPIO: Fix error returns from gpio functionsBen Dooks1-2/+2
Several GPIO functions have been returning -1 to indicate an error instead of returning a proper error code. Change to return -EINVAL for invalid argument(s). Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18[ARM] S3C: Merge next-s3c64xx-dma2 into for-rmk-develBen Dooks4-100/+209
Merge branch 'next-s3c64xx-dma2' into for-rmk-devel Conflicts: arch/arm/plat-s3c64xx/Makefile
2009-05-18[ARM] S3C24XX: GPIO: Change to macros for GPIO numberingBen Dooks7-52/+52
Prepare to remove the large number of S3C2410_GPxn defines by moving to S3C2410_GPx(n) in arch/arm. The following perl was used to change the files: perl -pi~ -e 's/S3C2410_GP([A-Z])([0-9]+)([^_^0-9])/S3C2410_GP\1\(\2\)\3/g' Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18[ARM] S3C24XX: GPIO: Start removal of S3C24XX_GPIO_BASEBen Dooks1-7/+7
The S3C24XX_GPIO_BASE makes it difficult to compress the GPIO number space, and is only used in a few places of which everything outside arch/arm/plat-s3c24xx/gpiolib.c will be removed as soon as possible. Change gpiolib.c to use the S3C2410_GPxCON register addresses as the base for each bank, thus eliminating S3C24XX_GPIO_BASE. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18[ARM] S3C24XX: Fix missing <linux/sysdev.h>Ben Dooks1-0/+1
In our recent changes, arch/arm/plat-s3c24xx/gpiolib.c needs to have <linux/sysdev.h> included for it to build. This fixes the following error/warnings: arch/arm/plat-s3c/include/plat/pm.h:104: error: expected declaration specifiers or '...' before 'pm_message_t' arch/arm/plat-s3c/include/plat/pm.h:104: warning: 'struct sys_device' declared inside parameter list arch/arm/plat-s3c/include/plat/pm.h:104: warning: its scope is only this definition or declaration, which is probably not what you want arch/arm/plat-s3c/include/plat/pm.h:105: warning: 'struct sys_device' declared inside parameter list Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18[ARM] S3C24XX: GPIO: Move gpio functions out of <mach/hardware.h>Ben Dooks3-0/+3
Move all the gpio functions out of <mach/hardware.h> as this file is for defining the generic IO base addresses for the kernel IO calls. Make a new header <mach/gpio-fns.h> to take this and include it via the chain from <linux/gpio.h> which is what most of these files should be using (and will be changed as soon as possible). Note, this does make minor changes to some drivers but should not mess up any pending merges. CC: Richard Purdie <rpurdie@rpsys.net> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> CC: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-17[ARM] S3C24XX: GPIO: Remove pin specific input and output definesBen Dooks1-4/+4
The use of S3C2410_GP[A-Z]x_INP and S3C2410_GP[A-Z]x_OUTP are very rare and are taking up large amounts of space in the regs-gpio.h header. The GPIO layer has had generic input and out defines called S3C2410_GPIO_INPUT and S3C2410_GPIO_OUTPUT for a while which work for all S3C24XX GPIOs. Do the following replacements: S3C2410_GP[A-Z][0-9]*_\OUTP => S3C2410_GPIO_OUTPUT S3C2410_GP[A-Z][0-9]*_\INP => /S3C2410_GPIO_INPUT S3C2410_GPA[0-9]*_OUT => S3C2410_GPIO_OUTPUT to remove any usages of these and prepare the header for the removal of these. The following command was used to acheive this: find . -type f -writable ! -name regs-gpio.h ! -name "*~" | xargs sed -i~ -e 's/S3C2410_GP[A-Z][0-9]*_\OUTP/S3C2410_GPIO_OUTPUT/g' -e 's/S3C2410_GP[A-Z][0-9]*_\INP/S3C2410_GPIO_INPUT/g' -e 's/S3C2410_GPA[0-9]*_OUT/S3C2410_GPIO_OUTPUT/g' Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-17[ARM] S3C24XX: GPIO: Remove s3c2410_gpio_irq2pin() callBen Dooks1-16/+0
Remove the s3c2410_gpio_irq2pin() function as it is not being used in any in kernel driver and the function is probably not being used anywhere else. This is also part of the effort to remove any of the s3c24xx gpio specific code that cannot be recreated by using the gpiolib framework now in the kernel. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-16[ARM] S3C: ADC: Expose number of remaining conversions toNelson Castillo1-4/+7
convert callback This patch allow us to efficiently modify the number of remaining conversions from the client side. This us useful when we do not know in advance how many conversions we will need or when we need to cancel pending conversions. This change is simple enough to be compatible with existing code that can just define the new pointer in the callback and ignore it. Sample usage: http://tinyurl.com/s3c2410-ts-c (function stylus_adc_action). Signed-off-by: Nelson Castillo <arhuaco@freaks-unidos.net> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-15[ARM] S3C24XX: Fix unused code warning in arch/arm/plat-s3c24xx/dma.cBen Dooks1-1/+1
Fix unused code warning in arch/arm/plat-s3c24xx/dma.c if there is no PM support enabled. The function to_dma_chan() should be marked inline so that the compiler will eliminate it without warning if it isn't used. arch/arm/plat-s3c24xx/dma.c:1239: warning: 'to_dma_chan' defined but not used Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C: GPIO PM core GPIOlib integrationBen Dooks2-213/+8
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] S3C: Add debug to UART save and a per-arch callback pre-restoreBen Dooks1-0/+5
Add a simple debug message on saving the UART state and add a per-arch pre-restore function to be used by the s3c64xx restore code to ensure the UARTs control registers do not go through any illegal state changes. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C: Rename S3C24XX_PA_USBHOST to S3C_PA_USBHOSTBen Dooks1-1/+0
The USB host base address is available on both the S3C24XX and S3C64XX ranges. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C: Add common USB OHCI device definitionBen Dooks1-30/+0
Add common definition for USB OHCI platform device, add a Kconfig to selectively compile it and add update all the users. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01[ARM] S3C: Move DMA channel management code to plat-s3cBen Dooks3-83/+15
Change the name of S3C2410_DMA_CHANNELS to S3C_DMA_CHANNELS in the process. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01[ARM] S3C24XX: Fix indentation in <plat/dma-regs.h>Ben Dooks1-69/+69
The <plat/dma-regs.h> pre-date the invention of the TAB character, so fix the indentation of the register defines. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01[ARM] S3C24XX: DMA: Split hardware regs out of <mach/dma.h>Ben Dooks2-1/+146
The <mach/dma.h> is for the driver API for the DMA system and should not have anything relying on the CPU specific registers. Remove the registers to <plat/dma-regs.h> for the code that really needs to know about them. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01[ARM] S3C24XX: Remove hardware specific registers from DMABen Dooks1-14/+46
calls The S3C24XX DMA API channel configuration registers are being passed values comprised of register values which makes it hard to move the API to cover both the S3C24XX and S3C64XX. These values can be calculated from knowing which device the channel is connected to, so remove them from the two calls s3c2410_dma_config and s3c2410_dma_devconfig. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01[ARM] S3C24XX: Move plat/dma.hBen Dooks2-2/+2
Move the platform dma.h to dma-plat.h to ensure it doen't get confused with plat/dma.h Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-04-17[ARM] S3C24XX: ADC: Check pending queue before freeing adc clientRamax Lo1-0/+17
Check pending queue and remove the adc client being released. Signed-off-by: Ramax Lo <ramaxlo@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>