Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Marvell 8897/8997 (sd8897/sd8997) bluetooth SDIO devices
------

Required properties:

  - compatible : should be one of the following:
	* "marvell,sd8897-bt"
	* "marvell,sd8997-bt"

Optional properties:

  - marvell,cal-data: Calibration data downloaded to the device during
		      initialization. This is an array of 28 values(u8).

  - 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-parent: phandle of the parent interrupt controller
  - interrupts : interrupt pin number to the cpu. 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 condition. 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.
calibration data is also available in below example.

&mmc3 {
	status = "okay";
	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>;
	};
};