From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42959) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RfrzL-00040q-Me for qemu-devel@nongnu.org; Wed, 28 Dec 2011 06:48:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RfrzK-0003Mt-Cy for qemu-devel@nongnu.org; Wed, 28 Dec 2011 06:48:07 -0500 Received: from cantor2.suse.de ([195.135.220.15]:51359 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RfrzK-0003Mo-58 for qemu-devel@nongnu.org; Wed, 28 Dec 2011 06:48:06 -0500 Message-ID: <4EFB01A7.4060203@suse.de> Date: Wed, 28 Dec 2011 12:46:47 +0100 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1325035480-20409-1-git-send-email-mark.langsdorf@calxeda.com> <1325035480-20409-3-git-send-email-mark.langsdorf@calxeda.com> In-Reply-To: <1325035480-20409-3-git-send-email-mark.langsdorf@calxeda.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v4 2/7] arm: Set frequencies for arm_timer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Mark Langsdorf Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org, rob.herring@calxeda.com, paul@codesourcery.com Am 28.12.2011 02:24, schrieb Mark Langsdorf: > Use qdev properties to allow board modelers to set the frequencies > for the sp804 timer. Each of the sp804's timers can have an > individual frequency. The timers default to 1MHz. >=20 > Signed-off-by: Mark Langsdorf > Reviewed-by: Peter Maydell Reviewed-by: Andreas F=E4rber Thanks, Andreas > --- > Changes from v3 > None > Changes from v2 > Comment correctly describes behavior of properties > freqX variables are defined as uint32_t, not int > Changes from v1 > Simplified multiple timer frequency handling > Removed the shared default >=20 > hw/arm_timer.c | 24 +++++++++++++++++++----- > 1 files changed, 19 insertions(+), 5 deletions(-) >=20 > diff --git a/hw/arm_timer.c b/hw/arm_timer.c > index 0a5b9d2..60e1c63 100644 > --- a/hw/arm_timer.c > +++ b/hw/arm_timer.c > @@ -9,6 +9,8 @@ > =20 > #include "sysbus.h" > #include "qemu-timer.h" > +#include "qemu-common.h" > +#include "qdev.h" > =20 > /* Common timer implementation. */ > =20 > @@ -178,6 +180,7 @@ typedef struct { > SysBusDevice busdev; > MemoryRegion iomem; > arm_timer_state *timer[2]; > + uint32_t freq0, freq1; > int level[2]; > qemu_irq irq; > } sp804_state; > @@ -269,10 +272,11 @@ static int sp804_init(SysBusDevice *dev) > =20 > qi =3D qemu_allocate_irqs(sp804_set_irq, s, 2); > sysbus_init_irq(dev, &s->irq); > - /* ??? The timers are actually configurable between 32kHz and 1MHz= , but > - we don't implement that. */ > - s->timer[0] =3D arm_timer_init(1000000); > - s->timer[1] =3D arm_timer_init(1000000); > + /* The timers are configurable between 32kHz and 1MHz > + * defaulting to 1MHz but overrideable as individual properties */ > + s->timer[0] =3D arm_timer_init(s->freq0); > + s->timer[1] =3D arm_timer_init(s->freq1); > + > s->timer[0]->irq =3D qi[0]; > s->timer[1]->irq =3D qi[1]; > memory_region_init_io(&s->iomem, &sp804_ops, s, "sp804", 0x1000); > @@ -281,6 +285,16 @@ static int sp804_init(SysBusDevice *dev) > return 0; > } > =20 > +static SysBusDeviceInfo sp804_info =3D { > + .init =3D sp804_init, > + .qdev.name =3D "sp804", > + .qdev.size =3D sizeof(sp804_state), > + .qdev.props =3D (Property[]) { > + DEFINE_PROP_UINT32("freq0", sp804_state, freq0, 1000000), > + DEFINE_PROP_UINT32("freq1", sp804_state, freq1, 1000000), > + DEFINE_PROP_END_OF_LIST(), > + } > +}; > =20 > /* Integrator/CP timer module. */ > =20 > @@ -349,7 +363,7 @@ static int icp_pit_init(SysBusDevice *dev) > static void arm_timer_register_devices(void) > { > sysbus_register_dev("integrator_pit", sizeof(icp_pit_state), icp_p= it_init); > - sysbus_register_dev("sp804", sizeof(sp804_state), sp804_init); > + sysbus_register_withprop(&sp804_info); > } > =20 > device_init(arm_timer_register_devices) --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg