xref: /OK3568_Linux_fs/kernel/Documentation/admin-guide/btmrvl.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun=============
2*4882a593Smuzhiyunbtmrvl driver
3*4882a593Smuzhiyun=============
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunAll commands are used via debugfs interface.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunSet/get driver configurations
8*4882a593Smuzhiyun=============================
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunPath:	/debug/btmrvl/config/
11*4882a593Smuzhiyun
12*4882a593Smuzhiyungpiogap=[n], hscfgcmd
13*4882a593Smuzhiyun	These commands are used to configure the host sleep parameters::
14*4882a593Smuzhiyun	bit 8:0  -- Gap
15*4882a593Smuzhiyun	bit 16:8 -- GPIO
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun	where GPIO is the pin number of GPIO used to wake up the host.
18*4882a593Smuzhiyun	It could be any valid GPIO pin# (e.g. 0-7) or 0xff (SDIO interface
19*4882a593Smuzhiyun	wakeup will be used instead).
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	where Gap is the gap in milli seconds between wakeup signal and
22*4882a593Smuzhiyun	wakeup event, or 0xff for special host sleep setting.
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun	Usage::
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun		# Use SDIO interface to wake up the host and set GAP to 0x80:
27*4882a593Smuzhiyun		echo 0xff80 > /debug/btmrvl/config/gpiogap
28*4882a593Smuzhiyun		echo 1 > /debug/btmrvl/config/hscfgcmd
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun		# Use GPIO pin #3 to wake up the host and set GAP to 0xff:
31*4882a593Smuzhiyun		echo 0x03ff >  /debug/btmrvl/config/gpiogap
32*4882a593Smuzhiyun		echo 1 > /debug/btmrvl/config/hscfgcmd
33*4882a593Smuzhiyun
34*4882a593Smuzhiyunpsmode=[n], pscmd
35*4882a593Smuzhiyun	These commands are used to enable/disable auto sleep mode
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	where the option is::
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun			1 	-- Enable auto sleep mode
40*4882a593Smuzhiyun			0 	-- Disable auto sleep mode
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	Usage::
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun		# Enable auto sleep mode
45*4882a593Smuzhiyun		echo 1 > /debug/btmrvl/config/psmode
46*4882a593Smuzhiyun		echo 1 > /debug/btmrvl/config/pscmd
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		# Disable auto sleep mode
49*4882a593Smuzhiyun		echo 0 > /debug/btmrvl/config/psmode
50*4882a593Smuzhiyun		echo 1 > /debug/btmrvl/config/pscmd
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunhsmode=[n], hscmd
54*4882a593Smuzhiyun	These commands are used to enable host sleep or wake up firmware
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun	where the option is::
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun			1	-- Enable host sleep
59*4882a593Smuzhiyun			0	-- Wake up firmware
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	Usage::
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun		# Enable host sleep
64*4882a593Smuzhiyun		echo 1 > /debug/btmrvl/config/hsmode
65*4882a593Smuzhiyun		echo 1 > /debug/btmrvl/config/hscmd
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun		# Wake up firmware
68*4882a593Smuzhiyun		echo 0 > /debug/btmrvl/config/hsmode
69*4882a593Smuzhiyun		echo 1 > /debug/btmrvl/config/hscmd
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun
72*4882a593SmuzhiyunGet driver status
73*4882a593Smuzhiyun=================
74*4882a593Smuzhiyun
75*4882a593SmuzhiyunPath:	/debug/btmrvl/status/
76*4882a593Smuzhiyun
77*4882a593SmuzhiyunUsage::
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun	cat /debug/btmrvl/status/<args>
80*4882a593Smuzhiyun
81*4882a593Smuzhiyunwhere the args are:
82*4882a593Smuzhiyun
83*4882a593Smuzhiyuncurpsmode
84*4882a593Smuzhiyun	This command displays current auto sleep status.
85*4882a593Smuzhiyun
86*4882a593Smuzhiyunpsstate
87*4882a593Smuzhiyun	This command display the power save state.
88*4882a593Smuzhiyun
89*4882a593Smuzhiyunhsstate
90*4882a593Smuzhiyun	This command display the host sleep state.
91*4882a593Smuzhiyun
92*4882a593Smuzhiyuntxdnldrdy
93*4882a593Smuzhiyun	This command displays the value of Tx download ready flag.
94*4882a593Smuzhiyun
95*4882a593SmuzhiyunIssuing a raw hci command
96*4882a593Smuzhiyun=========================
97*4882a593Smuzhiyun
98*4882a593SmuzhiyunUse hcitool to issue raw hci command, refer to hcitool manual
99*4882a593Smuzhiyun
100*4882a593SmuzhiyunUsage::
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun	Hcitool cmd <ogf> <ocf> [Parameters]
103*4882a593Smuzhiyun
104*4882a593SmuzhiyunInterface Control Command::
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun	hcitool cmd 0x3f 0x5b 0xf5 0x01 0x00    --Enable All interface
107*4882a593Smuzhiyun	hcitool cmd 0x3f 0x5b 0xf5 0x01 0x01    --Enable Wlan interface
108*4882a593Smuzhiyun	hcitool cmd 0x3f 0x5b 0xf5 0x01 0x02    --Enable BT interface
109*4882a593Smuzhiyun	hcitool cmd 0x3f 0x5b 0xf5 0x00 0x00    --Disable All interface
110*4882a593Smuzhiyun	hcitool cmd 0x3f 0x5b 0xf5 0x00 0x01    --Disable Wlan interface
111*4882a593Smuzhiyun	hcitool cmd 0x3f 0x5b 0xf5 0x00 0x02    --Disable BT interface
112*4882a593Smuzhiyun
113*4882a593SmuzhiyunSD8688 firmware
114*4882a593Smuzhiyun===============
115*4882a593Smuzhiyun
116*4882a593SmuzhiyunImages:
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun- /lib/firmware/sd8688_helper.bin
119*4882a593Smuzhiyun- /lib/firmware/sd8688.bin
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun
122*4882a593SmuzhiyunThe images can be downloaded from:
123*4882a593Smuzhiyun
124*4882a593Smuzhiyungit.infradead.org/users/dwmw2/linux-firmware.git/libertas/
125