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 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).