qemu-arm
[Top][All Lists]
Advanced

[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);
>>  }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]