tsy360 发表于 2015-9-2 13:07:48

.dts如何设置设备平台数据

请教各位大神,设备的平台数据如何通过.dts文件传递给驱动
比如说以kxud9为例:以前是这样传递的

struct kxud9_platform_data kxud9_data = {
        .poll_interval                = 10,
        .min_interval                = 10,
        .g_range                        = KXUD9_G_2G,
        .axis_map_x                        = 0,
        .axis_map_y                        = 1,
        .axis_map_z                        = 2,
        .negate_x                        = 0,
        .negate_y                        = 0,
        .negate_z                        = 1,
        .ctrl_regc_init                = 0xC3,
        .ctrl_regb_init                = 0x40,
        .power_on                        = kxud9_power_on,
        .power_off                        = kxud9_power_off,
};

static struct i2c_board_info i2c_devs0[] __initdata = {
        {
                I2C_BOARD_INFO("kxud9", 0x18),
                .platform_data        = &kxud9_data,
        }, {
                I2C_BOARD_INFO("wm8960", 0x1a),
                .platform_data = &wm8960_pdata,
        }
};

static void __init smdk4x12_machine_init(void)
{
        ......
        i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
        .......
}

通过.dts文件,可以将设备与驱动绑定,如果我就kxud9挂载到 i2c1上
&i2c1 {
        status = "okay";
      kxud9@18 {
                compatible = "firefly,kxud9";
                reg = <0x18>;
               
      };
};

但是不知到平台数据 kxud9_data 是如何设置进.dts中的,是在.dts文件中设置还是在其他地方
设置?
大神们给个思路,小弟不胜感激……

brandwarden 发表于 2015-9-11 11:26:53

kxud9@18 {
                compatible = "firefly,kxud9";
                reg = <0x18>;
                xxx =xxx
      };
就在这里面,然后驱动中去解析,传到platformdata
页: [1]
查看完整版本: .dts如何设置设备平台数据