summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/slof/fs/usb/dev-hci.fs
blob: 5fb25b8b6b4e955b51055b9202584b0027ae583e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
\ *****************************************************************************
\ * Copyright (c) 2006, 2012, 2013 IBM Corporation
\ * All rights reserved.
\ * This program and the accompanying materials
\ * are made available under the terms of the BSD License
\ * which accompanies this distribution, and is available at
\ * http://www.opensource.org/licenses/bsd-license.php
\ *
\ * Contributors:
\ *     IBM Corporation - initial implementation
\ ****************************************************************************/
\ *
\ * [OEX]HCI functions
\ *
\ ****************************************************************************

\ ( num $name type )

VALUE usb_type \ USB type

\ Open Firmware Properties
device-type
" usb" 2dup device-name

rot
VALUE usb_num                           \ controller number
usb_num $cathex strdup			\ create alias name
2dup find-alias 0= IF
   get-node node>path set-alias
ELSE 3drop THEN

/hci-dev BUFFER: hcidev
usb_num hcidev usb-setup-hcidev
TRUE VALUE first-time-init?
0 VALUE open-count

false VALUE dev-hci-debug?

1 encode-int s" #address-cells" property
0 encode-int s" #size-cells" property

\ converts physical address to text unit string
: encode-unit ( port -- unit-str unit-len ) 1 hex-encode-unit ;

\ Converts text unit string to phyical address
: decode-unit ( addr len -- port ) 1 hex-decode-unit ;

: get-hci-dev ( -- hcidev )
    hcidev
;

: hc-cleanup ( -- )
    my-phandle set-node
    dev-hci-debug? IF ." USB-HCI: Cleaning up " pwd cr THEN
    hcidev USB-HCD-EXIT
    0 set-node
;

: open   ( -- true | false )
    true
;

: close
;

\ create a new entry to cleanup and suspend HCI
\ after first init
first-time-init? IF
   ['] hc-cleanup add-quiesce-xt
   false to first-time-init?
THEN