使用设备树在 linux 中强制将 SD 卡检测为 SDR50
Force SD card Detection as SDR50 in linux using device tree
我的任务是在 ARM linux 环境中测试 SD/MMC 驱动程序。我正在尝试测试驱动程序的 SDR50 功能。我的 SD 卡同时支持 SDR104 和 SDR50。默认情况下被检测为 SDR104 设备。
我对设备树还很陌生。我想知道我是否可以在设备树中禁用驱动程序的 SDR104 支持以强制将我的 SD 卡检测为 SDR50 设备?
我找不到任何这样做的在线示例。请协助。
谢谢。
sdhci@ff160000 {
compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
interrupt-parent = <&gic>;
interrupts = <0x0 0x30 0x4>;
reg = <0x0 0xff160000 0x0 0x1000>;
clock-names = "clk_xin", "clk_ahb";
xlnx,device_id = <0x0>; };
在 arasan,sdhci-8.9a
device 的设备树绑定文档中,您可以找到特定于该设备的所有设备树属性。在该文档的顶部,您会注意到绑定只是添加到 MMC 卡的通用设备树绑定上,位于内核源代码树中的 Documentation/devicetree/bindings/mmc/mmc.txt
。
所以现在,您需要查看 that file。具体来说,我认为您会对以下绑定感兴趣:
max-frequency
: maximum operating clock frequency
sd-uhs-sdr50
: SD UHS SDR50 speed is supported
sd-uhs-sdr104
: SD UHS SDR104 speed is supported
我认为强制 SDR50 速度的最佳选择是将 max-frequency
设置为 SDR50 的最大频率。根据我的研究,SDR50 最高支持 100 MHz,因此您可以将最大频率设置为:
/* Frequency in Hz - can be decimal or hex */
max-frequency = <100000000>
模式是主机控制器功能和检测到的卡功能之间的权衡(协商)。在任何情况下,主机端都可以强制进入较慢的模式。
模式选择与主机驱动程序相关,设备树可能并不总是可行。我建议打开适当的驱动程序并禁用 HS200/HS400 capabilities/flags,以便模式仅限于 sdr50,或任何需要的模式。
我的任务是在 ARM linux 环境中测试 SD/MMC 驱动程序。我正在尝试测试驱动程序的 SDR50 功能。我的 SD 卡同时支持 SDR104 和 SDR50。默认情况下被检测为 SDR104 设备。
我对设备树还很陌生。我想知道我是否可以在设备树中禁用驱动程序的 SDR104 支持以强制将我的 SD 卡检测为 SDR50 设备?
我找不到任何这样做的在线示例。请协助。
谢谢。
sdhci@ff160000 {
compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
interrupt-parent = <&gic>;
interrupts = <0x0 0x30 0x4>;
reg = <0x0 0xff160000 0x0 0x1000>;
clock-names = "clk_xin", "clk_ahb";
xlnx,device_id = <0x0>; };
在 arasan,sdhci-8.9a
device 的设备树绑定文档中,您可以找到特定于该设备的所有设备树属性。在该文档的顶部,您会注意到绑定只是添加到 MMC 卡的通用设备树绑定上,位于内核源代码树中的 Documentation/devicetree/bindings/mmc/mmc.txt
。
所以现在,您需要查看 that file。具体来说,我认为您会对以下绑定感兴趣:
max-frequency
: maximum operating clock frequencysd-uhs-sdr50
: SD UHS SDR50 speed is supportedsd-uhs-sdr104
: SD UHS SDR104 speed is supported
我认为强制 SDR50 速度的最佳选择是将 max-frequency
设置为 SDR50 的最大频率。根据我的研究,SDR50 最高支持 100 MHz,因此您可以将最大频率设置为:
/* Frequency in Hz - can be decimal or hex */
max-frequency = <100000000>
模式是主机控制器功能和检测到的卡功能之间的权衡(协商)。在任何情况下,主机端都可以强制进入较慢的模式。
模式选择与主机驱动程序相关,设备树可能并不总是可行。我建议打开适当的驱动程序并禁用 HS200/HS400 capabilities/flags,以便模式仅限于 sdr50,或任何需要的模式。