Nokia Bluetooth Chips
---------------------

Nokia phones often come with UART connected bluetooth chips from different
vendors and modified device API. Those devices speak a protocol named H4+
(also known as h4p) by Nokia, which is similar to the H4 protocol from the
Bluetooth standard. In addition to the H4 protocol it specifies two more
UART status lines for wakeup of UART transceivers to improve power management
and a few new packet types used to negotiate uart speed.

Required properties:

 - compatible: should contain "nokia,h4p-bluetooth" as well as one of the following:
   * "brcm,bcm2048-nokia"
   * "ti,wl1271-bluetooth-nokia"
 - reset-gpios: GPIO specifier, used to reset the BT module (active low)
 - bluetooth-wakeup-gpios: GPIO specifier, used to wakeup the BT module (active high)
 - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor (active high)
 - clock-names: should be "sysclk"
 - clocks: should contain a clock specifier for every name in clock-names

Optional properties:

 - None

Example:

/ {
       /* controlled (enabled/disabled) directly by BT module */
       bluetooth_clk: vctcxo {
               compatible = "fixed-clock";
               #clock-cells = <0>;
               clock-frequency = <38400000>;
       };
};

&uart2 {
       pinctrl-names = "default";
       pinctrl-0 = <&uart2_pins>;

       bluetooth {
               compatible = "ti,wl1271-bluetooth-nokia", "nokia,h4p-bluetooth";

               reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; /* gpio26 */
               host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */
               bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* gpio37 */

               clocks = <&bluetooth_clk>;
               clock-names = "sysclk";
       };
};
