/dts-v1/; /plugin/; /* Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum usable baudrate. It is also necessary to edit /lib/systemd/system/hciuart.service and replace ttyAMA0 with ttyS0, unless you have a system with udev rules that create /dev/serial0 and /dev/serial1, in which case use /dev/serial1 instead because it will always be correct. If cmdline.txt uses the alias serial0 to refer to the user-accessable port then the firmware will replace with the appropriate port whether or not this overlay is used. */ #include /{ compatible = "brcm,bcm2835"; fragment@0 { target = <&uart0>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins>; status = "okay"; }; }; fragment@1 { target = <&bt>; __overlay__ { status = "disabled"; }; }; fragment@2 { target = <&uart1>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins &bt_pins &fake_bt_cts>; status = "okay"; }; }; fragment@3 { target = <&uart0_pins>; __overlay__ { brcm,pins; brcm,function; brcm,pull; }; }; fragment@4 { target = <&uart1_pins>; __overlay__ { brcm,pins = <32 33>; brcm,function = <2>; /* alt5=UART1 */ brcm,pull = <0 2>; }; }; fragment@5 { target = <&gpio>; __overlay__ { fake_bt_cts: fake_bt_cts { brcm,pins = <31>; brcm,function = <1>; /* output */ }; }; }; fragment@6 { target-path = "/aliases"; __overlay__ { serial0 = "/soc/serial@7e201000"; serial1 = "/soc/serial@7e215040"; }; }; fragment@7 { target = <&minibt>; minibt_frag: __overlay__ { }; }; __overrides__ { krnbt = <&minibt_frag>,"status"; }; };