aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/s3c2410.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/s3c2410.c')
-rw-r--r--drivers/serial/s3c2410.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c
index e284af8071de..b87c0b55aa22 100644
--- a/drivers/serial/s3c2410.c
+++ b/drivers/serial/s3c2410.c
@@ -685,11 +685,6 @@ static unsigned int s3c24xx_serial_getclk(struct uart_port *port,
685 int calc_deviation; 685 int calc_deviation;
686 686
687 for (sptr = res; sptr < resptr; sptr++) { 687 for (sptr = res; sptr < resptr; sptr++) {
688 printk(KERN_DEBUG
689 "found clk %p (%s) quot %d, calc %d\n",
690 sptr->clksrc, sptr->clksrc->name,
691 sptr->quot, sptr->calc);
692
693 calc_deviation = baud - sptr->calc; 688 calc_deviation = baud - sptr->calc;
694 if (calc_deviation < 0) 689 if (calc_deviation < 0)
695 calc_deviation = -calc_deviation; 690 calc_deviation = -calc_deviation;
@@ -699,13 +694,8 @@ static unsigned int s3c24xx_serial_getclk(struct uart_port *port,
699 deviation = calc_deviation; 694 deviation = calc_deviation;
700 } 695 }
701 } 696 }
702
703 printk(KERN_DEBUG "best %p (deviation %d)\n", best, deviation);
704 } 697 }
705 698
706 printk(KERN_DEBUG "selected clock %p (%s) quot %d, calc %d\n",
707 best->clksrc, best->clksrc->name, best->quot, best->calc);
708
709 /* store results to pass back */ 699 /* store results to pass back */
710 700
711 *clksrc = best->clksrc; 701 *clksrc = best->clksrc;
@@ -1058,6 +1048,18 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
1058 return 0; 1048 return 0;
1059} 1049}
1060 1050
1051static ssize_t s3c24xx_serial_show_clksrc(struct device *dev,
1052 struct device_attribute *attr,
1053 char *buf)
1054{
1055 struct uart_port *port = s3c24xx_dev_to_port(dev);
1056 struct s3c24xx_uart_port *ourport = to_ourport(port);
1057
1058 return snprintf(buf, PAGE_SIZE, "* %s\n", ourport->clksrc->name);
1059}
1060
1061static DEVICE_ATTR(clock_source, S_IRUGO, s3c24xx_serial_show_clksrc, NULL);
1062
1061/* Device driver serial port probe */ 1063/* Device driver serial port probe */
1062 1064
1063static int probe_index = 0; 1065static int probe_index = 0;
@@ -1083,6 +1085,11 @@ static int s3c24xx_serial_probe(struct platform_device *dev,
1083 uart_add_one_port(&s3c24xx_uart_drv, &ourport->port); 1085 uart_add_one_port(&s3c24xx_uart_drv, &ourport->port);
1084 platform_set_drvdata(dev, &ourport->port); 1086 platform_set_drvdata(dev, &ourport->port);
1085 1087
1088 ret = device_create_file(&dev->dev, &dev_attr_clock_source);
1089 if (ret < 0) {
1090 printk(KERN_ERR "%s: failed to add clksrc attr.\n", __func__);
1091 }
1092
1086 return 0; 1093 return 0;
1087 1094
1088 probe_err: 1095 probe_err:
@@ -1093,8 +1100,10 @@ static int s3c24xx_serial_remove(struct platform_device *dev)
1093{ 1100{
1094 struct uart_port *port = s3c24xx_dev_to_port(&dev->dev); 1101 struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);
1095 1102
1096 if (port) 1103 if (port) {
1104 device_remove_file(&dev->dev, &dev_attr_clock_source);
1097 uart_remove_one_port(&s3c24xx_uart_drv, port); 1105 uart_remove_one_port(&s3c24xx_uart_drv, port);
1106 }
1098 1107
1099 return 0; 1108 return 0;
1100} 1109}