[linux-sunxi] Help adding I2C child node

2014-09-20 Thread bruce bushby
Hi

As a hobby I've been playing with an Olimex A20-SOM and trying to
attach a Drotek Invensense MPU9250 break out board.

So far my uboot is working and I can boot my build via dhcp + nfs. I
added the i2ctools to the build and I'm able to run i2cdetect -y 0
and I can see my devices on i2c0

#
# i2cdetect -y 0
 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:  -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- 34 -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- 69 -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77
#


The drotek breakout board:
http://www.drotek.fr/shop/en/home/466-imu-10dof-mpu9250-ms5611.html

includes ms5611 altimeter which is why you see address 0x34


A very kind Daniel Baluta provided a patched version of the inv_mpu
drivers enabling them to compile for the 3.16+ kernels. (rather then
3.4)

Now I have a module  (inv_mpu_iio) that loadsbut it is not
associated with my i2c0 0x69 device, nor has it created any /sys
device files:

#
# lsmod
Module  Size  Used byNot tainted
inv_mpu_iio62968  0
#
# dmesg | grep inv
[1.187348] i2c i2c-0: client [inv_mpu_iio] registered with bus id 0-0069
[   22.452739] i2c-core: driver [inv_mpu_iio] registered
#


First question: Does my DTS child node look ok?


i2c0: i2c@01c2ac00 {
pinctrl-names = default;
pinctrl-0 = i2c0_pins_a;
status = okay;

mpu@69 {
compatible = inv_mpu_iio;
reg = 0x69;
};
};


Something has worked because I can cat this file:
# cat /sys/devices/soc@01c0/1c2ac00.i2c/i2c-0/0-0069/name
inv_mpu_iio
#

This is the driver I am using:
https://github.com/BruceBushby/inv_mpu


inv_mpu_core.c  ...contains the probe function:

static int inv_mpu_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
struct inv_mpu_state *st;
struct iio_dev *indio_dev;
int result, err;
pr_debug(Invensense MPU probe started.\n);




Sadly I don't see any module debug messages.even though I've
enabled various DEBUG in my kernel config:


CONFIG_I2C_DEBUG_CORE=y
CONFIG_I2C_DEBUG_ALGO=y
CONFIG_I2C_DEBUG_BUS=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_KERNEL=y




Any ideas?



Thanks
Bruce

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Help adding I2C child node

2014-09-20 Thread Henrik Nordström
lör 2014-09-20 klockan 14:54 +0100 skrev bruce bushby:

 First question: Does my DTS child node look ok?
 
 
 i2c0: i2c@01c2ac00 {
 pinctrl-names = default;
 pinctrl-0 = i2c0_pins_a;
 status = okay;
 
 mpu@69 {
 compatible = inv_mpu_iio;
 reg = 0x69;
 };
 };


compatible needs to match whatever devicetree compatible names the
driver registers itself for.

This is not the module name. Sometimes very similar but it's not the
same.

Compatible should generally be on the form  vendorname,devicename,
where devicename maps to the i2c id_table registered by the driver.


for example an i2c eeprom is

 compatible = at,24c256

where 24c256 is registered by driers/misc/eeprom/at24.c.

Regards
Henrik

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.