Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1671734 > unrolled thread
| Started by | Neil Armstrong <narmstrong@baylibre.com> |
|---|---|
| First post | 2017-06-21 16:50 +0200 |
| Last post | 2017-06-21 16:50 +0200 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH v5.1 0/2] tty/serial: meson_uart: add support for core clock handling Neil Armstrong <narmstrong@baylibre.com> - 2017-06-21 16:50 +0200
[PATCH v5.1 1/2] ARM64: dts: meson-gx: use stable UART bindings with correct gate clock Neil Armstrong <narmstrong@baylibre.com> - 2017-06-21 16:50 +0200
| From | Neil Armstrong <narmstrong@baylibre.com> |
|---|---|
| Date | 2017-06-21 16:50 +0200 |
| Subject | [PATCH v5.1 0/2] tty/serial: meson_uart: add support for core clock handling |
| Message-ID | <tUP7b-7m1-3@gated-at.bofh.it> |
This patchset is a re-spin of Helmut Klein's v3 patchset at [0] and the v4/v5 patchset at [1] & [2]. Initially, the original patchset was made to enable usage on the non-AO UARTS not enabled by the Bootloader (uart_B and uart_C), but the patchset needed an overall change to have clean and stable DT bindings. The Amlogic Meson UART Driver did not have stable DT bindings and mismatched clock handling on non-AO UARTs since these "EE" UARTs needs a clock gate to be ungated to works correctly. In the same way, the AO UARTs does not need gating and can be used as Early Consoles. In the same time, the UART Interfaces can take clock input for the baudrate generate from either the external Xtal or the internal Bus Clock (clk81). So new bindings was necessary to meet these requirements and the DT maintainers requirements. The "legacy" binding actually used in the driver is left until all the DT files are switched to the new bindings. The GX DT has been tested, but the last 4 Meson6/Meson8/b are only compile-tested, and testing is welcome. Thus only the first 3 patches can be merged until the Meson6/Meson8/b are formally tested. It must be noted that the meson6 cannot work today except using an early console since the UART driver could not probe without a clocks property. Changes since v5 at [2]: - Dropped bindings and tty patch since merged by greg kh into tty next branch - Keep old bindings in DT files for retro-compatibility Changes since v4 at [1]: - Droped meson8/meson8b DT patches - Fixes copy/paste error in patch 2 - Refactored clock probing in patch 2 - merged meson6 patches together to avoid breaking bisect [0] http://lkml.kernel.org/r/20170331165437.26227-1-hgkr.klein@gmail.com [1] http://lkml.kernel.org/r/1497001756-942-1-git-send-email-narmstrong@baylibre.com [2] http://lkml.kernel.org/r/1497428957-19942-1-git-send-email-narmstrong@baylibre.com Helmut Klein (1): ARM64: dts: meson-gx: use stable UART bindings with correct gate clock Neil Armstrong (1): ARM: dts: meson6: use stable UART bindings arch/arm/boot/dts/meson.dtsi | 8 ++++---- arch/arm/boot/dts/meson6.dtsi | 28 ++++++++++++++++++++++++++++ arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 12 +++++------- arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 25 +++++++++++++++++++++++++ arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 25 +++++++++++++++++++++++++ 5 files changed, 87 insertions(+), 11 deletions(-) -- 1.9.1
[toc] | [next] | [standalone]
| From | Neil Armstrong <narmstrong@baylibre.com> |
|---|---|
| Date | 2017-06-21 16:50 +0200 |
| Subject | [PATCH v5.1 1/2] ARM64: dts: meson-gx: use stable UART bindings with correct gate clock |
| Message-ID | <tUP7c-7m1-11@gated-at.bofh.it> |
| In reply to | #1671734 |
From: Helmut Klein <hgkr.klein@gmail.com>
This patch switches to the stable UART bindings but also add the correct
gate clock to the non-AO UART nodes for GXBB and GXL SoCs.
Acked-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 12 +++++-------
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 25 +++++++++++++++++++++++++
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 25 +++++++++++++++++++++++++
3 files changed, 55 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index 35b8c88..1c6e4ed 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -225,7 +225,7 @@
};
uart_A: serial@84c0 {
- compatible = "amlogic,meson-uart";
+ compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
reg = <0x0 0x84c0 0x0 0x14>;
interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
clocks = <&xtal>;
@@ -233,7 +233,7 @@
};
uart_B: serial@84dc {
- compatible = "amlogic,meson-uart";
+ compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
reg = <0x0 0x84dc 0x0 0x14>;
interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
clocks = <&xtal>;
@@ -279,7 +279,7 @@
};
uart_C: serial@8700 {
- compatible = "amlogic,meson-uart";
+ compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
reg = <0x0 0x8700 0x0 0x14>;
interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
clocks = <&xtal>;
@@ -375,18 +375,16 @@
};
uart_AO: serial@4c0 {
- compatible = "amlogic,meson-uart";
+ compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart";
reg = <0x0 0x004c0 0x0 0x14>;
interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
- clocks = <&xtal>;
status = "disabled";
};
uart_AO_B: serial@4e0 {
- compatible = "amlogic,meson-uart";
+ compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart";
reg = <0x0 0x004e0 0x0 0x14>;
interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
- clocks = <&xtal>;
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index 17d3efd..ea53cc2 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -682,6 +682,31 @@
clocks = <&clkc CLKID_SPI>;
};
+&uart_A {
+ clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
+ clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO {
+ clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+ clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO_B {
+ clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+ clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_B {
+ clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
+ clock-names = "xtal", "core", "baud";
+};
+
+&uart_C {
+ clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
+ clock-names = "xtal", "core", "baud";
+};
+
&vpu {
compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index 8d4f316..9e67444 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -623,6 +623,31 @@
clocks = <&clkc CLKID_SPI>;
};
+&uart_A {
+ clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
+ clock-names = "xtal", "core", "baud";
+};
+
+&uart_AO {
+ clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+ clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO_B {
+ clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+ clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_B {
+ clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
+ clock-names = "xtal", "core", "baud";
+};
+
+&uart_C {
+ clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
+ clock-names = "xtal", "core", "baud";
+};
+
&vpu {
compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
};
--
1.9.1
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web