static inline unsigned int serial_in(struct uart_port *port, int offset)
{
- return __raw_readl(port->membase + offset);
+ return __raw_readl((void __iomem __force *)(port->membase + offset));
}
static inline void serial_out(struct uart_port *port, int offset, int value)
{
- __raw_writel(value, port->membase + offset);
+ __raw_writel(value, (void __iomem __force *)(port->membase + offset));
}
static unsigned int serial_sprd_tx_empty(struct uart_port *port)
u32 val;
//SIC polarity 1
- val = __raw_readl(SPRD_EICINT_BASE + 0x10);
+ val = __raw_readl((void __iomem __force *)(SPRD_EICINT_BASE + 0x10));
if ((val & BIT(0)) == BIT(0))
val &= ~BIT(0);
else
val |= BIT(0);
- __raw_writel(val, SPRD_EICINT_BASE + 0x10);
+ __raw_writel(val, (void __iomem __force *)(SPRD_EICINT_BASE + 0x10));
//clear interrupt
- val = __raw_readl(SPRD_EICINT_BASE + 0x0C);
+ val = __raw_readl((void __iomem __force *)(SPRD_EICINT_BASE + 0x0C));
val |= BIT(0);
- __raw_writel(val, SPRD_EICINT_BASE + 0x0C);
+ __raw_writel(val, (void __iomem __force *)(SPRD_EICINT_BASE + 0x0C));
// set wakeup symbol
is_uart_rx_wakeup = true;
}
#endif
-/* FIXME: this pin config should be just defined int general pin mux table */
-static void serial_sprd_pin_config(void)
-{
-#if (!defined CONFIG_ARCH_SCX35) && (!defined CONFIG_64BIT)
- value = __raw_readl(SPRD_GREG_BASE + 0x08);
- value |= 0x07 << 20;
- __raw_writel(value, SPRD_GREG_BASE + 0x08);
-#endif
-}
-
static int serial_sprd_startup(struct uart_port *port)
{
int ret = 0;
{
unsigned long value = 0;
- writel_relaxed((BIT_UART0_SOFT_RST<<(port->line)), REG_AP_APB_APB_RST);
+ writel_relaxed((BIT_UART0_SOFT_RST<<(port->line)),
+ (void __iomem __force *)REG_AP_APB_APB_RST);
- value = readl_relaxed( REG_AP_APB_APB_RST);
+ value = readl_relaxed((void __iomem __force *)REG_AP_APB_APB_RST);
value &= ~(BIT_UART0_SOFT_RST<<(port->line));
- writel_relaxed(value, REG_AP_APB_APB_RST);
+ writel_relaxed(value, (void __iomem __force *)REG_AP_APB_APB_RST);
}
static void serial_sprd_shutdown(struct uart_port *port)
return -EINVAL;
return 0;
}
-static int serial_sprd_dump_reg(struct uart_port *port)
+static void serial_sprd_dump_reg(struct uart_port *port)
{
printk("UART%d STS0 0X0008: 0X%08X\n\n", port->line, serial_in(port, ARM_UART_STS0));
printk("UART%d STS1 0X000C: 0X%08X\n\n", port->line, serial_in(port, ARM_UART_STS1));
struct device_attribute *attr, char *buf)
{
struct uart_port *port = dev_get_drvdata(dev);
- unsigned int pinmap_uart_conf = 0;
unsigned int uartclk_source = 0;
unsigned int uart_reg_clk = 0;
};
static struct uart_port *serial_sprd_ports[UART_NR_MAX] = { 0 };
-static struct {
- uint32_t ien;
- uint32_t ctrl0;
- uint32_t ctrl1;
- uint32_t ctrl2;
- uint32_t clkd0;
- uint32_t clkd1;
- uint32_t dspwait;
-} uart_bak[UART_NR_MAX];
-
static int clk_startup(struct platform_device *pdev)
{
#ifndef CONFIG_64BIT
{
#ifndef CONFIG_64BIT
struct serial_data plat_local_data;
- struct device_node *np = pdev->dev.of_node;
#endif
struct uart_port *up;
struct uart_sprd_debug * private_data ;
if (np) {
#ifndef CONFIG_64BIT
struct serial_data *plat_local_data;
- char *local_string;
+ const char *local_string;
plat_local_data =
kmalloc(sizeof(struct serial_data), GFP_KERNEL);
if (!plat_local_data) {