From: "Andreas Färber" <afaerber@suse.de>
To: Peter Crosthwaite <peter.crosthwaite@xilinx.com>,
Jean-Christophe DUBOIS <jcd@tribudubois.net>
Cc: peter.maydell@linaro.org, peter.chubb@nicta.com.au,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 2/4] Add i.MX I2C controller driver.
Date: Sun, 05 May 2013 13:34:32 +0200 [thread overview]
Message-ID: <518643C8.7010207@suse.de> (raw)
In-Reply-To: <CAEgOgz4G-wymSVcHucsGzk5sazGp63nAuEYFWBG_j1+FU8y+Ew@mail.gmail.com>
Am 05.05.2013 05:14, schrieb Peter Crosthwaite:
> On Sun, May 5, 2013 at 12:09 AM, Jean-Christophe DUBOIS
> <jcd@tribudubois.net> wrote:
>> diff --git a/hw/i2c/imx_i2c.c b/hw/i2c/imx_i2c.c
>> new file mode 100644
>> index 0000000..5b0d046
>> --- /dev/null
>> +++ b/hw/i2c/imx_i2c.c
[...]
>> +typedef struct imx_i2c_state {
>
> types should be in CamelCase IMXI2CState
>
>> + SysBusDevice parent_obj;
While at it, please add a white line here. Background is that this
parent field will pretty likely go away once we switch to a better
object-orientation framework - if it were in a header we would annotate
it as private and thus hidden from documentation.
>> + MemoryRegion iomem;
>> + i2c_bus *bus;
Please rather use i2c_bus bus; and qbus_create_inline() in instance_init.
>> + qemu_irq irq;
>> +
>> + uint16_t address;
>> +
>> + uint16_t iadr;
>> + uint16_t ifdr;
>> + uint16_t i2cr;
>> + uint16_t i2sr;
>> + uint16_t i2dr_read;
>> + uint16_t i2dr_write;
>> +} imx_i2c_state;
[...]
>> +static uint64_t imx_i2c_read(void *opaque, hwaddr offset,
>> + unsigned size)
>> +{
>> + uint16_t value;
>> + imx_i2c_state *s = IMX_I2C(opaque);
>> +
>> + switch (offset) {
>> + case IADR_ADDR:
>> + value = s->iadr;
>> + break;
>> + case IFDR_ADDR:
>> + value = s->ifdr;
>> + break;
>> + case I2CR_ADDR:
>> + value = s->i2cr;
>> + break;
>> + case I2SR_ADDR:
>> + value = s->i2sr;
>> + break;
>> + case I2DR_ADDR:
>> + value = s->i2dr_read;
>> +
>> + if (imx_i2c_is_master(s)) { /* master mode */
>> + int ret = 0xff;
>> +
>> + if (s->address == ADDR_RESET) {
>> + /* something is wrong as the address is not set */
>> + DPRINT("Trying to read without specifying the slave address\n");
>> + } else if (s->i2cr & I2CR_MTX) {
>> + DPRINT("Trying to read but MTX is set\n");
>> + } else {
>> + /* get the next byte */
>> + ret = i2c_recv(s->bus);
>> +
>> + if (ret >= 0) {
>> + imx_i2c_raise_interrupt(s);
>> + } else {
>> + DPRINT("read failed for device 0x%02x\n" s->address);
>> + ret = 0xff;
>> + }
>> + }
>> +
>> + s->i2dr_read = ret;
>> + }
>> + break;
>> + default:
>> + hw_error("%s: Bad address 0x%x\n", __func__, (int)offset);
>> + break;
>> + }
>> +
>> + DPRINT("read %s [0x%02x] -> 0x%02x\n", imx_i2c_get_regname(offset)
>
> General question for the list, are we encouraging the use or PRIx in
> new code to remove the needs for casts from uint_XXt to unsigned in
> printfery?
> ,
>> + (unsigned int)offset, value);
I believe so, I've been asked to use HWADDR_PRIx macro in ppc patches.
>> +
>> + return (uint64_t)value;
>> +}
[snip]
Cheers,
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
next prev parent reply other threads:[~2013-05-05 11:34 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-04 14:09 [Qemu-devel] [PATCH v2 0/4] Add i.MX25 support through the 3DS evaluation board Jean-Christophe DUBOIS
2013-05-04 14:09 ` [Qemu-devel] [PATCH v2 1/4] Add i.MX FEC Ethernet driver Jean-Christophe DUBOIS
2013-05-05 3:11 ` Peter Crosthwaite
2013-05-05 11:46 ` Andreas Färber
2013-05-05 11:59 ` Peter Crosthwaite
2013-05-05 12:41 ` Peter Maydell
2013-05-05 13:14 ` Jean-Christophe DUBOIS
2013-05-05 13:31 ` Andreas Färber
2013-05-05 14:05 ` Jean-Christophe DUBOIS
2013-05-05 17:49 ` Michael S. Tsirkin
2013-05-05 18:01 ` Peter Maydell
2013-05-05 21:15 ` Michael S. Tsirkin
2013-05-05 22:00 ` Peter Maydell
2013-05-06 8:51 ` Michael S. Tsirkin
2013-05-06 9:08 ` Peter Maydell
2013-05-06 9:24 ` Michael S. Tsirkin
2013-05-06 12:01 ` Peter Maydell
2013-05-07 0:39 ` Peter Crosthwaite
2013-05-07 9:03 ` Peter Maydell
2013-05-04 14:09 ` [Qemu-devel] [PATCH v2 2/4] Add i.MX I2C controller driver Jean-Christophe DUBOIS
2013-05-05 3:14 ` Peter Crosthwaite
2013-05-05 3:58 ` Jean-Christophe DUBOIS
2013-05-05 10:47 ` Peter Maydell
2013-05-05 10:53 ` Peter Crosthwaite
2013-05-05 11:41 ` Peter Maydell
2013-05-05 11:53 ` Peter Crosthwaite
2013-05-05 12:28 ` Jean-Christophe DUBOIS
2013-05-05 11:34 ` Andreas Färber [this message]
2013-05-05 12:34 ` Jean-Christophe DUBOIS
2013-05-04 14:09 ` [Qemu-devel] [PATCH v2 3/4] Add i.MX25 3DS evaluation board support Jean-Christophe DUBOIS
2013-05-04 14:09 ` [Qemu-devel] [PATCH v2 4/4] Add qtest support for i.MX I2C device emulation Jean-Christophe DUBOIS
2013-05-04 16:53 ` Andreas Färber
2013-05-04 19:02 ` Jean-Christophe DUBOIS
2013-05-04 19:48 ` [Qemu-devel] compile the latest source in mac error Peter Cheung
2013-05-04 20:51 ` Peter Maydell
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=518643C8.7010207@suse.de \
--to=afaerber@suse.de \
--cc=jcd@tribudubois.net \
--cc=peter.chubb@nicta.com.au \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.maydell@linaro.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.