71 lines
1.7 KiB
Forth
71 lines
1.7 KiB
Forth
\ *****************************************************************************
|
|
\ * 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
|
|
s" usb"
|
|
|
|
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
|