stm32-usart.c (270e5a74fe4c78a857d65f1a129d3d77a36b8d58) stm32-usart.c (351a762aa8051960695a0f131731518e93b957fa)
1/*
2 * Copyright (C) Maxime Coquelin 2015
3 * Copyright (C) STMicroelectronics SA 2017
4 * Authors: Maxime Coquelin <mcoquelin.stm32@gmail.com>
5 * Gerald Baeza <gerald.baeza@st.com>
6 * License terms: GNU General Public License (GPL), version 2
7 *
8 * Inspired by st-asc.c from STMicroelectronics (c)

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

463 stm32_port->wakeirq);
464 if (ret) {
465 free_irq(port->irq, port);
466 return ret;
467 }
468 }
469
470 val = USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE;
1/*
2 * Copyright (C) Maxime Coquelin 2015
3 * Copyright (C) STMicroelectronics SA 2017
4 * Authors: Maxime Coquelin <mcoquelin.stm32@gmail.com>
5 * Gerald Baeza <gerald.baeza@st.com>
6 * License terms: GNU General Public License (GPL), version 2
7 *
8 * Inspired by st-asc.c from STMicroelectronics (c)

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

463 stm32_port->wakeirq);
464 if (ret) {
465 free_irq(port->irq, port);
466 return ret;
467 }
468 }
469
470 val = USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE;
471 if (stm32_port->fifoen)
472 val |= USART_CR1_FIFOEN;
471 stm32_set_bits(port, ofs->cr1, val);
472
473 return 0;
474}
475
476static void stm32_shutdown(struct uart_port *port)
477{
478 struct stm32_port *stm32_port = to_stm32_port(port);
479 struct stm32_usart_offsets *ofs = &stm32_port->info->ofs;
480 struct stm32_usart_config *cfg = &stm32_port->info->cfg;
481 u32 val;
482
483 val = USART_CR1_TXEIE | USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE;
484 val |= BIT(cfg->uart_enable_bit);
473 stm32_set_bits(port, ofs->cr1, val);
474
475 return 0;
476}
477
478static void stm32_shutdown(struct uart_port *port)
479{
480 struct stm32_port *stm32_port = to_stm32_port(port);
481 struct stm32_usart_offsets *ofs = &stm32_port->info->ofs;
482 struct stm32_usart_config *cfg = &stm32_port->info->cfg;
483 u32 val;
484
485 val = USART_CR1_TXEIE | USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE;
486 val |= BIT(cfg->uart_enable_bit);
487 if (stm32_port->fifoen)
488 val |= USART_CR1_FIFOEN;
485 stm32_clr_bits(port, ofs->cr1, val);
486
487 dev_pm_clear_wake_irq(port->dev);
488 free_irq(port->irq, port);
489}
490
491static void stm32_set_termios(struct uart_port *port, struct ktermios *termios,
492 struct ktermios *old)

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

507
508 spin_lock_irqsave(&port->lock, flags);
509
510 /* Stop serial port and reset value */
511 writel_relaxed(0, port->membase + ofs->cr1);
512
513 cr1 = USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE;
514 cr1 |= BIT(cfg->uart_enable_bit);
489 stm32_clr_bits(port, ofs->cr1, val);
490
491 dev_pm_clear_wake_irq(port->dev);
492 free_irq(port->irq, port);
493}
494
495static void stm32_set_termios(struct uart_port *port, struct ktermios *termios,
496 struct ktermios *old)

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

511
512 spin_lock_irqsave(&port->lock, flags);
513
514 /* Stop serial port and reset value */
515 writel_relaxed(0, port->membase + ofs->cr1);
516
517 cr1 = USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE;
518 cr1 |= BIT(cfg->uart_enable_bit);
519 if (stm32_port->fifoen)
520 cr1 |= USART_CR1_FIFOEN;
515 cr2 = 0;
516 cr3 = 0;
517
518 if (cflag & CSTOPB)
519 cr2 |= USART_CR2_STOP_2B;
520
521 if (cflag & PARENB) {
522 cr1 |= USART_CR1_PCE;

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

671 int ret;
672
673 port->iotype = UPIO_MEM;
674 port->flags = UPF_BOOT_AUTOCONF;
675 port->ops = &stm32_uart_ops;
676 port->dev = &pdev->dev;
677 port->irq = platform_get_irq(pdev, 0);
678 stm32port->wakeirq = platform_get_irq(pdev, 1);
521 cr2 = 0;
522 cr3 = 0;
523
524 if (cflag & CSTOPB)
525 cr2 |= USART_CR2_STOP_2B;
526
527 if (cflag & PARENB) {
528 cr1 |= USART_CR1_PCE;

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

677 int ret;
678
679 port->iotype = UPIO_MEM;
680 port->flags = UPF_BOOT_AUTOCONF;
681 port->ops = &stm32_uart_ops;
682 port->dev = &pdev->dev;
683 port->irq = platform_get_irq(pdev, 0);
684 stm32port->wakeirq = platform_get_irq(pdev, 1);
685 stm32port->fifoen = stm32port->info->cfg.has_fifo;
679
680 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
681 port->membase = devm_ioremap_resource(&pdev->dev, res);
682 if (IS_ERR(port->membase))
683 return PTR_ERR(port->membase);
684 port->mapbase = res->start;
685
686 spin_lock_init(&port->lock);

--- 461 unchanged lines hidden ---
686
687 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
688 port->membase = devm_ioremap_resource(&pdev->dev, res);
689 if (IS_ERR(port->membase))
690 return PTR_ERR(port->membase);
691 port->mapbase = res->start;
692
693 spin_lock_init(&port->lock);

--- 461 unchanged lines hidden ---