summaryrefslogtreecommitdiff
path: root/arch/arm/plat-samsung
AgeCommit message (Collapse)Author
2010-05-10ARM: S3C2416: Add arch supportYauhen Kharuzhy
Add arch/arm/mach-s3c2416 for support of the Samsung S3C2416 SoC. This patch adds support of the S3C2416 SoC, clocks, timers, and initial IRQ support (without support of secondary set of registers). Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com> [ben-linux@fluff.org: removed files to be reworked, fixed conflicts] [ben-linux@fluff.org: use s3c2443 reset instead of specific reset code] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-10ARM: SAMSUNG: Add s3c_disable_clocks() and tidy init+disable usageBen Dooks
Add s3c_disable_clocks() and change the clock registration code to use the s3c_register_clocks() followed by s3c_disable_clocks() instead of the loops it was using. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-10ARM: SAMSUNG: Move S3C6400 PLL code to <plat/pll.h> for re-useBen Dooks
The S3C6400 EPLL code matches the S3C2416 and compatible SoCs, so move it from mach-s3c64xx into <plat/pll.h> for easy reuse. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-06ARM: S3C24XX: Remove s3c2410_gpio_getcfg(), implement s3c_gpio_getcfg()Ben Dooks
Add s3c_gpio_getcfg() and change anything using s3c2410_gpio_getcfg() to use this instead. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-06ARM: SAMSUNG: Add GPIO configuration read callsBen Dooks
Add the necessary 1,2 and 4 bit configuration read calls for the new gpio code to allow removal of the old s3c24xx gpio code. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-06ARM: S3C24XX: Add the gpio pull configuration for pull-upBen Dooks
Add the necessary gpio configuration helper for the devices which have a single-bit pull-up resistor disabled. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-06ARM: S3C24XX: Add initial s3c_gpio configuration codeBen Dooks
Add support for s3c_gpio_setcfg() and s3c_gpio_setpull() implementations to get ready for removal of the specific code being used by s3c24xx. Also rename the s3c_gpio_setcfg_s3c24xx_banka to s3c_gpio_setcfg_s3c24xx_a as seen in the header file to correct a build warning. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-03-30include cleanup: Update gfp.h and slab.h includes to prepare for breaking ↵Tejun Heo
implicit slab.h inclusion from percpu.h percpu.h is included by sched.h and module.h and thus ends up being included when building most .c files. percpu.h includes slab.h which in turn includes gfp.h making everything defined by the two files universally available and complicating inclusion dependencies. percpu.h -> slab.h dependency is about to be removed. Prepare for this change by updating users of gfp and slab facilities include those headers directly instead of assuming availability. As this conversion needs to touch large number of source files, the following script is used as the basis of conversion. http://userweb.kernel.org/~tj/misc/slabh-sweep.py The script does the followings. * Scan files for gfp and slab usages and update includes such that only the necessary includes are there. ie. if only gfp is used, gfp.h, if slab is used, slab.h. * When the script inserts a new include, it looks at the include blocks and try to put the new include such that its order conforms to its surrounding. It's put in the include block which contains core kernel includes, in the same order that the rest are ordered - alphabetical, Christmas tree, rev-Xmas-tree or at the end if there doesn't seem to be any matching order. * If the script can't find a place to put a new include (mostly because the file doesn't have fitting include block), it prints out an error message indicating which .h file needs to be added to the file. The conversion was done in the following steps. 1. The initial automatic conversion of all .c files updated slightly over 4000 files, deleting around 700 includes and adding ~480 gfp.h and ~3000 slab.h inclusions. The script emitted errors for ~400 files. 2. Each error was manually checked. Some didn't need the inclusion, some needed manual addition while adding it to implementation .h or embedding .c file was more appropriate for others. This step added inclusions to around 150 files. 3. The script was run again and the output was compared to the edits from #2 to make sure no file was left behind. 4. Several build tests were done and a couple of problems were fixed. e.g. lib/decompress_*.c used malloc/free() wrappers around slab APIs requiring slab.h to be added manually. 5. The script was run on all .h files but without automatically editing them as sprinkling gfp.h and slab.h inclusions around .h files could easily lead to inclusion dependency hell. Most gfp.h inclusion directives were ignored as stuff from gfp.h was usually wildly available and often used in preprocessor macros. Each slab.h inclusion directive was examined and added manually as necessary. 6. percpu.h was updated not to include slab.h. 7. Build test were done on the following configurations and failures were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my distributed build env didn't work with gcov compiles) and a few more options had to be turned off depending on archs to make things build (like ipr on powerpc/64 which failed due to missing writeq). * x86 and x86_64 UP and SMP allmodconfig and a custom test config. * powerpc and powerpc64 SMP allmodconfig * sparc and sparc64 SMP allmodconfig * ia64 SMP allmodconfig * s390 SMP allmodconfig * alpha SMP allmodconfig * um on x86_64 SMP allmodconfig 8. percpu.h modifications were reverted so that it could be applied as a separate patch and serve as bisection point. Given the fact that I had only a couple of failures from tests on step 6, I'm fairly confident about the coverage of this conversion patch. If there is a breakage, it's likely to be something in one of the arch headers which should be easily discoverable easily on most builds of the specific arch. Signed-off-by: Tejun Heo <tj@kernel.org> Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
2010-03-15ARM: SAMSUNG: Fix build error from stale define in <plat/uncompress.h>Ben Dooks
The decleration of error() as static in the platform specific uncompress code in arch/arm/plat-samsung/include/plat/uncomopress.h causes the build of the uncompressor to break. Remove it, as it is no longer needed. arch/arm/boot/compressed/decompress.o: In function `gunzip': /var/tmp/kernel-orig/arch/arm/boot/compressed/../../../../lib/decompress_inflate.c:67: undefined reference to `error' /var/tmp/kernel-orig/arch/arm/boot/compressed/../../../../lib/decompress_inflate.c:73: undefined reference to `error' /var/tmp/kernel-orig/arch/arm/boot/compressed/../../../../lib/decompress_inflate.c:80: undefined reference to `error' /var/tmp/kernel-orig/arch/arm/boot/compressed/../../../../lib/decompress_inflate.c:95: undefined reference to `error' /var/tmp/kernel-orig/arch/arm/boot/compressed/../../../../lib/decompress_inflate.c:152: undefined reference to `error' Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-03-15ARM: SAMSUNG: Add suspend/resume support for S3C PWM driverVasily Khoruzhick
Reset period_ns and duty_ns values in suspend handler to avoid skip of configuration if same values passed to pwm_config; Restore invertion bit in resume handler. Without this patch PWM works incorrectly after resume from suspend. Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-03-12Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits) doc: fix typo in comment explaining rb_tree usage Remove fs/ntfs/ChangeLog doc: fix console doc typo doc: cpuset: Update the cpuset flag file Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed Remove drivers/parport/ChangeLog Remove drivers/char/ChangeLog doc: typo - Table 1-2 should refer to "status", not "statm" tree-wide: fix typos "ass?o[sc]iac?te" -> "associate" in comments No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h devres/irq: Fix devm_irq_match comment Remove reference to kthread_create_on_cpu tree-wide: Assorted spelling fixes tree-wide: fix 'lenght' typo in comments and code drm/kms: fix spelling in error message doc: capitalization and other minor fixes in pnp doc devres: typo fix s/dev/devm/ Remove redundant trailing semicolons from macros fix typo "definetly" -> "definitely" in comment tree-wide: s/widht/width/g typo in comments ... Fix trivial conflict in Documentation/laptops/00-INDEX
2010-02-24ARM: S3C64XX: Add AC97 platform resourcesJassi Brar
This patch defines the platform device and the resources: IRQ, DMA and MEM, needed by the AC97 controller driver. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-24ARM: S5P6442: Add Samsung S5P6442 CPU supportKukjin Kim
This patch adds support for Samsung S5P6442 CPU. This patch also adds an entry for S5P6442 cpu in plat-s5p cpu table. Signed-off-by: Adityapratap Sharma <aditya.ps@samsung.com> Signed-off-by: Atul Dahiya <atul.dahiya@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-24ARM: SAMSUNG: adc: disable/enable IRQ on suspend/resumeVasily Khoruzhick
IRQ should be disabled on suspend and re-enabled on resume. Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-24ARM: SAMSUNG: Select NO_IOPORT for plat-samsungBen Dooks
All these platforms select NO_IOPORT, so move it to plat-samsung Kconfig Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-24ARM: SAMSUNG: Move plat-s3c Kconfig entries to plat-samsung and plat-s3c24xxBen Dooks
Move the Kconfig entries from plat-s3c to plat-samsung and plat-s3c24xx as necessary. The S3C_BOOT entries and the DMA configuration can go to plat-samsung. The low-level UART configurations are currently S3C2XX specific and can go to plat-s3c24xx. Eliminating plat-s3c from the build process will be submitted seperately. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-23ARM: SAMSUNG: Move the last build from plat-s3c to plat-samsungBen Dooks
Move the init.c and time.c files to plat-samsung from plat-s3c, thus clearing the last files that are being built in here. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-23ARM: SAMSUNG: Move DMA support to plat-samsungBen Dooks
Move the core of the DMA support to plat-samsung for everyone to use. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-23ARM: SAMSUNG: Move pm.c to plat-samsungBen Dooks
Move pm.c to plat-samsung, it should be usable by all Samsung systems Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-23ARM: SAMSUNG: Move map-base to plat-samsungBen Dooks
Move the map-base file to plat-samsung. To make the move easier, we do not change the S3C_ prefix on many of the items as this would involve going through altering all the dependencies. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-23ARM: SAMSUNG: Move common headers from plat-s3c to plat-samsungBen Dooks
Move common headers from plat-s3c's include/plat directory into plat-samsung. No need to fix any files, these are still included via <plat/> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-22ARM: Merge next-samsung-s3c64xx-platdeletionBen Dooks
Merge branch 'next-samsung-s3c64xx-platdeletion' into next-samsung Conflicts: arch/arm/mach-s3c64xx/Makefile (fixed)
2010-02-21ARM: SAMSUNG: Remove dma-plat.h to allow plat-s3c64xx to be removedBen Dooks
dma-plat.h is the last file left in plat-s3c64xx, but to remove it we must also change the use of dma-plat.h by the core code and the s3c24xx implementation. Rename the s3c24xx dma-plat.h in the common plat-samsung directory as it may be used for other ports. Move the specific dma bits into the mach-s3c64xx directory and update the build as needed. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-20ARM: S3C64XX: Combine the clock init codeBen Dooks
Turn the init sequence of s3c24xx_register_baseclocks(xtal); s3c64xx_register_clocks(); s3c6400_register_clocks(S3C6410_CLKDIV0_ARM_MASK); into a single call as this is now contained within one file. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-03ARM: SAMSUNG: Add support for 12bit ADCMaurus Cuelenaere
The S3C64XX SoC series support 12bit ADC data, enable this and mask the data accordingly. Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-03ARM: S3C64XX: SPI: Make platform device compilation selectableJassi Brar
The SPI controller platform devices should be compiled in independent of the driver support, otherwise we might end up with dev-spi built as kernel module. Change this to make every machine select if it has some SPI device and wants to build device definitions. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-02-03ARM: SAMSUNG: Add DMA masks to hsotg deviceBen Dooks
Add the required DMA masks to the hs-otg device definition to allow DMA to work with it. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-26ARM: SAMSUNG: Add error printing to s3c24xx_register_clocksBen Dooks
Add an error print to s3c24xx_register_clocks to provide more useful information when failing to register the clock. I belive this was originally left out due to the possibility of a problem with low-level debugging code. However, if the low-level debug code is not functional by now there will be a whole other set of problems being presented to the system. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-26ARM: SAMSUNG: Add documentation to the clock registration calls.Ben Dooks
Add some kerneldoc documentation to the s3c24xx_register_clock and the s3c24xx_register_clocks() call. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-26ARM: S3C64XX: Squash SDHCI setup into one fileBen Dooks
Squash the SDHCI setup for both the S3C6400 and S3C6410 into one file and make the S3C6410 case use the S3C6400 code. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-26ARM: SAMSUNG: Fix bad use of __initdata for s3c_register_clocks()Ben Dooks
Functions should be marked __init, not __initdata. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-26ARM: SAMSUNG: Fix null pointer dereference in ADC driverMaurus Cuelenaere
ARM: SAMSUNG: Fix null pointer dereference in ADC driver Use struct adc_device instead of relying on client (which could be NULL) when checking for SoC type. Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-21ARM: S3C64XX: Fix typo in s3c-hsotg platform dataMaurus Cuelenaere
ARM: S3C64XX: Fix typo in s3c-hsotg platform data Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-21ARM: SAMSUNG: Staticise gpiolib implementation functionsMark Brown
They are not exported, they are referenced via vtables. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-21ARM: SAMSUNG: Move pm-check.c to plat-samsungBen Dooks
Move the pm-check.c file to plat-samsung for all Samsung SoC users, and update Kconfig names to make them SAMSUNG_ instead of S3C2410_ Sed expresions used to make the change: s/S3C2410_PM_DEBUG/SAMSUNG_PM_DEBUG/g s/S3C2410_PM_CHECK/SAMSUNG_PM_CHECK/g Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-21ARM: SAMSUNG: Move pmw.c to plat-samsungBen Dooks
Move the PWM driver support to plat-samsung, as these PWM blocks are close enough across the current range to be supported by this driver. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-21ARM: SAMSUNG: Move more support into plat-samsungBen Dooks
Move header files which are not likely to be touched in any further support addition out of plat-s3c's include directory into plat-samsung. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-19ARM: SAMSUNG: Remove empty gpio-core.h and use central plat/gpio-core.hBen Dooks
Rename mach-s3c2410/include/mach/gpio-core.h to mach/gpio-track.h so that it can be included by <plat/gpio-core.h> when needed. Eliminate all other empty gpio-core.h files and just include the <plat/gpio-core.h> as necessary. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-19ARM: SAMSUNG: Move GPIO headers to plat-samsungBen Dooks
Move the GPIO and GPIO configuration headers into arch/arm/plat-samsung as they are common to all the Samsung SoCs. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-19ARM: SAMSUNG: Move gpiolib support in gpio.c to plat-samsungBen Dooks
Move the gpio.c code containing the core gpiolib and GPIO support to plat-samsung from plat-s3c as it is used by all current Samsung SoCs. Note, we didn't move this to gpiolib.c as it contains code that is not strictly for gpiolib support and the 4bit code is already called gpiolib.c so make the change easier by not renaming both files in one go. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-19ARM: SAMSUNG: Move pm-gpio into plat-samsungBen Dooks
Move the pm-gpio code into plat-samsung. Note, this should be changed later to properly compile the 4bit code if the 4bit settings are enabled. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-19ARM: SAMSUNG: Move GPIO common functions to plat-samsungKukjin Kim
This patch moves GPIO common functions (from plat-s3c64xx) into plat-samsung. and adds the config option to build the plat-samsung/gpiolib for Samsung SoCs. Signed-off-by: Adityapratap Sharma <aditya.ps@samsung.com> Signed-off-by: Atul Dahiya <atul.dahiya@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-19ARM: Merge next-samsung-clock2Ben Dooks
Merge branch 'next-samsung-clock2' into next-samsung-try7
2010-01-19ARM: Merge next-samsung-devupdates1Ben Dooks
Merge branch 'next-samsung-devupdates1' into next-samsung-try7
2010-01-19ARM: SAMSUNG: Add platform data registration for OHCIBen Dooks
Add a platform data helper for the OHCI device Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-19ARM: SAMSUNG: Make UART device code commonBen Dooks
Move s3c24xx_uart_devs, s3c24xx_uart_src and the platform devices to a common entry in plat-samsung since they are the same in all the current implementations. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-18ARM: S3C64XX: SPI: Header for passing platform dataJassi Brar
We need a way to pass controller specific information to the SPI driver. For that purpose new headers are made. SPI Controller is assumed 'type-s3c64xx' and can be defined for newer SoCs. Hence, that part is placed under plat-samsung to be shared across newer SoCs. SoC specific part - spi source clocks, will be placed under plat-<soc>/include/plat/ Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-18ARM: SAMSUNG: Fix bug in clksrc-clk round_rate call.Ben Dooks
The call has been assuming all clksrc-clks' divider size is 4 bits, but this may not be the case anymore. Use the reg_div.size parameter to calculate the maximum value it can take and check against that. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-18ARM: SAMSUNG: Fix clksrc-clk's checks for bad register settingsBen Dooks
The WARN_ON() was only checking the first clock in the array, instead of being executed for each clksrc clock being registered. Since this is an array of clocks, WARN_ON() does not provide a lot of useful information about the problem, so change to using printk(KERN_ERR) to report the problem to the console. As a note, we still try and register the clock even if these problems are present just in case and to avoid changing the behaviour of the registration process. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-18ARM: SAMSUNG: Add check to ensure that clksrc_clk does have multiple clock ↵Thomas Abraham
sources Adds a additional check in s3c_set_clksrc function to ensure that the clksrc_clk does have a choice of multiple clock sources. In addition to this, a check is added to ensure that a parent is assigned to the clksrc_clk in case it does not have a choice of parent clocks. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>