mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
hw/misc/macio/gpio: Add constants for register bits
Add named constants for register bit values that should make it easier to understand what these mean. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-ID: <20250224141026.3B36C4E6010@zero.eik.bme.hu> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
70f98ae150
commit
d9bf3cec67
1 changed files with 12 additions and 7 deletions
|
@ -34,6 +34,11 @@
|
|||
#include "qemu/module.h"
|
||||
#include "trace.h"
|
||||
|
||||
enum MacioGPIORegisterBits {
|
||||
OUT_DATA = 1,
|
||||
IN_DATA = 2,
|
||||
OUT_ENABLE = 4,
|
||||
};
|
||||
|
||||
void macio_set_gpio(MacIOGPIOState *s, uint32_t gpio, bool state)
|
||||
{
|
||||
|
@ -41,14 +46,14 @@ void macio_set_gpio(MacIOGPIOState *s, uint32_t gpio, bool state)
|
|||
|
||||
trace_macio_set_gpio(gpio, state);
|
||||
|
||||
if (s->gpio_regs[gpio] & 4) {
|
||||
if (s->gpio_regs[gpio] & OUT_ENABLE) {
|
||||
qemu_log_mask(LOG_GUEST_ERROR,
|
||||
"GPIO: Setting GPIO %d while it's an output\n", gpio);
|
||||
}
|
||||
|
||||
new_reg = s->gpio_regs[gpio] & ~2;
|
||||
new_reg = s->gpio_regs[gpio] & ~IN_DATA;
|
||||
if (state) {
|
||||
new_reg |= 2;
|
||||
new_reg |= IN_DATA;
|
||||
}
|
||||
|
||||
if (new_reg == s->gpio_regs[gpio]) {
|
||||
|
@ -107,12 +112,12 @@ static void macio_gpio_write(void *opaque, hwaddr addr, uint64_t value,
|
|||
|
||||
addr -= 8;
|
||||
if (addr < 36) {
|
||||
value &= ~2;
|
||||
value &= ~IN_DATA;
|
||||
|
||||
if (value & 4) {
|
||||
ibit = (value & 1) << 1;
|
||||
if (value & OUT_ENABLE) {
|
||||
ibit = (value & OUT_DATA) << 1;
|
||||
} else {
|
||||
ibit = s->gpio_regs[addr] & 2;
|
||||
ibit = s->gpio_regs[addr] & IN_DATA;
|
||||
}
|
||||
|
||||
s->gpio_regs[addr] = value | ibit;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue