TI中文支持网
TI专业的中文技术问题搜集分享网站

关于am335x中使用cdce913,如果配置为50MHz输出

我现在am335x的板子上使用的是cdce913,因为我用的网络一个是rgmii一个是rmii,rmii输出需要50MHz,我将这个时钟连接到cdce913的Y2上面了,但是无论我怎么配置,Y2最小的输出都是80MHz,我知道他的pll最小是80MHz,但是后面还有分频器啊,应该可以输出50MHz的时钟,这个我在设备树中应该如何设置呢!我的期望是Y1\25MHz,Y2\50MHz,Y3\25MHz或者50MHz也行。

Shine:

看一下board.c里的配置
/*** RMII mode on ICEv2 board needs 50MHz clock. Given the clock* synthesizer With a capacitor of 18pF, and 25MHz input clock cycle* PLL1 gives an output of 100MHz. So, configuring the div2/3 as 2 to* give 50MHz output for Eth0 and 1.*/
static struct clk_synth cdce913_data = {.id = 0x81,.capacitor = 0x90,.mux = 0x6d,.pdiv2 = 0x2,.pdiv3 = 0x2,
};
#endif

user5850447:

回复 Shine:

你好,非常感谢,这个是uboot里面的,但是如果在linux中,用设备树控制,那么设备树里面应该怎么设置呢!我看了,cdce913的设备树,也试过就是配置不出来50MHz

Shine:

回复 user5850447:

看了\Documentation\devicetree\bindings\clock\ti,cdce925.txt文档吗?里面有在设备树里如何配置cdce913。
另外,请参考下面帖子里的配置。
e2e.ti.com/…/3199353

user5850447:

回复 Shine:

再次感谢,我如果在uboot中写寄存器是可以实现913的输出50MHz的功能的,但是现在我想在linux的设备树中配置一下,达到这个要求,上面的文档我都查看过,我是先查看的文档和搜索相关的问题,没有得到答案,然后来提问的,非常感谢您的热心解答!
CDCE913我的配置是这样的:cdce913: cdce913@65 {//地址为0x65compatible = "ti,cdce913";reg = <0x65>;clocks = <&xtal25mhz>; //输入时钟选择,这里为25mhz#clock-cells = <1>;/* 提供多个输出 *//* xtal-load-pf = <18>;*//* PLL options to get SSC 1% centered */PLL1 {spread-spectrum = <4>;//时钟精度,看数据手册,这里选1%spread-spectrum-center;
//clock-frequency = <50000000>;};
/* cdce913的输入时钟配置 */xtal25mhz: xtal25mhz {compatible = "fixed-clock";#clock-cells = <0>;/* 提供一个输出 */clock-frequency = <25000000>;};};

因为在说明文档中提到过,cdce913系列,默认Y1直连晶振,Y2、Y3连PLL1,所以Y1不用设置,直接就是输入时钟的频率,然后我在PLL1中加入到下面的语句
//clock-frequency = <50000000>;
设置时钟的频率,但是得到的时钟频率最小都是80MHz,大于80MHz没问题,可以得到,我知道这个芯片的PLL1的最小倍频就是80MHz,但是他后面还有分频器啊,在设备树中如果设置这个分频器的值,我并没有找到!
还是说ti提供的驱动,不支持80MHz一下的频率输出呢?
这个我非常想知道!万分感谢!因为我不想将这个频率配置死,我如果切换到pru的mii模式,频率还是要调回到25MHz的。

user5850447:

回复 Shine:

还有,上面你提到的帖子,我都查看了,没有得到想要的答案!

Shine:

回复 user5850447:

建议您到e2e时钟论坛上咨询一下怎么配置 cdce913输出50MHz。
e2e.ti.com/…/48

赞(0)
未经允许不得转载:TI中文支持网 » 关于am335x中使用cdce913,如果配置为50MHz输出
分享到: 更多 (0)