public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 0/3] arm64: dts: amlogic: t7: Add UART support and enable Bluetooth on VIM4
@ 2026-04-15 11:16 Ronald Claveau
  2026-04-15 11:16 ` [PATCH 1/3] arm64: dts: amlogic: t7: Add uart_c pinctrl pins group Ronald Claveau
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Ronald Claveau @ 2026-04-15 11:16 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel,
	Ronald Claveau

This series adds all UART controllers for the Amlogic T7 SoC and enables
the Bluetooth controller on the Khadas VIM4 board.

The T7 SoC ships with six UART controllers (A through F), but only
uart_a was previously described in the device tree.

  - Patch 1 adds the pinctrl group for UART C, which is needed to route
    its four signals (TX, RX, CTS, RTS) through the correct pads.

  - Patch 2 completes the uart_a node (peripheral clock) and
    repositions it to respect the ascending reg address order required
    by the DT specification. It then adds nodes for UART B through F,
    each with their respective peripheral clock.

  - Patch 3 enables UART C on the Khadas VIM4 board and attaches the
    on-board BCM43438 Bluetooth controller to it, with hardware flow
    control, wakeup GPIOs, LPO clock and power supplies.

Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
---
Ronald Claveau (3):
      arm64: dts: amlogic: t7: Add uart_c pinctrl pins group
      arm64: dts: amlogic: t7: Add UART controllers nodes
      arm64: dts: amlogic: t7: khadas-vim4: Enable Bluetooth

 .../dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts  | 19 ++++++
 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi        | 73 +++++++++++++++++++---
 2 files changed, 85 insertions(+), 7 deletions(-)
---
base-commit: 6aa9edb4f8266cfb913ee74f5e55116550b5574d
change-id: 20260414-add-bluetooth-t7-vim4-f01e03c4ec2a

Best regards,
-- 
Ronald Claveau <linux-kernel-dev@aliel.fr>



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] arm64: dts: amlogic: t7: Add uart_c pinctrl pins group
  2026-04-15 11:16 [PATCH 0/3] arm64: dts: amlogic: t7: Add UART support and enable Bluetooth on VIM4 Ronald Claveau
@ 2026-04-15 11:16 ` Ronald Claveau
  2026-04-15 11:28   ` Xianwei Zhao
  2026-04-15 11:16 ` [PATCH 2/3] arm64: dts: amlogic: t7: Add UART controllers nodes Ronald Claveau
  2026-04-15 11:16 ` [PATCH 3/3] arm64: dts: amlogic: t7: khadas-vim4: Enable Bluetooth Ronald Claveau
  2 siblings, 1 reply; 8+ messages in thread
From: Ronald Claveau @ 2026-04-15 11:16 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel,
	Ronald Claveau

Add the pin multiplexing configuration for UART C (TX, RX, CTS, RTS)
in the T7 SoC pinctrl node, required to route the UART C signals
through the correct pads before enabling the controller.

Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
---
 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
index 7fe72c94ed623..531931cc1437c 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
@@ -553,6 +553,18 @@ mux {
 						bias-pull-up;
 					};
 				};
+
+				uart_c_pins: uart_c {
+					mux {
+						groups = "uart_c_tx",
+							 "uart_c_rx",
+							 "uart_c_cts",
+							 "uart_c_rts";
+						bias-pull-up;
+						output-high;
+						function = "uart_c";
+					};
+				};
 			};
 
 			gpio_intc: interrupt-controller@4080 {

-- 
2.49.0



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/3] arm64: dts: amlogic: t7: Add UART controllers nodes
  2026-04-15 11:16 [PATCH 0/3] arm64: dts: amlogic: t7: Add UART support and enable Bluetooth on VIM4 Ronald Claveau
  2026-04-15 11:16 ` [PATCH 1/3] arm64: dts: amlogic: t7: Add uart_c pinctrl pins group Ronald Claveau
