San Mehat [Mon, 14 Apr 2008 22:22:49 +0000 (15:22 -0700)]
mmc: Add concept of an 'embedded' SDIO device.
This is required to support chips which use SDIO for signaling/
communication but do not implement the various card enumeration registers
as required for full SD / SDIO cards.
mmc: sdio: Fix bug where we're freeing the CIS tables we never allocated when using EMBEDDED_SDIO
mmc: Add max_blksize to embedded SDIO data
Adrian Hunter [Thu, 16 Oct 2008 13:37:23 +0000 (16:37 +0300)]
ARM: OMAP: calculate hsmmc data timeout accurately
The data timeout can be calculated from the clock
rate and timing values given by the card. At
present the timeout is set to the maximum value,
about 2.7 secs. When dealing with cards that do have
errors, this causes large unnecessary delays because
the correct timeout may be around 10 millisecs.
Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This patches moves the twl4030 power sequencer code to drivers/mfd and
updates the code for the new twl4030 framework. The code handles downloading
the scripts provided by the board configuration and configuring the chip
to call the relevant script for each event (processor group 1 and 2 sleep,
processor group 3 sleep, wakeup or warm reset).
Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Tomi Valkeinen [Fri, 12 Dec 2008 07:48:53 +0000 (09:48 +0200)]
OMAP: wait for pwrdm transition after clk_enable()
Enabling clock in a disabled power domain causes the power domain to be
turned on. However, the power transition is not always finished when
clk_enable() returns and this randomly crashes the kernel when an
interrupt happens right after the clk_enable, and the kernel tries to
read the irq status register for that domain.
Why the irq status register is inaccessible, I don't know. Also it
doesn't seem to be related to the module being not powered up, but to
the transition itself.
The same could perhaps happen after clk_disable also, but I have not
witnessed that.
The problem affects at least dss, cam and sgx clocks.
This change waits for the transition to be finished before returning
from omap2_clkdm_clk_enable().
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com> Acked-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Wed, 26 Nov 2008 18:48:12 +0000 (10:48 -0800)]
OMAP2/3 GPTIMER: skip unnecessary TLDR write during non-autoreload
The GPTIMER TLDR register does not need to be written if the GPTIMER
is not in autoreload mode. This is the usual case for dynamic tick-enabled
kernels.
Simulation data indicate that skipping the read that occurs as part of
the write should save at least 300-320 ns for each GPTIMER1 timer
reprogram. (This assumes L4-Wakeup is at 19MHz and GPTIMER write
posting is enabled.) Skipping the write itself probably won't have
much impact since it should be posted on the OCP interconnect.
Tested on 2430SDP and 3430SDP.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Richard Woodruff <r-woodruff2@ti.com> Acked-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Jarkko Nikula [Wed, 12 Nov 2008 15:05:41 +0000 (17:05 +0200)]
ASoC: Fix supported sample rates of TWL4030 audio codec
TWL4030 currently supports rates between 8 kHz and 48 kHz and sets the codec
mode register accordingly in twl4030_hw_params. Expose this info so that
ASoC can match other rates than 44.1 kHz or 48 kHz as well.
Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com> Acked-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Jarkko Nikula [Tue, 25 Nov 2008 10:45:09 +0000 (12:45 +0200)]
ASoC: OMAP: Add support for mono audio links in McBSP DAI
Patch adds support for mono audio links so that McBSP DAI can operate with
real mono codecs. In I2S, the signalling remains the same but only first
frame (left channel) is transmitting audio data and second frame having null
data. In DSP_A, only first frame is transmitted.
Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Jarkko Nikula [Wed, 12 Nov 2008 15:05:51 +0000 (17:05 +0200)]
ASoC: OMAP: Add more supported sample rates into McBSP DAI driver
Originally it was put too tight limits to support only 44.1 kHz and 48 kHz
sample rates in McBSP DAI driver. Extend it now to 8 kHz - 96 kHz. With
96 kHz and 2*16 bits, bit clock is 3.072 MHz < 3.125 MHz (I2S max?).
Tested on Nokia N810 with TVL320AIC33 from rates 8 - 96 kHz and on Texas
Instruments Beagle with TWL4030 from rates 8 - 48 kHz.
Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com> Acked-by: Steve Sakoman <steve@sakoman.com> Acked-by: Arun KS <arunks@mistralsolutions.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Jarkko Nikula [Wed, 22 Oct 2008 12:00:29 +0000 (15:00 +0300)]
ALSA: ASoC: OMAP: Continue fixing DSP DAI format in McBSP DAI driver
Fix "ASoC: OMAP: Fix DSP DAI format in McBSP DAI driver" was not correct
due misunderstanding of DSP_A format and similar error in TLV320AIC33
codec which was used to test the original fix.
This patch corrects now DSP_A format in OMAP McBSP DAI driver and is
verified with TLV320AIC23 codec that's implementing DSP_A correctly.
Jarkko Nikula [Mon, 20 Oct 2008 12:29:59 +0000 (15:29 +0300)]
ALSA: ASoC: OMAP: Fix DSP DAI format in McBSP DAI driver
Fix word clock length which must equal to one bit clock cycle in DSP mode.
Surprisingly McBSP is able synchronize into wrong length when it's
slave but e.g. TLV320AIC33 codec in slave configuration is outputting
some amount of noise if word clock length is longer than one bit clock
cycle.
Fix also bit clock and frame sync polarities in DSP mode since they are
opposite from I2S.
Jarkko Nikula [Thu, 9 Oct 2008 12:57:21 +0000 (15:57 +0300)]
ALSA: ASoC: OMAP: Set DMA stream name at runtime in McBSP DAI driver
This suits better when adding support for multiple links and different
link formats.
Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Jarkko Nikula [Thu, 9 Oct 2008 12:57:22 +0000 (15:57 +0300)]
ALSA: ASoC: OMAP: Add multilink support to McBSP DAI driver
Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Kalle Jokiniemi [Wed, 22 Oct 2008 06:47:06 +0000 (09:47 +0300)]
OMAP3 DSS: Fixed FIFO buffer register field sizes
The size status field in DISPC_[GFX | VID1 | VID2]_FIFO_SIZE_STATUS
register is 11 bits wide in OMAP3, but only 9 bits were read. Similarly,
the threshold field in DISPC_[GFX | VID1 | VID2]_FIFO_THRESHOLD register
is 12 bits wide, while only 9 bits were written in it.
This patch extends the bit field sizes used in setup_plane_fifo to
correspond to ones in OMAP3. In OMAP2 the extra bits are reserved, so no
harm should come from extending the bit fields.
Signed-off-by: Kalle Jokiniemi <ext-kalle.jokiniemi@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Kalle Jokiniemi [Fri, 17 Oct 2008 06:46:08 +0000 (09:46 +0300)]
OMAP3: Remove CONFIG_OMAP_SYSOFFMODE flag
Remove CONFIG_OMAP_SYSOFFMODE flag and do the full initialization of voltage
controller . Enabling automatic sending of OFF command and selecting wether
SYS_OFF_MODE signal is used should be determined dynamically. Hence they are
now not set in the initialization.
The sleep voltage for OFF mode is changed to default 1,2V for VDD1 and
1,15V for VDD2. Using the 0,9V setting causes hangup.
Signed-off-by: Kalle Jokiniemi <ext-kalle.jokiniemi@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Felipe Contreras [Fri, 24 Oct 2008 19:02:57 +0000 (12:02 -0700)]
alsa: add Beagleboard SoC configuration.
This is exactly the same as the overo configuration. It might make sense
to have them in a single one.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
# CHANGED to not spew messages about beagle on non-beagle boards Signed-off-by: Tony Lindgren <tony@atomide.com>
The real bug behind this issue is the fact that we're not
masking out the SPURIOUSIRQFLAG bits [31:7] from the active
interrupt number. The following patch will replace this
patch with the fix.
Commit 8b1f0bd44fe490ec631230c8c040753a2bda8caa introduced a bug that
caused non-CORE DPLL rates to be incorrectly set on boot in
omap3_noncore_dpll_enable(). Debugged by Tomi Valkeinen
<tomi.valkeinen@nokia.com> - thanks Tomi.
Also fix omap3_noncore_dpll_set_rate() to assign clk->rate after a
DPLL reprogram.
Tested on 3430SDP.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Tomi Valkeinen <tomi.valkeinen@nokia.com> Cc: Rick Bronson <rick@efn.org> Cc: Timo Kokkonen <timo.t.kokkonen@nokia.com> Cc: Sakari Poussa <sakari.poussa@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Sanjeev Premi [Fri, 10 Oct 2008 13:51:02 +0000 (19:21 +0530)]
Fix compiler warnings in smartreflex.c
Fix these compiler warnings:
smartreflex.c:126: warning: initialization makes integer from pointer without a cast
smartreflex.c:134: warning: initialization makes integer from pointer without a cast
Refreshed after updates from Felipe.
Signed-off-by: Sanjeev Premi <premi@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This patch fixes two problems in LM8323 PWM control. One is that
locking is needed when setting and reading pwm->desired_brightness
asynchronously. The other is that LM8323 may stop a PWM script only
after the current instruction has finished. If it is a long RAMP,
the chip would keep executing the old instruction and new
settings were effectively ignored.
Signed-off-by: Timo Karjalainen <timo.o.karjalainen@nokia.com> Signed-off-by: Daniel Stone <daniel.stone@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Peter Ujfalusi [Thu, 2 Oct 2008 05:28:48 +0000 (08:28 +0300)]
OMAP2: omap-keypad: interrupt disable fix
The GPIO interrupts has been disabled several times
after the first key press.
No need to disable - again - the interrupts in the omap_kp_scan_keypad
function on OMAP2.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Felipe Balbi [Tue, 30 Sep 2008 18:46:59 +0000 (21:46 +0300)]
omap: get rid of a useless cast
That cast was annyoing for quite a while. Now
omap_ctrl_base_get() returns void __iomem *
and __raw_read/write friends uses void __iomem *
so there's no need for casting.
Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Fri, 3 Oct 2008 07:03:33 +0000 (00:03 -0700)]
ehci-omap: (mostly) cosmetic cleanups
Various cleanups to the OMAP EHCI bus glue:
- Whitespace fixes.
- Busy-wait loops should really have timeouts, but lacking
that ... at least cpu_relax() in the body.
- Debug messages should end with newlines, so they don't
break the next message; should not embed newlines; and
should otherwise be clean and correctly spelled.
- The probe() method should have initialized the SBRN value,
so the driver didn't report "USB 0.0 started".
- The MODULE_ALIAS() was missing its "platform:" prefix;
doing it right means the module could hotplug/coldplug.
No real functional change except for the hotplug/coldplug thing.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
Lauri Leukkunen [Wed, 15 Oct 2008 11:51:51 +0000 (14:51 +0300)]
OMAP3: ack spurious IRQs in get_irqnr_and_base
This prevents spurious interrupts from repeating unacked and
thus locking the system, while still allowing the spurious
bad irq error message to be show on console.
Signed-off-by: Lauri Leukkunen <lauri.leukkunen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Zhaolei [Fri, 17 Oct 2008 10:07:31 +0000 (18:07 +0800)]
Fix debugfs_create_*'s error checking method for arm/plat-omap
debugfs_create_*() returns NULL if an error occurs, returns -ENODEV
when debugfs is not enabled in the kernel.
Comparing to PATCH v1, because clk_debugfs_init is included in
"#if defined CONFIG_DEBUG_FS", we only need to check NULL return.
Thanks Li Zefan <lizf@cn.fujitsu.com>
debugfs_create_u8() and other function's return value's checking method are
also fixed in this patch.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Nathan Monson [Thu, 16 Oct 2008 20:10:47 +0000 (13:10 -0700)]
Add MT_MEMORY_SO, mark L3 and L4 to use it
On Wed, Oct 8, 2008 at 11:36 AM, Nathan Monson <nmonson@gmail.com> wrote:
> "Felipe Contreras" <felipe.contreras@gmail.com> writes:
>> irq -33, desc: c0335cf8, depth: 0, count: 0, unhandled: 0
>
> On the BeagleBoard list, Pratheesh Gangadhar said that mapping I/O
> regions as Strongly Ordered suppresses this problem:
> http://groups.google.com/group/beagleboard/browse_thread/thread/23e1c95b4bfb09b5/70d12dca569ca503?show_docid=70d12dca569ca503
Pratheesh helped me make a patch against the latest linux-omap git to
try this.
With this patch, my IRQ -33 problems with the DSP have disappeared.
Before, I would end up in IRQ -33 loop after 10 invocations of the DSP
Bridge 'ping.out' utility. I just finished running it 50,000 times
without error.
As stated before, this patch is just a workaround for testing
purposes, not a fix. Who knows what performance side effects it
has...
Signed-off-by: Nathan Monson <nmonson@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Tue, 14 Oct 2008 19:01:43 +0000 (12:01 -0700)]
twl4030 MMC card detction
Replace stubbed-out card-detect support for twl4030 GPIOs with
a simpler platform_data mechanism. As before, no current users.
Sanity tested by enabling this on Beagle; it booted OK with
root on MMC.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Mon, 13 Oct 2008 20:05:05 +0000 (13:05 -0700)]
support LED signals on Beagle
Export Beagle's third LED to the LED framework, now that it's
accessible through the twl4030-gpio code.
Claim the VBUS control, defaulting to OFF. Boards that have an
EHCI connector (not rev B) will need to update this slightly.
(Ideally as part of adding hooks to the ehci-map code supporting
external power switching and overcurrent detection.)
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Mon, 13 Oct 2008 20:04:16 +0000 (13:04 -0700)]
twl4030-gpio supports LED signals
Expose the two TWL4030 LED signals as output-only GPIOs. Boards
need to explicitly ask that this be done, to help avoid conflicts
on boards using these same pins to hook up to a vibrator motor.
Note that these are high drive open drain signals; LEDA is rated
for up to 160 mA (!), LEDB up to 60 mA. Boards using one of these
signals to drive a bank of LCD backlight LEDs would probably want
to access the dedicated PWMs for brightness control, too; easy to
add such support later.
Example: Beagle has one real LED here (PWM not necessary), and
one GPIO controlling VBUS output over EHCI (PWM not wanted).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Mon, 13 Oct 2008 20:03:07 +0000 (13:03 -0700)]
hsmmc.c glue uses standard GPIO calls
Convert the hsmmc init code over to standard GPIO calls:
gpio_request(), gpio_free(), gpio_get_value_cansleep().
NOTE that this doesn't pass GPIO numbers in to hsmmc_init();
those values are still hard-wired. (For the write protect
signal, the LACK of value is hard-wired...) So the hsmmc
glue is still kind of problematic.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Mon, 13 Oct 2008 20:02:18 +0000 (13:02 -0700)]
twl4030-gpio use new gpiolib hooks
Use the new gpiolib internal mechanism for tracking gpio usage,
making them power the GPIO module on/off, so that the standard
gpio_request()/gpio_free() calls can completely replace the
twl4030-specific versions.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Mon, 13 Oct 2008 20:00:21 +0000 (13:00 -0700)]
gpiolib request/free hooks
Add a new internal mechanism to gpiolib to support low power
operations by letting gpio_chip instances see when their GPIOs
are in use. When no GPIOs are active, chips may be able to
enter lower powered runtime states by disabling clocks and/or
power domains.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Thu, 16 Oct 2008 19:32:43 +0000 (12:32 -0700)]
twl4030-usb updates/fixes
Simplify handling of VBUS and ID status and the USB_PRES interrupt.
This seems to resolve the problems I previously saw on Beagle and
Overo boards.
- Read the status directly, instead of trying to infer it from
dodgey side effects of IRQ handling and trigger tweaking.
- Stop trying to arrange those dodgey side effects; just leave
the IRQ enabled at all times.
- Check that status as part of driver probe, so the PHY can
always be active by the time it's needed. (BUGFIX!)
- Re-sequence probe() to be less racey, and to avoid duplicating
logic found elsewhere (notably irq handling and PHY activation).
- Make the irq_chip be the exclusive owner of PWR_EDR (finally).
- Get rid of needless work_struct ... in this irq handling thread,
it's safe and cheap to call sysfs_notify() directly.
Stop enabling IRQs on the USB subchip. There's no IRQ handler for
them, and since ALT_INT_REROUTE isn't being set they'll never
arrive ... so there's no point to enabling them.
Also add some comments about other things such an otg_transciever
driver should be doing, fixing minor omissions; and remove some
unnecessary file inclusions.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Fri, 10 Oct 2008 21:23:01 +0000 (14:23 -0700)]
remove some global twl4030 IRQ defines
Disable more unnecessary TWL4030_*IRQ_* symbols.
We're not yet ready to remove them all from <linux/i2c/twl4030.h>
since various drivers still use those symbols (maybe indirectly)
not platform resources: twl4030_bci_battery.c, twl4030-madc.c,
twl4030-pwrbutton.c, and omap-twl4030keypad.c all need updates.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Fri, 10 Oct 2008 21:22:22 +0000 (14:22 -0700)]
replace twl4030-gpio irq_chip
Replace twl4030 GPIO IRQ handling with generic SIH support.
No change in functionality; but there's now one less kernel
thread tied up supporting this chip.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>