xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunMarvell 8897/8997 (sd8897/sd8997) bluetooth devices (SDIO or USB based)
2*4882a593Smuzhiyun------
3*4882a593SmuzhiyunThe 8997 devices supports multiple interfaces. When used on SDIO interfaces,
4*4882a593Smuzhiyunthe btmrvl driver is used and when used on USB interface, the btusb driver is
5*4882a593Smuzhiyunused.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunRequired properties:
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun  - compatible : should be one of the following:
10*4882a593Smuzhiyun	* "marvell,sd8897-bt" (for SDIO)
11*4882a593Smuzhiyun	* "marvell,sd8997-bt" (for SDIO)
12*4882a593Smuzhiyun	* "usb1286,204e"      (for USB)
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunOptional properties:
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun  - marvell,cal-data: Calibration data downloaded to the device during
17*4882a593Smuzhiyun		      initialization. This is an array of 28 values(u8).
18*4882a593Smuzhiyun		      This is only applicable to SDIO devices.
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun  - marvell,wakeup-pin: It represents wakeup pin number of the bluetooth chip.
21*4882a593Smuzhiyun		        firmware will use the pin to wakeup host system (u16).
22*4882a593Smuzhiyun  - marvell,wakeup-gap-ms: wakeup gap represents wakeup latency of the host
23*4882a593Smuzhiyun		      platform. The value will be configured to firmware. This
24*4882a593Smuzhiyun		      is needed to work chip's sleep feature as expected (u16).
25*4882a593Smuzhiyun  - interrupt-names: Used only for USB based devices (See below)
26*4882a593Smuzhiyun  - interrupts : specifies the interrupt pin number to the cpu. For SDIO, the
27*4882a593Smuzhiyun		 driver will use the first interrupt specified in the interrupt
28*4882a593Smuzhiyun		 array. For USB based devices, the driver will use the interrupt
29*4882a593Smuzhiyun		 named "wakeup" from the interrupt-names and interrupt arrays.
30*4882a593Smuzhiyun		 The driver will request an irq based on this interrupt number.
31*4882a593Smuzhiyun		 During system suspend, the irq will be enabled so that the
32*4882a593Smuzhiyun		 bluetooth chip can wakeup host platform under certain
33*4882a593Smuzhiyun		 conditions. During system resume, the irq will be disabled
34*4882a593Smuzhiyun		 to make sure unnecessary interrupt is not received.
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunExample:
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunIRQ pin 119 is used as system wakeup source interrupt.
39*4882a593Smuzhiyunwakeup pin 13 and gap 100ms are configured so that firmware can wakeup host
40*4882a593Smuzhiyunusing this device side pin and wakeup latency.
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunExample for SDIO device follows (calibration data is also available in
43*4882a593Smuzhiyunbelow example).
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun&mmc3 {
46*4882a593Smuzhiyun	vmmc-supply = <&wlan_en_reg>;
47*4882a593Smuzhiyun	bus-width = <4>;
48*4882a593Smuzhiyun	cap-power-off-card;
49*4882a593Smuzhiyun	keep-power-in-suspend;
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	#address-cells = <1>;
52*4882a593Smuzhiyun	#size-cells = <0>;
53*4882a593Smuzhiyun	btmrvl: bluetooth@2 {
54*4882a593Smuzhiyun		compatible = "marvell,sd8897-bt";
55*4882a593Smuzhiyun		reg = <2>;
56*4882a593Smuzhiyun		interrupt-parent = <&pio>;
57*4882a593Smuzhiyun		interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun		marvell,cal-data = /bits/ 8 <
60*4882a593Smuzhiyun			0x37 0x01 0x1c 0x00 0xff 0xff 0xff 0xff 0x01 0x7f 0x04 0x02
61*4882a593Smuzhiyun			0x00 0x00 0xba 0xce 0xc0 0xc6 0x2d 0x00 0x00 0x00 0x00 0x00
62*4882a593Smuzhiyun			0x00 0x00 0xf0 0x00>;
63*4882a593Smuzhiyun		marvell,wakeup-pin = /bits/ 16 <0x0d>;
64*4882a593Smuzhiyun		marvell,wakeup-gap-ms = /bits/ 16 <0x64>;
65*4882a593Smuzhiyun	};
66*4882a593Smuzhiyun};
67*4882a593Smuzhiyun
68*4882a593SmuzhiyunExample for USB device:
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun&usb_host1_ohci {
71*4882a593Smuzhiyun    #address-cells = <1>;
72*4882a593Smuzhiyun    #size-cells = <0>;
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun    mvl_bt1: bt@1 {
75*4882a593Smuzhiyun	compatible = "usb1286,204e";
76*4882a593Smuzhiyun	reg = <1>;
77*4882a593Smuzhiyun	interrupt-parent = <&gpio0>;
78*4882a593Smuzhiyun	interrupt-names = "wakeup";
79*4882a593Smuzhiyun	interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
80*4882a593Smuzhiyun	marvell,wakeup-pin = /bits/ 16 <0x0d>;
81*4882a593Smuzhiyun	marvell,wakeup-gap-ms = /bits/ 16 <0x64>;
82*4882a593Smuzhiyun    };
83*4882a593Smuzhiyun};
84