This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

am437x clkout2分频设置



目的:am437x clkout2 输出24mhz频率,作为ov2659的工作频率;

思路:根据TRM P280 Figure6-17以及P436 Table6-162,CLKOUT2SOURCE选择PER_CLKOUT_M2(192mhz),然后CLKOUT2DIV选择SYS_CLKOUT2/8,最终clkout2得到24mhz的频率。

做法:在am437x-gp-evm.dts中,指定clkout2_mux_ck为dpll_per_m2_ck(192mhz),经过示波器测量clkout2输出192mhz,

问题:am43xx-clock.dtsi和am437x-gp-evm.dts还要如何修改才能将192mhz进行8分频?

  • SDK中有个文档做了相关描述,建议你按照这个配置方式来试试。

    位置如下:

    steven@steven-VirtualBox:~/git_repository/ti-processor-sdk-linux-am437x-evm-03.03.00.04/board-support/linux-4.4.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d/Documentation/devicetree/bindings/clock/ti$ vim gate.txt 

    sys_clkout2_src_gate: sys_clkout2_src_gate {
    #clock-cells = <0>;
    compatible = "ti,composite-no-wait-gate-clock";
    clocks = <&core_ck>;
    ti,bit-shift = <15>;
    reg = <0x0070>;

  • 你好,我之前在Documentation/devicetree/bindings/clock以及Documentation/devicetree/bindings/clock/ti/找遍了clock相关的解释,只在divider-clock.txt找到一些分频表的解释,但是不知道如何向内核传递分频比。我的内核版本是3.12.10,

    不过我现在用了一个投机取巧的方法:直接在驱动源码drivers/clk/clk-divider.c中,添加了下图的内容,结果就得到了24mhz

    0x10073根据TRM算出来的,count=12是因为内核在初始化设备树时是按先后顺序执行的,而clkout2_div_ck刚好是第12个