From: Paolo Bonzini <pbonzini@redhat.com>
To: Alex David <alex.daerf@gmail.com>
Cc: qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] Fwd: Trying to write a new device / virtio-i2c ?
Date: Tue, 18 Feb 2014 14:05:48 +0100 [thread overview]
Message-ID: <53035AAC.4030708@redhat.com> (raw)
In-Reply-To: <CAA17Vo_aq=Dp5hw0ybaNX6rZSy=MTqenSJK9HdX9KSjLPDOEiQ@mail.gmail.com>
Il 18/02/2014 13:48, Alex David ha scritto:
>
> 2014-02-17 17:11 GMT+01:00 Paolo Bonzini <pbonzini@redhat.com
> <mailto:pbonzini@redhat.com>>:
>
> Il 17/02/2014 16:33, Alex David ha scritto:
>
> If you need more than one bus, you need a new device
> exposing the
> I2C bus, besides the new sensor devices. USB-I2C could be
> one such
> device.
>
> So let me see if I understood well. USB-I2C (host QEMU device)
> seems a
> good idea, I could normally do : qemu-system-i386 -device
> usb-I2c,chardev=foo -device usb-i2c,chardev=bar -chardev
> socket,path=/tmp/test0,server,__nowait,id=foo -chardev
> socket,path=/tmp/test1,server,__nowait,id=bar.
>
>
> Almost. For QOM:
>
> -device usb-i2c,id=usb-i2c-0
> -device i2c-my-sensor,address=0x48,__bus=usb-i2c-0.0
>
> For chardev:
>
> -device usb-i2c,id=usb-i2c-0
> -chardev socket,path=/tmp/test0,server,__nowait,id=chr-foo-0
> -device
> i2c-my-sensor,address=0x48,__bus=usb-i2c-0.0,chardev=chr-__foo-0
>
> Repeat for the other buses, replacing -0 with -1 and -2.
>
>
> I need a "USB-I2C guest kernel driver" that would register a bus
> (i2c-1
> for chardev foo, i2c-2 for chardev bar etc...), I guess ?
>
>
> It exists already, drivers/i2c/busses/i2c-tiny-usb.c.
>
>
> I'm now trying to write this new USB-I2C device, I look through some of
> the code (dev-serial, dev-...), I used dev-serial code and removed the
> code that wanted to declare a chardev (I don't need one to create my
> bus, right ?).
>
> Now I'm wondering, how will be i2c-tiny-usb launched and declare a new
> /dev/i2c-N, with my device. I found :
>
> static struct usb_device_id i2c_tiny_usb_table [] = {
> { USB_DEVICE(0x0403, 0xc631) }, /* FTDI */
> { USB_DEVICE(0x1c40, 0x0534) }, /* EZPrototypes */
> { } /* Terminating entry */
> };
>
> So I figured my USB-I2C should register using these numbers ?
>
> static const USBDesc desc_i2c = {
> .id = {
> .idVendor = 0x0403,
> .idProduct = 0xc631,
> .bcdDevice = 0x0400,
> .iManufacturer = STR_MANUFACTURER,
> .iProduct = STR_PRODUCT_I2C,
> .iSerialNumber = STR_SERIALNUMBER,
> },
> .full = &desc_device,
> .str = desc_strings,
> };
>
> However, this doesn't work, after a $ qemu-system-i386
> debian_wheezy_i386_standard.qcow2 -usb -device USB-I2C,id=usb-i2c-0, the
> driver doesn't seem to be used (/sys/class/i2c-dev/i2c-0/name isn't for
> it...), even if I modprobe i2c-tiny-usb...
> The dmesg shows it doesn't go into the "probe" function.
>
> What did I miss ?
I honestly don't know, you'll have to debug it.
Paolo
next prev parent reply other threads:[~2014-02-18 13:06 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-13 13:26 [Qemu-devel] Trying to write a new device / virtio-i2c ? Alex David
2014-02-14 15:26 ` Stefan Hajnoczi
2014-02-14 15:58 ` Paolo Bonzini
2014-02-14 16:31 ` Andreas Färber
2014-02-14 16:45 ` Paolo Bonzini
2014-02-17 8:35 ` Alex David
2014-02-17 9:19 ` Paolo Bonzini
[not found] ` <CAA17Vo9E9D-jPa3gwhsui3i=APz1FM-41jbK+zpOm2tWf7swdw@mail.gmail.com>
2014-02-17 9:38 ` [Qemu-devel] Fwd: " Alex David
2014-02-17 9:55 ` Paolo Bonzini
[not found] ` <CAA17Vo_cBCbKkqDu2zQ0DW2FoAyVqxVXGtNGArJ1tnk6N9AUqA@mail.gmail.com>
2014-02-17 10:38 ` Paolo Bonzini
2014-02-17 12:23 ` Alex David
2014-02-17 13:11 ` Alex David
2014-02-17 13:19 ` Paolo Bonzini
2014-02-17 13:32 ` Alex David
2014-02-17 14:30 ` Paolo Bonzini
2014-02-17 15:33 ` Alex David
2014-02-17 16:11 ` Paolo Bonzini
2014-02-18 12:48 ` Alex David
2014-02-18 13:05 ` Paolo Bonzini [this message]
2014-02-18 13:44 ` Alex David
2014-02-18 13:47 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53035AAC.4030708@redhat.com \
--to=pbonzini@redhat.com \
--cc=alex.daerf@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).