config SERIAL_ATMEL
        bool "AT91 / AT32 on-chip serial port support"
-       depends on ARCH_AT91 || AVR32
+       depends on ARCH_AT91 || AVR32 || COMPILE_TEST
        select SERIAL_CORE
-       select SERIAL_MCTRL_GPIO
+       select SERIAL_MCTRL_GPIO if GPIOLIB
        help
          This enables the driver for the on-chip UARTs of the Atmel
          AT91 and AT32 processors.
 
        sg_set_page(&atmel_port->sg_tx,
                        virt_to_page(port->state->xmit.buf),
                        UART_XMIT_SIZE,
-                       (int)port->state->xmit.buf & ~PAGE_MASK);
+                       (unsigned long)port->state->xmit.buf & ~PAGE_MASK);
        nent = dma_map_sg(port->dev,
                                &atmel_port->sg_tx,
                                1,
                dev_dbg(port->dev, "need to release resource of dma\n");
                goto chan_err;
        } else {
-               dev_dbg(port->dev, "%s: mapped %d@%p to %x\n", __func__,
+               dev_dbg(port->dev, "%s: mapped %d@%p to %pad\n", __func__,
                        sg_dma_len(&atmel_port->sg_tx),
                        port->state->xmit.buf,
-                       sg_dma_address(&atmel_port->sg_tx));
+                       &sg_dma_address(&atmel_port->sg_tx));
        }
 
        /* Configure the slave DMA */
        sg_set_page(&atmel_port->sg_rx,
                    virt_to_page(ring->buf),
                    sizeof(struct atmel_uart_char) * ATMEL_SERIAL_RINGSIZE,
-                   (int)ring->buf & ~PAGE_MASK);
+                   (unsigned long)ring->buf & ~PAGE_MASK);
        nent = dma_map_sg(port->dev,
                          &atmel_port->sg_rx,
                          1,
                dev_dbg(port->dev, "need to release resource of dma\n");
                goto chan_err;
        } else {
-               dev_dbg(port->dev, "%s: mapped %d@%p to %x\n", __func__,
+               dev_dbg(port->dev, "%s: mapped %d@%p to %pad\n", __func__,
                        sg_dma_len(&atmel_port->sg_rx),
                        ring->buf,
-                       sg_dma_address(&atmel_port->sg_rx));
+                       &sg_dma_address(&atmel_port->sg_rx));
        }
 
        /* Configure the slave DMA */