Re: [PATCH v7 5/6] arm64: dts: marvell: armada-37xx: add device node for UART clock and use it

From: Gregory CLEMENT
Date: Wed Oct 13 2021 - 10:13:31 EST


Hello Pali,

> This change defines DT node for UART clock "marvell,armada-3700-uart-clock"
> and use this UART clock as a base clock for all UART devices.
>
> Signed-off-by: Pali Rohár <pali@xxxxxxxxxx>
>
> ---
> Changes in v6:
> * Do not disable uartclk by default
> * Rename node to clock-controller@12010
> ---
> arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
> index 9acc5d2b5a00..f9bfe73d8ec2 100644
> --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
> +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
> @@ -132,10 +132,20 @@
> reg = <0x11500 0x40>;
> };
>
> + uartclk: clock-controller@12010 {
> + compatible = "marvell,armada-3700-uart-clock";
> + reg = <0x12010 0x4>, <0x12210 0x4>;
> + clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
> + <&tbg 3>, <&xtalclk>;
> + clock-names = "TBG-A-P", "TBG-B-P", "TBG-A-S",
> + "TBG-B-S", "xtal";
> + #clock-cells = <1>;
> + };
> +
> uart0: serial@12000 {
> compatible = "marvell,armada-3700-uart";
> reg = <0x12000 0x18>;
> - clocks = <&xtalclk>;
> + clocks = <&uartclk 0>;

What happens if we have a new kernel using on old device tree ?

Gregory

> interrupts =
> <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
> <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
> @@ -147,7 +157,7 @@
> uart1: serial@12200 {
> compatible = "marvell,armada-3700-uart-ext";
> reg = <0x12200 0x30>;
> - clocks = <&xtalclk>;
> + clocks = <&uartclk 1>;
> interrupts =
> <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
> <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
> --
> 2.20.1
>

--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com