summaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
Commit message (Collapse)AuthorAgeFilesLines
* omap4: Fix omap_type() for omap4Santosh Shilimkar2010-02-231-0/+3
| | | | | | | | | | This patch fixes the omap_type function to detect whether the device is GP or HS Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com> Reviewed-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: sdma: Limit the secure reserve channel fix for omap3Santosh Shilimkar2010-02-231-1/+2
| | | | | | | | | | | | | | | | The commit 'ba50ea7e' reserves DMA channels 0 and 1 on high security devices, in order to avoid collision between kernel dma transfers and ROM code dma transfers. This fix is applicable only for OMAP3 so add an appropriate check. Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> CC: Kalle Jokiniemi <kalle.jokiniemi@digia.com> CC: Kevin Hilman <khilman@deeprootsystems.com> Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com> Reviewed-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap4: sdma: Enable the idle modes on omap4Santosh Shilimkar2010-02-231-1/+1
| | | | | | | | | | This patch enables smart-idle idlemodes and autoidle for sDMA on OMAP4 Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com> Reviewed-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap2/3/4: ioremap omap_globals moduleSantosh Shilimkar2010-02-232-26/+30
| | | | | | | | | | | | | This is a clean-up patch towards dynamic allocation of IO space instead of using harcoded macros to calculate virtual addresses. Also update the sdrc, prcm and control module to allocate iospace dynamically Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com> Reviewed-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* McBSP: OMAP3: Add sidetone featureEero Nurkkala2010-02-232-1/+461
| | | | | | | | | | | Add sidetone feature to McBSP instances 2 and 3 on OMAP3 based devices. Signed-off-by: Ilkka Koskinen <ilkka.koskinen@nokia.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: musb: Add USB support to 4430 SDP board fileMaulik Mankad2010-02-231-0/+1
| | | | | | | | | | | | | | | | | | | | This patch adds support for Mentor USB to 4430 SDP board file. It also defines the base address for HS USB OTG controller in OMAP4. Also updates platform specfic structure with base address and IRQ details. Signed-off-by: Maulik Mankad <x0082077@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: Felipe Balbi <felipe.balbi@nokia.com> Cc: David Brownell <david-b@pacbell.net> Cc: Greg Kroah-Hartman <gregkh@suse.de> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Olof Johansson <olof@lixom.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: musb: Pass board specific data from board fileMaulik Mankad2010-02-191-1/+10
| | | | | | | | | | | | | | | | | | Pass board specific data for MUSB (like interface_type, mode etc) from board file by defining board specific structure. Each board file can define this structure based on its requirement and pass this information to the driver. Signed-off-by: Maulik Mankad <x0082077@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: Felipe Balbi <felipe.balbi@nokia.com> Cc: David Brownell <david-b@pacbell.net> Cc: Greg Kroah-Hartman <gregkh@suse.de> Cc: Gupta Ajay Kumar <ajay.gupta@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* OMAP4: MCPDM: Register McPDM platform deviceJorge Eduardo Candelaria2010-02-151-0/+37
| | | | | | | | Add platform device for McPDM interface in OMAP4 and register its memory and irq resources. Signed-off-by: Jorge Eduardo Candelaria <x0107209@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* ARM: OMAP4: Add McPDM base addressJorge Eduardo Candelaria2010-02-151-0/+2
| | | | | | | Define McPDM physical and L3 base address for OMAP4 Signed-off-by: Jorge Eduardo Candelaria <x0107209@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* OMAP4: IRQ: Add McPDM IRQ definitionJorge Eduardo Candelaria2010-02-151-1/+1
| | | | | | | Support for McPDM IRQs in OMAP4 Signed-off-by: Jorge Eduardo Candelaria <x0107209@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* AM35xx: Update irq.h for AM35xx IPSS module interruptsVaibhav Hiremath2010-02-151-0/+10
| | | | | Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* AM35xx: Add AM35xx intr_clr & sw_rst cntrl reg bit definitionVaibhav Hiremath2010-02-151-0/+17
| | | | | | | | | | | AM3517/05 has few additional control module registers to control the new IP's, like VPFE, USBOTG, CPGMAC. This patch adds the bit defination for INTR_CLR and SW_RST control register. Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap_hsmmc: Allow for a shared VccQAdrian Hunter2010-02-151-0/+3
| | | | | | | | | | | | | | | | | | | | | EMMC can have two voltage supplies, Vcc and VccQ which are implemented in the code as consumer supplies vmmc and vmmc_aux. If the regulator that supplies vmmc_aux is shared with other consumers, then sending it to sleep will disrupt those consumers. However, the TWL4030-family regulators may have OFF remapped to SLEEP, in which case 'regulator_disable()' will put the regulator to sleep only when all consumers are disabled - which is the desired behaviour. This patch adds a platform data field to allow that option. Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap_hsmmc: Allow for power saving without going offAdrian Hunter2010-02-151-0/+3
| | | | | | | | | An eMMC may be always powered on, so that the lowest power saving state possible is sleeping. Add a field to the platform data to indicate that. Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: RX51: Remux to pull eMMC lines down when powering offAdrian Hunter2010-02-151-0/+1
| | | | | | | | | | | It has been discovered that, when eMMC is powered off, current will flow from OMAP eMMC data pull-ups to the eMMC voltage supply. Configuring pads for OMAP off-mode does not help because eMMC is powered off independently of OMAP off-mode. Hence the pads are now re-configured when eMMC is powered on or off. Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap_hsmmc: Move gpio and regulator control from board fileAdrian Hunter2010-02-151-10/+18
| | | | | | | | | | | | | | | | | | | | This patch moves the setup code for GPIO's and Voltage Regulators from the board file mmc-twl4030.c to the driver omap_hsmmc.c. PBIAS and other system control configuration remains in the board file. Moving GPIO code to the driver makes the board initialisation code independent of when GPIO's are defined. That makes the board initialisation now entirely independent of its original twl4030 roots. Moving Voltage Regulator code to the driver allows for further development of regulator support in the core MMC code. It also permits the MMC core to be compiled as a module, because the board code no longer calls MMC core functions. Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap3: SDP: Introducing 'board-sdp-flash.c' for flash initVimal Singh2010-02-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds 'board-sdp-flash.c', which could be utilized by boards similar to 3430SDP. (For ex: 2430sdp, 36030sdp). This file does initialization for all three flash devices present in SDP boards (NOR, NAND, OneNAND), by finding there 'cs' number dynamically using switch setting information (S8: 1-4). This also expects partition information from core board files (for ex: board-3430sdp.c). Which allows to choose different default partitions for different boards. A new structure is created for this purpose: 'flash_partitions' in 'mach/board-sdp.h'. This has two members: 1. struct mtd_partition *parts 2. int nr_parts A board file is expected to fill this structure and pass it to 'sdp-flsash-init'. Partition information should be passed in structure array of 'flash_partitions'. Partition information should be passed in below sequence in array: NOR OneNAND NAND Signed-off-by: Vimal Singh <vimalsingh@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap2/3/4: Introducing 'gpmc-nand.c' for GPMC specific NAND initVimal Singh2010-02-151-1/+9
| | | | | | | | | | Introducing 'gpmc-nand.c' for GPMC specific NAND init. For example: GPMC timing parameters and all. This patch also migrates gpmc related calls from 'nand/omap2.c' to 'gpmc-nand.c'. Signed-off-by: Vimal Singh <vimalsingh@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap2/3/4: gpmc: avoid section definitions on headersFelipe Balbi2010-02-151-1/+1
| | | | | | | trivial patch, no functional changes. Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: McBSP: Use cache when modifying individual register bitsJanusz Krzysztofik2010-02-151-31/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the way McBSP registers are updated: use cached values instead of relying upon those read back from the device. With this patch, I have finally managed to get rid of all random playback/recording hangups on my OMAP1510 based Amstrad Delta hardware. Before that, values read back from McBSP registers to be used for updating them happened to be errornous. From the hardware side, the issue appeared to be caused by a relatively high power requirements of an external USB adapter connected to the board's printer dedicated USB port. I think there is one important point that makes this patch worth of applying, apart from my hardware quality. With the current code, if it ever happens to any machine, no matter if OMAP1510 or newer, to read incorrect value from a McBSP register, this wrong value will get written back without any checking. That can lead to hardware damage if, for example, an input pin is turned into output as a result. Applies on top of patch 3 from this series: [PATCH v9 3/4] OMAP: McBSP: Introduce caching in register write operations Tested on OMAP1510 based Amstrad Delta using linux-omap for-next, commit fb7380d70e041e4b3892f6b19dff7efb609d15a4 (2.6.33-rc3+ dated 2010-01-11). Compile-tested with omap_3430sdp_defconfig. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: McBSP: Introduce caching in register write operationsJanusz Krzysztofik2010-02-152-25/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Determine cache size required per McBSP port at init time, based on processor type running on. Allocate space for storing cached copies of McBSP register values at port request. Modify omap_msbcp_write() function to update the cache with every register write operation. Modify omap_mcbsp_read() to support reading from cache or hardware. Update MCBSP_READ() macro for modified omap_mcbsp_read() function API. Introduce a new macro that reads from the cache. Tested on OMAP1510 based Amstrad Delta using linux-omap for-next, commit fb7380d70e041e4b3892f6b19dff7efb609d15a4 (2.6.33-rc3+ dated 2010-01-11). Compile-tested with: omap_perseus2_730_defconfig, omap_generic_1610_defconfig, omap_generic_2420_defconfig, omap_2430sdp_defconfig, omap_3430sdp_defconfig, omap_4430sdp_defconfig with CONFIG_OMAP_MCBSP=y selected. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: McBSP: Modify macros/functions API for easy cache accessJanusz Krzysztofik2010-02-151-156/+125
| | | | | | | | | | | | | | | | | | | OMAP_MCBSP_READ()/_WRITE() macros and omap_mcbsp_read()/_write() functions accept McBSP register base address as an argument. In order to support caching, that must be replaced with an address of the omap_mcbsp structure that would provide addresses for both register AND cache access. Since OMAP_ prefix seems obvious in macro names, drop it off in order to minimize line wrapping throughout the file. Tested on OMAP1510 based Amstrad Delta using linux-omap for-next, commit fb7380d70e041e4b3892f6b19dff7efb609d15a4 (2.6.33-rc3+ dated 2010-01-11). Compile-tested with omap_3430sdp_defconfig. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: McBSP: Use macros for all register read/write operationsJanusz Krzysztofik2010-02-151-22/+22
| | | | | | | | | | | | | | There are several places where readw()/writew() functions are used instead of OMAP_MCBSP_READ()/WRITE() macros for manipulating McBSP registers. Replace them with macros to ensure consistent behaviour after caching is introduced. Tested on OMAP1510 based Amstrad Delta. Compile-tested with omap_3430sdp_defconfig. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap iommu: fix incorrect address for largepage 1st entryHiroshi DOYU2010-02-151-2/+2
| | | | | | | | | | | There was a potential risk that the following "memset" could override its range if a given address was not the 1st entry of a largepage. This is not the case for "iovmm". Reported-by: Hari Nagalla <hnagalla@ti.com> Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> Signed-off-by: Hari Nagalla <hnagalla@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: iommu: fix incorrect address for supersection 1st entryHiroshi DOYU2010-02-151-1/+1
| | | | | | | | | | There was a potential risk that the following "memset" could override its range if a given address was not the 1st entry of a supersection. This is not the case for "iovmm". Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> Signed-off-by: Hari Nagalla <hnagalla@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap iommu: cleanup iommu page address mask and definitionsHiroshi DOYU2010-02-151-11/+39
| | | | | | | | This is just a cleanup, but adds a few macros here, which can be used in the proceeding patches. Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: convert boards to use physmap-flashLadislav Michl2010-02-151-0/+16
| | | | | | | | | Convert OMAP based boards to use physmap-flash. Refreshed against today's Linux omap kernel tree Cc: linux-mtd@lists.infradead.org Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: Fix gpio.c for multi-omap for omap4Tony Lindgren2010-02-151-91/+133
| | | | | | | Set up METHOD_GPIO_44XX instead of trying to use the METHOD_GPIO_24XX. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: Move multi-omap ifdeffery into it's own header fileTony Lindgren2010-02-152-69/+95
| | | | | | | This way we can include it easily as needed also for .S files. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap2/3/4: Replace orred CONFIG_ARCH_OMAP2/3/4 with CONFIG_ARCH_OMAP2PLUSTony Lindgren2010-02-158-46/+24
| | | | | | omap: Replace orred CONFIG_ARCH_OMAP2/3/4 with CONFIG_ARCH_OMAP2PLUS Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3Tony Lindgren2010-02-1510-52/+53
| | | | | | Replace ARCH_OMAP34XX with ARCH_OMAP3 Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2Tony Lindgren2010-02-1510-44/+44
| | | | | | Convert ARCH_OMAP24XX to ARCH_OMAP2 Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap2/3/4: Fix omap2_map_common_io for multi-omapTony Lindgren2010-02-151-1/+32
| | | | | | Fix omap2_map_common_io for multi-omap Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap: Fix dmtimer.c for multi-omap bootTony Lindgren2010-02-151-51/+39
| | | | | | | | | | Fix dmtimer.c for multi-omap boot. Also remove legacy clk_enable/disable wrappers that are no longer needed. Note that the clock handling should be further improved to make use of the clock aliases. Signed-off-by: Tony Lindgren <tony@atomide.com>
* omap2/3: Multiboot compile fixes to compile in omap2 and omap3Tony Lindgren2010-02-152-5/+13
| | | | | | Allows compiling in omap2 and omap3. Signed-off-by: Tony Lindgren <tony@atomide.com>
* Merge branch 'debug-ll' into omap-for-linusTony Lindgren2010-02-156-128/+251
|\
| * omap: Remove old DEBUG_LL serial port optionsTony Lindgren2010-02-151-19/+0
| | | | | | | | | | | | | | | | These are no longer needed. Note that zoom boards should now set their own function in uncompress.h and debug-macro.S for the external UART. Signed-off-by: Tony Lindgren <tony@atomide.com>
| * omap: Make uncompress code and DEBUG_LL code genericTony Lindgren2010-02-152-53/+162
| | | | | | | | | | | | | | | | | | Define arch_decomp_setup() the same way as some other architectures do. Use arch_id to configure the debug uart based on the machine_is by storing it into the uart scratchpad register for DEBUG_LL code to use. Signed-off-by: Tony Lindgren <tony@atomide.com>
| * omap: Clean the serial port definesTony Lindgren2010-02-155-64/+97
| | | | | | | | | | | | | | | | | | This way we don't have conflicts with the defines with compiling in multiple omaps. Set the addresses for uarts in struct omap_globals for the early serial init code. Signed-off-by: Tony Lindgren <tony@atomide.com>
* | Merge branch 'omap-fixes-for-linus' into omap-for-linusTony Lindgren2010-02-103-14/+4
|\ \
| * | omap: Fix access to already released memory in clk_debugfs_register_one()Marek Skuczynski2010-02-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | I have found an access to already released memory in clk_debugfs_register_one() function. Signed-off-by: Marek Skuczynski <mareksk7@gmail.com> Acked-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | omap: Remove old unused defines for OMAP_32KSYNCT_BASETony Lindgren2010-02-031-10/+0
| | | | | | | | | | | | | | | | | | Remove old unused defines for OMAP_32KSYNCT_BASE Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | omap: define _toggle_gpio_edge_triggering only for OMAP1Uwe Kleine-König2010-01-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only usage of _toggle_gpio_edge_triggering is in an #ifdef CONFIG_ARCH_OMAP1 block, so only provide it if CONFIG_ARCH_OMAP1 is defined, too. This fixes a compiler warning: arch/arm/plat-omap/gpio.c:758: warning: '_toggle_gpio_edge_triggering' defined but not used when compiling for ARCH_OMAP2, ARCH_OMAP3 or ARCH_OMAP4. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | | OMAP clock: resolve all remaining sparse warningsPaul Walmsley2010-01-292-2/+2
| | | | | | | | | | | | | | | | | | Resolve all remaining sparse warnings in the OMAP clock code. Signed-off-by: Paul Walmsley <paul@pwsan.com>
* | | OMAP: hwmod: add API for slave idlemode settingKevin Hilman2010-01-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some HW blocks have errata which requires specific slave idle mode under certain conditions. This patch adds an hwmod API to allow setting slave idlemode ensuring that any SYSCONFIG register updates go through hwmod. Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
* | | OMAP: omap_device: optionally auto-adjust device activate/deactivate latenciesKevin Hilman2010-01-262-8/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First, this patch adds new worst-case latency values to the omap_device_pm_latency struct. Here the worst-case measured latencies for the activate and deactivate hooks are stored. In addition, add an option to auto-adjust the latency values used for device activate/deactivate. By setting a new 'OMAP_DEVICE_LATENCY_AUTO_ADJUST' flag in the omap_device_pm_latency struct, the omap_device layer automatically adjusts the activate/deactivate latencies to the worst-case measured values. Anytime a new worst-case value is found, it is printed to the console. Here is an example log during boot using UART2 s an example. After boot, the OPP is manually changed to the 125MHz OPP: [...] Freeing init memory: 128K omap_device: serial8250.2: new worst case deactivate latency 0: 30517 omap_device: serial8250.2: new worst case activate latency 0: 30517 omap_device: serial8250.2: new worst case activate latency 0: 218139648 omap_device: serial8250.2: new worst case deactivate latency 0: 61035 omap_device: serial8250.2: new worst case activate latency 0: 278076171 omap_device: serial8250.2: new worst case activate latency 0: 298614501 omap_device: serial8250.2: new worst case activate latency 0: 327331542 / # echo 125000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed omap_device: serial8250.2: new worst case deactivate latency 0: 91552 Motivation: this can be used as a technique to automatically determine the worst case latency values. The current method of printing a warning on every violation is too noisy to actually interact the console in order to set low OPP to discover latencies. Another motivation for this patch is that the activate/deactivate latenices can vary depending on the idlemode of the device. While working on the UARTs, I noticed that when using no-idle, the activate latencies were as high as several hundred msecs as shown above. When the UARTs are in smart-idle, the max latency is well under 100 usecs. Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
* | | OMAP clockdomain/powerdomain: improve documentationPaul Walmsley2010-01-262-70/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch only affects documentation; no functional changes are included. Clean up comments in the current clockdomain, powerdomain code and header files. This mostly involves conversion to kerneldoc format, although some clarifications are also included. Signed-off-by: Paul Walmsley <paul@pwsan.com>
* | | OMAP powerdomain: rearrange struct powerdomain to save some memoryPaul Walmsley2010-01-261-3/+3
| | | | | | | | | | | | | | | | | | | | | This patch rearranges the order of structure members in struct powerdomain to avoid wasting memory due to alignment restrictions. Signed-off-by: Paul Walmsley <paul@pwsan.com>
* | | OMAP clockdomains: add usecounting for wakeup and sleep dependenciesPaul Walmsley2010-01-261-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add usecounting for wakeup and sleep dependencies. In the current situation, if several functions add dependencies on the same clockdomains, when the first dependency removal function is called, the dependency will be incorrectly removed from the hardware. Add clkdm_clear_all_wkdeps() and clkdm_clear_all_sleepdeps(), which provide a fast and usecounting-consistent way to clear all hardware clockdomain dependencies, since accesses to these registers can be quite slow. pm{2,3}4xx.c has been updated to use these new functions. The original version of this patch did not touch these files, which previously wrote directly to the wkdep registers, and thus confused the usecounting code. This problem was found by Kevin Hilman <khilman@deeprootsystems.com>. N.B.: This patch introduces one significant functional difference over the previous pm34xx.c code: sleepdeps are now cleared during clockdomain initialization, whereas previously they were left untouched. This has been tested by Kevin and confirmed to work. The original version of this patch also did not take into consideration that some clockdomains do not have sleep or wakeup dependency sources, which caused NULL pointer dereferences. This problem was debugged and fixed by Kevin Hilman <khilman@deeprootsystems.com>. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Cc: Jouni Högander <jouni.hogander@nokia.com>
* | | OMAP clockdomain/powerdomain: remove runtime register/unregisterPaul Walmsley2010-01-262-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OMAP clockdomains and powerdomains are currently defined statically, only registered at boot, and never unregistered, so we can remove the unregister function and the locking. A variant of this was originally suggested a while ago by Dmitry Baryshkov <dbaryshkov@gmail.com>. This version of this patch contains an additional fix from Kevin Hilman <khilman@deeprootsystems.com> to address one of the pwrdm_for_each_nolock() users in mach-omap2/pm-debug.c. Thanks Kevin. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Dmitry Baryshkov <dbaryshkov@gmail.com> Cc: Kevin Hilman <khilman@deeprootsystems.com>
OpenPOWER on IntegriCloud