IMX6ULL Clocks default Setting done in the image confusion

I am working on Col iMX6ULL 512 MB IT V1.0 A SOM and Colibri Evaluation Board 3.2 B.
Q1) Actually i am trying to generate the PWM6 (PWMC of Toradex) output for 20MHz, but upto 12 MHz only output generating, after that CRO is showing Continuous High. I am setting the period according to PWM(Linux) explanation of Toradex. In period i am passing 50 and duty cycle 25 for 20 MHz PWM but not working. Please tell me how get required frequency(20 MHz). I have Executed Following Command and there i have observed PWM rate is 24 MHz.
“root@colibri-imx6ull:~# cat /sys/kernel/debug/clk/clk_summary” . Clock Summary Provided as attachmentlink text.
Q2) For ECSPI according to timing diagrams read requires 43 ns so 23 MHz only possible for clock, but up to 20 MHz only Clock is generating even though i have requested for above 20 MHz. Why?
while checking clock summary for Q1, i have seen that ECSPI Frequency Rate is showing 20 Mhz. How it is arrived, Please explain.
Q3) How to modify /Select the Clock Sources from User Space(like for PWM,SPI etc). Please Provide the Example Source Code. In imx6ul-clock.h clocks are defined with sequential serial numbers. how these are related to clocks and same are used in dts files against clocks. So please provide the relation for these sequential numbers (defined in imx6ul-clock.h)vs actual clocks. i.e. refer the relevant documentation.
I am Providing the Clock summary as text.Please Explain the fields in clk_summary how they are related.

Hi @vemula

Could you please provide me the steps to reproduce the issue at our end and attach error logs(if any).