11286be27SSebastian ReichelNokia Bluetooth Chips 21286be27SSebastian Reichel--------------------- 31286be27SSebastian Reichel 41286be27SSebastian ReichelNokia phones often come with UART connected bluetooth chips from different 51286be27SSebastian Reichelvendors and modified device API. Those devices speak a protocol named H4+ 61286be27SSebastian Reichel(also known as h4p) by Nokia, which is similar to the H4 protocol from the 71286be27SSebastian ReichelBluetooth standard. In addition to the H4 protocol it specifies two more 81286be27SSebastian ReichelUART status lines for wakeup of UART transceivers to improve power management 91286be27SSebastian Reicheland a few new packet types used to negotiate uart speed. 101286be27SSebastian Reichel 111286be27SSebastian ReichelRequired properties: 121286be27SSebastian Reichel 131286be27SSebastian Reichel - compatible: should contain "nokia,h4p-bluetooth" as well as one of the following: 141286be27SSebastian Reichel * "brcm,bcm2048-nokia" 151286be27SSebastian Reichel * "ti,wl1271-bluetooth-nokia" 161286be27SSebastian Reichel - reset-gpios: GPIO specifier, used to reset the BT module (active low) 171286be27SSebastian Reichel - bluetooth-wakeup-gpios: GPIO specifier, used to wakeup the BT module (active high) 181286be27SSebastian Reichel - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor (active high) 191286be27SSebastian Reichel - clock-names: should be "sysclk" 201286be27SSebastian Reichel - clocks: should contain a clock specifier for every name in clock-names 211286be27SSebastian Reichel 221286be27SSebastian ReichelOptional properties: 231286be27SSebastian Reichel 241286be27SSebastian Reichel - None 251286be27SSebastian Reichel 261286be27SSebastian ReichelExample: 271286be27SSebastian Reichel 281286be27SSebastian Reichel/ { 291286be27SSebastian Reichel /* controlled (enabled/disabled) directly by BT module */ 301286be27SSebastian Reichel bluetooth_clk: vctcxo { 311286be27SSebastian Reichel compatible = "fixed-clock"; 321286be27SSebastian Reichel #clock-cells = <0>; 331286be27SSebastian Reichel clock-frequency = <38400000>; 341286be27SSebastian Reichel }; 351286be27SSebastian Reichel}; 361286be27SSebastian Reichel 371286be27SSebastian Reichel&uart2 { 381286be27SSebastian Reichel pinctrl-names = "default"; 391286be27SSebastian Reichel pinctrl-0 = <&uart2_pins>; 401286be27SSebastian Reichel 411286be27SSebastian Reichel bluetooth { 421286be27SSebastian Reichel compatible = "ti,wl1271-bluetooth-nokia", "nokia,h4p-bluetooth"; 431286be27SSebastian Reichel 441286be27SSebastian Reichel reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; /* gpio26 */ 451286be27SSebastian Reichel host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */ 461286be27SSebastian Reichel bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* gpio37 */ 471286be27SSebastian Reichel 481286be27SSebastian Reichel clocks = <&bluetooth_clk>; 491286be27SSebastian Reichel clock-names = "sysclk"; 501286be27SSebastian Reichel }; 511286be27SSebastian Reichel}; 52