如何解决从 dts 文件读取数据时 devm_clk_get 失败
我正在尝试加载一些内核模块,它从 DTS 文件中读取参数。 DTS文件摘录:
can0_osc: oscillator {
compatbile = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
clock-output-names = "can0_osc";
clock-names = "can0";
};
spi1 {
compatible = "spi-gpio";
gpio-sck = <&gpio 25 GPIO_ACTIVE_HIGH>;
gpio-mosi = <&gpio 26 GPIO_ACTIVE_HIGH>;
gpio-miso = <&gpio 27 GPIO_ACTIVE_HIGH>;
cs-gpios = <&gpio 28 GPIO_ACTIVE_HIGH>;
num-chipselects = <1>;
mcp2517fd: mcp2517fd@0 {
compatible = "microchip,mcp2517fd";
status = "okay";
reg = <0>;
clocks = <&can0_osc 0>;
clock-names = "mcp_clock";
spi-max-frequency = <16000000>;
interrupt-parent= <&gpio>;
interrupts = <11 0x8>;
};
};
如果我尝试使用
读取时钟生成器devm_clk_get(&spi->dev,"can0_osc");
或
devm_clk_get(&spi->dev,"mcp_clock");
关注
if (IS_ERR(clk))
我收到错误,无法继续加载。我是否需要修改 DTS 文件以满足 devm_clk_get() 的需要?如果是这样,该怎么做? 也许我应该使用其他函数(而不是 devm_clk_get)来读取时钟参数?实际上,我试图描述频率为 40 MHz 的固定时钟。
目前我在 Linux Kernel 5.4.89 上使用 OpenWRT。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。