On 14 December 2017 at 15:19, Andrey Smirnov <andrew.smir...@gmail.com> wrote: > Add trivial code to emulate PFUZE3000 PMIC. > > Cc: qemu-devel@nongnu.org > Cc: qemu-...@nongnu.orgn > Cc: yurov...@gmail.com > Cc: Peter Maydell <peter.mayd...@linaro.org> > Signed-off-by: Andrey Smirnov <andrew.smir...@gmail.com> > --- > > Integrating this into a build system via "obj-y" might not be the best > way. Does this code need a dedicated CONFIG_ symbol?
Yes, it ought to have a CONFIG_something symbol and be enabled via the whatever.mak for whatever guest architecture needs this device. Is there a board which needs this device? We usually only add devices together with whatever's using them. > diff --git a/hw/misc/pfuze3000.c b/hw/misc/pfuze3000.c > new file mode 100644 > index 0000000000..f414b7c0ba > --- /dev/null > +++ b/hw/misc/pfuze3000.c > @@ -0,0 +1,212 @@ > +/* > + * > + * Copyright (c) 2017, Impinj, Inc. > + * > + * Author: Andrey Smirnov <andrew.smir...@gmail.com> > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation; either version 2 or > + * (at your option) version 3 of the License. The .h file is "v2 or later", but the .c file is "v2 or v3". Is that an intentional difference? Generally we go with "v2 or later". > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License along > + * with this program; if not, see <http://www.gnu.org/licenses/>. > + */ > +static void pfuze3000_reset(DeviceState *ds) > +{ > + PFuze3000State *s = PFUZE3000(ds); > + > + s->reg = PFUZE100_INVAL; This function needs to reset all the device state (all the fields that the guest can modify). Code looks OK otherwise. thanks -- PMM