linux dts spiflash分区,dts中修改SPI,如何实现SPI平台数据在dts中的实现?

HI,linjc

我刚才看了下那个RK平台一直3.10内核的文档,那个是主要针对I2C的呢,SPI应该和他类似吧,

现在我需要传进去3个参数,分别是irq_gpio   reset_gpio  cs_gpio,

我把我的spi dts定义修改如下:

&spi0 {

status = "okay";

max-freq = <48000000>;

fpc1020@00 {

compatible = "fpc,fpc1020";

reg = <0>;

spi-max-frequency = <24000000>;

//  spi-cpha;

//  spi-cpol;

irq_gpio = ;

reset_gpio = ;

cs_gpio    = ;

poll_mode = <0>;

type = <0>;

enable_dma = <0>;

};

};

不知道我这样修改对不对,反正我当前似乎感觉没有传进去

另外,我的驱动是供应商给的,我感觉不动驱动似乎好一点的哦

fpc1020_pdata = spi->dev.platform_data;

if (!fpc1020_pdata) {

error = fpc1020_get_of_pdata(dev, &pdata_of);

fpc1020_pdata = &pdata_of;

if (error)

goto err;

}

我的驱动似乎是通过fpc1020_get_of_pdata这样一个函数去获取平台数据的

这个函数fpc1020_get_of_pdata的定义如下:

static int __devinit fpc1020_get_of_pdata(struct device *dev,

struct fpc1020_platform_data *pdata)

{

const struct device_node *node = dev->of_node;

/* required properties */

const void *irq_prop = of_get_property(node, "fpc,gpio_irq",   NULL);

const void *rst_prop = of_get_property(node, "fpc,gpio_reset", NULL);

const void *cs_prop  = of_get_property(node, "fpc,gpio_cs",    NULL);

/* optional properties */

const void *vddtx_prop = of_get_property(node, "fpc,vddtx_mv", NULL);

const void *boost_prop =

of_get_property(node, "fpc,txout_boost_enable", NULL);

if (node == NULL) {

dev_err(dev, "%s: Could not find OF device node\n", __func__);

goto of_err;

}

if (!irq_prop || !rst_prop || !cs_prop) {

dev_err(dev, "%s: Missing OF property\n", __func__);

goto of_err;

}

pdata->irq_gpio   = be32_to_cpup(irq_prop);

pdata->reset_gpio = be32_to_cpup(rst_prop);

pdata->cs_gpio    = be32_to_cpup(cs_prop);

pdata->external_supply_mv =

(vddtx_prop != NULL) ? be32_to_cpup(vddtx_prop) : 0;

pdata->txout_boost = (boost_prop != NULL) ? 1 : 0;

return 0;

of_err:

pdata->reset_gpio = -EINVAL;

pdata->irq_gpio   = -EINVAL;

pdata->cs_gpio    = -EINVAL;

pdata->external_supply_mv = 0;

pdata->txout_boost = 0;

return -ENODEV;

}

我现在就在想,供应商的驱动应该不用修改吧,我会不会是SPI DTS修改的不够对呢,以前是可以直接定义一个结构体,然后把这几个引脚的定义放在platform_data里面就好了,现在变为了DTS,我应该只要把他修改对就OK了吧,不用修改供应商的驱动吧

看看你能不能再给我一些好的建议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值