Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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