ARM: SAMSUNG: Use debug_ll_addr() to get UART base address
authorTomasz Figa <t.figa@samsung.com>
Mon, 17 Mar 2014 22:28:09 +0000 (07:28 +0900)
committerKukjin Kim <kgene.kim@samsung.com>
Thu, 20 Mar 2014 19:06:11 +0000 (04:06 +0900)
This patch modifies Samsung PM debug helpers to use a multiplatform
friendly way of getting base address of debug UART port, so instead
of using a per-mach static macro, a generic debug_ll_addr() helper
is used.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
arch/arm/plat-samsung/pm.c

index 3563421d63ab8aecc735cf8768be619764673843..c7fac34de62142107b12b6a18250d884cbab1d42 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/io.h>
 
 #include <asm/cacheflush.h>
+#include <asm/mach/map.h>
 #include <asm/suspend.h>
 
 #include <plat/cpu.h>
@@ -74,9 +75,19 @@ static inline void s3c_pm_debug_init(void)
 
 static struct pm_uart_save uart_save;
 
+static inline void __iomem *s3c_pm_uart_base(void)
+{
+       unsigned long paddr;
+       unsigned long vaddr;
+
+       debug_ll_addr(&paddr, &vaddr);
+
+       return (void __iomem *)vaddr;
+}
+
 static void s3c_pm_save_uart(unsigned int uart, struct pm_uart_save *save)
 {
-       void __iomem *regs = S3C_VA_UARTx(uart);
+       void __iomem *regs = s3c_pm_uart_base();
 
        save->ulcon = __raw_readl(regs + S3C2410_ULCON);
        save->ucon = __raw_readl(regs + S3C2410_UCON);
@@ -98,7 +109,7 @@ static void s3c_pm_save_uarts(void)
 
 static void s3c_pm_restore_uart(unsigned int uart, struct pm_uart_save *save)
 {
-       void __iomem *regs = S3C_VA_UARTx(uart);
+       void __iomem *regs = s3c_pm_uart_base();
 
        s3c_pm_arch_update_uart(regs, save);