Introducing XDA:DevCon – A Conference For Developers By Developers
XDA Developers Android and Mobile Development Forum
Forgot your password?
 
Post Reply+
Tip us?
 
sherifhanna
Old
#1  
Junior Member - OP
Thanks Meter 7
Posts: 3
Join Date: Dec 2010
Post Official Atmel Touchscreen Driver on GitHub

Hello XDA developers,

As you know, Atmel maXTouch touchscreen controllers are used in a large percentage of Android phones and tablets out there.

I wanted to let you know that the latest patches for the official Atmel maXTouch Linux driver are available on GitHub. This will allow you to get the latest up to date changes before they make it into the mainline kernel.

On GitHub, search for user "atmel-maxtouch"

Happy hacking

Best regards,
Sherif
Product Marketing Manager - Atmel
The Following 7 Users Say Thank You to sherifhanna For This Useful Post: [ Click to Expand ]
 
showlyshah
Old
#2  
showlyshah's Avatar
Senior Member
Thanks Meter 314
Posts: 602
Join Date: Mar 2011
Location: kollam
thank u for ur valuable information, well can u pls post what are the latest changes and updates. that will help the devs much more.
I AM THE PROUD OWNER OF THE COOLEST ANDROID DEVICE ON EARTH... YAP.. U NAME IT.. THE HD2

PLEASE READ THIS B4 U ASK QUESTIONShttp://forum.xda-developers.com/showpost.php?p=18289016&postcount=1





HYPERDROID TEAM MEMBER...
 
sherifhanna
Old
#3  
Junior Member - OP
Thanks Meter 7
Posts: 3
Join Date: Dec 2010
Hi showlyshah,

The latest updates include the following:

- Support for Atmel's mXT224E, mXT768E, and mXT540E chipsets
- Support for both protocol A and protocol B reporting
- Support for kernel 3.0 in addition to kernel 2.6.35

More details are available on GitHub in the release notes.

Regards,
Sherif
 
Entropy512
Old
#4  
Elite Recognized Developer
Thanks Meter 20793
Posts: 11,493
Join Date: Aug 2007
Location: Owego, NY

 
DONATE TO ME
Is https://github.com/atmel-maxtouch the correct URL?

Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.

See, for example:
https://github.com/Entropy512/linux_...ut/touchscreen - This includes the mxt224 drivers as implemented by Samsung on their device (Galaxy S II)

https://github.com/atmel-maxtouch/li...ut/touchscreen - mxt224_u1.c is completely missing, indicating that the driver here is incomplete or structured very differently from the one used by Samsung, making it very difficult to use. Also, the few files there that do pertain to Atmel MXT such as atmel_mxt_ts.c in there appear identical to the mainline Linux repo.
*so much sig updating needed*

My Github profile - Some Android stuff, some AVR stuff

An excellent post on "noobs vs. developers"

A few opinions on kernel development "good practices"

Note: I have chosen not to use XDA's "friends" feature - I will reject all incoming "friend" requests.

Code:
<MikeyMike01> Smali is a spawn of hell
<shoman94> ^^^ +!
Code:
<Entropy512> gotta be careful not to step on each other's work.  :)
<Bumble-Bee> thats true
<jerdog> compeete for donations
 
sp3dev
Old
#5  
Senior Member
Thanks Meter 669
Posts: 552
Join Date: Jul 2006
Location: Kaluga/Moscow
Quote:
Originally Posted by Entropy512 View Post
Is https://github.com/atmel-maxtouch the correct URL?

Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
But it's not Atmel who are to blame. Atmel are doing a great job working directly with upstream so that all the users of mainline linux can benefit. I have been using the drivers from the vanilla kernel for quite a while on both my tegra tablet (with chromium kernel) and galaxy s2, and they work just fine, supporting multitouch in xorg in ubuntu.

The problem is OEMs who do crap like hardcoding/hacking drivers instead of using platform data, use machine-specific hacks, custom interfaces and a lot of copy-paste. That's the essence of modern consumer electronics business - no one cares for quality, only about releasing early.
Sony Vaio SA3S9R, IBM ThinkPad R500, Samsung Galaxy S2 I9100 [u-boot multiboot]
Me on github
Me on gitorious
GIT d- s a-- c++ UL P--- !J--- L++++ E--- W- N O? K? w--- o ?V PS+ PE Y+ PGP++ t+ ?5 X++ R* !tv b++ DI++ D++ G++ e* h+
BTC 14KZnQkZR2GLnme7pYGs68MQVJHWwHGt3B
 
