Changeset 3234


Ignore:
Timestamp:
Aug 29, 2012, 2:10:05 AM (2 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.