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