[openfirmware] [commit] r3258 - in cpu/arm: mmp2 olpc
repository service
svn at openfirmware.info
Fri Aug 31 01:42:31 CEST 2012
Author: wmb
Date: Fri Aug 31 01:42:31 2012
New Revision: 3258
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3258
Log:
OLPC ARM - Converted the RTC driver to use the new TWSI factoring, at the same time changing all occurrences of the method names "byte@" and "byte!" to "reg-b@" and "reg-b!".
Modified:
cpu/arm/mmp2/twsi-node.fth
cpu/arm/mmp2/twsi-package.fth
cpu/arm/olpc/accelerometer.fth
cpu/arm/olpc/rtc.fth
Modified: cpu/arm/mmp2/twsi-node.fth
==============================================================================
--- cpu/arm/mmp2/twsi-node.fth Fri Aug 31 01:28:30 2012 (r3257)
+++ cpu/arm/mmp2/twsi-node.fth Fri Aug 31 01:42:31 2012 (r3258)
@@ -57,8 +57,8 @@
: get ( #bytes -- bytes ... ) 0 swap bytes-out-in ;
-: byte@ ( -- ) " byte@" $call-twsi ;
-: byte! ( -- ) " byte!" $call-twsi ;
+: reg-b@ ( reg# -- b ) " reg-b@" $call-twsi ;
+: reg-b! ( b reg# -- ) " reg-b!" $call-twsi ;
: bytes-out ( byte .. #bytes -- ) " bytes-out" $call-twsi ;
\ Useful range is 25K .. 400K - 100K and 400K are typical
Modified: cpu/arm/mmp2/twsi-package.fth
==============================================================================
--- cpu/arm/mmp2/twsi-package.fth Fri Aug 31 01:28:30 2012 (r3257)
+++ cpu/arm/mmp2/twsi-package.fth Fri Aug 31 01:42:31 2012 (r3258)
@@ -136,8 +136,8 @@
bbu_ICR_STOP twsi-putbyte ( )
;
-: byte@ ( reg -- byte ) 1 1 bytes-out-in ;
-: byte! ( byte reg -- ) 2 bytes-out ;
+: reg-b@ ( reg -- byte ) 1 1 bytes-out-in ;
+: reg-b! ( byte reg -- ) 2 bytes-out ;
: set-bus-standard cr-set h# 18000 invert and to cr-set ;
: set-bus-fast cr-set h# 18000 invert and h# 8000 or to cr-set ;
Modified: cpu/arm/olpc/accelerometer.fth
==============================================================================
--- cpu/arm/olpc/accelerometer.fth Fri Aug 31 01:28:30 2012 (r3257)
+++ cpu/arm/olpc/accelerometer.fth Fri Aug 31 01:42:31 2012 (r3258)
@@ -9,8 +9,8 @@
\ This is for the stand-alone accelerometers LIS3DHTR and LIS33DETR
\ We could call this just once in open if we had a TWSI parent node
-: acc-reg@ ( reg# -- b ) " byte@" $call-parent ;
-: acc-reg! ( b reg# -- ) " byte!" $call-parent ;
+: acc-reg@ ( reg# -- b ) " reg-b@" $call-parent ;
+: acc-reg! ( b reg# -- ) " reg-b!" $call-parent ;
: ctl1! ( b -- ) h# 20 acc-reg! ;
: ctl4! ( b -- ) h# 23 acc-reg! ;
: accelerometer-on ( -- ) h# 47 ctl1! ;
Modified: cpu/arm/olpc/rtc.fth
==============================================================================
--- cpu/arm/olpc/rtc.fth Fri Aug 31 01:28:30 2012 (r3257)
+++ cpu/arm/olpc/rtc.fth Fri Aug 31 01:42:31 2012 (r3258)
@@ -2,23 +2,13 @@
dev /i2c at d4031000 \ TWSI2
new-device
- " rtc" name
- " idt,idt1338-rtc" +compatible
- h# 68 1 reg
-
-[ifdef] cl2-a1
-: set-address ( -- )
- rtc-scl-gpio# to smb-clock-gpio#
- rtc-sda-gpio# to smb-data-gpio#
- h# 68 to smb-slave
-;
-: rtc@ ( reg# -- byte ) set-address smb-byte@ ;
-: rtc! ( byte reg# -- ) set-address smb-byte! ;
-[else]
-: set-address ( -- ) h# 68 2 set-twsi-target ;
-: rtc@ ( reg# -- byte ) set-address twsi-b@ ;
-: rtc! ( byte reg# -- ) set-address twsi-b! ;
-[then]
+
+" rtc" name
+" idt,idt1338-rtc" +compatible
+h# 68 1 reg
+
+: rtc@ ( reg# -- byte ) " reg-b@" $call-parent ;
+: rtc! ( byte reg# -- ) " reg-b!" $call-parent ;
headerless
@@ -33,6 +23,8 @@
headers
: open ( -- okay )
+ my-unit " set-address" $call-parent
+
0 ['] rtc@ catch if ( x )
drop false exit ( -- false )
then ( value )
@@ -58,12 +50,7 @@
: >bcd ( binary -- bcd ) d# 10 /mod 4 << + ;
: bcd-time&date ( -- s m h d m y century )
- set-address
-[ifdef] cl2-a1
- 9 0 smb-read-n ( s m h dow d m y control c )
-[else]
- 0 1 9 twsi-get ( s m h dow d m y control c )
-[then]
+ 0 1 9 " bytes-out-in" $call-parent ( s m h dow d m y control c )
nip ( s m h dow d m y c )
4 roll drop ( s m h d m y c )
;
More information about the openfirmware
mailing list