On 9/27/21 13:33, Corey Minyard wrote: > On Mon, Sep 27, 2021 at 12:15:18AM +0200, Philippe Mathieu-Daudé wrote: >> Sensors models are listed in the 'Misc devices' category. >> Move them to their own category. >> >> For the devices in the hw/sensor/ directory, the category >> is obvious. >> >> hw/arm/z2.c models the AER915 model which is described >> on [*] as: >> >> The 14-pin chip marked AER915 just below the expansion >> port is a 80C51-type microcontroller, similar to Philips >> P89LPC915. It has an 8-bit A/D which is used to determine >> which of six buttons are pressed on the resistor-network >> wired remote. It communicates with the main cpu via I2C. >> >> It was introduced in commit 3bf11207c06 ("Add support for >> Zipit Z2 machine") with this comment: >> >> 248 static uint8_t aer915_recv(I2CSlave *slave) >> 249 { >> ... >> 253 switch (s->buf[0]) { >> 254 /* Return hardcoded battery voltage, >> 255 * 0xf0 means ~4.1V >> 256 */ >> 257 case 0x02: >> 258 retval = 0xf0; >> 259 break; >> >> For QEMU the AER915 is a very simple sensor model. >> >> [*] https://www.bealecorner.org/best/measure/z2/index.html >> >> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > > This makes sense to me. I'd like to hear from others on this.
Devices on a bus (in particular I2C) are usually user-creatable by default. The AER915 is more a band aid for the z2 machine, but is not really a device. IMO it would be better to hide it as non-user-creatable qdev. >> --- >> include/hw/qdev-core.h | 1 + >> hw/arm/z2.c | 1 + >> hw/sensor/adm1272.c | 1 + >> hw/sensor/dps310.c | 1 + >> hw/sensor/emc141x.c | 1 + >> hw/sensor/max34451.c | 2 ++ >> hw/sensor/tmp105.c | 1 + >> hw/sensor/tmp421.c | 1 + >> softmmu/qdev-monitor.c | 1 + >> 9 files changed, 10 insertions(+) >> diff --git a/hw/arm/z2.c b/hw/arm/z2.c >> index 9c1e876207b..62db9741106 100644 >> --- a/hw/arm/z2.c >> +++ b/hw/arm/z2.c >> @@ -288,6 +288,7 @@ static void aer915_class_init(ObjectClass *klass, void >> *data) >> k->recv = aer915_recv; >> k->send = aer915_send; >> dc->vmsd = &vmstate_aer915_state; >> + set_bit(DEVICE_CATEGORY_SENSOR, dc->categories); >> }