imx.c (30596ec32e2cd141d73ee8701386887def9e98c0) imx.c (a406c4b8097473a1294ab056e65df801382b8f28)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Driver for Motorola/Freescale IMX serial ports
4 *
5 * Based on drivers/char/serial.c, by Linus Torvalds, Theodore Ts'o.
6 *
7 * Author: Sascha Hauer <sascha@saschahauer.de>
8 * Copyright (C) 2004 Pengutronix

--- 2394 unchanged lines hidden (view full) ---

2403 else
2404 ucr1 &= ~UCR1_RTSDEN;
2405 imx_uart_writel(sport, ucr1, UCR1);
2406 }
2407}
2408
2409static int imx_uart_suspend_noirq(struct device *dev)
2410{
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Driver for Motorola/Freescale IMX serial ports
4 *
5 * Based on drivers/char/serial.c, by Linus Torvalds, Theodore Ts'o.
6 *
7 * Author: Sascha Hauer <sascha@saschahauer.de>
8 * Copyright (C) 2004 Pengutronix

--- 2394 unchanged lines hidden (view full) ---

2403 else
2404 ucr1 &= ~UCR1_RTSDEN;
2405 imx_uart_writel(sport, ucr1, UCR1);
2406 }
2407}
2408
2409static int imx_uart_suspend_noirq(struct device *dev)
2410{
2411 struct platform_device *pdev = to_platform_device(dev);
2412 struct imx_port *sport = platform_get_drvdata(pdev);
2411 struct imx_port *sport = dev_get_drvdata(dev);
2413
2414 imx_uart_save_context(sport);
2415
2416 clk_disable(sport->clk_ipg);
2417
2418 return 0;
2419}
2420
2421static int imx_uart_resume_noirq(struct device *dev)
2422{
2412
2413 imx_uart_save_context(sport);
2414
2415 clk_disable(sport->clk_ipg);
2416
2417 return 0;
2418}
2419
2420static int imx_uart_resume_noirq(struct device *dev)
2421{
2423 struct platform_device *pdev = to_platform_device(dev);
2424 struct imx_port *sport = platform_get_drvdata(pdev);
2422 struct imx_port *sport = dev_get_drvdata(dev);
2425 int ret;
2426
2427 ret = clk_enable(sport->clk_ipg);
2428 if (ret)
2429 return ret;
2430
2431 imx_uart_restore_context(sport);
2432
2433 return 0;
2434}
2435
2436static int imx_uart_suspend(struct device *dev)
2437{
2423 int ret;
2424
2425 ret = clk_enable(sport->clk_ipg);
2426 if (ret)
2427 return ret;
2428
2429 imx_uart_restore_context(sport);
2430
2431 return 0;
2432}
2433
2434static int imx_uart_suspend(struct device *dev)
2435{
2438 struct platform_device *pdev = to_platform_device(dev);
2439 struct imx_port *sport = platform_get_drvdata(pdev);
2436 struct imx_port *sport = dev_get_drvdata(dev);
2440 int ret;
2441
2442 uart_suspend_port(&imx_uart_uart_driver, &sport->port);
2443 disable_irq(sport->port.irq);
2444
2445 ret = clk_prepare_enable(sport->clk_ipg);
2446 if (ret)
2447 return ret;
2448
2449 /* enable wakeup from i.MX UART */
2450 imx_uart_enable_wakeup(sport, true);
2451
2452 return 0;
2453}
2454
2455static int imx_uart_resume(struct device *dev)
2456{
2437 int ret;
2438
2439 uart_suspend_port(&imx_uart_uart_driver, &sport->port);
2440 disable_irq(sport->port.irq);
2441
2442 ret = clk_prepare_enable(sport->clk_ipg);
2443 if (ret)
2444 return ret;
2445
2446 /* enable wakeup from i.MX UART */
2447 imx_uart_enable_wakeup(sport, true);
2448
2449 return 0;
2450}
2451
2452static int imx_uart_resume(struct device *dev)
2453{
2457 struct platform_device *pdev = to_platform_device(dev);
2458 struct imx_port *sport = platform_get_drvdata(pdev);
2454 struct imx_port *sport = dev_get_drvdata(dev);
2459
2460 /* disable wakeup from i.MX UART */
2461 imx_uart_enable_wakeup(sport, false);
2462
2463 uart_resume_port(&imx_uart_uart_driver, &sport->port);
2464 enable_irq(sport->port.irq);
2465
2466 clk_disable_unprepare(sport->clk_ipg);
2467
2468 return 0;
2469}
2470
2471static int imx_uart_freeze(struct device *dev)
2472{
2455
2456 /* disable wakeup from i.MX UART */
2457 imx_uart_enable_wakeup(sport, false);
2458
2459 uart_resume_port(&imx_uart_uart_driver, &sport->port);
2460 enable_irq(sport->port.irq);
2461
2462 clk_disable_unprepare(sport->clk_ipg);
2463
2464 return 0;
2465}
2466
2467static int imx_uart_freeze(struct device *dev)
2468{
2473 struct platform_device *pdev = to_platform_device(dev);
2474 struct imx_port *sport = platform_get_drvdata(pdev);
2469 struct imx_port *sport = dev_get_drvdata(dev);
2475
2476 uart_suspend_port(&imx_uart_uart_driver, &sport->port);
2477
2478 return clk_prepare_enable(sport->clk_ipg);
2479}
2480
2481static int imx_uart_thaw(struct device *dev)
2482{
2470
2471 uart_suspend_port(&imx_uart_uart_driver, &sport->port);
2472
2473 return clk_prepare_enable(sport->clk_ipg);
2474}
2475
2476static int imx_uart_thaw(struct device *dev)
2477{
2483 struct platform_device *pdev = to_platform_device(dev);
2484 struct imx_port *sport = platform_get_drvdata(pdev);
2478 struct imx_port *sport = dev_get_drvdata(dev);
2485
2486 uart_resume_port(&imx_uart_uart_driver, &sport->port);
2487
2488 clk_disable_unprepare(sport->clk_ipg);
2489
2490 return 0;
2491}
2492

--- 51 unchanged lines hidden ---
2479
2480 uart_resume_port(&imx_uart_uart_driver, &sport->port);
2481
2482 clk_disable_unprepare(sport->clk_ipg);
2483
2484 return 0;
2485}
2486

--- 51 unchanged lines hidden ---