TTY / Serial driver updates for 7.0-rc1

Here is the small amount of tty and serial driver updates for 7.0-rc1.
 Nothing major in here at all, just some driver updates and minor tweaks
 and cleanups including:
   - sh-sci serial driver updates
   - 8250 driver updates
   - attempt to make the tty ports have their own workqueue, but was
     reverted after testing found it to have problems on some platforms.
     This will probably come back for 7.1 after it has been reworked and
     resubmitted
   - other tiny tty driver changes
 
 All of these have been in linux-next for a while with no reported
 problems.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCaZR1VQ8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ykfsACghiyMgr0XKVDFEpV7/fPzocKH+o0An3v8knSi
 kLz/f6LstVsISqCxeT+9
 =uozB
 -----END PGP SIGNATURE-----

Merge tag 'tty-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

Pull tty / serial driver updates from Greg KH:
 "Here is the small amount of tty and serial driver updates for 7.0-rc1.
  Nothing major in here at all, just some driver updates and minor
  tweaks and cleanups including:

   - sh-sci serial driver updates

   - 8250 driver updates

   - attempt to make the tty ports have their own workqueue, but was
     reverted after testing found it to have problems on some platforms.

     This will probably come back for 7.1 after it has been reworked and
     resubmitted

   - other tiny tty driver changes

  All of these have been in linux-next for a while with no reported
  problems"

* tag 'tty-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (49 commits)
  Revert "tty: tty_port: add workqueue to flip TTY buffer"
  tty: tty_port: add workqueue to flip TTY buffer
  serial: 8250_pci: Remove custom deprecated baud setting routine
  serial: 8250_omap: Remove custom deprecated baud setting routine
  dt-bindings: serial: renesas,scif: Document RZ/G3L SoC
  serial: 8250: omap: set out-of-band wakeup if wakeup pinctrl exists
  tty: hvc-iucv: Remove KMSG_COMPONENT macro
  dt-bindings: serial: google,goldfish-tty: Convert to DT schema
  dt-bindings: serial: sh-sci: Fold single-entry compatibles into enum
  serial: 8250: 8250_omap.c: Clear DMA RX running status only after DMA termination is done
  serial: 8250: 8250_omap.c: Add support for handling UART error conditions
  serial: SH_SCI: improve "DMA support" prompt
  serial: Kconfig: fix ordering of entries for menu display
  serial: 8250: fix ordering of entries for menu display
  serial: imx: change SERIAL_IMX_CONSOLE to bool
  8250_men_mcb: drop unneeded MODULE_ALIAS
  serial: men_z135_uart: drop unneeded MODULE_ALIAS
  dt-bindings: serial: renesas,rsci: Document RZ/V2H(P) and RZ/V2N SoCs
  serial: rsci: Convert to FIELD_MODIFY()
  dt-bindings: serial: 8250: add SpacemiT K3 UART compatible
  ...
This commit is contained in:
Linus Torvalds 2026-02-17 09:30:52 -08:00
commit 3ad7945754
26 changed files with 801 additions and 419 deletions

View file

@ -1,17 +0,0 @@
Android Goldfish TTY
Android goldfish tty device generated by android emulator.
Required properties:
- compatible : should contain "google,goldfish-tty" to match emulator
- reg : <registers mapping>
- interrupts : <interrupt mapping>
Example:
goldfish_tty@1f004000 {
compatible = "google,goldfish-tty";
reg = <0x1f004000 0x1000>;
interrupts = <0xc>;
};

View file

@ -160,6 +160,7 @@ properties:
- enum:
- mrvl,mmp-uart
- spacemit,k1-uart
- spacemit,k3-uart
- const: intel,xscale-uart
- items:
- enum:

View file

@ -0,0 +1,41 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/serial/google,goldfish-tty.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Google Goldfish TTY
maintainers:
- Kuan-Wei Chiu <visitorckw@gmail.com>
allOf:
- $ref: /schemas/serial/serial.yaml#
description:
Android goldfish TTY device generated by Android emulator.
properties:
compatible:
const: google,goldfish-tty
reg:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
- interrupts
unevaluatedProperties: false
examples:
- |
serial@1f004000 {
compatible = "google,goldfish-tty";
reg = <0x1f004000 0x1000>;
interrupts = <12>;
};

View file

