The TTY drivers are advised to use struct tty_port helpers as much as possible. If the drivers implement :c:member:`tty_port.ops.activate()` and :c:member:`tty_port.ops.shutdown()`, they can use tty_port_open(), tty_port_close(), and tty_port_hangup() in respective :c:member:`tty_struct.ops` hooks.
The reference and details are contained in the TTY Port Reference and TTY Port Operations Reference sections at the bottom.
.. kernel-doc:: drivers/tty/tty_port.c :identifiers: tty_port_init tty_port_destroy tty_port_get tty_port_put
.. kernel-doc:: drivers/tty/tty_port.c :identifiers: tty_port_install tty_port_open tty_port_block_til_ready tty_port_close tty_port_close_start tty_port_close_end tty_port_hangup tty_port_shutdown
.. kernel-doc:: drivers/tty/tty_port.c :identifiers: tty_port_tty_get tty_port_tty_set
.. kernel-doc:: drivers/tty/tty_port.c :identifiers: tty_port_tty_hangup tty_port_tty_wakeup
.. kernel-doc:: drivers/tty/tty_port.c :identifiers: tty_port_carrier_raised tty_port_raise_dtr_rts tty_port_lower_dtr_rts
.. kernel-doc:: include/linux/tty_port.h :identifiers: tty_port
.. kernel-doc:: include/linux/tty_port.h :identifiers: tty_port_operations