lm32.h 1.0 KB

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