在我的硬件中,采用clkout2 作为tlv320aic3101的MCLK。我想将它设置成25MHZ
具体想这样:
OSC –> CORE PLL–> CORE_CLKOUTM4 –> L3F_CLK(200MHZ) –> CLKOUT2 (25MHZ)
从手册中看到设置CM_CLKOUT_CTRL寄存器可选择时钟源和分频比。
我从am33xx-clock.dts中看到:
sysclkout_pre_ck: sysclkout_pre_ck@44e00700 {
#clock-cells = <0>;
compatible = "mux-clock";
clocks = <&clk_32768_ck>, <&l3_gclk>, <&dpll_ddr_m2_ck>, <&dpll_per_m2_ck>, <&lcd_gclk>;
reg = <0x44e00700 0x4>; 这里寄存器的值何时被设置呢?
bit-mask = <0x7>;
};
clkout2_div_ck: clkout2_div_ck@44e00700 {
#clock-cells = <0>;
compatible = "divider-clock";
clocks = <&sysclkout_pre_ck>;
bit-shift = <3>;
reg = <0x44e00700 0x4>; table = < 1 0 >, < 2 1 >, < 3 2 >, < 4 3 >, < 5 4 >, < 6 5 >, < 7 6 >, < 8 7 >;
bit-mask = <0x7>;
};
clkout2_ck: clkout2_ck@44e00700 {
#clock-cells = <0>;
compatible = "gate-clock";
clocks = <&clkout2_div_ck>;
bit-shift = <7>;
reg = <0x44e00700 0x4>;
};
我的问题是:我应该在内核或者uboot代码中显示的设置寄存器,还是只需要在dts文件中设置呢?请各位指教!
Jian Zhou:
codec肯定是在Linux里面初始化的,因此在dts文件里初始化就可以了。
user5063720:
你好,请问是如何将clkout2配置成25mhz的呢?能否说明一下设备树是怎么修改的呢?