|
@@ -28,8 +28,12 @@
|
|
|
static int s5pv210_serial_setsource(struct uart_port *port,
|
|
|
struct s3c24xx_uart_clksrc *clk)
|
|
|
{
|
|
|
+ struct s3c2410_uartcfg *cfg = port->dev->platform_data;
|
|
|
unsigned long ucon = rd_regl(port, S3C2410_UCON);
|
|
|
|
|
|
+ if ((cfg->clocks_size) == 1)
|
|
|
+ return 0;
|
|
|
+
|
|
|
if (strcmp(clk->name, "pclk") == 0)
|
|
|
ucon &= ~S5PV210_UCON_CLKMASK;
|
|
|
else if (strcmp(clk->name, "uclk1") == 0)
|
|
@@ -47,10 +51,14 @@ static int s5pv210_serial_setsource(struct uart_port *port,
|
|
|
static int s5pv210_serial_getsource(struct uart_port *port,
|
|
|
struct s3c24xx_uart_clksrc *clk)
|
|
|
{
|
|
|
+ struct s3c2410_uartcfg *cfg = port->dev->platform_data;
|
|
|
u32 ucon = rd_regl(port, S3C2410_UCON);
|
|
|
|
|
|
clk->divisor = 1;
|
|
|
|
|
|
+ if ((cfg->clocks_size) == 1)
|
|
|
+ return 0;
|
|
|
+
|
|
|
switch (ucon & S5PV210_UCON_CLKMASK) {
|
|
|
case S5PV210_UCON_PCLK:
|
|
|
clk->name = "pclk";
|