[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] hw: Add a 'Sensor devices' qdev category
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH] hw: Add a 'Sensor devices' qdev category |
Date: |
Mon, 27 Sep 2021 14:47:32 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.0 |
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é <f4bug@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);
>> }