From: linux_newbie good on
Hi,

My board has a MIPS based Processor and a micro-controller. The
communication between these two interfaces is through an I2C bus. The
Linux driver for my I2C controller (i mean the one in MIPS processor)
has support for master transmitter and master receiver whereas I could
not find support for slave TX and slave RX modes. Do I need to write
my own functions for slave support? If so, what kind of changes need
to be done, for slave mode support? Is there any other sample driver
which can help ?


Regards,
newbie
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Haojian Zhuang on
On Thu, May 27, 2010 at 1:05 PM, linux_newbie good
<mylinux.list(a)gmail.com> wrote:
> Hi,
>
> My board has a MIPS based Processor and a micro-controller. �The
> communication between these two interfaces is through an I2C bus. The
> Linux driver for my I2C controller (i mean the one in MIPS processor)
> has support for master transmitter and master receiver whereas I could
> not find support for slave TX and slave RX modes. Do I need to write
> my own functions for slave support? If so, what kind of changes need
> to be done, for slave mode support? Is there any other sample driver
> which can help ?
>
>

Maybe you needn't write a slave I2C driver on MIPS side. It should
based on your system requirement.

I suggest the solution in below may be easier.

++++++++++++++ ++++++++++++
+ MIPS (Master) + -----> I2C -----------> + MCU (Slave) +
+ +<----GPIO INT <----- + +
++++++++++++++ ++++++++++++

Since MIPS is master, it can read/write data from slave directly.
While MCU want to contact with MIPS, it can trigger INT first. Then
MIPS can query MCU and feed its required.

Perhaps you may not choice this solution. You have to write slave
driver on MIPS side and both master/slave driver on MCU side. You can
refer to $LINUX/drivers/i2c/busses/i2c-pxa.c for reference. i2c-pxa
driver supports both master and slave mode.

Thanks
Haojian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Jack on
Hi,
Thanks,

First solution needs additional GPIO pins, I have used all the pins.
I'm going with the other solution, writing slave driver on the MIPS side.
The MIPS provides an interrupt vector for the I2C bus.

Regards,
Jack
..


On Thu, May 27, 2010 at 11:25 AM, Haojian Zhuang
<haojian.zhuang(a)gmail.com> wrote:
> On Thu, May 27, 2010 at 1:05 PM, linux_newbie good
> <mylinux.list(a)gmail.com> wrote:
>> Hi,
>>
>> My board has a MIPS based Processor and a micro-controller. The
>> communication between these two interfaces is through an I2C bus. The
>> Linux driver for my I2C controller (i mean the one in MIPS processor)
>> has support for master transmitter and master receiver whereas I could
>> not find support for slave TX and slave RX modes. Do I need to write
>> my own functions for slave support? If so, what kind of changes need
>> to be done, for slave mode support? Is there any other sample driver
>> which can help ?
>>
>>
>
> Maybe you needn't write a slave I2C driver on MIPS side. It should
> based on your system requirement.
>
> I suggest the solution in below may be easier.
>
> ++++++++++++++ ++++++++++++
> + MIPS (Master) + -----> I2C -----------> + MCU (Slave) +
> + +<----GPIO INT <----- + +
> ++++++++++++++ ++++++++++++
>
> Since MIPS is master, it can read/write data from slave directly.
> While MCU want to contact with MIPS, it can trigger INT first. Then
> MIPS can query MCU and feed its required.
>
> Perhaps you may not choice this solution. You have to write slave
> driver on MIPS side and both master/slave driver on MCU side. You can
> refer to $LINUX/drivers/i2c/busses/i2c-pxa.c for reference. i2c-pxa
> driver supports both master and slave mode.
>
> Thanks
> Haojian
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/