xref: /linux/Documentation/devicetree/bindings/net/bluetooth/mediatek,bluetooth.txt (revision 55d0969c451159cff86949b38c39171cab962069)
1MediaTek UART based Bluetooth Devices
2==================================
3
4This device is a serial attached device to UART device and thus it must be a
5child node of the serial node with UART.
6
7Please refer to the following documents for generic properties:
8
9	Documentation/devicetree/bindings/serial/serial.yaml
10
11Required properties:
12
13- compatible:	Must be
14		  "mediatek,mt7663u-bluetooth": for MT7663U device
15		  "mediatek,mt7668u-bluetooth": for MT7668U device
16- vcc-supply:	Main voltage regulator
17
18If the pin controller on the platform can support both pinmux and GPIO
19control such as the most of MediaTek platform. Please use below properties.
20
21- pinctrl-names: Should be "default", "runtime"
22- pinctrl-0: Should contain UART RXD low when the device is powered up to
23	     enter proper bootstrap mode.
24- pinctrl-1: Should contain UART mode pin ctrl
25
26Else, the pin controller on the platform only can support pinmux control and
27the GPIO control still has to rely on the dedicated GPIO controller such as
28a legacy MediaTek SoC, MT7621. Please use the below properties.
29
30- boot-gpios:	GPIO same to the pin as UART RXD and used to keep LOW when
31		the device is powered up to enter proper bootstrap mode when
32- pinctrl-names: Should be "default"
33- pinctrl-0: Should contain UART mode pin ctrl
34
35Optional properties:
36
37- reset-gpios:	GPIO used to reset the device whose initial state keeps low,
38		if the GPIO is missing, then board-level design should be
39		guaranteed.
40- clocks:	Should be the clock specifiers corresponding to the entry in
41		clock-names property. If the clock is missing, then board-level
42		design should be guaranteed.
43- clock-names:	Should contain "osc" entry for the external oscillator.
44- current-speed:  Current baud rate of the device whose defaults to 921600
45
46Example:
47
48	uart1_pins_boot: uart1-default {
49		pins-dat {
50			pinmux = <MT7623_PIN_81_URXD1_FUNC_GPIO81>;
51			output-low;
52		};
53	};
54
55	uart1_pins_runtime: uart1-runtime {
56		pins-dat {
57			pinmux = <MT7623_PIN_81_URXD1_FUNC_URXD1>,
58				 <MT7623_PIN_82_UTXD1_FUNC_UTXD1>;
59		};
60	};
61
62	uart1: serial@11003000 {
63		compatible = "mediatek,mt7623-uart",
64			     "mediatek,mt6577-uart";
65		reg = <0 0x11003000 0 0x400>;
66		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
67		clocks = <&pericfg CLK_PERI_UART1_SEL>,
68			 <&pericfg CLK_PERI_UART1>;
69		clock-names = "baud", "bus";
70
71		bluetooth {
72			compatible = "mediatek,mt7663u-bluetooth";
73			vcc-supply = <&reg_5v>;
74			reset-gpios = <&pio 24 GPIO_ACTIVE_LOW>;
75			pinctrl-names = "default", "runtime";
76			pinctrl-0 = <&uart1_pins_boot>;
77			pinctrl-1 = <&uart1_pins_runtime>;
78			current-speed = <921600>;
79		};
80	};
81