@ 2026-04-15 11:16 ` Ronald Claveau
  2026-04-15 11:38   ` Xianwei Zhao
  2026-04-15 11:16 ` [PATCH 3/3] arm64: dts: amlogic: t7: khadas-vim4: Enable Bluetooth Ronald Claveau
  2 siblings, 1 reply; 8+ messages in thread
From: Ronald Claveau @ 2026-04-15 11:16 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel,
	Ronald Claveau

Add device tree nodes for UART B through F (serial@7a000 to
serial@82000), completing the UART controller description for the T7
SoC. Each node includes the peripheral clock.

While at it, move the uart_a node to its correct position in the
bus address order (0x78000) to comply with the DT requirement that
nodes be sorted by their reg address. Complete the
uart_a node with its peripheral clock (CLKID_SYS_UART_A) and the
associated clock-names, matching the vendor default clock assignment,
consistent with the other UART nodes.

Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
---
 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 61 +++++++++++++++++++++++++----
 1 file changed, 54 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
index 531931cc1437c..56b015cfbd6d1 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
@@ -577,13 +577,6 @@ gpio_intc: interrupt-controller@4080 {
 					<10 11 12 13 14 15 16 17 18 19 20 21>;
 			};
 
-			uart_a: serial@78000 {
-				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
-				reg = <0x0 0x78000 0x0 0x18>;
-				interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-				status = "disabled";
-			};
-
 			gp0: clock-controller@8080 {
 				compatible = "amlogic,t7-gp0-pll";
 				reg = <0x0 0x8080 0x0 0x20>;
@@ -713,6 +706,60 @@ pwm_ao_cd: pwm@60000 {
 				status = "disabled";
 			};
 
+			uart_a: serial@78000 {
+				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
+				reg = <0x0 0x78000 0x0 0x18>;
+				interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_A>, <&xtal>;
+				clock-names = "xtal", "pclk", "baud";
+				status = "disabled";
+			};
+
+			uart_b: serial@7a000 {
+				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
+				reg = <0x0 0x7a000 0x0 0x18>;
+				interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_B>, <&xtal>;
+				clock-names = "xtal", "pclk", "baud";
+				status = "disabled";
+			};
+
+			uart_c: serial@7c000 {
+				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
+				reg = <0x0 0x7c000 0x0 0x18>;
+				interrupts = <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_C>, <&xtal>;
+				clock-names = "xtal", "pclk", "baud";
+				status = "disabled";
+			};
+
+			uart_d: serial@7e000 {
+				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
+				reg = <0x0 0x7e000 0x0 0x18>;
+				interrupts = <GIC_SPI 171 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_D>, <&xtal>;
+				clock-names = "xtal", "pclk", "baud";
+				status = "disabled";
+			};
+
+			uart_e: serial@80000 {
+				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
+				reg = <0x0 0x80000 0x0 0x18>;
+				interrupts = <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_E>, <&xtal>;
+				clock-names = "xtal", "pclk", "baud";
+				status = "disabled";
+			};
+
+			uart_f: serial@82000 {
+				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
+				reg = <0x0 0x82000 0x0 0x18>;
+				interrupts = <GIC_SPI 173 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_F>, <&xtal>;
+				clock-names = "xtal", "pclk", "baud";
+				status = "disabled";
+			};
+
 			sd_emmc_a: mmc@88000 {
 				compatible = "amlogic,t7-mmc", "amlogic,meson-axg-mmc";
 				reg = <0x0 0x88000 0x0 0x800>;

-- 
2.49.0



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/3] arm64: dts: amlogic: t7: khadas-vim4: Enable Bluetooth
  2026-04-15 11:16 [PATCH 0/3] arm64: dts: amlogic: t7: Add UART support and enable Bluetooth on VIM4 Ronald Claveau
  2026-04-15 11:16 ` [PATCH 1/3] arm64: dts: amlogic: t7: Add uart_c pinctrl pins group Ronald Claveau
  2026-04-15 11:16 ` [PATCH 2/3] arm64: dts: amlogic: t7: Add UART controllers nodes Ronald Claveau
@ 2026-04-15 11:16 ` Ronald Claveau
  2 siblings, 0 replies; 8+ messages in thread
From: Ronald Claveau @ 2026-04-15 11:16 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel,
	Ronald Claveau

Enable UART C on the Khadas VIM4 board and attach the BCM43438
 compatible Bluetooth controller to it. The node configures the RTS/CTS
