Am 05.09.2023 um 17:48 schrieb H. Nikolaus Schaller hns@goldelico.com:
Am 05.09.2023 um 17:09 schrieb H. Nikolaus Schaller hns@goldelico.com:
Hi,
Am 05.09.2023 um 16:44 schrieb Andreas Kemnade andreas@kemnade.info:
On Tue, 5 Sep 2023 14:42:03 +0200 "H. Nikolaus Schaller" hns@goldelico.com wrote:
Hi Tony,
Am 05.09.2023 um 08:12 schrieb Tony Lindgren tony@atomide.com:
The key observation is that the abe_iclk references in the DTS seem to be nowhere referenced
(which may or may not be an issue):
https://github.com/goldelico/letux-kernel/blob/letux/aess-v12/arch/arm/boot/... https://github.com/goldelico/letux-kernel/blob/letux/aess-v12/arch/arm/boot/...
So I guess the ick is in the dts the ocp_abe_iclk@528 for omap4 and abe_iclk@528 for omap5. Seems like the driver should request them, I recall that the interconnect target module does not need the ick to access sysc and revision registers.
Yes, that is what I suspect but I don't know how to request them.
add ,"ick" to the clock-names line in the target-module? and ,<&ocp_abe_iclk> to the target module?
You mean
diff --git a/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi b/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi index 7ca7b369b4e59..aa140a8bb9f29 100644 --- a/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi +++ b/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi @@ -482,8 +482,8 @@ target-module@f1000 { /* 0x401f1000, ap 32 20.0 */ <SYSC_IDLE_NO>, <SYSC_IDLE_SMART>; /* Domains (V, P, C): iva, abe_pwrdm, abe_clkdm */
clocks = <&abe_clkctrl OMAP4_AESS_CLKCTRL 0>;
clock-names = "fck";
clocks = <&abe_clkctrl OMAP4_AESS_CLKCTRL 0>, <&ocp_abe_iclk>;
clock-names = "fck", "ick"; #address-cells = <1>; #size-cells = <1>;
Well, certainly worth trying!
A quick test on PandaES shows that the ick is (or becomes) active (I have not yet compared to without above patch):
root@letux:~# ls -l /sys/kernel/debug/clk/ocp_abe_iclk total 0 -r--r--r-- 1 root root 0 Jan 1 1970 clk_accuracy -r--r--r-- 1 root root 0 Jan 1 1970 clk_duty_cycle -r--r--r-- 1 root root 0 Jan 1 1970 clk_enable_count -r--r--r-- 1 root root 0 Jan 1 1970 clk_flags -r--r--r-- 1 root root 0 Jan 1 1970 clk_max_rate -r--r--r-- 1 root root 0 Jan 1 1970 clk_min_rate -r--r--r-- 1 root root 0 Jan 1 1970 clk_notifier_count -r--r--r-- 1 root root 0 Jan 1 1970 clk_parent -r--r--r-- 1 root root 0 Jan 1 1970 clk_phase -r--r--r-- 1 root root 0 Jan 1 1970 clk_prepare_count -r--r--r-- 1 root root 0 Jan 1 1970 clk_protect_count -r--r--r-- 1 root root 0 Jan 1 1970 clk_rate root@letux:~# cat /sys/kernel/debug/clk/ocp_abe_iclk/* 0 1/2 1 4294967295 0 0 abe-clkctrl:0008:24 0 1 0 49152000 root@letux:~#
There is indeed a difference after removing, recompiling, rebooting:
root@letux:~# cat /sys/kernel/debug/clk/ocp_abe_iclk/* 0 1/2 0 <---- 4294967295 0 0 abe-clkctrl:0008:24 0 0 <---- 0 49152000 root@letux:~#
BR, Nikolaus