xref: /src/sys/contrib/device-tree/Bindings/net/marvell-bt-8xxx.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
18fdc67f7SEmmanuel VadotMarvell 8897/8997 (sd8897/sd8997) bluetooth devices (SDIO or USB based)
28fdc67f7SEmmanuel Vadot------
38fdc67f7SEmmanuel VadotThe 8997 devices supports multiple interfaces. When used on SDIO interfaces,
48fdc67f7SEmmanuel Vadotthe btmrvl driver is used and when used on USB interface, the btusb driver is
58fdc67f7SEmmanuel Vadotused.
68fdc67f7SEmmanuel Vadot
78fdc67f7SEmmanuel VadotRequired properties:
88fdc67f7SEmmanuel Vadot
98fdc67f7SEmmanuel Vadot  - compatible : should be one of the following:
108fdc67f7SEmmanuel Vadot	* "marvell,sd8897-bt" (for SDIO)
118fdc67f7SEmmanuel Vadot	* "marvell,sd8997-bt" (for SDIO)
128fdc67f7SEmmanuel Vadot	* "usb1286,204e"      (for USB)
138fdc67f7SEmmanuel Vadot
148fdc67f7SEmmanuel VadotOptional properties:
158fdc67f7SEmmanuel Vadot
168fdc67f7SEmmanuel Vadot  - marvell,cal-data: Calibration data downloaded to the device during
178fdc67f7SEmmanuel Vadot		      initialization. This is an array of 28 values(u8).
188fdc67f7SEmmanuel Vadot		      This is only applicable to SDIO devices.
198fdc67f7SEmmanuel Vadot
208fdc67f7SEmmanuel Vadot  - marvell,wakeup-pin: It represents wakeup pin number of the bluetooth chip.
218fdc67f7SEmmanuel Vadot		        firmware will use the pin to wakeup host system (u16).
228fdc67f7SEmmanuel Vadot  - marvell,wakeup-gap-ms: wakeup gap represents wakeup latency of the host
238fdc67f7SEmmanuel Vadot		      platform. The value will be configured to firmware. This
248fdc67f7SEmmanuel Vadot		      is needed to work chip's sleep feature as expected (u16).
258fdc67f7SEmmanuel Vadot  - interrupt-names: Used only for USB based devices (See below)
268fdc67f7SEmmanuel Vadot  - interrupts : specifies the interrupt pin number to the cpu. For SDIO, the
278fdc67f7SEmmanuel Vadot		 driver will use the first interrupt specified in the interrupt
288fdc67f7SEmmanuel Vadot		 array. For USB based devices, the driver will use the interrupt
298fdc67f7SEmmanuel Vadot		 named "wakeup" from the interrupt-names and interrupt arrays.
308fdc67f7SEmmanuel Vadot		 The driver will request an irq based on this interrupt number.
318fdc67f7SEmmanuel Vadot		 During system suspend, the irq will be enabled so that the
328fdc67f7SEmmanuel Vadot		 bluetooth chip can wakeup host platform under certain
338fdc67f7SEmmanuel Vadot		 conditions. During system resume, the irq will be disabled
348fdc67f7SEmmanuel Vadot		 to make sure unnecessary interrupt is not received.
358fdc67f7SEmmanuel Vadot
368fdc67f7SEmmanuel VadotExample:
378fdc67f7SEmmanuel Vadot
388fdc67f7SEmmanuel VadotIRQ pin 119 is used as system wakeup source interrupt.
398fdc67f7SEmmanuel Vadotwakeup pin 13 and gap 100ms are configured so that firmware can wakeup host
408fdc67f7SEmmanuel Vadotusing this device side pin and wakeup latency.
418fdc67f7SEmmanuel Vadot
428fdc67f7SEmmanuel VadotExample for SDIO device follows (calibration data is also available in
438fdc67f7SEmmanuel Vadotbelow example).
448fdc67f7SEmmanuel Vadot
458fdc67f7SEmmanuel Vadot&mmc3 {
468fdc67f7SEmmanuel Vadot	vmmc-supply = <&wlan_en_reg>;
478fdc67f7SEmmanuel Vadot	bus-width = <4>;
488fdc67f7SEmmanuel Vadot	cap-power-off-card;
498fdc67f7SEmmanuel Vadot	keep-power-in-suspend;
508fdc67f7SEmmanuel Vadot
518fdc67f7SEmmanuel Vadot	#address-cells = <1>;
528fdc67f7SEmmanuel Vadot	#size-cells = <0>;
538fdc67f7SEmmanuel Vadot	btmrvl: bluetooth@2 {
548fdc67f7SEmmanuel Vadot		compatible = "marvell,sd8897-bt";
558fdc67f7SEmmanuel Vadot		reg = <2>;
568fdc67f7SEmmanuel Vadot		interrupt-parent = <&pio>;
578fdc67f7SEmmanuel Vadot		interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
588fdc67f7SEmmanuel Vadot
598fdc67f7SEmmanuel Vadot		marvell,cal-data = /bits/ 8 <
608fdc67f7SEmmanuel Vadot			0x37 0x01 0x1c 0x00 0xff 0xff 0xff 0xff 0x01 0x7f 0x04 0x02
618fdc67f7SEmmanuel Vadot			0x00 0x00 0xba 0xce 0xc0 0xc6 0x2d 0x00 0x00 0x00 0x00 0x00
628fdc67f7SEmmanuel Vadot			0x00 0x00 0xf0 0x00>;
638fdc67f7SEmmanuel Vadot		marvell,wakeup-pin = /bits/ 16 <0x0d>;
648fdc67f7SEmmanuel Vadot		marvell,wakeup-gap-ms = /bits/ 16 <0x64>;
658fdc67f7SEmmanuel Vadot	};
668fdc67f7SEmmanuel Vadot};
678fdc67f7SEmmanuel Vadot
688fdc67f7SEmmanuel VadotExample for USB device:
698fdc67f7SEmmanuel Vadot
708fdc67f7SEmmanuel Vadot&usb_host1_ohci {
718fdc67f7SEmmanuel Vadot    #address-cells = <1>;
728fdc67f7SEmmanuel Vadot    #size-cells = <0>;
738fdc67f7SEmmanuel Vadot
748fdc67f7SEmmanuel Vadot    mvl_bt1: bt@1 {
758fdc67f7SEmmanuel Vadot	compatible = "usb1286,204e";
768fdc67f7SEmmanuel Vadot	reg = <1>;
778fdc67f7SEmmanuel Vadot	interrupt-parent = <&gpio0>;
788fdc67f7SEmmanuel Vadot	interrupt-names = "wakeup";
798fdc67f7SEmmanuel Vadot	interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
808fdc67f7SEmmanuel Vadot	marvell,wakeup-pin = /bits/ 16 <0x0d>;
818fdc67f7SEmmanuel Vadot	marvell,wakeup-gap-ms = /bits/ 16 <0x64>;
828fdc67f7SEmmanuel Vadot    };
838fdc67f7SEmmanuel Vadot};
84