各位大侠,我现在弱爆了,真心求助,请大家帮我解决一个问题
我现在在做一个SPI驱动,我这个SPI驱动是需要中断信号线,复位信号线的,在SPI从设备驱动里面,他需要我把中断和复位,还有片选的IO给传进去
以前我做SPI驱动的时候都是在board-xxx.c文件里面,直接在static struct spi_board_info __initdata cm_a510_spi_flash_info = {
{
.modalias = “m25p80”,
.platform_data = &fpc1020_platform_data ,
.irq = -1,
.max_speed_hz = 20000000,
.bus_num = 0,
.chip_select = 0,
},
};
然后比如说把这些中断,复位,片选通过platform_data传进去,我现在的这个SPI驱动要求通过平台数据传进去,在驱动里面我的平台数据结构体是这样定义的
struct fpc1020_platform_data {
int irq_gpio;
int reset_gpio;
int cs_gpio;
int external_supply_mv;
int txout_boost;
};
所以我就修改了dts中对应SPI的部分&spi0 {
status = “okay”;
max-freq = <48000000>;
fpc1020@00 {
compatible = “fpc,fpc1020”;
reg = <0>;
spi-max-frequency = <24000000>;
// spi-cpha;
// spi-cpol;
irq_gpio = <&gpio0 GPIO_A7 GPIO_ACTIVE_HIGH>;
reset_gpio = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;
cs_gpio = <&gpio7 GPIO_A4 GPIO_ACTIVE_HIGH>;
poll_mode = <0>;
type = <0>;
enable_dma = <0>;
};
};
我把这些平台数据定义为 irq_gpio = <&gpio0 GPIO_A7 GPIO_ACTIVE_HIGH>;
reset_gpio = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;
cs_gpio = <&gpio7 GPIO_A4 GPIO_ACTIVE_HIGH>;在dts里面,这样可以吗
我发现我这样定义后,似乎这些中断,复位,片选还是没有传到我的驱动里面去,我的驱动现在的确要求我通过spi的platform_data传进去,我这样的格式在dts中定义对吗,各位高手指点下,如果我说的不清楚,我可以再描述啊!