[PATCH v3 0/3] meson-uart: Use "divide XTAL by 2" bit on G12A
From: Martin Blumenstingl
Date: Tue Mar 07 2023 - 17:28:07 EST
This series improves support for UART attached Bluetooth modules on
Amlogic Meson G12A and newer SoCs. These SoCs also support the "divide
XTAL by 2" bit which (greatly) reduces jitter when generating baud
rates such as 1500000 (which is used by the Bluetooth part of the
RTL8822CS SDIO WiFi and UART Bluetooth combo chip).
Without this the baud rate calculation is based on the XTAL clock
(running at 24MHz) divided by 3 (meaning: 8MHz). 8MHz cannot be divided
with integer division to a 1500000 baud rate. Using the "divide XTAL
by 2" bit however means that we can achieve 1500000 cleanly, without any
jitter.
In future we should allow dynamic switching of these UART controller
internal dividers to pick the best divider automatically for the
requested baud rate. This however still requires the new compatible
string - which is added by this series - to enable the "divide XTAL
by 2" logic on SoCs that support it (G12A and newer).
Changes since v1 at [1]:
- make meson-gx-uart a valid fallback compatible string for the newer
meson-g12a-uart
- rebased on top of v6.3-rc1
Changes since v2 at [2]:
- simplify the dt-bindings patch as suggested by Krzysztof Kozlowski
(thank you!) which actually uncovers an unwanted change
[0] https://lore.kernel.org/linux-bluetooth/3B9D4DB2-D2CD-44FE-817A-F6EA8A0AD734@xxxxxxxxx/
[1] https://lore.kernel.org/lkml/20230222210425.626474-1-martin.blumenstingl@xxxxxxxxxxxxxx/
[2] https://lore.kernel.org/lkml/20230306194223.1869814-1-martin.blumenstingl@xxxxxxxxxxxxxx/
Martin Blumenstingl (3):
dt-bindings: serial: amlogic,meson-uart: Add compatible string for
G12A
tty: serial: meson: Add a new compatible string for the G12A SoC
arm64: dts: meson-g12-common: Use the G12A UART compatible string
.../bindings/serial/amlogic,meson-uart.yaml | 9 +++++++++
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 15 ++++++++++-----
drivers/tty/serial/meson_uart.c | 8 ++++++--
3 files changed, 25 insertions(+), 7 deletions(-)
--
2.39.2