mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.7 KiB
83 lines
2.7 KiB
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>; |
|
}; |
|
};
|
|
|