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