/linux/Documentation/devicetree/bindings/serial/ |
H A D | rs485.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/serial/rs485.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: RS485 serial communications 9 description: The RTS signal is capable of automatically controlling line 10 direction for the built-in half-duplex mode. The properties described 11 hereafter shall be given to a half-duplex capable UART node. 14 - Rob Herring <robh@kernel.org> 17 rs485-rts-delay: [all …]
|
/linux/Documentation/driver-api/serial/ |
H A D | serial-rs485.rst | 2 RS485 Serial Communications 8 EIA-485, also known as TIA/EIA-485 or RS-485, is a standard defining the 15 2. Hardware-related Considerations 18 Some CPUs/UARTs (e.g., Atmel AT91 or 16C950 UART) contain a built-in 19 half-duplex mode capable of automatically controlling line direction by 20 toggling RTS or DTR signals. That can be used to control external 21 half-duplex hardware like an RS485 transceiver or any RS232-connected 22 half-duplex devices like some modems. 26 available at user-level to allow switching from one mode to the other, and 32 The Linux kernel provides the struct serial_rs485 to handle RS485 [all …]
|
/linux/arch/arm/boot/dts/ti/omap/ |
H A D | am335x-nano.dts | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2013 Newflow Ltd - https://www.newflow.co.uk/ 5 /dts-v1/; 15 cpu0-supply = <&dcdc2_reg>; 25 compatible = "gpio-leds"; 30 default-state = "off"; 36 pinctrl-names = "default"; 37 pinctrl-0 = <&misc_pins>; 39 misc_pins: misc-pins { 40 pinctrl-single,pins = < [all …]
|
/linux/include/uapi/linux/ |
H A D | serial.h | 1 /* SPDX-License-Identifier: GPL-1.0+ WITH Linux-syscall-note */ 64 #define PORT_RSA 13 /* RSA-DV II/S card */ 83 * Multiport serial configuration structure --- external structure 100 * Serial input interrupt line counters -- external structure 112 * struct serial_rs485 - serial interface for controlling RS485 settings. 113 * @flags: RS485 feature flags. 114 * @delay_rts_before_send: Delay before send (milliseconds). 115 * @delay_rts_after_send: Delay after send (milliseconds). 116 * @addr_recv: Receive filter for RS485 addressing mode 118 * @addr_dest: Destination address for RS485 addressing mode [all …]
|
/linux/drivers/tty/serial/8250/ |
H A D | 8250_lpc18xx.c | 1 // SPDX-License-Identifier: GPL-2.0 36 struct serial_rs485 *rs485) in lpc18xx_rs485_config() argument 43 if (rs485->flags & SER_RS485_ENABLED) { in lpc18xx_rs485_config() 47 if (rs485->flags & SER_RS485_RTS_ON_SEND) in lpc18xx_rs485_config() 51 if (rs485->delay_rts_after_send) { in lpc18xx_rs485_config() 52 baud_clk = port->uartclk / up->dl_read(up); in lpc18xx_rs485_config() 53 rs485_dly_reg = DIV_ROUND_UP(rs485->delay_rts_after_send in lpc18xx_rs485_config() 59 /* Calculate the resulting delay in ms */ in lpc18xx_rs485_config() 60 rs485->delay_rts_after_send = (rs485_dly_reg * MSEC_PER_SEC) in lpc18xx_rs485_config() 80 offset = offset << p->regshift; in lpc18xx_uart_serial_out() [all …]
|
H A D | 8250_pci1xxxx.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Probe module for 8250/16550-type MCHP PCI serial ports. 161 /* Delay RTS before send is not supported */ 166 writel(UART_SYSLOCK, port->membase + UART_SYSLOCK_REG); in pci1xxxx_set_sys_lock() 167 return readl(port->membase + UART_SYSLOCK_REG); in pci1xxxx_set_sys_lock() 182 writel(0x0, port->membase + UART_SYSLOCK_REG); in pci1xxxx_release_sys_lock() 188 {0, 1, 2, -1}, /* PCI3p012 */ 189 {0, 1, 3, -1}, /* PCI3p013 */ 190 {0, 2, 3, -1}, /* PCI3p023 */ 191 {1, 2, 3, -1}, /* PCI3p123 */ [all …]
|
H A D | 8250_exar.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Probe module for 8250/16550-type Exar chips PCI serial ports. 11 #include <linux/delay.h> 112 #define UART_EXAR_TXTRG 0x0a /* Tx FIFO trigger level write-only */ 113 #define UART_EXAR_RXTRG 0x0b /* Rx FIFO trigger level write-only */ 131 #define UART_EXAR_DLD_485_POLARITY 0x80 /* RS-485 Enable Signal Polarity */ 148 * ---- ---- -------- 152 * 3 - <reserved> 156 * 7 - <reserved> 159 * 10 - Red LED [all …]
|
H A D | 8250_pci.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Probe module for 8250/16550-type PCI serial ports. 16 #include <linux/delay.h> 98 /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ 104 * > 0 - number of ports 105 * = 0 - use board->num_ports 106 * < 0 - error 156 "Please send the output of lspci -vv, this\n" in moan_device() 159 "modem board to <linux-serial@vger.kernel.org>.\n", in moan_device() 160 str, dev->vendor, dev->device, in moan_device() [all …]
|
/linux/arch/arm64/boot/dts/freescale/ |
H A D | imx8mp-verdin-dev.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 7 native-hdmi-connector { 8 compatible = "hdmi-connector"; 14 remote-endpoint = <&hdmi_tx_out>; 19 reg_eth2phy: regulator-eth2phy { 20 compatible = "regulator-fixed"; 21 enable-active-high; 23 off-on-delay-us = <500000>; 24 regulator-max-microvolt = <3300000>; 25 regulator-min-microvolt = <3300000>; [all …]
|
H A D | imx8mm-venice-gw7902.dts | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 /dts-v1/; 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/input/linux-event-codes.h> 10 #include <dt-bindings/leds/common.h> 11 #include <dt-bindings/net/ti-dp83867.h> 12 #include <dt-bindings/phy/phy-imx8-pcie.h> 18 compatible = "gw,imx8mm-gw7902", "fsl,imx8mm"; 29 stdout-path = &uart2; 38 compatible = "fixed-clock"; [all …]
|
H A D | imx8mm-venice-gw7901.dts | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 /dts-v1/; 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/input/linux-event-codes.h> 10 #include <dt-bindings/leds/common.h> 11 #include <dt-bindings/phy/phy-imx8-pcie.h> 17 compatible = "gw,imx8mm-gw7901", "fsl,imx8mm"; 32 stdout-path = &uart2; 40 gpio-keys { 41 compatible = "gpio-keys"; [all …]
|
H A D | imx8mn-venice-gw7902.dts | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 /dts-v1/; 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/input/linux-event-codes.h> 10 #include <dt-bindings/leds/common.h> 11 #include <dt-bindings/net/ti-dp83867.h> 17 compatible = "gw,imx8mn-gw7902", "fsl,imx8mn"; 26 stdout-path = &uart2; 35 compatible = "fixed-clock"; 36 #clock-cells = <0>; [all …]
|
H A D | imx8mm-venice-gw7903.dts | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 /dts-v1/; 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/input/linux-event-codes.h> 10 #include <dt-bindings/leds/common.h> 11 #include <dt-bindings/phy/phy-imx8-pcie.h> 17 compatible = "gw,imx8mm-gw7903", "fsl,imx8mm"; 27 stdout-path = &uart2; 35 gpio-keys { 36 compatible = "gpio-keys"; [all …]
|
H A D | imx8mm-venice-gw73xx.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 #include <dt-bindings/gpio/gpio.h> 7 #include <dt-bindings/leds/common.h> 8 #include <dt-bindings/phy/phy-imx8-pcie.h> 17 led-controller { 18 compatible = "gpio-leds"; 19 pinctrl-names = "default"; 20 pinctrl-0 = <&pinctrl_gpio_leds>; 22 led-0 { 26 default-state = "on"; [all …]
|
/linux/drivers/tty/serial/ |
H A D | imx.c | 1 // SPDX-License-Identifier: GPL-2.0+ 23 #include <linux/delay.h> 31 #include <linux/dma-mapping.h> 34 #include <linux/dma/imx-dma.h> 75 #define UCR1_RTSDEN (1<<5) /* RTS delta interrupt enable */ 83 #define UCR2_IRTS (1<<14) /* Ignore RTS pin */ 126 #define UFCR_RFDIV_REG(x) (((x) < 7 ? 6 - (x) : 6) << 7) 129 #define USR1_RTSS (1<<14) /* RTS pin status */ 131 #define USR1_RTSD (1<<12) /* RTS delta */ 149 #define USR2_RTSF (1<<4) /* RTS edge interrupt flag */ [all …]
|
H A D | omap-serial.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Driver for OMAP-UART controller. 16 * this driver as required for the omap-platform. 24 #include <linux/delay.h> 38 #include <linux/platform_data/serial-omap.h> 79 #define OMAP_UART_DMA_CH_FREE -1 176 offset <<= up->port.regshift; in serial_in() 177 return readw(up->port.membase + offset); in serial_in() 182 offset <<= up->port.regshift; in serial_out() 183 writew(value, up->port.membase + offset); in serial_out() [all …]
|
H A D | ar933x_uart.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Atheros AR933X SoC built-in UART driver 15 #include <linux/delay.h> 31 #include <asm/mach-ath79/ar933x_uart.h> 35 #define DRIVER_NAME "ar933x-uart" 60 return readl(up->port.membase + offset); in ar933x_uart_read() 66 writel(value, up->port.membase + offset); in ar933x_uart_write() 98 up->ier |= AR933X_UART_INT_TX_EMPTY; in ar933x_uart_start_tx_interrupt() 99 ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier); in ar933x_uart_start_tx_interrupt() 104 up->ier &= ~AR933X_UART_INT_TX_EMPTY; in ar933x_uart_stop_tx_interrupt() [all …]
|
H A D | stm32-usart.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * Inspired by st-asc.c from STMicroelectronics (c) 15 #include <linux/delay.h> 16 #include <linux/dma-direction.h> 18 #include <linux/dma-mapping.h> 37 #include "stm32-usart.h" 124 val = readl_relaxed(port->membase + reg); in stm32_usart_set_bits() 126 writel_relaxed(val, port->membase + reg); in stm32_usart_set_bits() 133 val = readl_relaxed(port->membase + reg); in stm32_usart_clr_bits() 135 writel_relaxed(val, port->membase + reg); in stm32_usart_clr_bits() [all …]
|
/linux/arch/x86/platform/ts5500/ |
H A D | ts5500.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Technologic Systems TS-5500 Single Board Computer support 5 * Copyright (C) 2013-2014 Savoir-faire Linux Inc. 8 * This driver registers the Technologic Systems TS-5500 Single Board Computer 11 * Documentation/ABI/testing/sysfs-platform-ts5500. 13 * This code may be extended to support similar x86-based platforms. 14 * Actually, the TS-5500 and TS-5400 are supported. 17 #include <linux/delay.h> 28 #define TS5500_PRODUCT_CODE 0x60 /* TS-5500 product code */ 29 #define TS5400_PRODUCT_CODE 0x40 /* TS-5400 product code */ [all …]
|
/linux/arch/arm/boot/dts/nxp/imx/ |
H A D | mba6ulx.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) 3 * Copyright 2018-2022 TQ-Systems GmbH 4 * Author: Markus Niebel <Markus.Niebel@tq-group.com> 8 model = "TQ-Systems MBA6ULx Baseboard"; 18 stdout-path = &uart1; 22 compatible = "pwm-backlight"; 23 power-supply = <®_mba6ul_3v3>; 24 enable-gpios = <&expander_out0 4 GPIO_ACTIVE_HIGH>; 29 compatible = "gpio-beeper"; 33 gpio_buttons: gpio-keys { [all …]
|
H A D | imx6dl-plybas.dts | 1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 7 /dts-v1/; 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/leds/common.h> 17 stdout-path = &uart4; 21 compatible = "gpio-keys"; 24 button-start { 30 button-clean { 38 compatible = "gpio-leds"; 39 pinctrl-names = "default"; [all …]
|
H A D | imx6q-bosch-acc.dts | 1 // SPDX-License-Identifier: GPL-2.0 3 * Support for the i.MX6-based Bosch ACC board. 8 * Copyright (C) 2019-2021 Bosch Thermotechnik GmbH, Matthias Winker <matthias.winker@bosch.com> 12 /dts-v1/; 14 #include <dt-bindings/gpio/gpio.h> 15 #include <dt-bindings/leds/common.h> 20 compatible = "bosch,imx6q-acc", "fsl,imx6q"; 37 backlight_lvds: backlight-lvds { 38 compatible = "pwm-backlight"; 40 brightness-levels = <0 61 499 1706 4079 8022 13938 22237 33328 47623 65535>; [all …]
|
/linux/drivers/usb/serial/ |
H A D | f81534.c | 1 // SPDX-License-Identifier: GPL-2.0+ 12 * The F81532/F81534 had 1 control endpoint for setting, 1 endpoint bulk-out 13 * for all serial port TX and 1 endpoint bulk-in for all serial port read in 122 * Bit2-1: Clock source selector 127 * Bit4: Auto direction(RTS) control (RTS pin Low when TX) 128 * Bit5: Invert direction(RTS) when Bit4 enabled (RTS pin high when TX) 197 usb_get_serial_data(port->serial); in f81534_logic_to_phy_port() 202 if (serial_priv->conf_data[i] & F81534_PORT_UNAVAILABLE) in f81534_logic_to_phy_port() 205 if (port->port_number == count) in f81534_logic_to_phy_port() 211 return -ENODEV; in f81534_logic_to_phy_port() [all …]
|
/linux/drivers/tty/ |
H A D | amiserial.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * associated with the registers and bits of 16550 compatible UARTS - 39 #include <linux/delay.h> 126 * ------------------------------------------------------------ 129 * This routines are called before setting or resetting tty->flow.stopped. 131 * ------------------------------------------------------------ 135 struct serial_state *info = tty->driver_data; in rs_stop() 139 if (info->IER & UART_IER_THRI) { in rs_stop() 140 info->IER &= ~UART_IER_THRI; in rs_stop() 152 struct serial_state *info = tty->driver_data; in rs_start() [all …]
|
H A D | mxser.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * mxser.c -- MOXA Smartio/Industio family multiport serial driver. 5 * Copyright (C) 1999-2006 Moxa Technologies (support@moxa.com). 6 * Copyright (C) 2006-2008 Jiri Slaby <jirislaby@gmail.com> 15 * - Fixed x86_64 cleanness 34 #include <linux/delay.h> 45 * Semi-public control interfaces 62 /* --------------------------------------------------- */ 115 #define MOXA_MUST_IER_ERTSI 0x40 /* enable RTS interrupt */ 130 /* RTS/CTS change state interrupt pending */ [all …]
|