njd27
Old
(Last edited by njd27; 16th February 2012 at 08:29 PM.)
#6  
Junior Member
Thanks Meter 0
Posts: 1
Join Date: Mar 2011
Quote:
Originally Posted by Entropy512 View Post
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.

See, for example:
linux_kernel_sgh-i777/tree/master/drivers/input/touchscreen - This includes the mxt224 drivers as implemented by Samsung on their device (Galaxy S II)

atmel-maxtouch/linux/tree/master/drivers/input/touchscreen - mxt224_u1.c is completely missing, indicating that the driver here is incomplete or structured very differently from the one used by Samsung, making it very difficult to use. Also, the few files there that do pertain to Atmel MXT such as atmel_mxt_ts.c in there appear identical to the mainline Linux repo.
I think you're looking at the unchanged mainline branch: the driver releases are as tags.

The advantage of these drivers is that they are generic for all chips in the maxtouch series. mxt224_u1.c is just a renamed atmel_mxt_ts.c, it contains lots of mxt224 specific configuration and it's unlikely that it will go upstream.

You will also find some user-space tools for extracting config files in a format the kernel driver can load, on the same github account.
 
Entropy512
Old
#7  
Elite Recognized Developer
Thanks Meter 20793
Posts: 11,493
Join Date: Aug 2007
Location: Owego, NY

 
DONATE TO ME
Missed the tags, thanks for the additional info!

I'll look into maybe playing with this when ICS time rolls around. It's getting late in the game to do a major driver rework on the Gingerbread kernel I maintain.
*so much sig updating needed*

My Github profile - Some Android stuff, some AVR stuff

An excellent post on "noobs vs. developers"

A few opinions on kernel development "good practices"

Note: I have chosen not to use XDA's "friends" feature - I will reject all incoming "friend" requests.

Code:
<MikeyMike01> Smali is a spawn of hell
<shoman94> ^^^ +!
Code:
<Entropy512> gotta be careful not to step on each other's work.  :)
<Bumble-Bee> thats true
<jerdog> compeete for donations
 
omaha64
Old
#8  
Junior Member
Thanks Meter 1
Posts: 5
Join Date: Aug 2011
Quote:
Originally Posted by sherifhanna View Post
Hi showlyshah,

The latest updates include the following:

- Support for Atmel's mXT224E, mXT768E, and mXT540E chipsets
- Support for both protocol A and protocol B reporting
- Support for kernel 3.0 in addition to kernel 2.6.35

More details are available on GitHub in the release notes.

Regards,
Sherif
Hi Sherif,

I found the project in Github, but am not able to find the the release notes. Does this driver support the Atmel mXT336S at this time?

Thank you
 
sherifhanna
Old
#9  
Junior Member - OP
Thanks Meter 7
Posts: 3
Join Date: Dec 2010
Hi omaha64,

Support for mXT336S is in progress.

Regards,
Sherif
 
gblues
Old
#10  
Member
Thanks Meter 24
Posts: 61
Join Date: Dec 2011
Question,

I am trying to back-port the 2.6.35.7 driver to 2.6.32. I have mostly succeeded, but probe() fails because of missing platform_data. Digging through the driver code, I found the platform data structure in include/linux/i2c/atmel_mxt_ts.h:

Code:
struct mxt_platform_data {
        unsigned long irqflags;
        u8(*read_chg) (void);
};
So I assume that in my board file (where my i2c_board_info arrays live) I would want to create a static instance of the above struct and store a pointer to it in the .platform_data member of the i2c_board_info struct, right? But what is the preferred initialization, and what is read_chg supposed to actually do? What's the consequences of just setting it to NULL? (I know it won't crash because the driver checks it before calling it)

 
Post Reply+
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Go to top of page...

XDA PORTAL POSTS

Windows-Based Multi-Tool for the Sony Xperia U

If you are a flashaholic and an owner of the Sony Xperia U, you may be interested in the … more

XDA University: Crafting Recovery-Flashable Packages

Those of us who use Linux on a day to day basis don’t think twice about sinking … more

Side-Swiping Multitasking with Kakudo

Recovering iPad users may still remember the multitasking function where you can swipe left or right to … more