static struct resource sa11x0udc_resources[] = {
        [0] = {
-               .start  = 0x80000000,
-               .end    = 0x8000ffff,
+               .start  = __PREG(Ser0UDCCR),
+               .end    = __PREG(Ser0UDCCR) + 0xffff,
                .flags  = IORESOURCE_MEM,
        },
+       [1] = {
+               .start  = IRQ_Ser0UDC,
+               .end    = IRQ_Ser0UDC,
+               .flags  = IORESOURCE_IRQ,
+       },
 };
 
 static u64 sa11x0udc_dma_mask = 0xffffffffUL;
 
 static struct resource sa11x0uart1_resources[] = {
        [0] = {
-               .start  = 0x80010000,
-               .end    = 0x8001ffff,
+               .start  = __PREG(Ser1UTCR0),
+               .end    = __PREG(Ser1UTCR0) + 0xffff,
                .flags  = IORESOURCE_MEM,
        },
+       [1] = {
+               .start  = IRQ_Ser1UART,
+               .end    = IRQ_Ser1UART,
+               .flags  = IORESOURCE_IRQ,
+       },
 };
 
 static struct platform_device sa11x0uart1_device = {
 
 static struct resource sa11x0uart3_resources[] = {
        [0] = {
-               .start  = 0x80050000,
-               .end    = 0x8005ffff,
+               .start  = __PREG(Ser3UTCR0),
+               .end    = __PREG(Ser3UTCR0) + 0xffff,
                .flags  = IORESOURCE_MEM,
        },
+       [1] = {
+               .start  = IRQ_Ser3UART,
+               .end    = IRQ_Ser3UART,
+               .flags  = IORESOURCE_IRQ,
+       },
 };
 
 static struct platform_device sa11x0uart3_device = {
 
 static struct resource sa11x0mcp_resources[] = {
        [0] = {
-               .start  = 0x80060000,
-               .end    = 0x8006ffff,
+               .start  = __PREG(Ser4MCCR0),
+               .end    = __PREG(Ser4MCCR0) + 0xffff,
                .flags  = IORESOURCE_MEM,
        },
+       [1] = {
+               .start  = IRQ_Ser4MCP,
+               .end    = IRQ_Ser4MCP,
+               .flags  = IORESOURCE_IRQ,
+       },
 };
 
 static u64 sa11x0mcp_dma_mask = 0xffffffffUL;
                .end    = 0x8007ffff,
                .flags  = IORESOURCE_MEM,
        },
+       [1] = {
+               .start  = IRQ_Ser4SSP,
+               .end    = IRQ_Ser4SSP,
+               .flags  = IORESOURCE_IRQ,
+       },
 };
 
 static u64 sa11x0ssp_dma_mask = 0xffffffffUL;