[PATCH] dt: assign uart0 to BT and uart1 to pin headers

Fabian Vogt fvogt at suse.com
Wed Aug 31 11:10:30 PDT 2016

Am Mittwoch, 31. August 2016, 10:38:38 CEST schrieb Stephen Warren:
> On 08/31/2016 10:15 AM, Fabian Vogt wrote:
> > Am Mittwoch, 31. August 2016, 09:47:32 CEST schrieb Stephen Warren:
> >> On 08/31/2016 07:49 AM, Fabian Vogt wrote:
> >>> This maps uart0 to the on-board BT module and uart1 to the header.
> >>> Both are tested and work fine.
> >>
> >> Shouldn't we leave the UART pinmux set up the same way as the firmware
> >> left them? That way, the standard FW UART configuration options continue
> >> to work, which will provide less user-confusion.
> >
> > Without this patch, the mini uart can send but not receive over
> > the pin headers and the pl011 is not connected to anything.
> > This sets the same configuration as the default raspbian installation,
> > which is AFAICS what a user would expect.
> Do you have "enable_uart=1" in your config.txt?

Yes, it is enabled.

> That tells the FW that 
> you want to use a UART on the GPIO header. That should cause the FW to 
> set up the pin mux for the mini UART, hence solving the receive problem. 
> Without that config.txt option, the UART on the Pi 3 won't work reliably 
> even if you make the kernel force the pinmux, since the UART's clock 
> source can vary, which will vary the baud rate that the UART operates 
> at, and cause communication failures.

> Configuring the pinmux for the PL011 UART for the connection to the BT 
> module might be legitimate.

This is also how I fixed the mini uart in the process: The pl011
mappings for BT conflicted with uart1, so I had to fix those:
-       pinctrl-0 = <&uart1_gpio32>;
+       pinctrl-0 = <&uart1_gpio14>;
After that change I could receive with the mini uart again.

More information about the linux-rpi-kernel mailing list