[PATCH v2 1/1] arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for wkup_uart0
Kevin Hilman
khilman at kernel.org
Tue Dec 5 10:13:57 PST 2023
Tony Lindgren <tony at atomide.com> writes:
> The devices in the wkup domain are capable of waking up the system from
> suspend. We can configure the wkup domain devices in a generic way using
> the ti-sysc interconnect target module driver like we have done with the
> earlier TI SoCs.
>
> As ti-sysc manages the SYSCONFIG related registers independent of the
> child hardware device, the wake-up configuration is also set even if
> wkup_uart0 is reserved by sysfw.
>
> The wkup_uart0 device has interconnect target module register mapping like
> dra7 wkup uart. There is a 1 MB interconnect target range with one uart IP
> block in the target module. The power domain and clock affects the whole
> interconnect target module.
>
> Note we change the functional clock name to follow the ti-sysc binding
> and use "fck" instead of "fclk".
>
> Tested-by: Dhruva Gole <d-gole at ti.com>
> Signed-off-by: Tony Lindgren <tony at atomide.com>
> ---
>
> Changes since v1:
>
> - Added Tested-by from Dhruva
>
> ---
> arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi | 33 ++++++++++++++++++----
> 1 file changed, 27 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi
> --- a/arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi
> @@ -5,6 +5,8 @@
> * Copyright (C) 2020-2022 Texas Instruments Incorporated - https://www.ti.com/
> */
>
> +#include <dt-bindings/bus/ti-sysc.h>
> +
> &cbass_wakeup {
> wkup_conf: syscon at 43000000 {
> bootph-all;
> @@ -21,14 +23,33 @@ chipid: chipid at 14 {
> };
> };
>
> - wkup_uart0: serial at 2b300000 {
> - compatible = "ti,am64-uart", "ti,am654-uart";
> - reg = <0x00 0x2b300000 0x00 0x100>;
> - interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
> + target-module at 2b300000 {
> + compatible = "ti,sysc-omap2", "ti,sysc";
> + reg = <0 0x2b300050 0 0x4>,
> + <0 0x2b300054 0 0x4>,
> + <0 0x2b300058 0 0x4>;
> + reg-names = "rev", "sysc", "syss";
> + ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP |
> + SYSC_OMAP2_SOFTRESET |
> + SYSC_OMAP2_AUTOIDLE)>;
> + ti,sysc-sidle = <SYSC_IDLE_FORCE>,
> + <SYSC_IDLE_NO>,
> + <SYSC_IDLE_SMART>,
> + <SYSC_IDLE_SMART_WKUP>;
> + ti,syss-mask = <1>;
> power-domains = <&k3_pds 114 TI_SCI_PD_EXCLUSIVE>;
> clocks = <&k3_clks 114 0>;
I'm a little confused why these power-domain and clocks stay here and
are not moved under the wkup_uart0 node...
> - clock-names = "fclk";
> - status = "disabled";
> + clock-names = "fck";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0 0 0x2b300000 0x100000>;
> +
> + wkup_uart0: serial at 2b300000 {
> + compatible = "ti,am64-uart", "ti,am654-uart";
> + reg = <0 0x100>;
> + interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
...here.
The SCI device ID 114 is specifically for wkup_uart0[1], so it seems to
me those should be in the wkup_uart0 node.
Kevin
[1] https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/am62x/devices.html
More information about the linux-arm-kernel
mailing list