hardware flow control, the associated pinmux, the power supplies (vddao_3v3
and vddao_1v8), the 32 kHz LPO clock shared with the wifi32k fixed
clock, and the GPIO lines used for host wakeup, device wakeup and
shutdown.

Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
---
 .../dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts     | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
index 69d6118ba57e7..16f648908090f 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
+++ b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
@@ -253,3 +253,22 @@ &uart_a {
 	clocks = <&xtal>, <&xtal>, <&xtal>;
 	clock-names = "xtal", "pclk", "baud";
 };
+
+&uart_c {
+	status = "okay";
+	pinctrl-0 = <&uart_c_pins>;
+	pinctrl-names = "default";
+	uart-has-rtscts;
+
+	bluetooth {
+		compatible = "brcm,bcm43438-bt";
+		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+		host-wakeup-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
+		device-wakeup-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
+		max-speed = <3000000>;
+		clocks = <&wifi32k>;
+		clock-names = "lpo";
+		vbat-supply = <&vddao_3v3>;
+		vddio-supply = <&vddao_1v8>;
+	};
+};

-- 
2.49.0



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] arm64: dts: amlogic: t7: Add uart_c pinctrl pins group
  2026-04-15 11:16 ` [PATCH 1/3] arm64: dts: amlogic: t7: Add uart_c pinctrl pins group Ronald Claveau
@ 2026-04-15 11:28   ` Xianwei Zhao
  2026-04-15 13:44     ` Ronald Claveau
  0 siblings, 1 reply; 8+ messages in thread
From: Xianwei Zhao @ 2026-04-15 11:28 UTC (permalink / raw)
  To: Ronald Claveau, Neil Armstrong, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel



On 2026/4/15 19:16, Ronald Claveau wrote:
> Add the pin multiplexing configuration for UART C (TX, RX, CTS, RTS)
> in the T7 SoC pinctrl node, required to route the UART C signals
> through the correct pads before enabling the controller.
> 
> Signed-off-by: Ronald Claveau<linux-kernel-dev@aliel.fr>
> ---
>   arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> index 7fe72c94ed623..531931cc1437c 100644
> --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> @@ -553,6 +553,18 @@ mux {
>                                                  bias-pull-up;
>                                          };
>                                  };
> +
> +                               uart_c_pins: uart_c {
node name  uart-c
> +                                       mux {
> +                                               groups = "uart_c_tx",
> +                                                        "uart_c_rx",
> +                                                        "uart_c_cts",
> +                                                        "uart_c_rts";
> +                                               bias-pull-up;
> +                                               output-high;
> +                                               function = "uart_c";
> +                                       };
> +                               };
>                          };
> 
>                          gpio_intc: interrupt-controller@4080 {


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] arm64: dts: amlogic: t7: Add UART controllers nodes
  2026-04-15 11:16 ` [PATCH 2/3] arm64: dts: amlogic: t7: Add UART controllers nodes Ronald Claveau
@ 2026-04-15 11:38   ` Xianwei Zhao
  2026-04-15 14:32     ` Ronald Claveau
  0 siblings, 1 reply; 8+ messages in thread
From: Xianwei Zhao @ 2026-04-15 11:38 UTC (permalink / raw)
  To: Ronald Claveau, Neil Armstrong, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel

Hi Ronald,

