Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 May 2010 22:18:34 +0200
From:      Andreas Tobler <andreast-list@fgznet.ch>
To:        Rafal Jaworowski <raj@semihalf.com>
Cc:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: iic/i2c debugging on PowerMac
Message-ID:  <4BF5991A.9090602@fgznet.ch>
In-Reply-To: <4BF58FF6.4050202@fgznet.ch>
References:  <4BF58342.7010707@fgznet.ch> <C2885CB4-252F-4354-8BF3-3865C5CCD63E@semihalf.com> <4BF58FF6.4050202@fgznet.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
On 20.05.10 21:39, Andreas Tobler wrote:
> On 20.05.10 21:16, Rafal Jaworowski wrote:
>>
>> On 2010-05-20, at 20:45, Andreas Tobler wrote:
>>
>>> Hi,
>>>
>>> I'm trying to access (read/write) an i2c device on my G5. The
>>> problem is, I do not know the right i2c address although I have it
>>> from the device-tree, it's 0x15e.
>>>
>>> I read about the i2c utilitiy which requires the iic driver
>>> compiled into the kernel. Done that and it seems it is there:
>>>
>>> unin0 iichb0 pnpinfo name=i2c compat=keywest-i2c iicbus0 iic0 at
>>> addr=0 fcu0 pnpinfo name=fan compat=fcu at addr=0x15e
>>>
>>> But I do not have this device entry in /dev. Trying to create one
>>> does not work. mknod /dev/iic0 c 103 0 mknod: /dev/iic0: No such
>>> file or directory
>>>
>>> This is a netboot environment, might this be the cause of not being
>>> able to create the device? Or do I have another issue?
>>
>> This shouldn't be related to the boot method.
>>
>> Do you see any failure output during iic attach (there should be a
>> diag error)? If not try to intstrument the iic_probe() routine and
>> see what happens.
>
> unin0:<Apple UniNorth System Controller>  on nexus0
> unin0: Version 179
> iichb0:<Keywest I2C controller>  mem 0xf8001000-0xf8001fff irq 42 on unin0
> iichb0: [ITHREAD]
> iicbus0:<OFW I2C bus>  on iichb0
> iicbus0: iic identify
> iic0: iic probe failure
> iic0: addr: 0x8a
> iicbus0:<unknown card>  at addr 0
> iic1: iic probe failure
> iic1: addr: 0x8a
>
> The same on this one:
>
> iichb1:<Keywest I2C controller>  mem 0x18000-0x18fff irq 282 on macio0
> iichb1: [ITHREAD]
> iicbus1:<OFW I2C bus>  on iichb1
> iicbus1: iic identify
> iic1: iic probe failure
> iic1: addr: 0x8a
> iicbus1:<unknown card>  at addr 0
>
> Hm, I suspect that either the kiic has an issue or the iicbus_get_addr
> function is not working properly.

Ok. I forced the iic_probe to accept the first device:

iicbus0: <OFW I2C bus> on iichb0
iicbus0: iic identify
iic0: <I2C generic I/O> on iicbus0

Fine.

[andreast@bohrium] /home/andreast/> i2c -s -v
dev: /dev/iic0, addr: 0x0, r/w: r, offset: 0x00, width: 8, count: 1
Error scanning I2C controller (/dev/iic0): Device not configured

Hm. Going back upstairs, where is the iicbus_get_addr function 
implemented/defined?

I'm lost in this area since a few days and I do not know if I opened a 
can of worms here. IOW, my thinking is ok, but I rely on things which do 
not work. (kiic, iic, iicbus?)

Thanks for any hints!
Andreas



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BF5991A.9090602>