Author: wmb Date: Fri Mar 16 23:18:06 2012 New Revision: 2896 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2896
Log: OLPC XO-1.75 - trac #11704 - Raydium touchscreen driver - calibrate touchscreen during selftest and don't hang indefinitely if the touchscreen is spewing events.
Modified: cpu/arm/olpc/exc7200-touchscreen.fth cpu/arm/olpc/rm3150-touchscreen.fth cpu/arm/olpc/touchscreen-common.fth
Modified: cpu/arm/olpc/exc7200-touchscreen.fth ============================================================================== --- cpu/arm/olpc/exc7200-touchscreen.fth Fri Mar 16 02:04:15 2012 (r2895) +++ cpu/arm/olpc/exc7200-touchscreen.fth Fri Mar 16 23:18:06 2012 (r2896) @@ -53,6 +53,7 @@ begin pad? if . . . . . cr then key? until + key drop ;
: track ( x y z down? contact# -- )
Modified: cpu/arm/olpc/rm3150-touchscreen.fth ============================================================================== --- cpu/arm/olpc/rm3150-touchscreen.fth Fri Mar 16 02:04:15 2012 (r2895) +++ cpu/arm/olpc/rm3150-touchscreen.fth Fri Mar 16 23:18:06 2012 (r2896) @@ -95,6 +95,9 @@ ; : discard-n ( .. #events -- ) 5 * 0 ?do drop loop ;
+\ Needs 2 seconds of no-touch +: calibrate ( -- ) h# 20 0 ts-b! ; + : selftest ( -- error? ) open 0= if \ ." Touchscreen open failed" true exit @@ -104,7 +107,12 @@ \ Being able to open the touchpad is good enough in SMT mode smt-test? if close false exit then
- final-test? 0= if + calibrate \ Needs 2 seconds of no-touch + + targets? if + ." Calibrating touchscreen" cr + d# 2000 ms + else ." Touchscreen test will start in 4 seconds" cr d# 4000 ms then @@ -115,7 +123,10 @@ begin key? while key drop repeat
\ Consume already-queued trackpad events to prevent premature exit - begin pad-events ?dup while discard-n repeat + d# 100 0 do + pad-events ?dup 0= if leave then ( .. #events ) + discard-n ( ) + loop
background begin
Modified: cpu/arm/olpc/touchscreen-common.fth ============================================================================== --- cpu/arm/olpc/touchscreen-common.fth Fri Mar 16 02:04:15 2012 (r2895) +++ cpu/arm/olpc/touchscreen-common.fth Fri Mar 16 23:18:06 2012 (r2896) @@ -143,8 +143,6 @@ pixcolor ! ;
-: handle-key ( -- exit? ) true ; - false value selftest-failed? \ Success/failure flag for final test mode : exit-test? ( -- flag ) targets? if ( ) @@ -165,7 +163,7 @@ then ( )
\ If not final test mode, we only exit via a key - no targets - key? if handle-key else false then ( exit ? ) + key? dup if key drop then ( exit? ) ;
0 value pressure