xref: /freebsd/sys/contrib/device-tree/Bindings/net/bluetooth/nokia,h4p-bluetooth.txt (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1*b2d2a78aSEmmanuel VadotNokia Bluetooth Chips
2*b2d2a78aSEmmanuel Vadot---------------------
3*b2d2a78aSEmmanuel Vadot
4*b2d2a78aSEmmanuel VadotNokia phones often come with UART connected bluetooth chips from different
5*b2d2a78aSEmmanuel Vadotvendors and modified device API. Those devices speak a protocol named H4+
6*b2d2a78aSEmmanuel Vadot(also known as h4p) by Nokia, which is similar to the H4 protocol from the
7*b2d2a78aSEmmanuel VadotBluetooth standard. In addition to the H4 protocol it specifies two more
8*b2d2a78aSEmmanuel VadotUART status lines for wakeup of UART transceivers to improve power management
9*b2d2a78aSEmmanuel Vadotand a few new packet types used to negotiate uart speed.
10*b2d2a78aSEmmanuel Vadot
11*b2d2a78aSEmmanuel VadotRequired properties:
12*b2d2a78aSEmmanuel Vadot
13*b2d2a78aSEmmanuel Vadot - compatible: should contain "nokia,h4p-bluetooth" as well as one of the following:
14*b2d2a78aSEmmanuel Vadot   * "brcm,bcm2048-nokia"
15*b2d2a78aSEmmanuel Vadot   * "ti,wl1271-bluetooth-nokia"
16*b2d2a78aSEmmanuel Vadot - reset-gpios: GPIO specifier, used to reset the BT module (active low)
17*b2d2a78aSEmmanuel Vadot - bluetooth-wakeup-gpios: GPIO specifier, used to wakeup the BT module (active high)
18*b2d2a78aSEmmanuel Vadot - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor (active high)
19*b2d2a78aSEmmanuel Vadot - clock-names: should be "sysclk"
20*b2d2a78aSEmmanuel Vadot - clocks: should contain a clock specifier for every name in clock-names
21*b2d2a78aSEmmanuel Vadot
22*b2d2a78aSEmmanuel VadotOptional properties:
23*b2d2a78aSEmmanuel Vadot
24*b2d2a78aSEmmanuel Vadot - None
25*b2d2a78aSEmmanuel Vadot
26*b2d2a78aSEmmanuel VadotExample:
27*b2d2a78aSEmmanuel Vadot
28*b2d2a78aSEmmanuel Vadot/ {
29*b2d2a78aSEmmanuel Vadot       /* controlled (enabled/disabled) directly by BT module */
30*b2d2a78aSEmmanuel Vadot       bluetooth_clk: vctcxo {
31*b2d2a78aSEmmanuel Vadot               compatible = "fixed-clock";
32*b2d2a78aSEmmanuel Vadot               #clock-cells = <0>;
33*b2d2a78aSEmmanuel Vadot               clock-frequency = <38400000>;
34*b2d2a78aSEmmanuel Vadot       };
35*b2d2a78aSEmmanuel Vadot};
36*b2d2a78aSEmmanuel Vadot
37*b2d2a78aSEmmanuel Vadot&uart2 {
38*b2d2a78aSEmmanuel Vadot       pinctrl-names = "default";
39*b2d2a78aSEmmanuel Vadot       pinctrl-0 = <&uart2_pins>;
40*b2d2a78aSEmmanuel Vadot
41*b2d2a78aSEmmanuel Vadot       bluetooth {
42*b2d2a78aSEmmanuel Vadot               compatible = "ti,wl1271-bluetooth-nokia", "nokia,h4p-bluetooth";
43*b2d2a78aSEmmanuel Vadot
44*b2d2a78aSEmmanuel Vadot               reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; /* gpio26 */
45*b2d2a78aSEmmanuel Vadot               host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */
46*b2d2a78aSEmmanuel Vadot               bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* gpio37 */
47*b2d2a78aSEmmanuel Vadot
48*b2d2a78aSEmmanuel Vadot               clocks = <&bluetooth_clk>;
49*b2d2a78aSEmmanuel Vadot               clock-names = "sysclk";
50*b2d2a78aSEmmanuel Vadot       };
51*b2d2a78aSEmmanuel Vadot};
52