#elif defined(CONFIG_M520x) volatile unsigned char *icrp, *uartp; volatile unsigned long *imrp;  uartp = info->addr;  icrp = (volatile unsigned char *) (MCF_MBAR + MCFICM_INTC0 + MCFINTC_ICR0 + MCFINT_UART0 + info->line); *icrp = 0x03;  imrp = (volatile unsigned long *) (MCF_MBAR + MCFICM_INTC0 + MCFINTC_IMRL); *imrp &= ~((1 << (info->irq - MCFINT_VECBASE)) | 1); if (info->line < 2) { unsigned short *uart_par; uart_par = (unsigned short *)(MCF_IPSBAR + MCF_GPIO_PAR_UART); if (info->line == 0) *uart_par |=  MCF_GPIO_PAR_UART_PAR_UTXD0 | MCF_GPIO_PAR_UART_PAR_URXD0; else if (info->line == 1) *uart_par |=  MCF_GPIO_PAR_UART_PAR_UTXD1 | MCF_GPIO_PAR_UART_PAR_URXD1; } else if (info->line == 2) { unsigned char *feci2c_par; feci2c_par = (unsigned char *)(MCF_IPSBAR +  MCF_GPIO_PAR_FECI2C); *feci2c_par &= ~0x0F; *feci2c_par |=  MCF_GPIO_PAR_FECI2C_PAR_SCL_UTXD2 | MCF_GPIO_PAR_FECI2C_PAR_SDA_URXD2; } 
static void mcfrs_irqinit(struct mcf_serial *info){#if defined(CONFIG_M5272)	volatile unsigned long	*icrp;	volatile unsigned long	*portp;	volatile unsigned char	*uartp;	uartp = info->addr;	icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR2);	switch (info->line) {	case 0:		*icrp = 0xe0000000;		break;	case 1:		*icrp = 0x0e000000;		break;	default:		printk("MCFRS: don't know how to handle UART %d interrupt?\n",			info->line);		return;	}	/* Enable the output lines for the serial ports */	portp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_PBCNT);	*portp = (*portp & ~0x000000ff) | 0x00000055;	portp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_PDCNT);	*portp = (*portp & ~0x000003fc) | 0x000002a8;#elif defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x)	volatile unsigned char *icrp, *uartp;	volatile unsigned long *imrp;	uartp = info->addr;	icrp = (volatile unsigned char *) (MCF_MBAR + MCFICM_INTC0 +		MCFINTC_ICR0 + MCFINT_UART0 + info->line);	*icrp = 0x33; /* UART0 with level 6, priority 3 */	imrp = (volatile unsigned long *) (MCF_MBAR + MCFICM_INTC0 +		MCFINTC_IMRL);	*imrp &= ~((1 << (info->irq - MCFINT_VECBASE)) | 1);#else	volatile unsigned char	*icrp, *uartp;	switch (info->line) {	case 0:		icrp = (volatile unsigned char *) (MCF_MBAR + MCFSIM_UART1ICR);		*icrp = /*MCFSIM_ICR_AUTOVEC |*/ MCFSIM_ICR_LEVEL6 |			MCFSIM_ICR_PRI1;		mcf_setimr(mcf_getimr() & ~MCFSIM_IMR_UART1);		break;	case 1:		icrp = (volatile unsigned char *) (MCF_MBAR + MCFSIM_UART2ICR);		*icrp = /*MCFSIM_ICR_AUTOVEC |*/ MCFSIM_ICR_LEVEL6 |			MCFSIM_ICR_PRI2;		mcf_setimr(mcf_getimr() & ~MCFSIM_IMR_UART2);		break;	default:		printk("MCFRS: don't know how to handle UART %d interrupt?\n",			info->line);		return;	}	uartp = info->addr;	uartp[MCFUART_UIVR] = info->irq;#endif	/* Clear mask, so no surprise interrupts. */	uartp[MCFUART_UIMR] = 0;	if (request_irq(info->irq, mcfrs_interrupt, SA_INTERRUPT,	    "ColdFire UART", NULL)) {		printk("MCFRS: Unable to attach ColdFire UART %d interrupt "			"vector=%d\n", info->line, info->irq);	}	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7f04d62b51828fa3d1dee9fd1ea7f37815595bfa/mcfserial.c/buggy/drivers/serial/mcfserial.c