[openfirmware] [commit] r3153 - cpu/arm/olpc
repository service
svn at openfirmware.info
Sat Aug 11 02:33:01 CEST 2012
Author: quozl
Date: Sat Aug 11 02:33:01 2012
New Revision: 3153
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3153
Log:
OLPC CL4 - Neonode, use heap for packet buffer, correct the byte order of commands, now works for minimal testing on A1.
Modified:
cpu/arm/olpc/nn-touchscreen.fth
Modified: cpu/arm/olpc/nn-touchscreen.fth
==============================================================================
--- cpu/arm/olpc/nn-touchscreen.fth Sat Aug 11 02:29:52 2012 (r3152)
+++ cpu/arm/olpc/nn-touchscreen.fth Sat Aug 11 02:33:01 2012 (r3153)
@@ -17,18 +17,18 @@
: reset ( -- ) touch-rst-gpio# dup gpio-clr gpio-set d# 250 ms ;
: no-data? ( -- no-data? ) touch-scr-gpio# gpio-pin@ ;
-d# 250 constant /packet
-/packet buffer: packet
-0 value packet-size
+d# 250 constant /pbuf
+0 value pbuf
+0 value plen
: in? ( -- got-data? )
no-data? if false exit then
- packet 2 twsi-read ( )
- packet 1+ c@ ( size )
- dup 2+ to packet-size ( size )
+ pbuf 2 twsi-read ( )
+ pbuf 1+ c@ ( len )
+ dup 2+ to plen ( len )
- packet 2+ swap twsi-read ( )
+ pbuf 2+ swap twsi-read ( )
true
;
@@ -42,7 +42,7 @@
begin
in? if
process
- over packet 2+ c@ ( id limit received-id )
+ over pbuf 2+ c@ ( id limit received-id )
= if 2drop exit then
then ( id limit )
dup get-msecs - 0< ( id limit timeout? )
@@ -52,17 +52,17 @@
: read-boot-complete ( -- ) h# 07 d# 20 anticipate ;
-: initialise ( -- ) h# ee h# 01 h# 01 3 out h# 01 d# 20 anticipate ;
+: initialise ( -- ) h# 01 h# 01 h# ee 3 out h# 01 d# 20 anticipate ;
: set-resolution ( -- )
set-geometry
- h# ee h# 05 h# 02 screen-w wbsplit screen-h wbsplit 7 out
+ screen-h wbsplit swap screen-w wbsplit swap h# 02 h# 05 h# ee 7 out
h# 02 d# 20 anticipate
;
-: start ( -- ) h# ee h# 01 h# 04 3 out ;
+: start ( -- ) h# 04 h# 01 h# ee 3 out ;
-: deactivate ( -- ) h# ee h# 01 h# 00 3 out h# 00 d# 20 anticipate ;
+: deactivate ( -- ) h# 00 h# 01 h# ee 3 out h# 00 d# 20 anticipate ;
: configure ( -- )
initialise
@@ -71,26 +71,28 @@
;
: open ( -- okay? )
+ /pbuf alloc-mem to pbuf
my-unit set-twsi-target
set-gpios
no-data? if
reset
- no-data? if false exit then
+ no-data? if pbuf /pbuf free-mem false exit then
read-boot-complete
then
- ['] configure catch if false exit then
+ ['] configure catch if pbuf /pbuf free-mem false exit then
true
;
: close
deactivate
+ pbuf /pbuf free-mem
;
: stream-poll? ( -- false | x y buttons true )
in? if
- packet 2+ c@ h# 04 = if
- packet 4 + w@ packet 6 + w@ ( x y )
- packet 8 + c@ 3 and 0= ( x y down? )
+ pbuf 2+ c@ h# 04 = if
+ pbuf 4 + w@ pbuf 6 + w@ ( x y )
+ pbuf 8 + c@ 3 and 0= ( x y down? )
true ( x y buttons true )
else
false
@@ -110,7 +112,7 @@
\ FIXME: graphically show data on screen until key
begin
in? if
- ." rx: " packet packet-size bounds do
+ ." rx: " pbuf plen bounds do
i c@ 0 <# # # #> type space
loop cr
then
More information about the openfirmware
mailing list