debug msensor dts配置不生效
dts:
99 msensor@0c {
100 i2c_num = <2>;
101 i2c_addr = <0x0c 0 0 0>;
102 direction = <2>;
103 power_id = <0xffff>;
104 power_vol = <0>;
105 is_batch_supported = <0>;
106 };
code:
177 int get_mag_dts_func(struct device_node *node, struct mag_hw *hw)
178 {
179 int i, ret;
180 u32 i2c_num[] = {0};
181 u32 i2c_addr[M_CUST_I2C_ADDR_NUM] = {0};
182 u32 direction[] = {0};
183 u32 power_id[] = {0};
184 u32 power_vol[] = {0};
185 u32 is_batch_supported[] = {0};
186
187 SENSOR_LOG("Device Tree get mag info!\n");
188 SENSOR_LOG("Device Tree get mag info name = %s type = %s full_name = %s \n", node->name, node->type, node->full_name);// add for dbug
189 if (node) {
190 ret = of_property_read_u32_array(node, "i2c_num", i2c_num, ARRAY_SIZE(i2c_num));
191 if (ret == 0)
192 hw->i2c_num = i2c_num[0];
1)打印返回值,发现ret 为-22;
2)增加LOG 打印 node的具体路径:
[ 8.373278] <2>.(3)[1:swapper/0][name:sensor_dts&][Sensor dts] Device Tree get mag info name = msensor type = <NULL> full_name = /soc/i2c@11009000/msensor@0d
3)查看dws, msensor配置i2c地址为0x0D, 故node->full_name为/soc/i2c@11009000/msensor@0d
4) 修改dts为0d解决问题
99 msensor@0d {
100 i2c_num = <2>;
101 i2c_addr = <0x0c 0 0 0>;
102 direction = <2>;
103 power_id = <0xffff>;
104 power_vol = <0>;
105 is_batch_supported = <0>;
106 };