一、平台及系统说明
NXP I.MX8MM平台,Linux内核版本4.14
二、内核配置
三、设备树配置
1.引脚配置
pinctrl_ecspi2: ecspi2grp {
fsl,pins = <
MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x1c2
MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82
MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82
// MX8MM_IOMUXC_ECSPI2_SS0_ECSPI2_SS0 0x82
MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x19
>;
};
pinctrl_w5500_irq: w5500irq {
fsl,pins = <
MX8MM_IOMUXC_ECSPI1_SCLK_GPIO5_IO6 0x19
>;
};
2.ESSPI配置
&ecspi2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>;
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
status = "okay";
spi-eth@0x00{
reg = <0>;
// #spi-cpha = <0>;
// #spi-cpol = <0>;
mode=<0>;
spi-max-frequency = <80000000>;
status = "okay";
pinctrl-names = "default";
compatible = "w5500";
pinctrl-0 = <&pinctrl_w5500_irq>;
interrupt-parent = <&gpio5>;
interrupts = <6 IRQ_TYPE_LEVEL_LOW>;// gpio5 6 irq low level
};
};
修改设备树时需要注意spi接口的CS引脚,使用系统配置MX8MM_IOMUXC_ECSPI2_SS0_ECSPI2_SS0时,示波器可抓取到完整的波形,CS引脚也有信号,但是无法读取正确的寄存器信息。只有将片选信号改成IO口操作时,才能正确读取寄存器信息!
四、编译及加载
需改完成后重新编译,将设备树拷贝到目标板卡,板卡上电启动后,将w5100-spi.ko和w5100.ko两个文件传输到板卡指定目录,依次加载驱动,insmod w5100.ko && insmod w5100-spi.ko,移植成功后,将会有新的网口出现。