Beispiel #1
0
void uart_putc(const char c)
{
	if (c != '\n') {
		while (((*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_LSR))& 0x20) == 0);
		*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_THR) = (unsigned long)c;
		fast_iob();
		udelay(10);
	} else {
		while (((*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_LSR))& 0x20) == 0);
		*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_THR) = 0x0d;
		fast_iob();
		udelay(10);
		while (((*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_LSR))& 0x20) == 0);
		*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_THR) = 0x0a;
		fast_iob();
		udelay(10);
	}
	while (((*(volatile unsigned long *)KSEG1ADDR(cpu_uart_base+CPU_UART_LSR))& 0x20) == 0);
}
Beispiel #2
0
void __init init_ioasic_irqs(int base)
{
	int i;

	/* Mask interrupts. */
	ioasic_write(IO_REG_SIMR, 0);
	fast_iob();

	for (i = base; i < base + IO_INR_DMA; i++)
		set_irq_chip_and_handler(i, &ioasic_irq_type,
					 handle_level_irq);
	for (; i < base + IO_IRQ_LINES; i++)
		set_irq_chip(i, &ioasic_dma_irq_type);

	ioasic_irq_base = base;
}
Beispiel #3
0
static inline void end_ioasic_dma_irq(unsigned int irq)
{
	clear_ioasic_irq(irq);
	fast_iob();
	end_ioasic_irq(irq);
}
Beispiel #4
0
static inline void ack_ioasic_irq(unsigned int irq)
{
	mask_ioasic_irq(irq);
	fast_iob();
}
Beispiel #5
0
static void ack_ioasic_irq(struct irq_data *d)
{
    mask_ioasic_irq(d);
    fast_iob();
}