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
|