84 lines
2.7 KiB
Plaintext
84 lines
2.7 KiB
Plaintext
|
Marvell 8897/8997 (sd8897/sd8997) bluetooth devices (SDIO or USB based)
|
||
|
------
|
||
|
The 8997 devices supports multiple interfaces. When used on SDIO interfaces,
|
||
|
the btmrvl driver is used and when used on USB interface, the btusb driver is
|
||
|
used.
|
||
|
|
||
|
Required properties:
|
||
|
|
||
|
- compatible : should be one of the following:
|
||
|
* "marvell,sd8897-bt" (for SDIO)
|
||
|
* "marvell,sd8997-bt" (for SDIO)
|
||
|
* "usb1286,204e" (for USB)
|
||
|
|
||
|
Optional properties:
|
||
|
|
||
|
- marvell,cal-data: Calibration data downloaded to the device during
|
||
|
initialization. This is an array of 28 values(u8).
|
||
|
This is only applicable to SDIO devices.
|
||
|
|
||
|
- marvell,wakeup-pin: It represents wakeup pin number of the bluetooth chip.
|
||
|
firmware will use the pin to wakeup host system (u16).
|
||
|
- marvell,wakeup-gap-ms: wakeup gap represents wakeup latency of the host
|
||
|
platform. The value will be configured to firmware. This
|
||
|
is needed to work chip's sleep feature as expected (u16).
|
||
|
- interrupt-names: Used only for USB based devices (See below)
|
||
|
- interrupts : specifies the interrupt pin number to the cpu. For SDIO, the
|
||
|
driver will use the first interrupt specified in the interrupt
|
||
|
array. For USB based devices, the driver will use the interrupt
|
||
|
named "wakeup" from the interrupt-names and interrupt arrays.
|
||
|
The driver will request an irq based on this interrupt number.
|
||
|
During system suspend, the irq will be enabled so that the
|
||
|
bluetooth chip can wakeup host platform under certain
|
||
|
conditions. During system resume, the irq will be disabled
|
||
|
to make sure unnecessary interrupt is not received.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
IRQ pin 119 is used as system wakeup source interrupt.
|
||
|
wakeup pin 13 and gap 100ms are configured so that firmware can wakeup host
|
||
|
using this device side pin and wakeup latency.
|
||
|
|
||
|
Example for SDIO device follows (calibration data is also available in
|
||
|
below example).
|
||
|
|
||
|
&mmc3 {
|
||
|
vmmc-supply = <&wlan_en_reg>;
|
||
|
bus-width = <4>;
|
||
|
cap-power-off-card;
|
||
|
keep-power-in-suspend;
|
||
|
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
btmrvl: bluetooth@2 {
|
||
|
compatible = "marvell,sd8897-bt";
|
||
|
reg = <2>;
|
||
|
interrupt-parent = <&pio>;
|
||
|
interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
|
||
|
|
||
|
marvell,cal-data = /bits/ 8 <
|
||
|
0x37 0x01 0x1c 0x00 0xff 0xff 0xff 0xff 0x01 0x7f 0x04 0x02
|
||
|
0x00 0x00 0xba 0xce 0xc0 0xc6 0x2d 0x00 0x00 0x00 0x00 0x00
|
||
|
0x00 0x00 0xf0 0x00>;
|
||
|
marvell,wakeup-pin = /bits/ 16 <0x0d>;
|
||
|
marvell,wakeup-gap-ms = /bits/ 16 <0x64>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
Example for USB device:
|
||
|
|
||
|
&usb_host1_ohci {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
mvl_bt1: bt@1 {
|
||
|
compatible = "usb1286,204e";
|
||
|
reg = <1>;
|
||
|
interrupt-parent = <&gpio0>;
|
||
|
interrupt-names = "wakeup";
|
||
|
interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
|
||
|
marvell,wakeup-pin = /bits/ 16 <0x0d>;
|
||
|
marvell,wakeup-gap-ms = /bits/ 16 <0x64>;
|
||
|
};
|
||
|
};
|