lm32.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef HW_LM32_H
  2. #define HW_LM32_H
  3. #include "hw/char/lm32_juart.h"
  4. #include "hw/qdev-properties.h"
  5. #include "qapi/error.h"
  6. static inline DeviceState *lm32_pic_init(qemu_irq cpu_irq)
  7. {
  8. DeviceState *dev;
  9. SysBusDevice *d;
  10. dev = qdev_new("lm32-pic");
  11. qdev_realize_and_unref(dev, NULL, &error_fatal);
  12. d = SYS_BUS_DEVICE(dev);
  13. sysbus_connect_irq(d, 0, cpu_irq);
  14. return dev;
  15. }
  16. static inline DeviceState *lm32_juart_init(Chardev *chr)
  17. {
  18. DeviceState *dev;
  19. dev = qdev_new(TYPE_LM32_JUART);
  20. qdev_prop_set_chr(dev, "chardev", chr);
  21. qdev_realize_and_unref(dev, NULL, &error_fatal);
  22. return dev;
  23. }
  24. static inline DeviceState *lm32_uart_create(hwaddr addr,
  25. qemu_irq irq,
  26. Chardev *chr)
  27. {
  28. DeviceState *dev;
  29. SysBusDevice *s;
  30. dev = qdev_new("lm32-uart");
  31. s = SYS_BUS_DEVICE(dev);
  32. qdev_prop_set_chr(dev, "chardev", chr);
  33. qdev_realize_and_unref(dev, NULL, &error_fatal);
  34. sysbus_mmio_map(s, 0, addr);
  35. sysbus_connect_irq(s, 0, irq);
  36. return dev;
  37. }
  38. #endif