[beagleboard] ULCD7 Not working on Ubuntu

Maybe try bumping the i2c speed down from 400 to 200...

This is the patch in the v3.7.x branch that enables the screen and
touch controller..

https://github.com/RobertCNelson/stable-kernel/blob/v3.7.x/patches/omap_beagle_expansion/0005-Beagle-expansion-add-CircuitCo-ulcd-Support.patch

Note, it looks like v3.9-rcX is doing the same thing..

Regards,

Hey Robert, thank you for replying so quickly!

I apologize and ask for your patience with me, I’m not very used to embedded computing. Setting the i2c speed down would require me adjusting that and then recompiling the kernel, right?

It looks like I dive into: /arch/arm/mach-omap2/board-omap3beagle.c

and change this line:

omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo, ARRAY_SIZE(beagle_i2c2_boardinfo));

from 400 to 200 - does that sound correct?

Close, that won't fix the ts2007 thou..

Down load my build script via:

git clone git://github.com/RobertCNelson/stable-kernel.git
cd stable-kernel
git checkout origin/v3.7.x -b tmp

open with editor:
patches/omap_beagle_expansion/0005-Beagle-expansion-add-CircuitCo-ulcd-Support.patch

Change the 400 -> 200..

Then run "./build_kernel.sh" which will take care of all dependices,
gcc, kernel, etc..

Regards,

Awesome, I’ll do that now! :slight_smile:

Thanks Robert. I’ll follow up with my results!

Hey Robert,

My luck hasn’t been great. I changed the file you said and tried to compile, and it stopped at this error:

Crap, it should have installed those... What systems are you
currently running on your x86 host?

lsb_release -a
uname -m

Regards,

Hi,

I have been trying to enable TSC2007 (ULCD) in Kernel 3.7.10-x13 (Robert Nelson) but having an error in tsc2007.c as follows:
“tsc2007: probe of 2-0049 failed with error -22”

After investigated further discovered that the root of error message seems in /kernel/irq/manage.c in request_threaded_irq function as !irq_settings_can_request. Since this call returns an error, the driver probe returns with the failure.

Any reply or guidance will be greatly appreciated.

Regards,
Ozkan.

Hi again,

Just let you know about a quick solution on this issue.

Try to use request_irq() instead of request_threaded_irq(), this solves the issue and you will get the irq function called when press the screen. However, you need to modify the remaining part of driver file to handle press sequences in a proper way.