diff options
| author | Naveen Krishna Chatradhi <ch.naveen@samsung.com> | 2014-07-14 07:37:16 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-07-17 21:18:22 -0400 |
| commit | 135f07c3252dc77d0245714d0b413ecc711cd823 (patch) | |
| tree | 4ef8a12ac1a415767e7e4c0a597abf4201076cc3 | |
| parent | b1261c86fe238cc0da3f5dc837a38a0c39f3e7c4 (diff) | |
serial: samsung: get fifosize via device tree
UART modules on some SoCs only differ in the fifosize of each
UART channel. Its useless to duplicate the drv_data structure
or create a compatible name for such a change.
We can get fifosize via the device tree nodes (not mandating it).
Also updates the documentation.
Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | Documentation/devicetree/bindings/serial/samsung_uart.txt | 4 | ||||
| -rw-r--r-- | drivers/tty/serial/samsung.c | 12 |
2 files changed, 13 insertions, 3 deletions
diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.txt b/Documentation/devicetree/bindings/serial/samsung_uart.txt index 85e8ee2a17fc..e85f37ec33f0 100644 --- a/Documentation/devicetree/bindings/serial/samsung_uart.txt +++ b/Documentation/devicetree/bindings/serial/samsung_uart.txt | |||
| @@ -29,6 +29,9 @@ Required properties: | |||
| 29 | [1] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt | 29 | [1] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt |
| 30 | [2] Documentation/devicetree/bindings/clock/clock-bindings.txt | 30 | [2] Documentation/devicetree/bindings/clock/clock-bindings.txt |
| 31 | 31 | ||
| 32 | Optional properties: | ||
| 33 | - samsung,uart-fifosize: The fifo size supported by the UART channel | ||
| 34 | |||
| 32 | Note: Each Samsung UART should have an alias correctly numbered in the | 35 | Note: Each Samsung UART should have an alias correctly numbered in the |
| 33 | "aliases" node, according to serialN format, where N is the port number | 36 | "aliases" node, according to serialN format, where N is the port number |
| 34 | (non-negative decimal integer) as specified by User's Manual of respective | 37 | (non-negative decimal integer) as specified by User's Manual of respective |
| @@ -51,4 +54,5 @@ Example: | |||
| 51 | "clk_uart_baud3"; | 54 | "clk_uart_baud3"; |
| 52 | clocks = <&clocks PCLK_UART1>, <&clocks PCLK_UART1>, | 55 | clocks = <&clocks PCLK_UART1>, <&clocks PCLK_UART1>, |
| 53 | <&clocks SCLK_UART>; | 56 | <&clocks SCLK_UART>; |
| 57 | samsung,uart-fifosize = <16>; | ||
| 54 | }; | 58 | }; |
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index 6be852d4df6d..e49a9451976e 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c | |||
| @@ -1295,9 +1295,15 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) | |||
| 1295 | dev_get_platdata(&pdev->dev) : | 1295 | dev_get_platdata(&pdev->dev) : |
| 1296 | ourport->drv_data->def_cfg; | 1296 | ourport->drv_data->def_cfg; |
| 1297 | 1297 | ||
| 1298 | ourport->port.fifosize = (ourport->info->fifosize) ? | 1298 | if (pdev->dev.of_node) |
| 1299 | ourport->info->fifosize : | 1299 | of_property_read_u32(pdev->dev.of_node, |
| 1300 | ourport->drv_data->fifosize[index]; | 1300 | "samsung,uart-fifosize", &ourport->port.fifosize); |
| 1301 | |||
| 1302 | if (!ourport->port.fifosize) { | ||
| 1303 | ourport->port.fifosize = (ourport->info->fifosize) ? | ||
| 1304 | ourport->info->fifosize : | ||
| 1305 | ourport->drv_data->fifosize[index]; | ||
| 1306 | } | ||
| 1301 | 1307 | ||
| 1302 | probe_index++; | 1308 | probe_index++; |
| 1303 | 1309 | ||
