summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
Commit message (Collapse)AuthorAgeFilesLines
*-. Merge branches 'devel-iommu-mailbox' and 'devel-l2x0' into omap-for-linusTony Lindgren2010-12-203-16/+43
|\ \
| | * omap4: l2x0: Enable early BRESP bitSantosh Shilimkar2010-12-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AXI protocol specifies that the write response can only be sent back to an AXI master when the last write data has been accepted. This optimization enables the PL310 to send the write response of certain write transactions as soon as the store buffer accepts the write address. This behavior is not compatible with the AXI protocol and is disabled by default. You enable this optimization by setting the Early BRESP Enable bit in the Auxiliary Control Register (bit [30]). Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Mans Rullgard <mans@mansr.com> Tested-by: Nishanth Menon <nm@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| | * omap4: l2x0: Set share override bitSantosh Shilimkar2010-12-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clearing bit 22 in the PL310 Auxiliary Control register (shared attribute override enable) has the side effect of transforming Normal Shared Non-cacheable reads into Cacheable no-allocate reads. Coherent DMA buffers in Linux always have a Cacheable alias via the kernel linear mapping and the processor can speculatively load cache lines into the PL310 controller. With bit 22 cleared, Non-cacheable reads would unexpectedly hit such cache lines leading to buffer corruption Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Nishanth Menon <nm@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| | * omap4: l2x0: enable instruction and data prefetchingMans Rullgard2010-12-181-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enabling L2 prefetching improves performance as shown on Panda ES2.1 board with mem test, and it has measurable impact on performances. I think we should consider it, even though it damages "writes" a bit. (rebased to k.org) Usually the prefetch is used at both levels together L1 + L2, however, to enable the CP15 prefetch engines, these are under security, and on GP devices, we cannot enable it(e.g. on PandaBoard). However, just enabling PL310 prefetch seems to provide performance improvement, as shown in the data below (from Ubuntu) and would be a great thing to pull in. What prefetch does is enable automatic next line prefetching. With this enabled, whenever the PL310 receives a cachable read request, it automatically prefetches the following cache line as well. Measurement Data: == STOCK 10.10 WITHOUT PATCH ======================== ~# ./memspeed size 8388608 8192k 8M offset 8388608, 0 buffers 0x2aaad000 0x2b2ad000 copy libc 133 MB/s copy Android v5 273 MB/s copy Android NEON 235 MB/s copy INT32 116 MB/s copy ASM ARM 187 MB/s copy ASM VLDM 64 204 MB/s copy ASM VLDM 128 173 MB/s copy ASM VLD1 216 MB/s read ASM ARM 286 MB/s read ASM VLDM 242 MB/s read ASM VLD1 286 MB/s write libc 1947 MB/s write ASM ARM 1943 MB/s write ASM VSTM 1942 MB/s write ASM VST1 1935 MB/s 10.10 + PATCH ============= ~# ./memspeed size 8388608 8192k 8M offset 8388608, 0 buffers 0x2ab17000 0x2b317000 copy libc 129 MB/s copy Android v5 256 MB/s copy Android NEON 356 MB/s copy INT32 127 MB/s copy ASM ARM 321 MB/s copy ASM VLDM 64 337 MB/s copy ASM VLDM 128 321 MB/s copy ASM VLD1 350 MB/s read ASM ARM 496 MB/s read ASM VLDM 470 MB/s read ASM VLD1 488 MB/s write libc 1701 MB/s write ASM ARM 1682 MB/s write ASM VSTM 1693 MB/s write ASM VST1 1681 MB/s Signed-off-by: Mans Rullgard <mans@mansr.com> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Nishanth Menon <nm@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| | * omap4: l2x0: Construct the AUXCTRL value using definesSantosh Shilimkar2010-12-181-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the hardcoded value of auxctrl value and construct it using bitfields Bit 25 is reserved and is always set to 1. Same value of this bit is retained in this patch Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Nishanth Menon <nm@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | OMAP: iommu: make iva2 iommu selectableFelipe Contreras2010-12-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | It seems dsp-link will do this, and tidspbridge too at some point, but right now it's not possible to select CONFIG_MPU_BRIDGE_IOMMU. Cc: Fernando Guzman Lugo <fernando.lugo@ti.com> Cc: Yogesh Marathe <yogesh_marathe@ti.com> Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
| * | OMAP: iommu: create new api to set valid da rangeGuzman Lugo, Fernando2010-12-151-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | Some IOMMUs cannot use the whole 0x0 - 0xFFFFFFFF range. With this new API the valid range can be set. Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com> Acked-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
| * | OMAP: mailbox: fix detection for previously supported chipsOmar Ramirez Luna2010-12-021-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the mailbox detection for OMAP3630 and 2430, also minor cleanup on conditional ifdef's that could affect it. Given that 2430 has an iva too, include it, as the same steps for omap3 apply. Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com> Acked-by: Hiroshi Doyu <hiroshi.doyu@nokia.com>
| * | OMAP: mailbox: remove unreachable returnOmar Ramirez Luna2010-12-021-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Remove unreachable return statement. Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com> Acked-by: Benoit Cousson <b-cousson@ti.com> Acked-by: Hiroshi Doyu <hiroshi.doyu@nokia.com>
* | | omap: rx51: Switch rx51_tpa6130a2_data __initdata to__initdata_or_moduleJarkko Nikula2010-12-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the TPA6130 is compiled as module the id and power_gpio values are arbitrary at module probing time since the rx51_tpa6130a2_data was marked as __initdata. Fix this by using __initdata_or_module. Then __initdata is defined only if the kernel is built without CONFIG_MODULES and omitted otherwise. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap: pandora: fix wifi supportGrazvydas Ignotas2010-12-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After commit ed919b0 "mmc: sdio: fix runtime PM anomalies by introducing MMC_CAP_POWER_OFF_CARD" it is required to specify MMC_CAP_POWER_OFF_CARD to have runtime PM support. As the wl1251 driver expects card to be powered down when it's not used, wifi will no longer work after interface is brought down at least once without functioning runtime PM. Fix this by declaring MMC_CAP_POWER_OFF_CARD for MMC3. Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | OMAP4: Pandaboard: Add omap_reserve functionalityRaghuveer Murthy2010-12-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds omap_reserve functionality to board-omap4panda.c. Helps in the reserving boot time memory in SDRAM, used here for framebuffer allocation. This patch is in similar lines to commit id 71ee7dad9b6991, from Russell king Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Raghuveer Murthy <raghuveer.murthy@ti.com> [tony@atomide.com: fixed to be before .map_io as pointed out by Russell King] Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap4: Add platform changes for PWM LEDHemanth V2010-12-201-0/+24
| | | | | | | | | | | | | | | | | | | | | Register TWL6030 PWM, which is used as charging LED Signed-off-by: Hemanth V <hemanthv@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap4: Add platform changes for Ambient Light sensorHemanth V2010-12-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Register BH1780GLI Ambient light sensor, which is an I2C device for 4430SDP board. Signed-off-by: Hemanth V <hemanthv@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap3: igepv2: LED gpio-led:green:d1 is active lowLaurent Pinchart2010-12-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure the LED is turned off at boot time, and configure the GPIO LED device as active low. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Enric Balletbo i Serra <eballetbo@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap3: igepv2: Don't call gpio_set_value right aftergpio_direction_outputLaurent Pinchart2010-12-201-12/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | gpio_direction_output() has a value argument, there's no need to call gpio_set_value() explicitly right after. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Enric Balletbo i Serra <eballetbo@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | Fix IGEPv2 second MMC channel power supplyMarc Zyngier2010-12-201-10/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 72f381ba056 (omap3: Remove VMMC2 regulator on IGEP v2) removed an unused regulator entry, but left the second MMC channel (used by the Libertas WLAN module) without link to power regulator. This causes the SDIO module to fail being detected. This patch adds the two regulators that actually feed the WLAN module (1v8 from the TWL4030 VIO LDO, and a fixed 3v3). With that patch, the second channel is properly detected. Details of the power supply implementation were kindly provided by Enric Balletbo i Serra. Also change vmmc1 to use symbolic names instead of direct device reference. Tested on an IGEPv2 Rev-B. Signed-off-by: Marc Zyngier <maz@misterjones.org> Acked-by: Enric Balletbo i Serra <eballetbo@gmail.com> Cc: Tony Lindgren <tony@atomide.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap2430: hwmod: remove stray declarationAnand Gadiyar2010-12-201-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch "OMAP2xxx: hwmod: add I2C hwmods for OMAP2420, 2430" in linux-next as of 20101203 introduced the following build warning - fix this by removing the stray i2c_dev_attr. arch/arm/mach-omap2/omap_hwmod_2430_data.c:483: warning: 'i2c_dev_attr' defined but not used Signed-off-by: Anand Gadiyar <gadiyar@ti.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | Added video data to support tvout on rx51Srikar2010-12-201-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | To support tvout on rx51,added Intilization data, tvout as display device and enabled venc through gpio on rx51 Signed-off-by: Srikar <ext-srikar.1.bhavanarayana@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap: rx51: Add supplies and data for codec b part ofTLV320AIC34Jarkko Nikula2010-12-201-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Upcoming ASoC core and tlv320aic3x changes makes possible to take b part of TLV320AIC34 into use on RX51/N900. Prepare to this by adding virtual supplies and platform data for b part of the codec. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap: rx51: Remove extra tlv320aic3x.h inclusionJarkko Nikula2010-12-201-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Remove second tlv320aic3x.h inclusion that came along the commit f0fba2a "ASoC: multi-component - ASoC Multi-Component Support". Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Cc: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | arm: mach-omap2: Kconfig: fix incorrect optionAaro Koskinen2010-12-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | There is no MFD config option, MFD_SUPPORT should be selected instead. This will prevent build errors when trying out different configurations. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | arm: mach-omap2: hsmmc_reset: fix clk_get() error handlingAaro Koskinen2010-12-201-20/+24
| | | | | | | | | | | | | | | | | | | | | | | | clk_get() return value should be checked with IS_ERR(). Furthermore, clocks should be put and disabled properly. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | I2C: i2c-omap: Change device name: i2c_omap -> omap_i2cBenoit Cousson2010-12-204-22/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The convention for omap device naming is omap_XXX. Rename the device and driver name in order to stick to this naming convention. Change device name in clock nodes as well. Signed-off-by: Benoit Cousson <b-cousson@ti.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Cc: Rajendra Nayak <rnayak@ti.com> Cc: Ben Dooks <ben-i2c@fluff.org> Acked-by: Paul Walmsley <paul@pwsan.com> Acked-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | OMAP4: enable smc instruction in new assembler versionsJohn Rigby2010-12-171-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New assemblers need -march=armv7-a+sec on command line or .arch_extension sec inline to enable use of the smc instruction. This patch uses as-instr to check the latter to conditionally enable the former in AFLAGS for files that use smc. Checked on both old and new binutils to verify that it does not break old versions. Signed-off-by: John Rigby <john.rigby@linaro.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap: kill all section mismatch warning for omap2plus_defconfigBryan Wu2010-12-175-12/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch will kill following section mismatch warnings: WARNING: vmlinux.o(.text+0x24a00): Section mismatch in reference from the function zoom_twl_gpio_setup() to the (unknown reference) .init.data:(unknown) The function zoom_twl_gpio_setup() references the (unknown reference) __initdata (unknown). This is often because zoom_twl_gpio_setup lacks a __initdata annotation or the annotation of (unknown) is wrong. WARNING: vmlinux.o(.text+0x24bfc): Section mismatch in reference from the function cm_t35_twl_gpio_setup() to the (unknown reference) .init.data:(unknown) The function cm_t35_twl_gpio_setup() references the (unknown reference) __initdata (unknown). This is often because cm_t35_twl_gpio_setup lacks a __initdata annotation or the annotation of (unknown) is wrong. WARNING: vmlinux.o(.data+0x1d3e0): Section mismatch in reference from the variable h4_config to the (unknown reference) .init.data:(unknown) The variable h4_config references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x1dc08): Section mismatch in reference from the variable sdp2430_config to the (unknown reference) .init.data:(unknown) The variable sdp2430_config references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x1e1d8): Section mismatch in reference from the variable apollon_config to the (unknown reference) .init.data:(unknown) The variable apollon_config references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Bryan Wu <bryan.wu@canonical.com> Cc: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | omap: boards w/ wl12xx should select REGULATOR_FIXED_VOLTAGEOhad Ben-Cohen2010-12-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Power to the wl12xx wlan device is controlled by a fixed regulator. Boards that have the wl12xx should select REGULATOR_FIXED_VOLTAGE so users will not be baffled. Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | OMAP3: add comments for erratas i540 and i478 workaroundsJean Pihet2010-12-172-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add comments and IDs for the following erratas: - i540: MPU cannot exit from Standby, - i478: Unexpected Cold-Reset is generated when device is coming back from OFF mode Signed-off-by: Jean Pihet <j-pihet@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | Merge branch 'devel-board' into omap-for-linusTony Lindgren2010-12-1712-59/+366
|\ \ \
| * | | arm: omap: add minimal support for RM-680Aaro Koskinen2010-12-173-0/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add minimal support for Nokia RM-680 board. Tested with omap2plus_defconfig. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> [tony@atomide.com: updated to remove omap_gpio_init Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | arm: omap: sdram-nokia: add 97.6/195.2 MHz timing dataAaro Koskinen2010-12-171-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce 97.6/195.2 MHz memory timing data. Based on patches by Eduardo Valentin, Igor Dmitriev and Juha Keski-Saari. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Cc: Eduardo Valentin <eduardo.valentin@nokia.com> Cc: Igor Dmitriev <ext-dmitriev.igor@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | arm: omap: sdram-nokia: delete redundant timing dataAaro Koskinen2010-12-171-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 41.5 MHz SDRAM clock is not usable. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | arm: omap: sdram-nokia: improve error handlingAaro Koskinen2010-12-171-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Actually check for errors: print an error log and return NULL. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | arm: omap: sdram-nokia: use array to list timingsAaro Koskinen2010-12-171-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use an array to make it easier to add new values. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | arm: omap: sdram-nokia: prepare for new memory timingsAaro Koskinen2010-12-171-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename the current timings to indicate they're for 166 MHz. Based on patches by Eduardo Valentin and Juha Keski-Saari. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Cc: Eduardo Valentin <eduardo.valentin@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | arm: omap: add sdram-nokia.hAaro Koskinen2010-12-173-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a header file for Nokia SDRAM functions. Based on patches by Juha Keski-Saari. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | arm: omap: rename board-rx51-sdram.c to sdram-nokia.cAaro Koskinen2010-12-173-20/+20
| | |/ | |/| | | | | | | | | | | | | | | | | | | Rename the file and functions so that it can be reused by future Nokia boards. Based on patches by Juha Keski-Saari. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | OMAP2: PRCM: fix some SHIFT macros that were actually bitmasksPaul Walmsley2010-12-101-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After Charu's GPIO hwmod patches, GPIO initialization on N800 emits the following messages for all GPIO banks: omap_hwmod: gpio1: cannot be enabled (3) This is due to OMAP24XX_ST_GPIOS_SHIFT being defined as a bitmask. Fix this and also fix two other macros that had the same problem. Thanks to Tony Lindgren <tony@atomide.com> for originally reporting this bug. Signed-off-by: Paul Walmsley <paul@pwsan.com Cc: Charulatha Varadarajan <charu@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | OMAP2+: PM/serial: fix console semaphore acquire during suspendKevin Hilman2010-12-092-10/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 0d8e2d0dad98a693bad88aea6876ac8b94ad95c6 (OMAP2+: PM/serial: hold console semaphore while OMAP UARTs are disabled) added use of the console semaphore to protect UARTs from being accessed after disabled during idle, but this causes problems in suspend. During suspend, the console semaphore is acquired by the console suspend method (console_suspend()) so the try_acquire_console_sem() will always fail and suspend will be aborted. To fix, introduce a check so the console semaphore is only attempted during idle, and not during suspend. Also use the same check so that the console semaphore is not prematurely released during resume. Thanks to Paul Walmsley for suggesting adding the same check during resume. Cc: Paul Walmsley <paul@pwsan.com> Tested-by: Jean Pihet <j-pihet@ti.com> Tested-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | arm: omap2: io: fix clk_get() error checkAaro Koskinen2010-12-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | clk_get() return value should be checked with IS_ERR(). Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | omap: zoom: wl1271 slot is MMC_CAP_POWER_OFF_CARDOhad Ben-Cohen2010-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch complements ed919b0 "mmc: sdio: fix runtime PM anomalies by introducing MMC_CAP_POWER_OFF_CARD" by declaring MMC_CAP_POWER_OFF_CARD on the ZOOM's wl1271 mmc slot. This is required in order not to break runtime PM support for the wl1271 sdio driver. Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | omap: PM debug: fix wake-on-timer debugfs dependencyKevin Hilman2010-12-021-17/+17
| |/ | | | | | | | | | | | | | | | | | | | | | | Wakeup-on-timer code does not have/need debugfs dependency. Move the function out of debugfs ifdef. Fixes compile error when CONFIG_DEBUG_FS is disabled but PM debug is enabled. Reported-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | omap: Fix setting omap_irq_base for 2430Tony Lindgren2010-12-141-1/+1
| | | | | | | | | | | | | | We need to test for 24xx not 242x. Otherwise interrupts won't work. Reported-by: Rajendra Nayak <rnayak@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | Merge branch 'devel-gpio' into omap-for-linusTony Lindgren2010-12-1031-32/+1316
|\ \
| * | OMAP: GPIO: Implement GPIO as a platform deviceVaradarajan, Charulatha2010-12-0726-27/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement GPIO as a platform device. GPIO APIs are used in machine_init functions. Hence it is required to complete GPIO probe before board_init. Therefore GPIO device register and driver register are implemented as postcore_initcalls. omap_gpio_init() does nothing now and this function would be removed in the next patch as it's usage is spread across most of the board files. Inorder to convert GPIO as platform device, modifications are required in clockxxxx_data.c file for OMAP1 so that device names can be used to obtain clock instead of getting clocks by name/NULL ptr. Use runtime pm APIs (pm_runtime_put*/pm_runtime_get*) for enabling or disabling the clocks, modify sysconfig settings and remove usage of clock FW APIs. Note 1: Converting GPIO driver to use runtime PM APIs is not done as a separate patch because GPIO clock names are different for various OMAPs and are different for some of the banks in the same CPU. This would need usage of cpu_is checks and bank id checks while using clock FW APIs in the gpio driver. Hence while making GPIO a platform driver framework, PM runtime APIs are used directly. Note 2: While implementing GPIO as a platform device, pm runtime APIs are used as mentioned above and modification is not done in gpio's prepare for idle/ resume after idle functions. This would be done in the next patch series and GPIO driver would be made to use dev_pm_ops instead of sysdev_class in that series only. Due to the above, the GPIO driver implicitly relies on CM_AUTOIDLE = 1 on its iclk for power management to work, since the driver never disables its iclk. This would be taken care in the next patch series (see Note 3 below). Refer to http://www.mail-archive.com/linux-omap@vger.kernel.org/msg39112.html for more details. Note 3: only pm_runtime_get_sync is called in gpio's probe() and pm_runtime_put* is never called. This is to make the implementation similar to the existing GPIO code. Another patch series would be sent to correct this. In OMAP3 and OMAP4 gpio's debounce clocks are optional clocks. They are enabled/ disabled whenever required using clock framework APIs TODO: 1. Cleanup the GPIO driver. Use function pointers and register offest pointers instead of using hardcoded values 2. Remove all cpu_is_ checks and OMAP specific macros 3. Remove usage of gpio_bank array so that only instance specific information is used in driver code 4. Rename 'method'/ avoid it's usage 5. Fix the non-wakeup gpios handling for OMAP2430, OMAP3 & OMAP4 6. Modify gpio's prepare for idle/ resume after idle functions to use runtime pm implentation. Signed-off-by: Charulatha V <charu@ti.com> Signed-off-by: Rajendra Nayak <rnayak@ti.com> Reviewed-by: Basak, Partha <p-basak2@ti.com> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> [tony@atomide.com: updated for bank specific revision and updated boards] Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | OMAP2+: GPIO: device registrationVaradarajan, Charulatha2010-12-071-0/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use omap_device_build() API to do platform_device_register of GPIO devices. For OMAP2+ chips, the device specific data defined in the centralized hwmod database will be used. gpio_init needs to be done before machine_init functions access gpio APIs. Hence gpio_init is made as a postcore_initcall. Signed-off-by: Charulatha V <charu@ti.com> Acked-by: Benoit Cousson <b-cousson@ti.com> Reviewed-by: Basak, Partha <p-basak2@ti.com> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | OMAP4: hwmod data: Add GPIOBenoit Cousson2010-12-071-0/+341
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add GPIO hwmod data for OMAP4 Signed-off-by: Benoit Cousson <b-cousson@ti.com> Signed-off-by: Charulatha V <charu@ti.com> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | OMAP3: hwmod data: Add GPIOVaradarajan, Charulatha2010-12-071-1/+360
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add GPIO hwmod data for OMAP3 Also remove "omap34xx.h" header file as it is not required anymore. Signed-off-by: Charulatha V <charu@ti.com> Signed-off-by: Rajendra Nayak <rnayak@ti.com> Acked-by: Benoit Cousson <b-cousson@ti.com> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | OMAP2430: hwmod data: Add GPIOVaradarajan, Charulatha2010-12-071-1/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add GPIO hwmod data for OMAP2430 Also remove "omap24xx.h" header file as it is not required anymore. Signed-off-by: Charulatha V <charu@ti.com> Acked-by: Benoit Cousson <b-cousson@ti.com> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | OMAP2420: hwmod data: Add GPIOVaradarajan, Charulatha2010-12-071-1/+229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add GPIO hwmod data for OMAP2420 and add the required GPIO device attributes in the gpio header file Also remove "omap24xx.h" header file as it is not required anymore. Signed-off-by: Charulatha V <charu@ti.com> Acked-by: Benoit Cousson <b-cousson@ti.com> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
OpenPOWER on IntegriCloud