项目中使用到了cmt2300a,但供应商只有运行在stm32平台的示例代码,那只能自己移植了,供大家参考。
dts配置
cmt2300a {
compatible = "cmostek,cmt2300a";
en-gpios = <&ap_gpio 73 GPIO_ACTIVE_HIGH>;
clk-gpios = <&ap_gpio 134 GPIO_ACTIVE_HIGH>;
sdio-gpios = <&ap_gpio 136 GPIO_ACTIVE_HIGH>;
csb-gpios = <&ap_gpio 139 GPIO_ACTIVE_HIGH>;
fcsb-gpios = <&ap_gpio 138 GPIO_ACTIVE_HIGH>;
gpio1-gpios = <&ap_gpio 137 GPIO_ACTIVE_HIGH>;
gpio2-gpios = <&ap_gpio 40 GPIO_ACTIVE_HIGH>;
};
非标准的spi的接口,使用gpio来模拟spi
en-gpios芯片使能脚
gpio1-gpios代表发送完成(cmt2300a触发INT1/拉高)
gpio2-gpios代表接收完成(cmt2300a触发INT2/拉高)
当然可以也可以配置,默认为
CMT2300A_ConfigGpio(
CMT2300A_GPIO1_SEL_INT1 | /* INT1 > GPIO1 */
CMT2300A_GPIO2_SEL_INT2 | /* INT2 > GPIO2 */
CMT2300A_GPIO3_SEL_DOUT
);
如配置
CMT2300A_ConfigGpio(
CMT2300A_GPIO2_SEL_INT1 | /* INT1 > GPIO2 */
CMT2300A_GPIO1_SEL_INT2 | /* INT2 > GPIO1 */
CMT2300A_GPIO3_SEL_DOUT
);
emt2300收发异步,只能处于一个状态