iMX6平台mcp2515驱动调试.
版本 | 日期 | 作者 | 内容 | 状态 |
---|---|---|---|---|
1.0.0 | 2024-05-23 | Bepractical | 创建文档: 创建文件 | 未发布 |
第一步:增加SPI2节点
1. 编写设备树文件,增加ecspi2节点信息
kernel_imx\arch\arm\boot\dts\imx6qdl-sabresd.dtsi
&ecspi2 {
fsl,spi-num-chipselects = <1>;
cs-gpios = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>,<&pinctrl_ecspi2_cs>;
status = "okay";
spidevtest: spidevtest@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "rohm,dh2228fv";
spi-max-frequency = <20000000>;
reg = <0>;
};
};
pinctrl_ecspi2: ecspi2grp {
fsl,pins = <
MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100b1
MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x100b1
MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x100b1
>;
};
pinctrl_ecspi2_cs: ecspi2csgrp {
fsl,pins = <
MX6QDL_PAD_EIM_RW__ECSPI2_SS0 0x100b1
>;
};
2. SPI2引脚与原驱动冲突
- 删除原驱动中
EIM_CS0/GPIO2_IO23/ECSPI2_SCLK
引脚配置 - 删除原驱动中
EIM_CS1/GPIO2_IO24/ECSPI2_MOSI
引脚配置 - 删除原驱动中
EIM_OE/GPIO2_IO25/ECSPI2_MISO
引脚配置 - 删除原驱动中
EIM_RW/GPIO2_IO26/ECSPI2_SS0
引脚配置
kernel_imx\drivers\fhsj\gpio\fhsj_utils.c
// {PIN_UART_SELECT, GPIOF_IN, "UART_SELECT"},
// {PIN_BFXT, GPIOF_IN, "BFXT"},
// {PIN_LED_QZQD, GPIOF_INIT_LOW, "LED_QZQD"},
// {PIN_BEEP_24V_T, GPIOF_INIT_HIGH, "BEEP_24V"},
kernel_imx\arch\arm\boot\dts\imx6qdl-sabresd.dtsi
pinctrl_hog: hoggrp {
fsl,pins = <
MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x80000000
MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x80000000
MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x80000000
MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x80000000
MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000
// MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x80000000
MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x80000000
MX6QDL_PAD_SD1_CMD__GPIO1_IO18 0x80000000
MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x80000000
MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x80000000
MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000
MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x80000000
MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x80000000
MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x80000000
MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x1b0b0
MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x1b0b0
MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x1b0b0
MX6QDL_PAD_EIM_A23__GPIO6_IO06 0x1b0b0
MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x1b0b0
MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b0
MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x1b0b0
MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b0
MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x80000000
MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x80000000
MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x80000000
MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x80000000
MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0
MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x80000000
MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0
MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x80000000
MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x80000000
MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x80000000
MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x80000000
MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x80000000
MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000
MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x80000000
MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x80000000
MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x80000000
MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x80000000
//add --20200428-zxy
// MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x80000000
// MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x80000000
//add --20200428-zxy
// MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x80000000
MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x80000000
MX6QDL_PAD_EIM_EB0__GPIO2_IO28