On 2026/4/15 19:16, Ronald Claveau wrote:
> Add device tree nodes for UART B through F (serial@7a000 to
> serial@82000), completing the UART controller description for the T7
> SoC. Each node includes the peripheral clock.
> 
> While at it, move the uart_a node to its correct position in the
> bus address order (0x78000) to comply with the DT requirement that
> nodes be sorted by their reg address. Complete the
> uart_a node with its peripheral clock (CLKID_SYS_UART_A) and the
> associated clock-names, matching the vendor default clock assignment,
> consistent with the other UART nodes.
> 
> Signed-off-by: Ronald Claveau<linux-kernel-dev@aliel.fr>
> ---
>   arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 61 +++++++++++++++++++++++++----
>   1 file changed, 54 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> index 531931cc1437c..56b015cfbd6d1 100644
> --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
> @@ -577,13 +577,6 @@ gpio_intc: interrupt-controller@4080 {
>                                          <10 11 12 13 14 15 16 17 18 19 20 21>;
>                          };
> 
> -                       uart_a: serial@78000 {
> -                               compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
> -                               reg = <0x0 0x78000 0x0 0x18>;
> -                               interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
> -                               status = "disabled";
> -                       };
> -
>                          gp0: clock-controller@8080 {
>                                  compatible = "amlogic,t7-gp0-pll";
>                                  reg = <0x0 0x8080 0x0 0x20>;
> @@ -713,6 +706,60 @@ pwm_ao_cd: pwm@60000 {
>                                  status = "disabled";
>                          };
> 
> +                       uart_a: serial@78000 {
> +                               compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
> +                               reg = <0x0 0x78000 0x0 0x18>;
> +                               interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
> +                               clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_A>, <&xtal>;
> +                               clock-names = "xtal", "pclk", "baud";

The xtal clock is defined in the board-level DTS file, while it is 
referenced in the DTSI file, which seems a bit unusual.

On other chips, the xtal clock is usually defined directly in the DTSI file.

> +                               status = "disabled";
> +                       };
> +
> +                       uart_b: serial@7a000 {
> +                               compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
> +                               reg = <0x0 0x7a000 0x0 0x18>;
> +                               interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
> +                               clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_B>, <&xtal>;
> +                               clock-names = "xtal", "pclk", "baud";
> +                               status = "disabled";
> +                       };
> +
> +                       uart_c: serial@7c000 {
> +                               compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
> +                               reg = <0x0 0x7c000 0x0 0x18>;
> +                               interrupts = <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>;
> +                               clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_C>, <&xtal>;
> +                               clock-names = "xtal", "pclk", "baud";
> +                               status = "disabled";
> +                       };
> +
> +                       uart_d: serial@7e000 {
> +                               compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
> +                               reg = <0x0 0x7e000 0x0 0x18>;
> +                               interrupts = <GIC_SPI 171 IRQ_TYPE_EDGE_RISING>;
> +                               clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_D>, <&xtal>;
> +                               clock-names = "xtal", "pclk", "baud";
> +                               status = "disabled";
> +                       };
> +
> +                       uart_e: serial@80000 {
> +                               compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
> +                               reg = <0x0 0x80000 0x0 0x18>;
> +                               interrupts = <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>;
> +                               clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_E>, <&xtal>;
> +                               clock-names = "xtal", "pclk", "baud";
> +                               status = "disabled";
> +                       };
> +
> +                       uart_f: serial@82000 {
> +                               compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
> +                               reg = <0x0 0x82000 0x0 0x18>;
> +                               interrupts = <GIC_SPI 173 IRQ_TYPE_EDGE_RISING>;
> +                               clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_F>, <&xtal>;
> +                               clock-names = "xtal", "pclk", "baud";
> +                               status = "disabled";
> +                       };
> +
>                          sd_emmc_a: mmc@88000 {
>                                  compatible = "amlogic,t7-mmc", "amlogic,meson-axg-mmc";
>                                  reg = <0x0 0x88000 0x0 0x800>;


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] arm64: dts: amlogic: t7: Add uart_c pinctrl pins group
  2026-04-15 11:28   ` Xianwei Zhao
@ 2026-04-15 13:44     ` Ronald Claveau
  0 siblings, 0 replies; 8+ messages in thread
From: Ronald Claveau @ 2026-04-15 13:44 UTC (permalink / raw)
  To: Xianwei Zhao
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel,
	Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley

Hello Xianwei,

On 4/15/26 1:28 PM, Xianwei Zhao wrote:
> 
> 
> On 2026/4/15 19:16, Ronald Claveau wrote:
>> Add the pin multiplexing configuration for UART C (TX, RX, CTS, RTS)
>> in the T7 SoC pinctrl node, required to route the UART C signals
>> through the correct pads before enabling the controller.
>>
>> Signed-off-by: Ronald Claveau<linux-kernel-dev@aliel.fr>
>> ---
>>   arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 12 ++++++++++++
>>   1 file changed, 12 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/
>> boot/dts/amlogic/amlogic-t7.dtsi
>> index 7fe72c94ed623..531931cc1437c 100644
>> --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
>> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
>> @@ -553,6 +553,18 @@ mux {
>>                                                  bias-pull-up;
>>                                          };
>>                                  };
>> +
>> +                               uart_c_pins: uart_c {
> node name  uart-c

I will change this, thank you for reminding me.

>> +                                       mux {
>> +                                               groups = "uart_c_tx",
>> +                                                        "uart_c_rx",
>> +                                                        "uart_c_cts",
>> +                                                        "uart_c_rts";
>> +                                               bias-pull-up;
>> +                                               output-high;
>> +                                               function = "uart_c";
>> +                                       };
>> +                               };
>>                          };
>>
>>                          gpio_intc: interrupt-controller@4080 {


-- 
Best regards,
Ronald


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] arm64: dts: amlogic: t7: Add UART controllers nodes
  2026-04-15 11:38   ` Xianwei Zhao
@ 2026-04-15 14:32     ` Ronald Claveau
  0 siblings, 0 replies; 8+ messages in thread
