Age | Commit message (Collapse) | Author |
|
Improve the comment on falling back to 100mA if ADC is missing.
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
|
The GSM part of all MACH_NEO1973s require GPIO functions,
thus we should select PCF50633_GPIO for GTA02.
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
|
The WM8753 driver now uses the standard I2C device registration model and
so requires the platform to register the device. Convert the OpenMoko
GTA0x series devices to do so.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
|
The base support for the only in-tree user, the GTA01, is out of tree
and will be updated separately.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
|
This patch should be pure code motion, separating that out from the
functional changes to move to new style device registration.
[Backported from upstream with some modifications for old code.]
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
|
pending-tracking-hist top was asoc-only-write-back-non-defau / 04f55b6c2392d4af2b8b2178c333c7f131d3cdc0 ... parent commitmessage:
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
ASoC: Only write back non-default registers when resuming WM8753
This will reduce the number of writes done on resume, allowing that to
complete faster (especially on systems with very slow I2C like the
current Samsung driver).
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
|
The kernel can't load armv4t modules ("unknown relocation: 40"). This
patch fixes the ARM makefile accordingly to tell GCC to generate armv4 code
instead of armv4t code. The assembler still needs to allow armv4t
instructions for some object files which are linked into the kernel.
Signed-off-by: Rask Ingemann Lambertsen <rask@sygehus.dk>
|
|
Some registers where not set properly, or at the right time (thanks to Balaji
for his patch).
Weak locking could lead to corruption when using sysfs to switch state from
multiple threads or processes. The state transitions are now all atomic.
The driver attribute 'last_state' was used for same purpose of 'normal_state'.
Kept only 'normal_state' and used it in 'init_regs' instead of custom qvga
parameter.
This patch should fix bug #2235.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@gmail.com>
|
|
spigpio_info.
X-Git-Url: http://git.openmoko.org/?p=kernel.git;a=commitdiff_plain;h=740c6704e830829d8539a6cc34346ff1980cd9ee
Get rid of board_info information in glamo and s3c24xx_gpio spigpio_info.
The board info does not belong there and has been removed. In
spi_s3c24xx_gpio, board_info has been removed in mainline.
Signed-off-by: Balaji Rao <balajirrao@openmoko.org>
|
|
Select the relevant DMA implementation when the
sound driver is selected.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
--
Ben (ben@fluff.org, http://www.fluff.org/)
'a smiley only costs 4 bytes'
|
|
The I2S TX and RX channels where reversed. Also add
implicit numbers to the start of the two DMA controllers.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Fix CONFIG_CPU_S3C64XX which should have been CONFIG_PLAT_S3C64XX.
Fix the merge problems that failed to properly set the master/slave
bits for S3C64XX.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
The GTA03 driver has a number of get and set calls that
can be easily be done by calling a pair of common helper
functions.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>Index: linux.agit/sound/soc/s3c24xx/om_gta03_wm8753.c
===================================================================
--- linux.agit.orig/sound/soc/s3c24xx/om_gta03_wm8753.c 2009-02-26 17:58:18.000000000 +0000
+++ linux.agit/sound/soc/s3c24xx/om_gta03_wm8753.c 2009-02-26 17:59:46.000000000 +0000
@@ -228,8 +228,9 @@ static struct snd_soc_ops om_gta03_voice
.hw_free = om_gta03_voice_hw_free,
};
-static int om_gta03_set_stereo_out(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol)
+static int common_set_dapm(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol,
+ char *epname)
{
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
int val = ucontrol->value.integer.value[0];
@@ -240,133 +241,89 @@ static int om_gta03_set_stereo_out(struc
return 0;
}
-static int om_gta03_get_stereo_out(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol)
+static int common_get_dapm(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol,
+ char *name)
{
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+ int val;
- ucontrol->value.integer.value[0] =
- snd_soc_dapm_get_endpoint(codec, "Stereo Out");
+ val = snd_soc_dapm_get_endpoint(codec, name);
+ ucontrol->value.integer.value[0] = val;
return 0;
}
+static int om_gta03_set_stereo_out(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ return common_set_dapm(kcontrol, ucontrol, "Stereo Out");
+}
+
+static int om_gta03_get_stereo_out(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ return common_get_dapm(kcontrol, ucontrol, "Stereo Out");
+}
static int om_gta03_set_gsm_out(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- int val = ucontrol->value.integer.value[0];
-
- snd_soc_dapm_set_endpoint(codec, "GSM Line Out", val);
- snd_soc_dapm_sync(codec);
-
- return 0;
+ return common_set_dapm(kcontrol, ucontrol, "GSM Line Out");
}
static int om_gta03_get_gsm_out(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-
- ucontrol->value.integer.value[0] =
- snd_soc_dapm_get_endpoint(codec, "GSM Line Out");
-
- return 0;
+ return common_get_dapm(kcontrol, ucontrol, "GSM Line Out");
}
static int om_gta03_set_gsm_in(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- int val = ucontrol->value.integer.value[0];
-
- snd_soc_dapm_set_endpoint(codec, "GSM Line In", val);
- snd_soc_dapm_sync(codec);
-
- return 0;
+ return common_set_dapm(kcontrol, ucontrol, "GSM Line In");
}
static int om_gta03_get_gsm_in(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-
- ucontrol->value.integer.value[0] =
- snd_soc_dapm_get_endpoint(codec, "GSM Line In");
-
- return 0;
+ return common_get_dapm(kcontrol, ucontrol, "GSM Line In");
}
static int om_gta03_set_headset_mic(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- int val = ucontrol->value.integer.value[0];
-
- snd_soc_dapm_set_endpoint(codec, "Headset Mic", val);
- snd_soc_dapm_sync(codec);
-
- return 0;
+ return common_set_dapm(kcontrol, ucontrol, "Headset Mic");
}
static int om_gta03_get_headset_mic(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-
- ucontrol->value.integer.value[0] =
- snd_soc_dapm_get_endpoint(codec, "Headset Mic");
-
- return 0;
+ return common_get_dapm(kcontrol, ucontrol, "Headset Mic");
}
static int om_gta03_set_handset_mic(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- int val = ucontrol->value.integer.value[0];
-
- snd_soc_dapm_set_endpoint(codec, "Handset Mic", val);
-
- snd_soc_dapm_sync(codec);
-
- return 0;
+ return common_set_dapm(kcontrol, ucontrol, "Handset Mic");
}
static int om_gta03_get_handset_mic(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-
- ucontrol->value.integer.value[0] =
- snd_soc_dapm_get_endpoint(codec, "Handset Mic");
-
- return 0;
+ return common_get_dapm(kcontrol, ucontrol, "Handset Mic");
}
static int om_gta03_set_handset_spk(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- int val = ucontrol->value.integer.value[0];
-
- snd_soc_dapm_set_endpoint(codec, "Handset Spk", val);
-
- snd_soc_dapm_sync(codec);
-
- return 0;
+ return common_set_dapm(kcontrol, ucontrol, "Handset Spk");
}
static int om_gta03_get_handset_spk(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-
- ucontrol->value.integer.value[0] =
- snd_soc_dapm_get_endpoint(codec, "Handset Spk");
-
- return 0;
+ return common_get_dapm(kcontrol, ucontrol, "Handset Spk");
}
static const struct snd_soc_dapm_widget wm8753_dapm_widgets[] = {
--
Ben (ben@fluff.org, http://www.fluff.org/)
'a smiley only costs 4 bytes'
|
|
Add common error exit for om_gta03_hifi_hw_params()
so that any error can easily be debugged.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Tidy the driver formatting.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Fix missing dma.o build if CONFIG_S3C_DMA
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
The I2S codec is connected to I2S channel 1, not 0
as initially setup.
Also fix the divisors to produce 12MHz on MCLK (was
6MHz) to ensure that the PLL in the WM8753 is within
proper limits.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Since GPI0, GPI1 and GPI8 are for hardware version control.
They would create current leaking if they are setup as output.
It's resloved by adding gta03 specific fb_gpio_setup function
in fb platform data.
Signed-off-by: Matt Hsu <matt_hsu@openmoko.org>
Reported-by: Dkay Chen <dkay_chen@openmoko.com>
|
|
This removes the unstable operation by increasing break timing from
170us to 230us, the datasheet minimum was 190us.
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
X-Git-Url: http://git.openmoko.org/?p=kernel.git;a=commitdiff_plain;h=c94ea3d685fa6e9b24d62adb11a7ad6087b9edf5
fix_gta03_fiq_stuff.patch
Signed-off-by: Balaji Rao <balajirrao@openmoko.org>
|
|
X-Git-Url: http://git.openmoko.org/?p=kernel.git;a=commitdiff_plain;h=5689ad9b0ded29adec4be64df53e488c648b9831
lis302dl_use_s3c24xx_gpio_spi_bitbang.patch
Change lis302dl driver to use generic spi code. This requires that we define a
s3c24xx_gpio spi bitbang based controller in mach-gta02.c.
Signed-off-by: Balaji Rao <balajirrao@openmoko.org>
|
|
X-Git-Url: http://git.openmoko.org/?p=kernel.git;a=commitdiff_plain;h=f8fbb07854e3aff64dce9fe6ef6a8dc0e0f762b5
spi_supoport_non_blocking_sync_transfers.patch
A mew option is added to spi_bitbang_info to specify if the
transfers off it will be non blocking.
A new function - spi_non_blocking_transfer is added to the SPI core.
Signed-off-by: Balaji Rao <balajirrao@openmoko.org>
|
|
Hi Andy,
Here's the fix for the qvga-normal bug we observed the other day
here - when the screen is powered up again after a blanking, in
qvga-normal mode, we see a WSOD(kind of!)
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
This adds in the TZIC support consts and also the VM mapping
for the TZIC units, and adds TZIC init into mach-om-gta03.c
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Clean out more switch() on version that has no point given the
actual features that (don't) differ on supported GTA02 versions.
We take care about forcing GPS regulator off on neo1973-pm-gps probe,
but we don't take care about killing the UART GPIO so they don't
drive into the powered-down subsystem. We took care of doing that when
we turned off the thing already, but we cannot just call the OFF code
from the probe due to problems with regulator state init.
Reported-by: Rask Ingemann Lambersten <rask@sygehus.dk>
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Drop the i2c0 bus max-frequency to 150kHz to avoid
problems with boards where this is too fast.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
--- linux.agit.orig/arch/arm/plat-s3c/dev-i2c0.c 2009-02-20 23:04:34.000000000 +0000
+++ linux.agit/arch/arm/plat-s3c/dev-i2c0.c 2009-02-20 23:04:37.000000000 +0000
@@ -51,7 +51,7 @@ static struct s3c2410_platform_i2c defau
.flags = 0,
.slave_addr = 0x10,
.bus_freq = 100*1000,
- .max_freq = 400*1000,
+ .max_freq = 150*1000,
.sda_delay = S3C2410_IICLC_SDA_DELAY5 | S3C2410_IICLC_FILTER_ON,
};
--
Ben (ben@fluff.org, http://www.fluff.org/)
'a smiley only costs 4 bytes'
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Because i found the level of the "MODEM_RST" will return to "L" when it set to "Input".
GSM module sometimes can not turn on especially after emove the C9102.
Signed-off-by: DKAY_CHEN <dkay_chen@openmoko.com>
|
|
Ensure the DMA channels have the controller clock
enabled before they are used.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Add the DMA channels as system devices to provide
suspend/resume and a presence in sysfs.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Add the clock sources for the DMA and SDMA controllers
and ensure that they are shut down at startup. The DMA
engines are dma0 and dma1, whilst the SDMA are called
dma2 and dma3.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Fix the definitions of HCLK_GATE bits, which
had SDMA0/1 named SDMA1/2 and the definitions
of bits 26..29 in the wrong order.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
hes-tracking-s3c64xx-dma-support-1235439162-1235439227
pending-tracking-hist top was MERGE-via-stable-tracking-MERGE-via-mokopatches-tracking-s3c64xx-dma-support-1235439162-1235439227 / 3d6a1b21cf5fbdb6250d781b0a4900a7a0768aa1 ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-MERGE-via-mokopatches-tracking-s3c64xx-dma-support-1235439162
stable-tracking-hist top was MERGE-via-mokopatches-tracking-s3c64xx-dma-support-1235439162 / 893e864e65adffc9eb085ed4f8b552a31dcec840 ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-mokopatches-tracking-hist-s3c64xx-dma-support
mokopatches-tracking-hist top was s3c64xx-dma-support / 2515f9a1d53d19b1e61d639875aedcbe7929666e ... parent commitmessage:
From: Ben Dooks <ben@simtec.co.uk>
S3C64XX: DMA support
Add support for the DMA blocks in the S3C64XX series
of CPUS, which are based on the ARM PL080 PrimeCell
system.
Unfortunately, these DMA controllers diverge from the
PL080 design by adding another DMA controller register
and configuration for OneNAND.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
It's always a good idea to first define the data structures you use. ;-)
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
|
For GTA02 we can remove GTA02_HDQ (not used anywhere) and
S3C2410_CLOCK (already selected by CPU_S3C2442).
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
|
This reverts commit fe8b7ff1a79648146501f37d467fcb2f2bea0164.
I undo the reordering of the options here, as it hides what
really happend.
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
|
For GTA02 we can remove GTA02_HDQ (not used anywhere) and
S3C2410_CLOCK (already selected by CPU_S3C2442). Additionally I reordered
the options a bit.
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
|
If the PCF50633 ADC is disabled, but the charger is enabled we can't determine
the charger type using the pulldown. The safest thing we can do is to fallback
to 100mA that should be supplied according to the USB specs.
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
|
If the vibrator is disabled we don't need to register a platform device.
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|
|
We select the PCF50633 core part, which depends on I2C, in our Kconfig. However,
make oldconfig does not automatically resolve this "depends on I2C" dependency.
We should select I2C for GTA02 as it's needed anyway.
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
|