Changeset 3234


Ignore:
Timestamp:
Aug 29, 2012, 12:10:05 AM (3 years ago)
Author:
wmb
Message:

OLPC ARM - Moved the board-specific code to create I2C device nodes into OLPC-specific files.

Location:
cpu/arm
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • cpu/arm/mmp2/gpio.fth

    r3190 r3234  
    7878   h# 108 make-gpio-mux-node
    7979end-package
    80 
    81 : encode-gpio  ( propval$ gpio# low? -- propval$' )
    82    >r >r                            ( propval$  r: low? gpio# )
    83    " /gpio" encode-phandle encode+  ( propval$' r: low? gpio# )
    84    r> encode-int encode+            ( propval$' r: low? )
    85    r> encode-int encode+            ( propval$' )
    86 ;
    87 
    88 : gpio-property  ( gpionum low? gpioname$ -- )
    89    2>r  2>r                     ( r: gpioname$ gpionum low? )
    90    0 0 encode-bytes             ( propval$  r: gpioname$ gpionum low? )
    91    2r> encode-gpio              ( propval$' r: gpioname$ )
    92    2r> property                 ( )
    93 ;
    94 
    95 dev /
    96    new-device
    97       " camera-i2c" device-name
    98       " i2c-gpio" +compatible
    99       1 " #address-cells" integer-property
    100       1 " #size-cells" integer-property
    101       : encode-unit  ( phys.. -- str )  push-hex (u.) pop-base  ;
    102       : decode-unit  ( str -- phys.. )  push-hex  $number  if  0  then  pop-base  ;
    103       : open  ( -- flag )  true  ;
    104       : close  ( -- )  ;
    105      
    106    
    107       0 0 encode-bytes
    108          cam-sda-gpio# 0 encode-gpio
    109          cam-scl-gpio# 0 encode-gpio
    110       " gpios" property
    111    finish-device
    112 
    113    new-device
    114       " dcon-i2c" device-name
    115       " i2c-gpio" +compatible
    116       1 " #address-cells" integer-property
    117       1 " #size-cells" integer-property
    118       : encode-unit  ( phys.. -- str )  push-hex (u.) pop-base  ;
    119       : decode-unit  ( str -- phys.. )  push-hex  $number  if  0  then  pop-base  ;
    120       : open  ( -- flag )  true  ;
    121       : close  ( -- )  ;
    122 
    123       0 0 encode-bytes
    124          dcon-sda-gpio# 0 encode-gpio
    125          dcon-scl-gpio# 0 encode-gpio
    126       " gpios" property
    127    finish-device
    128 device-end
  • cpu/arm/mmp2/twsi.fth

    r3207 r3234  
    164164
    165165[ifdef] begin-package
    166 : make-twsi-node  ( baseadr clock# irq# muxed-irq? fast? unit# -- )
    167    root-device
    168    new-device
    169       " linux,unit#" integer-property
    170       " i2c" name
    171       " mrvl,mmp-twsi" +compatible                    ( baseadr clock# irq# muxed-irq? fast? )
    172       if  0 0  " mrvl,i2c-fast-mode" property  then   ( baseadr clock# irq# muxed-irq? )
    173       if
    174           " /interrupt-controller/interrupt-controller@158" encode-phandle " interrupt-parent" property
    175       then                                            ( baseadr clock# irq# )
    176       " interrupts" integer-property                  ( baseadr clock# )
    177       " /apbc" encode-phandle rot encode-int encode+ " clocks" property
    178 
    179       h# 1000 reg                                     ( )
    180       1 " #address-cells" integer-property
    181       1 " #size-cells" integer-property
    182       " : open true ; : close ;" evaluate
    183       " : encode-unit  ( phys.. -- str )  push-hex (u.) pop-base  ;" evaluate
    184       " : decode-unit  ( str -- phys.. )  push-hex  $number  if  0  then  pop-base  ;" evaluate
    185    finish-device
    186    device-end
    187 ;     
    188 
    189 \     baseadr   clk irq mux? fast? unit#
    190   h# d4011000     1   7 false true     2 make-twsi-node  \ TWSI1
    191   h# d4031000     2   0 true  true     3 make-twsi-node  \ TWSI2
    192 \ h# d4032000     3   1 true  true     N make-twsi-node  \ TWSI3
    193   h# d4033000     4   2 true  true     5 make-twsi-node  \ TWSI4
    194 \ h# d4038000 d# 30   3 true  true     N make-twsi-node  \ TWSI5
    195   h# d4034000 d# 31   4 true  true     4 make-twsi-node  \ TWSI6
    196 
    197 
    198 [ifdef] soon-olpc-cl2  \ this breaks cl4-a1 boards, which ofw calls cl2.
    199 0 0  " 30" " /i2c@d4033000" begin-package  \ TWSI4
    200    " touchscreen" name
    201    " raydium_ts" +compatible
    202    my-address my-space 1 reg
    203 end-package
    204 [else]
    205 0 0  " 50" " /i2c@d4033000" begin-package  \ TWSI4
    206    " touchscreen" name
    207    " zforce" +compatible
    208    my-address my-space 1 reg
    209    touch-rst-gpio# 1  " reset-gpios" gpio-property
    210    touch-tck-gpio# 1  " test-gpios"  gpio-property
    211    touch-hd-gpio#  1  " hd-gpios"    gpio-property
    212    touch-int-gpio# 1  " dr-gpios"    gpio-property
    213 end-package
    214 [then]
    215 
    216 0 0  " 19" " /i2c@d4034000" begin-package  \ TWSI6
    217    " accelerometer" name
    218    " lis3lv02d" +compatible
    219    my-address my-space 1 reg
    220 end-package
    221 
    2221660 0  " "  " /" begin-package
    223167" twsi" name
  • cpu/arm/olpc/build-fw.fth

    r3225 r3234  
    102102
    103103fload ${BP}/cpu/arm/mmp2/watchdog.fth   \ reset-all using watchdog timer
     104
     105fload ${BP}/cpu/arm/olpc/gpio-i2c.fth
     106fload ${BP}/cpu/arm/olpc/twsi-i2c.fth
    104107
    1051080 0  " d4018000"  " /" begin-package  \ UART3
Note: See TracChangeset for help on using the changeset viewer.