From: Ronald Claveau @ 2026-04-15 14:32 UTC (permalink / raw)
  To: Xianwei Zhao
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel,
	Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley

Hi Xianwei,

On 4/15/26 1:38 PM, Xianwei Zhao wrote:
> Hi Ronald,
> 
> On 2026/4/15 19:16, Ronald Claveau wrote:
>> Add device tree nodes for UART B through F (serial@7a000 to
>> serial@82000), completing the UART controller description for the T7
>> SoC. Each node includes the peripheral clock.
>>
>> While at it, move the uart_a node to its correct position in the
>> bus address order (0x78000) to comply with the DT requirement that
>> nodes be sorted by their reg address. Complete the
>> uart_a node with its peripheral clock (CLKID_SYS_UART_A) and the
>> associated clock-names, matching the vendor default clock assignment,
>> consistent with the other UART nodes.
>>
>> Signed-off-by: Ronald Claveau<linux-kernel-dev@aliel.fr>
>> ---
>>   arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 61 +++++++++++++++++++
>> ++++++----
>>   1 file changed, 54 insertions(+), 7 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/
>> boot/dts/amlogic/amlogic-t7.dtsi
>> index 531931cc1437c..56b015cfbd6d1 100644
>> --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
>> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
>> @@ -577,13 +577,6 @@ gpio_intc: interrupt-controller@4080 {
>>                                          <10 11 12 13 14 15 16 17 18
>> 19 20 21>;
>>                          };
>>
>> -                       uart_a: serial@78000 {
>> -                               compatible = "amlogic,t7-uart",
>> "amlogic,meson-s4-uart";
>> -                               reg = <0x0 0x78000 0x0 0x18>;
>> -                               interrupts = <GIC_SPI 168
>> IRQ_TYPE_EDGE_RISING>;
>> -                               status = "disabled";
>> -                       };
>> -
>>                          gp0: clock-controller@8080 {
>>                                  compatible = "amlogic,t7-gp0-pll";
>>                                  reg = <0x0 0x8080 0x0 0x20>;
>> @@ -713,6 +706,60 @@ pwm_ao_cd: pwm@60000 {
>>                                  status = "disabled";
>>                          };
>>
>> +                       uart_a: serial@78000 {
>> +                               compatible = "amlogic,t7-uart",
>> "amlogic,meson-s4-uart";
>> +                               reg = <0x0 0x78000 0x0 0x18>;
>> +                               interrupts = <GIC_SPI 168
>> IRQ_TYPE_EDGE_RISING>;
>> +                               clocks = <&xtal>, <&clkc_periphs
>> CLKID_SYS_UART_A>, <&xtal>;
>> +                               clock-names = "xtal", "pclk", "baud";
> 
> The xtal clock is defined in the board-level DTS file, while it is
> referenced in the DTSI file, which seems a bit unusual.
> 
> On other chips, the xtal clock is usually defined directly in the DTSI
> file.
> 

Thanks for your feedback.
I have tested with clock removed in the DTS, and it is ok.
I will send the modification in V2.

>> +                               status = "disabled";
>> +                       };
>> +
>> +                       uart_b: serial@7a000 {
>> +                               compatible = "amlogic,t7-uart",
>> "amlogic,meson-s4-uart";
>> +                               reg = <0x0 0x7a000 0x0 0x18>;
>> +                               interrupts = <GIC_SPI 169
>> IRQ_TYPE_EDGE_RISING>;
>> +                               clocks = <&xtal>, <&clkc_periphs
>> CLKID_SYS_UART_B>, <&xtal>;
>> +                               clock-names = "xtal", "pclk", "baud";
>> +                               status = "disabled";
>> +                       };
>> +
>> +                       uart_c: serial@7c000 {
>> +                               compatible = "amlogic,t7-uart",
>> "amlogic,meson-s4-uart";
>> +                               reg = <0x0 0x7c000 0x0 0x18>;
>> +                               interrupts = <GIC_SPI 170
>> IRQ_TYPE_EDGE_RISING>;
>> +                               clocks = <&xtal>, <&clkc_periphs
>> CLKID_SYS_UART_C>, <&xtal>;
>> +                               clock-names = "xtal", "pclk", "baud";
>> +                               status = "disabled";
>> +                       };
>> +
>> +                       uart_d: serial@7e000 {
>> +                               compatible = "amlogic,t7-uart",
>> "amlogic,meson-s4-uart";
>> +                               reg = <0x0 0x7e000 0x0 0x18>;
>> +                               interrupts = <GIC_SPI 171
>> IRQ_TYPE_EDGE_RISING>;
>> +                               clocks = <&xtal>, <&clkc_periphs
>> CLKID_SYS_UART_D>, <&xtal>;
>> +                               clock-names = "xtal", "pclk", "baud";
>> +                               status = "disabled";
>> +                       };
>> +
>> +                       uart_e: serial@80000 {
>> +                               compatible = "amlogic,t7-uart",
>> "amlogic,meson-s4-uart";
>> +                               reg = <0x0 0x80000 0x0 0x18>;
>> +                               interrupts = <GIC_SPI 172
>> IRQ_TYPE_EDGE_RISING>;
>> +                               clocks = <&xtal>, <&clkc_periphs
>> CLKID_SYS_UART_E>, <&xtal>;
>> +                               clock-names = "xtal", "pclk", "baud";
>> +                               status = "disabled";
>> +                       };
>> +
>> +                       uart_f: serial@82000 {
>> +                               compatible = "amlogic,t7-uart",
>> "amlogic,meson-s4-uart";
>> +                               reg = <0x0 0x82000 0x0 0x18>;
>> +                               interrupts = <GIC_SPI 173
>> IRQ_TYPE_EDGE_RISING>;
>> +                               clocks = <&xtal>, <&clkc_periphs
>> CLKID_SYS_UART_F>, <&xtal>;
>> +                               clock-names = "xtal", "pclk", "baud";
>> +                               status = "disabled";
>> +                       };
>> +
>>                          sd_emmc_a: mmc@88000 {
>>                                  compatible = "amlogic,t7-mmc",
>> "amlogic,meson-axg-mmc";
>>                                  reg = <0x0 0x88000 0x0 0x800>;


-- 
Best regards,
Ronald


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-04-15 14:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-15 11:16 [PATCH 0/3] arm64: dts: amlogic: t7: Add UART support and enable Bluetooth on VIM4 Ronald Claveau
2026-04-15 11:16 ` [PATCH 1/3] arm64: dts: amlogic: t7: Add uart_c pinctrl pins group Ronald Claveau
2026-04-15 11:28   ` Xianwei Zhao
2026-04-15 13:44     ` Ronald Claveau
2026-04-15 11:16 ` [PATCH 2/3] arm64: dts: amlogic: t7: Add UART controllers nodes Ronald Claveau
2026-04-15 11:38   ` Xianwei Zhao
2026-04-15 14:32     ` Ronald Claveau
2026-04-15 11:16 ` [PATCH 3/3] arm64: dts: amlogic: t7: khadas-vim4: Enable Bluetooth Ronald Claveau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox