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