Age | Commit message (Collapse) | Author |
|
After protecting pcf50633 read and write primitives against
operation after suspend or before resume (by blowing a
stack_trace()) I saw glamo-mci was trying to use pcf50633
at these bad times on its own suspend and resume. Since that
part was already done via platform callback, I added an
export in pcf50633 that tells you if it is ready or busy,
and used it to defer (resume power on case) or ignore
(suspend power off case, since pcf50633 already did it)
the mci power call.
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
- speed up suspend and resume by using one hit i2c bulk transactions
- don't bother storing int mask set on suspend, the default one is
what we use anyway
- put stack_trace() on pcf50633 low level access that fire if we
try to touch them before we resumed
- cosmetic source cleanup
- reduces resume time for pcf50633 from 450ms to 255ms
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Adds the resume callback stuff to glamo, then changes
jbt6k74 to no longer use a sleeping workqueue, but to
make its resume actions dependent on pcf50633 and
glamo resume (for backlight and communication to LCM
respectively)
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Creates a new behaviour requested by Will that the red LED on GTA02
is lit during battery charging.and goes out when the battery is full.
This is done by leveraging the PMU interrupts, but in one scenario
there is no interrupt that occurs, when the battery is replaced after
being removed with the USB power in all the while. So a sleepy work
function is started under those circumstances to watch for battery
reinsertion or USB cable pull.
100mA limit was not being observed under some conditions so this was
fixed and tested with a USB cable with D+/D- disconnected. 1A
charger behaviour was also tested.
Showing the charging action exposes some inconsistency in pcf50633
charging action. If your battery is nearly full, it will keep
charging it at decreasing current even after it thinks it is at
100% capacity for a long while. But if you pull that same battery
and re-insert it, the charger state machine in pcf50633 believe it is
full and won't charge it.
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
|
|
Update this old code to clk API, I2C changes, official GPIO API
various struct changes, explicit readl() writel(), DMA API changes.
Still not ready for actual use (eg, I2C) but a LOT closer.
Compiles on 2.6.24 without errors or warnings now.
Use CONFIG_S3C2440_CAMERA=y in .config
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
This is the kernel side of an old (2004) samsung camera driver for 2440
It doesn't compile on modern kernel yet, this patch introduces it into the
kernel tree without gross mods, so it is broken code we can start to work on
|
|
Adds the somewhat simpler resume source support for GTA01
since PMU is not a wake source
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Currently we are willing to wake from sleep from
pcf50633 interrupts we don't actually do anything about
even when we wake (somewhat puzzled).
Let's disable some of these wake sources.
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
If you have U-Boot with uboot-add-find-wake-reason.patch, this
patch will get you a wake reason report from
cat /sys/devices/platform/neo1973-resume.0/resume_reason
it looks like this:
EINT00_ACCEL1
EINT01_GSM
EINT02_BLUETOOTH
EINT03_DEBUGBRD
EINT04_JACK
EINT05_WLAN
EINT06_AUXKEY
EINT07_HOLDKEY
EINT08_ACCEL2
* EINT09_PMU
adpins
adprem
usbins
usbrem
rtcalarm
second
onkeyr
onkeyf
exton1r
exton1f
exton2r
exton2f
exton3r
exton3f
* batfull
chghalt
thlimon
thlimoff
usblimon
usblimoff
adcrdy
onkey1s
lowsys
lowbat
hightmp
autopwrfail
dwn1pwrfail
dwn2pwrfail
ledpwrfail
ledovp
ldo1pwrfail
ldo2pwrfail
ldo3pwrfail
ldo4pwrfail
ldo5pwrfail
ldo6pwrfail
hcidopwrfail
hcidoovl
EINT10_NULL
EINT11_NULL
EINT12_GLAMO
EINT13_NULL
EINT14_NULL
EINT15_NULL
This shows a problem, false wake from suspend due to battery full
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
|
|
This patch improves the smoothness of suspend and resume action.
Taking out CONFIG_PM_DEBUG allows much more rapid resume (the low level
serial traffic appears to be synchronous)
Added a platform callback in jbt driver and support in pcf50633 so we
can defer bringing up the backlight until the LCM is able to process
video again (which must happen after the glamo is up and producing
video beacuse the LCM is hooked to glamo SPI)
GTA01 should not be affected by all this as the callback will default
to null and it is on pcf50606
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
This patch is to register pwm as platform driver to keep the PWM-related
config when system is in suspend/resume. This could fix the following
issue after resume:
- HDQ read timeout
- LEDs blinked abnormally(if LEDs is driven by PWM)
Signed-off-by: Matt Hsu <matt_hsu@openmoko.org>
|
|
Created an attachment (id=594) / BZ#79
Add missing platform_data that caused the GTA01 to crash on suspend/resume
The interface to the jbt6k74 driver changed slightly; this patch adds the
missing platform_data for the GTA01. This prevents a crash while suspending.
This patch also makes some minor changes to cleanup and clarify some debug
messages.
Signed-off-by: Mike Westerhof <mwester@dls.net>
|
|
Created an attachment (id=593) / from BZ#79
Updated patch to preserve the power state of the GPS on the GTA01
Currently the GPS is powered up after a suspend/resume occurs. This patch will
only power the GPS back up if it was powered up when the GTA01 suspended.
Signed-off-by: Mike Westerhof <mwester@dls.net>
|
|
Patch to register the SPI device and thus the save/resume for the display
This patch does *NOT* resolve this problem, but it does make things a bit
better. The SPI device name changed with 2.6.24, and the change was made for
the gta02 but never propagated to the gta01. With this change, you'll now see
the entries for the spi bus and the display controller in /sys; and the display
controller suspend/resume functions will be called.
(via BZ 79)
Signed-off-by: Mike Wester <mwester@dis.net>
|
|
- Any setting of any PIN on bank B will undo the LED setting.
Introduce neo1973_gpb_set_pin to set the PIN in a way not losing
the LED or any other shadowed setting.
- Update users of GPBXY for gta01 and gta02.
Signed-Off-By: Holger Freyther <zecke@openmoko.org>
|
|
The bluetooth enable and modem reset switched the order in
gta02. Do not poke the bluetooth dongle when we want to reset
the modem.
Signed-Off-By: Holger Freyther <zecke@openmoko.org>
|
|
If we build a kernel without gta01/gta02 the
machine_is_ macro will expand to (0) and the compiler will
optimize the if (0) {} away.
Signed-Off-By: Holger Freyther <zecke@openmoko.org>
|
|
Signed-Off-By: Holger Freyther <zecke@openmoko.org>
|
|
Only enable or disable the interrupt if we see we are in the opposing state.
Also force that damn GSM download signal deasserted on probe at the time we
set the logical state for it to deasserted.
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Similar to the neo1974_pm_gsm.c keep a static struct around. On suspend
we will save the current power state, on resume we will use this
information to enable power of the GPS only when it was powered on before.
This is passing basic tests with screen /dev/ttySAC1 on suspend and resume.
Only do this for the GTA02 as I don't have a gllin setup for the GTA01
I wonder why the suspend and resume code is not using gps_pwron_set and why
for the GTA02 we need to keep the state of the GPIOs, this should be done
by the s3c code.
Signed-Off-by: Holger Frether <zecke@openmoko.org>
|
|
GTA02_GPIO_nDL_GSM defaults to high/1. On resume do not enable the DL_GSM if
it was not enabled before. This is stopping the storm of interrupts.
Fix the logic in the download file handling. Downloads are disabled (0) when
the GTA02_GPIO_nDL_GSM is high (1). To enable downloading set
GTA02_GPIO_nDL_GSM to low (0, !on). Disable the jack interrupt while download
the is active. When disabling download we will get a couple of jack interrupts
but this is hardly avoidable.
Avoid reading the GPIO value if we do not even have a console set.
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
|
|
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
|
|
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Add function
int gta02_get_pcb_revision(void)
which returns state of GTA02 PCB revision pins. It is also called
and logged during boot with KERN_INFO. The results look like:
b9 b8 b2 b1 b0
GPD4 GPD3 GPD0 GPC15 GPC13
GTA02 A5 and before: 0x000
GTA02 A6 : 0x001
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
We used to drive output high into GPS unit in suspend
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Add platform stuff to deal with going in and out of suspend
so the motion sensor IO is not driving high into unpowered sensors
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Unless I really really missed the point, there is no support for enabling
USB Host power for USB host mode. This patch adds a /sys node for GTA02
that allows control of the charge pump for 5V out on the USB mini connector
It doesn't change any logical mode in the CPU, just enables (1) and disables
(0) USB host power.
# cat /sys/devices/platform/neo1973-pm-host.0/hostmode
0
# echo 1 > /sys/devices/platform/neo1973-pm-host.0/hostmode
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
|
|
|
|
|
|
Add support for GPA[] GPIO bus since we have some NCs
but they seem to output-only IO cells so no matter
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
These are initialized already
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
|
|
|
|
|
|
|
|
On GTA02 we use FIQ to manage the vibrator IO now. That
is necessary because we stole timer3 from doing hw pwm
for vibrator. This keeps the same UI in /sys but does
"bitbang pwm" on the same vibrator GPIO
From: Andy Green <andy@openmoko.com>
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
This makes the FIQ stuff specific to one of the timers on the
s3c244x and adds the platform stuff for fiq in the gta02 init
Currently one sysfs node is exposed, a count of FIQ events
cat /sys/devices/platform/sc32440_fiq.0/fiq/count
From: Andy Green <andy@openmoko.com>
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Adds a C-based FIQ ISR which is very convenient (and unusual --
normally you have to do FIQ ISR in assembler only).
Based on my article:
http://warmcat.com/_wp/2007/09/17/at91rm9200-fiq-faq-and-simple-example-code-patch/
Implemented as a platform device and driver.
Suspend / resume is tested and works.
Signed-off-by: Andy Green <andy@warmcat.com>
|
|
|
|
Modify GTA02 power manager for bluetooth.
1. Default power value isn't correct. Now we set pcf50633 LDO4 to 3.2 voltage.
2. Separate GTA01 and GTA02 source code.
3. Add pcf50633 API for enable register.
|
|
|
|
This is a Linux driver for the STmicro LIS302DL 3-axis accelerometer.
Signed-off-by: Harald Welte <laforge@openmoko.org>
|
|
|
|
|
|
Add the Samsung S3C2442B CPU idcode to the samsung s3c24xx platform code
and fix a Kconfig typo related tot the 2442.
|
|
|