@ -10,46 +10,78 @@ maintainers:
- Geert Uytterhoeven <geert+renesas@glider.be>
- Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
allOf:
- $ref: serial.yaml#
properties:
compatible:
oneOf:
- items:
- const: renesas,r9a09g087-rsci # RZ/N2H
- const: renesas,r9a09g077-rsci # RZ/T2H
- enum:
- renesas,r9a09g047-rsci # RZ/G3E
- renesas,r9a09g077-rsci # RZ/T2H
- items:
- enum:
- renesas,r9a09g056-rsci # RZ/V2N
- renesas,r9a09g057-rsci # RZ/V2H(P)
- const: renesas,r9a09g047-rsci
- items:
- const: renesas,r9a09g087-rsci # RZ/N2H
- const: renesas,r9a09g077-rsci # RZ/T2H
reg:
maxItems: 1
interrupts:
minItems: 4
items:
- description: Error interrupt
- description: Receive buffer full interrupt
- description: Transmit buffer empty interrupt
- description: Transmit end interrupt
- description: Active edge detection interrupt
- description: Break field detection interrupt
interrupt-names:
minItems: 4
items:
- const: eri
- const: rxi
- const: txi
- const: tei
- const: aed
- const: bfd
clocks:
minItems: 2
maxItems: 3
maxItems: 6
clock-names:
minItems: 2
oneOf:
- items:
- const: operation
- const: bus
- const: sck # optional external clock input
minItems: 2
- items:
- const: pclk
- const: tclk
- const: tclk_div4
- const: tclk_div16
- const: tclk_div64
- const: sck # optional external clock input
minItems: 5
resets:
items:
- const: operation
- const: bus
- const: sck # optional external clock input
- description: Input for resetting the APB clock
- description: Input for resetting TCLK
reset-names:
items:
- const: presetn
- const: tresetn
power-domains:
maxItems: 1
@ -62,6 +94,57 @@ required:
- clock-names
- power-domains
allOf:
- $ref: serial.yaml#
- if:
properties:
compatible:
contains:
const: renesas,r9a09g077-rsci
then:
properties:
interrupts:
maxItems: 4
interrupt-names:
maxItems: 4
clocks:
minItems: 2
maxItems: 3
clock-names:
minItems: 2
maxItems: 3
resets: false
- if:
properties:
compatible:
contains:
const: renesas,r9a09g047-rsci
then:
properties:
interrupts:
minItems: 6
interrupt-names:
minItems: 6
clocks:
minItems: 5
maxItems: 6
clock-names:
minItems: 5
maxItems: 6
required:
- resets
- reset-names
unevaluatedProperties: false
examples:

View file

@ -12,15 +12,16 @@ maintainers:
properties:
compatible:
oneOf:
- enum:
- renesas,scif-r7s9210 # RZ/A2
- renesas,scif-r9a07g044 # RZ/G2{L,LC}
- renesas,scif-r9a09g057 # RZ/V2H(P)
- items:
- enum:
- renesas,scif-r7s72100 # RZ/A1H
- const: renesas,scif # generic SCIF compatible UART
- items:
- enum:
- renesas,scif-r7s9210 # RZ/A2
- items:
- enum:
- renesas,scif-r8a7778 # R-Car M1
@ -76,19 +77,14 @@ properties:
- const: renesas,rcar-gen5-scif # R-Car Gen5
- const: renesas,scif # generic SCIF compatible UART
- items:
- enum:
- renesas,scif-r9a07g044 # RZ/G2{L,LC}
- items:
- enum:
- renesas,scif-r9a07g043 # RZ/G2UL and RZ/Five
- renesas,scif-r9a07g054 # RZ/V2L
- renesas,scif-r9a08g045 # RZ/G3S
- renesas,scif-r9a08g046 # RZ/G3L
- const: renesas,scif-r9a07g044 # RZ/G2{L,LC} fallback
- const: renesas,scif-r9a09g057 # RZ/V2H(P)
- items:
- enum:
- renesas,scif-r9a09g047 # RZ/G3E

View file

@ -89,31 +89,7 @@ With the baud base set to 15625000 and the unsigned 16-bit UART_DIV_MAX
limitation imposed by ``serial8250_get_baud_rate`` standard baud rates
below 300bps become unavailable in the regular way, e.g. the rate of
200bps requires the baud base to be divided by 78125 and that is beyond
the unsigned 16-bit range. The historic spd_cust feature can still be
used by encoding the values for, the prescaler, the oversampling rate
and the clock divisor (DLM/DLL) as follows to obtain such rates if so
required:
::
31 29 28 20 19 16 15 0
+-----+-----------------+-------+-------------------------------+
|0 0 0| CPR2:CPR | TCR | DLM:DLL |
+-----+-----------------+-------+-------------------------------+
Use a value such encoded for the ``custom_divisor`` field along with the
ASYNC_SPD_CUST flag set in the ``flags`` field in ``struct serial_struct``
passed with the TIOCSSERIAL ioctl(2), such as with the setserial(8)
utility and its ``divisor`` and ``spd_cust`` parameters, and then select
the baud rate of 38400bps. Note that the value of 0 in TCR sets the
oversampling rate to 16 and prescaler values below 1 in CPR2/CPR are
clamped by the driver to 1.
For example the value of 0x1f4004e2 will set CPR2/CPR, TCR and DLM/DLL
respectively to 0x1f4, 0x0 and 0x04e2, choosing the prescaler value,
the oversampling rate and the clock divisor of 62.500, 16 and 1250
respectively. These parameters will set the baud rate for the serial
port to 62500000 / 62.500 / 1250 / 16 = 50bps.
the unsigned 16-bit range.
Maciej W. Rozycki <macro@orcam.me.uk>