ARM: s3c24xx: Set ARCH_NR_GPIOS according to the selected SoC types.
Currently the code in gpiolib.c tries to register GPIO BANKA-BANKM.
ARCH_NR_GPIOS on the other hand is set only to 256, which would be the
equivalent of BANKA-BANKH. Thus the registration of all other banks will fail.
This patch fixes this by setting S3C_GPIO_END according to the selected SoC
types. S3C_GPIO_END is set to the maximum of the number of GPIOs over all
selected SoC types. Thus it is ensured that memory is not wasted if support for
SoCs with higher GPIO numbers is not built-in. When registering the bank it is
made sure that banks which are outside of that range are not even tried to be
registered. Otherwise there would be problems with configs where
CONFIG_S3C24XX_GPIO_EXTRA is set to a non zero value.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
s3c24xx: Fix level irqs on external interrupts.
Although the external interrupts support level and edge triggered irqs their
handler is currently always set to handle_edge_irq().
While being technically wrong for a level triggered irq to be handled by
handle_edge_irq() it will cause serious problems in combination with a oneshot
irq. handle_edge_irq() will unmask the irq immediately and as a result the irq
will be triggered again before the threaded irq handler had a chance to run and
clear the irq source.
Thus level triggered irqs should be handled by handle_level_irq.
According to the specs the irq controller will remember if an irq has been
triggered while it had been masked and will issue it when the irq gets
unmasked. Thus it is sufficient to use handle_level_irq() for edge triggered
irqs as well. Hence handle_level_irq() can always be used for external
interrupts.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
mtd: s3c2410_nand: Add config option to disable hw ecc at runtime
This patch adds a flag to the s3c2410_nand platform data, which configures
whether hardware ecc is used for that chip.
Currently hardware ecc is used if it was compiled into the kernel. But if you
want to build a kernel which runs on multiple devices you might have a
configuration where you have devices which require hw ecc as well as devices
which want software ecc.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
Add s3c24xx_serial_console_set_silence
C:
Add c fiq handler.
C:
mmc: add none blocking mmc request function
Previously there has only been one function mmc_wait_for_req
to start and wait for a request. This patch adds
* mmc_start_req - starts a request wihtout waiting
* mmc_wait_for_req_done - waits until request is done
* mmc_pre_req - asks the host driver to prepare for the next job
* mmc_post_req - asks the host driver to clean up after a completed job
The intention is to use pre_req() and post_req() to do cache maintenance
while a request is active. pre_req() can be called while a request is active
to minimize latency to start next job. post_req() can be used after the next
job is started to clean up the request. This will minimize the host driver
request end latency. post_req() is typically used before ending the block
request and handing over the buffer to the block layer.
Add a host-private member in mmc_data to be used by
pre_req to mark the data. The host driver will then
check this mark to see if the data is prepared or not.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
mmc: mmc_test: add debugfs file to list all tests
Add a debugfs file "testlist" to print all available tests
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
mmc: mmc_test: add test for none blocking transfers
Add four tests for read and write performance per
different transfer size, 4k to 4M.
* Read using blocking mmc request
* Read using none blocking mmc request
* Write using blocking mmc request
* Write using none blocking mmc request
The host dirver must support pre_req() and post_req()
in order to run the none blocking test cases.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
mmc: add member in mmc queue struct to hold request data
The way the request data is organized in the mmc queue struct
it only allows processing of one request at the time.
This patch adds a new struct to hold mmc queue request data such as
sg list, request, blk request and bounce buffers, and updates any functions
depending on the mmc queue struct. This lies the ground for
using multiple active request for one mmc queue.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
mmc: add a block request prepare function
Break out code from mmc_blk_issue_rw_rq to create a
block request prepare function. This doesn't change
any functionallity. This helps when handling more
than one active block request.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
mmc: move error code in mmc_block_issue_rw_rq to a separate function.
Break out code without functional changes. This simplifies the code and
makes way for handle two parallel request.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
mmc: add a second mmc queue request member
Add an additional mmc queue request instance to make way for
two active block requests. One request may be active while the
other request is being prepared.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
mmc: add handling for two parallel block requests in issue_rw_rq
Change mmc_blk_issue_rw_rq() to become asynchronous.
The execution flow looks like this:
The mmc-queue calls issue_rw_rq(), which sends the request
to the host and returns back to the mmc-queue. The mmc-queue calls
isuue_rw_rq() again with a new request. This new request is prepared,
in isuue_rw_rq(), then it waits for the active request to complete before
pushing it to the host. When to mmc-queue is empty it will call
isuue_rw_rq() with req=NULL to finish off the active request
without starting a new request.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
mmc: test: add random fault injection in core.c
This simple fault injection proved to be very useful to
test the error handling in the block.c rw_rq(). It may
still be useful to test if the host driver handle
pre_req() and post_req() correctly in case of errors.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
C:
Add glamo driver.
C:
ARM: gta02: Add LED support
This patch adds support for the LEDs found on the gta02 device.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
gta02: Disable hardware ECC unless we get instructed to enable it
Early verions off uboot used for the gta02 flashed the nand with ecc information
incompatible to s3c2440 hardware ecc. Disable hardware error correction by
default, unless the bootloader explicitly enables it.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
gta02: Remove usage of pcf50633 gpio api
This is the only user of the pcf50633 gpio api. Since the custom interface is
going to be replaced with gpiolib all users need to be remove or replaced.
It is safe to be remove it in this case since it is used used to turn a gpio
off which is never going to be turned on.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
s3c2440: gta02: Configure pcf50633 gpios.
C:
ARM: s3c2440: GTA02: Select SPARSE_IRQ
With the conversion of the pcf50633 driver to genirq we need some extra irqs.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
gta02: Add notify handler to probe device children
On the gta02 we often have a child parent relationship between different
devices. The child devices can only be probed after their parant has been.
Instead of adding a probe completed handler to each device we handle this in a
generic way with a bus notifier.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
gta02: Add bt power management device
C:
gta02: Add gps power management device
C:
gta02: Add gsm power management device
C:
gta02: Add wlan power management device
C:
gta02: Add glamo device
C:
Add jbt device.
C:
gta02: Add fiq handler
C:
gta02: Add battery driver
C:
gta02: add support for platform_battery
This adds support for platform_battery driver which allows to specify a set
of power supply properties and callbacks to acquire them. It is needed to
support dumb batteries where all the information about their status can
only be obtained by platform-specific actions such as specific ADC
measurements, some guessimation etc.
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
C:
Add atheros sdio ids.
C:
Add ar6000 wireless driver.
C:
Add jbt6k74 display driver.
C:
LEDS: leds-pwm: Add init, notfiy and exit callbacks
This patch adds init, notify and exit callbacks to the leds-pwm driver similar
to those seen for the pwm-backlight driver;
On certain platforms with pin muxing the output of a pwm pin is bogus until the
pwm is been properly configured. On these platforms it is usefull to have the
added callbacks, so that the gpio pin can be configured after the pwm device has
been successfully configured.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
RTC: PCF50633: Don't request update IRQ
Commit 51ba60c5(RTC: Cleanup rtc_class_ops->update_irq_enable()) removed the
only user of the update IRQ, so there is no need to manage it anymore.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
pcf50633-gpio: Add gpiolib support.
C:
pcf50633: Move pcf50633-gpio driver to the gpio drivers folder
C:
MFD: pcf50633: Use mfd cells to register child devices
This patch changes the pcf50633 core code to use mfd cells to register child
devices instead of calling platform_device_{alloc,add} for each child.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
C:
MFD: pcf50633: Use the genirq for irq handling
C:
power: implement platform battery driver
This driver can be used for dumb batteries when all knowledge about
their state belongs to the platform that does necessary ADC readings,
conversions, guessimations etc.
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
C:
Define machine_is_neo1973_gta01()
C:
Revert "mmc: test: add random fault injection in core.c"
This reverts commit e2f2d8fbcfd43b995f4c205e80ecbb35c8c2bb38.
C:
Revert "mmc: add handling for two parallel block requests in issue_rw_rq"
This reverts commit a6f554d181bf8bdc06da545aa198aea298feda74.
C:
Revert "mmc: add a second mmc queue request member"
This reverts commit 6d08e164f59139f5fc36bfa9957743f377fea37d.
C:
Revert "mmc: move error code in mmc_block_issue_rw_rq to a separate function."
This reverts commit 4c7bcaa251685ef3d718117c9e8c47595e3347db.
C:
Revert "mmc: add a block request prepare function"
This reverts commit b6284f0b4f90e8736a775d69712fae570fefbd6f.
C:
Revert "mmc: add member in mmc queue struct to hold request data"
This reverts commit 0a52143f49a7cae45c1de07ba08be3687cb7c0e4.
C:
Revert "mmc: mmc_test: add test for none blocking transfers"
This reverts commit 39e2e8264c430520dd28372e4155fc0473c2be5c.
C:
Revert "mmc: mmc_test: add debugfs file to list all tests"
This reverts commit 1b964818989d1af7c15529eaf2e15da3d251cfd0.
C:
Revert "mmc: add none blocking mmc request function"
This reverts commit 63633272709773487926b8116dbfac918176d07d.
C:
glamo-mci: revert changes for Per's patchset
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
nand/s3c2410: add mising badblocksbits value
Here is a fix for the issue where badblocks were not being handled
correctly with the new kernel. There was an uninitialized value
in the nand chip description. There may be others.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
Openmoko resume reason sysfs node ported from 2.6.29
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
glamo-display: fix WSOD for 242 timming
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
Enable powering off after 8s POWER press
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
gta02: add support for usb host mode
adds support for usb host mode and adds usb host pm sysfs node. I just
copied and modified how modem is powered up and backported changes in
ohci-s3c2410.c. No idea if this is the right approach, but it works -
my usb keyboard is now working after:
echo 1 > /sys/devices/platform/s3c2440-i2c/i2c-0/0-0073/pcf50633-gpio/reg-fixed-voltage.2/gta02-pm-usbhost.0/power_on
echo host > /sys/devices/platform/s3c2410-ohci/usb_mode
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
ar6000_delay.patch
patch from https://docs.openmoko.org/trac/ticket/2327 - wifi is working good
(100% until now) for me with this patch.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
wm8753: use snd_soc_jack on neo1973
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
Fix high power consumption in suspend
http://docs.openmoko.org/trac/ticket/2349
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
Force GPS power up on resume if it were powered up on suspend
This is needed for proper GPS funciton with u-boot.
u-boot needs to be patched with this patch:
http://www.bsdmn.com/openmoko/gpsfix/uboot_do_not_touch_serials.patch
Idea of above patch is to keep u-boot from controlling serial's GPIO
configuration. It turned out that u-boot also touch GSM port
configuration on resume. This turns this off.
Whole thread can be found here:
http://lists.openmoko.org/pipermail/openmoko-kernel/2010-November/011274.html
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
lis302dl accelerometer driver
This is port from andy-tracking openmoko git. It's not the latest
version, because the latest touches core spi functions.
This one is the latest version that does bit banging in mach-gta02
and is based on 83cf37799009f6a3db4fef141c798c876124954f.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
input: lis302dl: fix the resume path
This fix the resume path of the accelerometer. If the accelerometer
is not power up, restore to initial status. Move the REG_CTRL1 to the
last one position avoid writing on the register when the device is
in power down mode.
Signed-off-by: Michael Trimarchi <michael@panicking.kicks-ass.org>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
lis302dl: use ABS events rather then REL events
AG: there's some more rationale for changing this here
http://lists.openmoko.org/pipermail/openmoko-kernel/2009-March/009387.html
Change accelerometers to use ABS events rather than REL events.
[Obviously if this patch is accepted we need to tell developers about
it. I have a number of other improvements to the accelerometers I
hope to deliver over the next couple of weeks. They will have minimal
or zero disruption to current code. ]
REL events should be used when there is no absolute reference, and
only changes are meaningful. The classic example is a "mouse" where
the absolute position of the device is not measurable and not
particularly meaning, but change in position from one time to the next
is interesting.
With REL events, a value of '0' is not reported, as 'not change' is
not interesting.
With REL events, the expectation is that successive values will be
eventually summed (possibly with acceleration and clipping
adjustments) to get a usable value.
ABS events should be used when there is an absolute references against
which things that be measured.
With ABS events, the 'current value' is meaningful and can be read
(EVIOCGABS).
With ABS events, the value '0' is very meaningful and is reported.
However if consecutive values are the same, the value is only reported
once.
ABS events can be used as-is or compared with previous events to get
some measure of change.
An obvious example is a touchscreen where each measure in
independently meaningful.
Acceleration is an absolute value as it is measuring against a frame
of reference. '0' acceleration is just as meaningful as any other
value, and finding the 'current' acceleration is each direction is a
potentially useful thing to do.
The Freerunner accelerometers currently report REL events. This is
wrong. So this patch changes them to report ABS events.
With this patch, the min/max/level/fuzz values are left at zero. It
might be useful to make use of these in a subsequent patch.
min/max/level can be used to calibrate the accelerometers if accuracy
is important.
fuzz could possibly be used in conjunction with the 'threshold' sysfs
value to get less frequent, lower-precision reports.
This may well break some applications that read accelerometer data.
This cannot be helped, but it is quite easy to write code that copes
with the incorrect EV_REL events as well as the more correct and
useful EV_ABS events.
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
Fix compile error for gta02 accelerometer.
Switched to genirq call for irq_set_handler. set_irq_handler is
deprecated and no longer compiles.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
tslib relies on ts pressures events so this hack is needed to get tslib stuff working
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
touchscreen: ignore unexpected interrupts
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
C:
s3c2410_ts: jitter less touchscreen for glamo, version 4
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Conflicts:
arch/arm/mach-s3c2440/mach-gta02.c
drivers/input/touchscreen/s3c2410_ts.c
C:
wm8753: allow setting DAI mode even while pcm is active
Without this patch the DAI mode can't be set while a pcm stream is
running as that might lead to kernel freezing. This patch allows setting
it to the same value to make scenario loading work.
Signed-off-by: Klaus Kurzmann <mok@fluxnetz.de>
C:
Add .config from http://build.shr-project.org/tests/jama/kernel-nodrm/config-2.6.39.gz
C:
Workaround toolchain bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48783
C:
First attempt at fixing openmoko bug #2478
C: