aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
Commit message (Collapse)AuthorAge
...
| | * | | | ARM: OMAP: AM43xx hwmod: Add data for am43xx emif hwmodDave Gerlach2015-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without a hwmod for am43xx emif use counting for emif clockdomain does not happen correctly so it may be shut off by pm code unintentionally. Signed-off-by: Dave Gerlach <d-gerlach@ti.com> [paul@pwsan.com: updated to apply] Signed-off-by: Paul Walmsley <paul@pwsan.com>
| | * | | | memory: omap-gpmc: Add Kconfig option for debugTony Lindgren2015-06-01
| | | |_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We support decoding the bootloader values if DEBUG is defined. But we also need to change the struct omap_hwmod flags to have HWMOD_INIT_NO_RESET to avoid the GPMC being reset during the boot. Otherwise just the default timings will be displayed instead of the bootloader configured timings. This also allows us to clean up the various GPMC related hwmod flags. For debugging, we only need HWMOD_INIT_NO_RESET, and HWMOD_INIT_NO_IDLE is not needed. Cc: Brian Hutchinson <b.hutchman@gmail.com> Cc: Paul Walmsley <paul@pwsan.com> Cc: Roger Quadros <rogerq@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
| * | | | Merge tag 'armsoc-cleanup' of ↵Linus Torvalds2015-06-26
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC cleanups from Kevin Hilman: "A relatively small setup of cleanups this time around, and similar to last time the bulk of it is removal of legacy board support: - OMAP: removal of legacy (non-DT) booting for several platforms - i.MX: remove some legacy board files" * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (36 commits) ARM: fix EFM32 build breakage caused by cpu_resume_arm ARM: 8389/1: Add cpu_resume_arm() for firmwares that resume in ARM state ARM: v7 setup function should invalidate L1 cache mach-omap2: Remove use of deprecated marco, PTR_RET in devices.c ARM: OMAP2+: Remove calls to deprecacted marco,PTR_RET in the files,fb.c and pmu.c ARM: OMAP2+: Constify irq_domain_ops ARM: OMAP2+: use symbolic defines for console loglevels instead of numbers ARM: at91: remove useless Makefile.boot ARM: at91: remove at91rm9200_sdramc.h ARM: at91: remove mach/at91_ramc.h and mach/at91rm9200_mc.h ARM: at91/pm: use the atmel-mc syscon defines pcmcia: at91_cf: Use syscon to configure the MC/smc ARM: at91: declare the at91rm9200 memory controller as a syscon mfd: syscon: Add Atmel MC (Memory Controller) registers definition ARM: at91: drop sam9_smc.c ata: at91: use syscon to configure the smc ARM: ux500: delete static resource defines ARM: ux500: rename ux500_map_io ARM: ux500: look up PRCMU resource from DT ARM: ux500: kill off L2CC static map ...
| | * \ \ \ Merge branch 'for-arm-soc' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into ↵Arnd Bergmann2015-05-29
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | next/cleanup Merge cleanups from Russell King: * 'for-arm-soc' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency
| | | * | | | ARM: Show proper respect for Heinrich Hertz by using the correct unit for ↵Russell King2015-05-14
| | | | |_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | frequency The SI unit of frequency is Hertz, named after Heinrich Hertz, and is given the symbol "Hz" to denote this. "hz" is not the unit of frequency, and is in fact meaningless. Fix arch/arm to correctly use "Hz", thereby acknowledging Heinrich Hertz' contribution to the modern world. Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * | | | Merge tag 'omap-for-v4.2/clean' of ↵Arnd Bergmann2015-05-22
| | |\ \ \ \ | | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup Merge "Clean-up for omaps for v4.2 merge window" from Tony Lindgren: Drop more omap3 legacy board-*.c files for v4.2. This time we're dropping the board files for beagle, overo and cm-t35. The reason for dropping these now rather than later is that now we can simply revert the patches in case of unexpected issues as we are not dropping any platform data at this point. This leaves us with only the following board-*.c files: BOARD REASON NEEDED board-ldp.c Still used in RMKs boot test system board-omap3logic.c Getting a .dts file for v4.2 board-omap3pandora.c Got a .dts file for v4.1 board-rx51-*.c Needs /proc/atags support for user space I'm hoping we can drop the remaining board-*.c for v4.3 merge window, then keep the platform data around for one more merge window in case of reverting needed, then drop the platform data too for v4.4 if no issues needing reverting are found. Also, few patches to clean-up the usage of Linux generic macros: - Use define for console loglevel - Use const for struct irq_domain_ops - Use PTR_ERR_OR_ZERO instead of PTR_RET * tag 'omap-for-v4.2/clean' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: mach-omap2: Remove use of deprecated marco, PTR_RET in devices.c ARM: OMAP2+: Remove calls to deprecacted marco,PTR_RET in the files,fb.c and pmu.c ARM: OMAP2+: Constify irq_domain_ops ARM: OMAP2+: use symbolic defines for console loglevels instead of numbers ARM: OMAP2+: Remove legacy booting support for Beagleboards ARM: OMAP2+: Remove legacy booting support for Overo ARM: OMAP2+: Remove legacy booting support for cm-t35
| | | * | | Merge branch 'omap-for-v4.2/legacy' into omap-for-v4.2/cleanupTony Lindgren2015-05-20
| | | |\ \ \
| | | | * | | ARM: OMAP2+: Remove legacy booting support for BeagleboardsTony Lindgren2015-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been moving all omap2+ based systems to boot in device tree only mode for a few years now. Only omap3 has legacy booting support remaining. Most omap3 boards already have related arch/arm/boot/*.dts* files for booting with device tree. This board has support for device tree based booting, and we've been printing warnings about the legacy booting being deprecated for a few merge cycles now. Let's attempt to remove the legacy booting for it. The reason for removing the legacy booting support now rather than later is we can simply revert this patch if necessary if we run into some unexpected issues that are not trivial to fix for the device tree based booting. Signed-off-by: Tony Lindgren <tony@atomide.com>
| | | | * | | ARM: OMAP2+: Remove legacy booting support for OveroTony Lindgren2015-05-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been moving all omap2+ based systems to boot in device tree only mode for a few years now. Only omap3 has legacy booting support remaining. Most omap3 boards already have related arch/arm/boot/*.dts* files for booting with device tree. This board has support for device tree based booting, and we've been printing warnings about the legacy booting being deprecated for a few merge cycles now. Let's attempt to remove the legacy booting for it. The reason for removing the legacy booting support now rather than later is we can simply revert this patch if necessary if we run into some unexpected issues that are not trivial to fix for the device tree based booting. Cc: Florian Vaussard <florian.vaussard@epfl.ch> Acked-by: Ash Charles <ashcharles@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| | | | * | | ARM: OMAP2+: Remove legacy booting support for cm-t35Tony Lindgren2015-05-04
| | | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been moving all omap2+ based systems to boot in device tree only mode for a few years now. Only omap3 has legacy booting support remaining. Most omap3 boards already have related arch/arm/boot/*.dts* files for booting with device tree. This board has support for device tree based booting, and we've been printing warnings about the legacy booting being deprecated for a few merge cycles now. Let's attempt to remove the legacy booting for it. The reason for removing the legacy booting support now rather than later is we can simply revert this patch if necessary if we run into some unexpected issues that are not trivial to fix for the device tree based booting. Cc: Dmitry Lifshitz <lifshitz@compulab.co.il> Cc: Igor Grinberg <grinberg@compulab.co.il> Signed-off-by: Tony Lindgren <tony@atomide.com>
| | | * | | mach-omap2: Remove use of deprecated marco, PTR_RET in devices.cNicholas Krause2015-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the deprecacted marco, PTR_RET and changes the functions that use this marco in their return statement to instead use the non deprecacted function, PTR_ERR_OR_ZERO for the file devices.c. Signed-off-by: Nicholas Krause <xerofoify@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| | | * | | ARM: OMAP2+: Remove calls to deprecacted marco,PTR_RET in the files,fb.c and ↵Nicholas Krause2015-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pmu.c This removes two calls to the deprecated marco,PTR_RET in the files,fb.c and pmu.c for the functions,omap_init_vrfb and omap_init_pmu respectfully. Furthermore these are now replaced by calling the correctly non deprecacted function, PTR_ERR_OR_ZERO in both functions. Signed-off-by: Nicholas Krause <xerofoify@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| | | * | | ARM: OMAP2+: Constify irq_domain_opsKrzysztof Kozlowski2015-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| | | * | | ARM: OMAP2+: use symbolic defines for console loglevels instead of numbersAlexander Kuleshov2015-05-20
| | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <linux/printk.h> provides macros for console log level, let's use it instead of numbers. Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | | Merge tag 'fbdev-4.2' of ↵Linus Torvalds2015-06-23
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev updates from Tomi Valkeinen: - ssd1307fb: various fixes and improvements, SSD1305 support - use architecture agnostic functions instead of MTRR functions in various fbdev drivers - TI DRA7xx SoC display support (arch/arm/ side) - OMAPDSS componentization to fix probing order issues - OMAPDSS scaling fixes - msm_fb: remove obsoleted driver * tag 'fbdev-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (77 commits) msm: msm_fb: Remove dead code OMAPDSS: HDMI: wait for framedone when stopping video OMAPDSS: HDMI4: fix error handling OMAPDSS: DISPC: scaler debug print OMAPDSS: DISPC: do only y decimation on OMAP3 OMAPDSS: DISPC: check if scaling setup failed OMAPDSS: DISPC: fix 64 bit issue in 5-tap OMAPDSS: DISPC: fix row_inc for OMAP3 OMAPDSS: DISPC: add check for scaling limits OMAPDSS: DISPC: fix check_horiz_timing_omap3 args OMAPDSS: DISPC: fix predecimation for YUV modes OMAPDSS: DISPC: work-around for errata i631 OMAPDSS: simplify submodule reg/unreg code OMAPDSS: componentize omapdss OMAPDSS: reorder uninit calls OMAPDSS: remove uses of __init/__exit OMAPDSS: fix dss_init_ports error handling OMAPDSS: refactor dss probe function OMAPDSS: move 'dss_initialized' to dss driver fbdev: propagate result of fb_videomode_from_videomode() ...
| | * | | | ARM: OMAP2+: display: detect DRA7 DSSTomi Valkeinen2015-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add platform code to detect DRA7 DSS. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Tony Lindgren <tony@atomide.com>
| | * | | | ARM: OMAP: display: change compat names to arrayTomi Valkeinen2015-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify the DSS detection logic by creating a list of the omapdss compat strings, instead of checking each separately with an 'if'. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Tony Lindgren <tony@atomide.com>
| | * | | | ARM: DRA7: hwmod: set DSS submodule parent hwmodsTomi Valkeinen2015-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set DSS core hwmod as the parent for all the DSS submodules. This ensures that the parent hwmods are enabled before any DSS submodules are accessed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Paul Walmsley <paul@pwsan.com>
| | * | | | ARM: DRA7: hwmod: add DMM hwmod descriptionTomi Valkeinen2015-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add DMM hwmod entries for DRA7. This is identical to DMM on OMAP5. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Paul Walmsley <paul@pwsan.com>
| | * | | | arm: dra7: add DESHDCP clockTomi Valkeinen2015-06-03
| | | |_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new Linux clock for DRA7 based SoCs to control DESHDCP clock. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Tero Kristo <t-kristo@ti.com>
| * | | | Merge branch 'for-linus-clk' of git://ftp.arm.linux.org.uk/~rmk/linux-armLinus Torvalds2015-06-23
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull clkdev updates from Russell King: "This series addresses some breakage in clkdev caused by a previous patch set from the clk tree which introduced per-user clk structures. This basically renamed the existing 'struct clk' to 'struct clk_hw', and introduced a new 'struct clk'. This change will break anyone using clk_add_alias() with the common clk code enabled. Thankfully, the intersection of users of clk_add_alias() and those using the common clk code is practically zero, but this is something which should be fixed to keep the code sane. The problem is that clk_add_alias() does this: r = clk_get(...); l = clkdev_alloc(r, ...); clk_put(...); which causes the alias to store a pointer to 'r', which has been freed. The original patch set tried to work around this problem incorrectly - at clk_get() time, it tried to convert the struct clk to a struct clk_hw, and then creating a new struct clk from that. Clearly, if the original struct clk has been freed, then we have a use-after-free bug. We have other places in the tree which do something similar, so this series also addresses those locations too. This series addresses this problem by converting clkdev to store and use the clk_hw pointer. This allows clk_get() to only have to create it's per-user struct clk from the clk_hw. We can also get to the desired clk_hw at clk_add_alias() or clk lookup creation time, when the struct clk is "alive". We also perform some cleanups of the code: - replacing looped calls to clkdev_add() with clkdev_add_table() - replacing open-coded lookup allocation (which should have been using clkdev_alloc()) and subsequent clkdev_add() with clkdev_create() - replacing open-coded clk_add_alias() with clk_add_alias()" * 'for-linus-clk' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: clk: s2mps11: use clkdev_create() ASoC: migor: use clkdev_create() ARM: omap2: use clkdev_add_alias() ARM: omap2: use clkdev_create() ARM: orion: use clkdev_create() ARM: lpc32xx: convert to use clkdev_add_table() SH: use clkdev_add_table() clkdev: add clkdev_create() helper clkdev: const-ify connection id to clk_add_alias() clkdev: get rid of redundant clk_add_alias() prototype in linux/clk.h clkdev: drop __init from clkdev_add_table() clk: update clk API documentation to clarify clk_round_rate() clkdev: use clk_hw internally
| | * | | | ARM: omap2: use clkdev_add_alias()Russell King2015-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When creating aliases of existing clkdev clocks, use clkdev_add_alias() isntead of open coding the lookup and clk_lookup creation. Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * | | | ARM: omap2: use clkdev_create()Russell King2015-05-06
| | | |_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than open coding the clkdev allocation, initialisation and addition, use the clkdev_create() helper. Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | | | |
| | \ \ \
| *-. \ \ \ Merge branches 'pm-sleep' and 'pm-runtime'Rafael J. Wysocki2015-06-18
| |\ \ \ \ \ | | | | |_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * pm-sleep: PM / sleep: trace_device_pm_callback coverage in dpm_prepare/complete PM / wakeup: add a dummy wakeup_source to record statistics PM / sleep: Make suspend-to-idle-specific code depend on CONFIG_SUSPEND PM / sleep: Return -EBUSY from suspend_enter() on wakeup detection PM / tick: Add tracepoints for suspend-to-idle diagnostics PM / sleep: Fix symbol name in a comment in kernel/power/main.c leds / PM: fix hibernation on arm when gpio-led used with CPU led trigger ARM: omap-device: use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS bus: omap_l3_noc: add missed callbacks for suspend-to-disk PM / sleep: Add macro to define common noirq system PM callbacks PM / sleep: Refine diagnostic messages in enter_state() PM / wakeup: validate wakeup source before activating it. * pm-runtime: PM / Runtime: Update last_busy in rpm_resume PM / runtime: add note about re-calling in during device probe()
| | * | | | ARM: omap-device: use SET_NOIRQ_SYSTEM_SLEEP_PM_OPSGrygorii Strashko2015-05-12
| | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use recently introduced macro SET_NOIRQ_SYSTEM_SLEEP_PM_OPS to set up PM callbacks. This also fixes missed assignment of .poweroff_noirq() callback. Signed-off-by: Grygorii Strashko <Grygorii.Strashko@linaro.org> Acked-by: Santosh Shilimkar <ssantosh@kernel.org> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Pavel Machek <pavel@ucw.cz> Reviewed-by: Kevin Hilman <khilman@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
| * | | | ARM: OMAP3: Fix booting with thumb2 kernelTony Lindgren2015-05-28
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We get a NULL pointer dereference on omap3 for thumb2 compiled kernels: Internal error: Oops: 80000005 [#1] SMP THUMB2 ... [<c046497b>] (_raw_spin_unlock_irqrestore) from [<c0024375>] (omap3_enter_idle_bm+0xc5/0x178) [<c0024375>] (omap3_enter_idle_bm) from [<c0374e63>] (cpuidle_enter_state+0x77/0x27c) [<c0374e63>] (cpuidle_enter_state) from [<c00627f1>] (cpu_startup_entry+0x155/0x23c) [<c00627f1>] (cpu_startup_entry) from [<c06b9a47>] (start_kernel+0x32f/0x338) [<c06b9a47>] (start_kernel) from [<8000807f>] (0x8000807f) The power management related assembly on omaps needs to interact with ARM mode bootrom code, so we need to keep most of the related assembly in ARM mode. Turns out this error is because of missing ENDPROC for assembly code as suggested by Stephen Boyd <sboyd@codeaurora.org>. Let's fix the problem by adding ENDPROC in two places to sleep34xx.S. Let's also remove the now duplicate custom code for mode switching. This has been unnecessary since commit 6ebbf2ce437b ("ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+"). And let's also remove the comments about local variables, they are now just confusing after the ENDPROC. The reason why ENDPROC makes a difference is it sets .type and then the compiler knows what to do with the thumb bit as explained at: https://wiki.ubuntu.com/ARM/Thumb2PortingHowto Reported-by: Kevin Hilman <khilman@kernel.org> Tested-by: Kevin Hilman <khilman@linaro.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | Merge tag 'for-v4.1-rc/omap-fixes-a' of ↵Tony Lindgren2015-05-11
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v4.1/fixes ARM: OMAP2+: first set of hwmod fixes for v4.1-rc Fix a few AM43xx problems: add the VPFE hwmod data, which removes some warnings; and fix the IP block hardreset implementation. Basic build, boot, and PM test results are here: http://www.pwsan.com/omap/testlogs/omap-hwmod-a-for-v4.1-rc/20150508130543/ Note that I do not have an AM43xx board in the testbed, and thus cannot test on that platform.
| | * | | ARM: AM33xx+: hwmod: re-use omap4 implementations for reset functionalityTero Kristo2015-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reset code functionality is mostly a copy paste between OMAP4+ and AM33xx+. Re-use the omap4 code where possible, and just keep the special implementation for de-asserting the hardreset lines for AM33xx, as AM33xx+ devices have slightly different register layouts compared to OMAP4+. This patch also fixes the hardreset issues faced on AM43xx. Signed-off-by: Tero Kristo <t-kristo@ti.com> Reported-by: Dave Gerlach <d-gerlach@ti.com> Reported-by: Suman Anna <s-anna@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
| | * | | ARM: OMAP4+: PRM: add support for passing status register/bit info to resetTero Kristo2015-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AM43xx has slightly different reset register layout compared to OMAP4+, with varying status bit shifts and status register offsets. Current code assumes static offsets and identical status / reset control bit shifts, which is wrong. This patch adds PRM core support for passing the actual implementations from hwmod code. AM43xx mappings will be fixed in subsequent patch. Signed-off-by: Tero Kristo <t-kristo@ti.com> Reported-by: Dave Gerlach <d-gerlach@ti.com> Reported-by: Suman Anna <s-anna@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
| | * | | ARM: AM43xx: hwmod: add VPFE hwmod entriesBenoit Parrot2015-05-08
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds VPFE HWMOD data for AM43xx. Signed-off-by: Benoit Parrot <bparrot@ti.com> Signed-off-by: Darren Etheridge <detheridge@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> Tested-by: Benoit Parrot <bparrot@ti.com> [paul@pwsan.com: updated to apply on v4.1-rc1] Signed-off-by: Paul Walmsley <paul@pwsan.com>
| * | / ARM: OMAP2+: Remove bogus struct clk comparison for timer clockTony Lindgren2015-05-11
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With recent changes to use determine_rate, the comparison of two clocks won't work without clk_is_match that does __clk_get_hw on the clocks first. As we've been unconditionally already calling clk_set_parent already because of the bogus comparison, let's just remove the check as suggested by Stephen Boyd <sboyd@codeaurora.org>. Cc: Michael Turquette <mturquette@linaro.org> Cc: Paul Walmsley <paul@pwsan.com> Cc: Tero Kristo <t-kristo@ti.com> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com> Acked-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | ARM: OMAP2+: Fix omap off idle power consumption creeping upTony Lindgren2015-05-04
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we use a combination of VMODE and I2C4 for retention modes, eventually the off idle power consumption will creep up by about 23mW, even during off mode with I2C4 always staying enabled. Turns out this is because of erratum i531 "Extra Power Consumed When Repeated Start Operation Mode Is Enabled on I2C Interface Dedicated for Smart Reflex (I2C4)" as pointed out by Nishanth Menon <nm@ti.com>. Let's fix the issue by adding i2c_cfg_clear_mask for the bits to clear when initializing the I2C4 adapter so we can clear SREN bit that drives the I2C4 lines low otherwise when there is no traffic. Fixes: 3b8c4ebb7630 ("ARM: OMAP3: Fix idle mode signaling for Cc: stable@vger.kernel.org # v3.16+ sys_clkreq and sys_off_mode") Cc: Kevin Hilman <khilman@kernel.org> Cc: Tero Kristo <t-kristo@ti.com> Reviewed-by: Nishanth Menon <nm@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* / ARM: OMAP2+: Remove unnessary return statement from the void function, ↵Nicholas Krause2015-06-01
|/ | | | | | | | | | | omap2_show_dma_caps This removes the no longer required return statement at the end of the void function, omap2_show_dma_cap due to no need for a return statement due to this function always running successfully. Signed-off-by: Nicholas Krause <xerofoify@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
* Merge tag 'armsoc-late' of ↵Linus Torvalds2015-04-22
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC late changes from Olof Johansson: "We were expecting to sit on this branch through most of the merge window since the contents was merged into our tree late, but we ended up sitting on all of our contents so it can go in with the rest. The contents here is: - a large branch of cleanups of the CM/PRM blocks on OMAP. - a couple of patches plumbing up CM/PRM on OMAP5 and DRA7. - a branch with DT updates for Freescale i.MX. including some shuffling from .dts to .dtsi (include) files that causes a little churn" * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (78 commits) ARM: OMAP2+: Fix booting with configs that don't have MFD_SYSCON ARM: OMAP4+: control: add support for initializing control module via DT ARM: dts: dra7: add minimal l4 bus layout with control module support ARM: dts: omap5: add minimal l4 bus layout with control module support ARM: OMAP4+: control: remove support for legacy pad read/write ARM: OMAP4: display: convert display to use syscon for dsi muxing ARM: dts: omap4: add minimal l4 bus layout with control module support ARM: dts: am4372: add minimal l4 bus layout with control module support ARM: dts: am43xx-epos-evm: fix pinmux node layout ARM: dts: am33xx: add minimal l4 bus layout with control module support ARM: dts: omap3: add minimal l4 bus layout with control module support ARM: dts: omap24xx: add minimal l4 bus layout with control module support ARM: OMAP2+: control: add syscon support for register accesses ARM: OMAP2+: id: cache omap_type value ARM: OMAP2+: control: remove API for getting control module base address ARM: OMAP2+: clock: add low-level support for regmap ARM: OMAP4+: PRM: get rid of cpu_is_omap44xx calls from interrupt init ARM: OMAP4+: PRM: setup prm_features from the PRM init time flags ARM: OMAP2+: CM: move SoC specific init calls within a generic API ARM: OMAP4+: PRM: determine prm_device_inst based on DT compatibility ...
| * Merge tag 'omap-for-v4.1/prcm-dts-mfd-syscon-fix' of ↵Olof Johansson2015-04-22
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/late Merge "urgent omap boot fix for v4.1 if MFD_SYSCON is not set" from Tony Lindgren: Urgent pull request for v4.1 to booting for custom kernel .config files that do not have MFD_SYSCON set. Omaps now have a dependency to MFD_SYSCON for system control module generic register area and some clocks with the changes done in omap-for-v4.1/prcm-dts branch. This can be pulled on top of omap-for-v4.1/prcm-dts, or into fixes for v4.1. We already do have a slight MFD_SYSCON dependency for REGULATOR_PBIAS for dual voltage MMC cards on the first MMC bus for many devices, so from that point of view this can also be merged separately from omap-for-v4.1/prcm-dts. * tag 'omap-for-v4.1/prcm-dts-mfd-syscon-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Fix booting with configs that don't have MFD_SYSCON Signed-off-by: Olof Johansson <olof@lixom.net>
| | * ARM: OMAP2+: Fix booting with configs that don't have MFD_SYSCONTony Lindgren2015-04-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the recent changes omaps have developed a dependency to MFD_SYSCON. This is used for system control module generic register area and some clocks. We do have it selected in omap2plus_defconfig, but targeted config files may not have it selected. Let's make sure it's selected like few other ARM platforms are already doing. Reported-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | Merge branch '4.0-rc1-prcm-cleanup-v6' of ↵Tony Lindgren2015-04-01
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/t-kristo/linux-pm into omap-for-v4.1/prcm-cleanup Conflicts: arch/arm/boot/dts/dra7.dtsi
| | * | ARM: OMAP4+: control: add support for initializing control module via DTTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OMAP4, OMAP5 and DRA7 now parse DT entries for control module address spaces, and set up syscon mappings appropriately. Low level IO init is updated to remove the legacy control module mappings for these devices also. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: OMAP4+: control: remove support for legacy pad read/writeTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | omap4_ctrl_pad_readl/writel are no longer used by anybody, so remove these. Syscon / pinctrl should be used to access the padconf area instead. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: OMAP4: display: convert display to use syscon for dsi muxingTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The legacy control module APIs will be gone, thus convert the display driver to use syscon. This change should eventually be moved to display driver from the board directory. Signed-off-by: Tero Kristo <t-kristo@ti.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | ARM: dts: am4372: add minimal l4 bus layout with control module supportTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch creates an l4_wkup interconnect for AM43xx, and moves some of the generic peripherals under it. System control module nodes are moved under this new interconnect also, and the SCM clock layout is changed to use the renamed SCM nodea as the clock provider. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: dts: am33xx: add minimal l4 bus layout with control module supportTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch creates an l4_wkup interconnect for AM33xx, and moves some of the generic peripherals under it. System control module nodes are moved under this new interconnect also, and the SCM clock layout is changed to use the renamed SCM node as the clock provider. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: dts: omap3: add minimal l4 bus layout with control module supportTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch creates an l4_core interconnect for OMAP3, and moves some of the generic peripherals under it. System control module nodes are moved under this new interconnect also, and the SCM clock layout is changed to use the renamed SCM node as the clock provider. Signed-off-by: Tero Kristo <t-kristo@ti.com> Reported-by: Tony Lindgren <tony@atomide.com>
| | * | ARM: dts: omap24xx: add minimal l4 bus layout with control module supportTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch creates an l4 / l4-wkup interconnects for omap2420 / omap2430 SoCs, and moves some of the generic peripherals under it. System control module nodes are moved under this new interconnect also, and the SCM clock layout is changed to use the new SCM node as the clock provider. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: OMAP2+: control: add syscon support for register accessesTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Control module driver needs to support syscon for register accesses, as the DT hierarchy for control module driver is going to be changed. All the control module related features will be moved under control module node, including clocks, pinctrl, and generic configuration register access. Temporary iomap is still provided very early in the boot for access while syscon is not yet ready. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: OMAP2+: id: cache omap_type valueTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no need to read the register with every invocation of the function, as the value is constant. Thus, cache the value in a static variable. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: OMAP2+: control: remove API for getting control module base addressTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This shall not be used anymore, as control module driver is converted into using regmap. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: OMAP2+: clock: add low-level support for regmapTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the TI clock providers will be converted to use syscon, thus low-level regmap support is needed for the clock drivers also. This patch adds this support, which can be enabled for individual drivers in later patches. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: OMAP4+: PRM: get rid of cpu_is_omap44xx calls from interrupt initTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compatible DT node is now passed with the prm init, so there is no need to do node matching here again. Added a new flag to the init data also, to detect default IRQ support for OMAP4. Also, any booting omap4 DT setup always has a PRM node, so there is no need to check against the special case where it would be missing. Signed-off-by: Tero Kristo <t-kristo@ti.com>
| | * | ARM: OMAP4+: PRM: setup prm_features from the PRM init time flagsTero Kristo2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently some cpu_is_X checks are used to setup prm_features, however the same can be accomplished by just passing these flags from the PRM init data. This is done in preparation to make PRM a separate driver. Signed-off-by: Tero Kristo <t-kristo@ti.com>