1.首先查看:tq_imx8mp_sdk/kernel-6.1.55/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
&usdhc1 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
bus-width = <4>;
non-removable;
disable-wp;
/* WiFi firmware requires power in suspend */
keep-power-in-suspend;
vmmc-supply = <®_wifi_en>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
rtl8821cs: wifi@1 {
reg = <1>;
};
};
rtl8821cs: wifi:其标明sdio总线上有wifi模块,那么sdio在初始化的时候会通过cmd总线读取外设的寄存器,从而在/sys/bus/sdio/devices/mmc0:0001:1/modalias下生成数据:sdio:c07v024CdC821
2.udev或者kmod(modalias机制)会在/lib/modules/(uname -r)/modules.alias寻找,当找到上面的数据,则load对应的模块
数据为alias sdio:cv024CdC821 rtw88_8821cs,那么就会loadrtw88_8821cs模块