pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 1 | #ifndef QEMU_SH_H |
| 2 | #define QEMU_SH_H |
| 3 | /* Definitions for SH board emulation. */ |
| 4 | |
balrog | 703243a | 2007-12-12 01:11:42 +0000 | [diff] [blame] | 5 | #include "sh_intc.h" |
| 6 | |
balrog | 5c16736 | 2008-12-07 19:39:58 +0000 | [diff] [blame] | 7 | #define A7ADDR(x) ((x) & 0x1fffffff) |
| 8 | #define P4ADDR(x) ((x) | 0xe0000000) |
| 9 | |
pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 10 | /* sh7750.c */ |
| 11 | struct SH7750State; |
Benoît Canet | 382863e | 2011-11-17 14:22:58 +0100 | [diff] [blame] | 12 | struct MemoryRegion; |
pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 13 | |
Benoît Canet | 382863e | 2011-11-17 14:22:58 +0100 | [diff] [blame] | 14 | struct SH7750State *sh7750_init(CPUState * cpu, struct MemoryRegion *sysmem); |
pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 15 | |
| 16 | typedef struct { |
| 17 | /* The callback will be triggered if any of the designated lines change */ |
| 18 | uint16_t portamask_trigger; |
| 19 | uint16_t portbmask_trigger; |
| 20 | /* Return 0 if no action was taken */ |
| 21 | int (*port_change_cb) (uint16_t porta, uint16_t portb, |
| 22 | uint16_t * periph_pdtra, |
| 23 | uint16_t * periph_portdira, |
| 24 | uint16_t * periph_pdtrb, |
| 25 | uint16_t * periph_portdirb); |
| 26 | } sh7750_io_device; |
| 27 | |
| 28 | int sh7750_register_io_device(struct SH7750State *s, |
| 29 | sh7750_io_device * device); |
| 30 | /* sh_timer.c */ |
| 31 | #define TMU012_FEAT_TOCR (1 << 0) |
| 32 | #define TMU012_FEAT_3CHAN (1 << 1) |
| 33 | #define TMU012_FEAT_EXTCLK (1 << 2) |
Benoît Canet | 89e2945 | 2011-11-17 14:23:00 +0100 | [diff] [blame] | 34 | void tmu012_init(struct MemoryRegion *sysmem, target_phys_addr_t base, |
| 35 | int feat, uint32_t freq, |
aurel32 | 96e2fc4 | 2008-11-21 21:06:42 +0000 | [diff] [blame] | 36 | qemu_irq ch0_irq, qemu_irq ch1_irq, |
| 37 | qemu_irq ch2_irq0, qemu_irq ch2_irq1); |
balrog | 703243a | 2007-12-12 01:11:42 +0000 | [diff] [blame] | 38 | |
pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 39 | |
| 40 | /* sh_serial.c */ |
| 41 | #define SH_SERIAL_FEAT_SCIF (1 << 0) |
Benoît Canet | 9a9d0b8 | 2011-11-17 14:23:02 +0100 | [diff] [blame] | 42 | void sh_serial_init(MemoryRegion *sysmem, |
| 43 | target_phys_addr_t base, int feat, |
aurel32 | bf5b742 | 2008-05-09 18:46:04 +0000 | [diff] [blame] | 44 | uint32_t freq, CharDriverState *chr, |
aurel32 | 4e7ed2d | 2008-11-21 21:06:51 +0000 | [diff] [blame] | 45 | qemu_irq eri_source, |
| 46 | qemu_irq rxi_source, |
| 47 | qemu_irq txi_source, |
| 48 | qemu_irq tei_source, |
| 49 | qemu_irq bri_source); |
pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 50 | |
balrog | c6d86a3 | 2008-12-07 18:49:57 +0000 | [diff] [blame] | 51 | /* sh7750.c */ |
| 52 | qemu_irq sh7750_irl(struct SH7750State *s); |
| 53 | |
pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 54 | /* tc58128.c */ |
blueswir1 | 7ccfb2e | 2008-09-14 06:45:34 +0000 | [diff] [blame] | 55 | int tc58128_init(struct SH7750State *s, const char *zone1, const char *zone2); |
pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 56 | |
pbrook | 87ecb68 | 2007-11-17 17:14:51 +0000 | [diff] [blame] | 57 | #endif |