Lines Matching refs:rs485

185 	if (old != port->mctrl && !(port->rs485.flags & SER_RS485_ENABLED))
1292 static int uart_check_rs485_flags(struct uart_port *port, struct serial_rs485 *rs485)
1294 u32 flags = rs485->flags;
1307 if (!(rs485->flags & SER_RS485_ADDRB) &&
1308 (rs485->flags & (SER_RS485_ADDR_RECV|SER_RS485_ADDR_DEST)))
1312 if (!(rs485->flags & SER_RS485_ADDR_RECV) && rs485->addr_recv)
1314 if (!(rs485->flags & SER_RS485_ADDR_DEST) && rs485->addr_dest)
1321 struct serial_rs485 *rs485)
1324 if (rs485->delay_rts_before_send) {
1329 rs485->delay_rts_before_send = 0;
1330 } else if (rs485->delay_rts_before_send > RS485_MAX_RTS_DELAY) {
1331 rs485->delay_rts_before_send = RS485_MAX_RTS_DELAY;
1334 port->name, port->line, rs485->delay_rts_before_send);
1338 if (rs485->delay_rts_after_send) {
1343 rs485->delay_rts_after_send = 0;
1344 } else if (rs485->delay_rts_after_send > RS485_MAX_RTS_DELAY) {
1345 rs485->delay_rts_after_send = RS485_MAX_RTS_DELAY;
1348 port->name, port->line, rs485->delay_rts_after_send);
1352 static void uart_sanitize_serial_rs485(struct uart_port *port, struct serial_rs485 *rs485)
1356 if (!(rs485->flags & SER_RS485_ENABLED)) {
1357 memset(rs485, 0, sizeof(*rs485));
1362 if (rs485->flags & SER_RS485_MODE_RS422) {
1363 rs485->flags &= (SER_RS485_ENABLED | SER_RS485_MODE_RS422 | SER_RS485_TERMINATE_BUS);
1367 rs485->flags &= supported_flags;
1370 if (!(rs485->flags & SER_RS485_RTS_ON_SEND) ==
1371 !(rs485->flags & SER_RS485_RTS_AFTER_SEND)) {
1373 rs485->flags |= SER_RS485_RTS_ON_SEND;
1374 rs485->flags &= ~SER_RS485_RTS_AFTER_SEND;
1380 rs485->flags |= SER_RS485_RTS_AFTER_SEND;
1381 rs485->flags &= ~SER_RS485_RTS_ON_SEND;
1389 uart_sanitize_serial_rs485_delays(port, rs485);
1392 memset(rs485->padding0, 0, sizeof(rs485->padding0));
1393 memset(rs485->padding1, 0, sizeof(rs485->padding1));
1397 const struct serial_rs485 *rs485)
1399 if (!(rs485->flags & SER_RS485_ENABLED))
1403 !!(rs485->flags & SER_RS485_TERMINATE_BUS));
1407 const struct serial_rs485 *rs485)
1409 if (!(rs485->flags & SER_RS485_ENABLED))
1413 !!(rs485->flags & SER_RS485_RX_DURING_TX));
1418 struct serial_rs485 *rs485 = &port->rs485;
1421 if (!(rs485->flags & SER_RS485_ENABLED))
1424 uart_sanitize_serial_rs485(port, rs485);
1425 uart_set_rs485_termination(port, rs485);
1426 uart_set_rs485_rx_during_tx(port, rs485);
1429 ret = port->rs485_config(port, NULL, rs485);
1431 memset(rs485, 0, sizeof(*rs485));
1441 struct serial_rs485 __user *rs485)
1446 aux = port->rs485;
1448 if (copy_to_user(rs485, &aux, sizeof(aux)))
1457 struct serial_rs485 rs485;
1463 if (copy_from_user(&rs485, rs485_user, sizeof(*rs485_user)))
1466 ret = uart_check_rs485_flags(port, &rs485);
1469 uart_sanitize_serial_rs485(port, &rs485);
1470 uart_set_rs485_termination(port, &rs485);
1471 uart_set_rs485_rx_during_tx(port, &rs485);
1474 ret = port->rs485_config(port, &tty->termios, &rs485);
1476 port->rs485 = rs485;
1479 if (!(rs485.flags & SER_RS485_ENABLED))
1486 !!(port->rs485.flags & SER_RS485_TERMINATE_BUS));
1488 !!(port->rs485.flags & SER_RS485_RX_DURING_TX));
1492 if (copy_to_user(rs485_user, &port->rs485, sizeof(port->rs485)))
2329 if (!(uport->rs485.flags & SER_RS485_ENABLED))
2417 if (!(uport->rs485.flags & SER_RS485_ENABLED))
2429 if (!(uport->rs485.flags & SER_RS485_ENABLED))
2542 if (!(port->rs485.flags & SER_RS485_ENABLED))
3493 * uart_get_rs485_mode() - retrieve rs485 properties for given uart
3497 * Documentation/devicetree/bindings/serial/rs485.txt.
3501 struct serial_rs485 *rs485conf = &port->rs485;
3513 * node exists, then don't touch rs485 config and keep initial rs485
3519 ret = device_property_read_u32_array(dev, "rs485-rts-delay",
3540 if (device_property_read_bool(dev, "rs485-rx-during-tx"))
3543 if (device_property_read_bool(dev, "linux,rs485-enabled-at-boot-time"))
3546 if (device_property_read_bool(dev, "rs485-rts-active-low")) {
3556 desc = devm_gpiod_get_optional(dev, "rs485-term", GPIOD_OUT_LOW);
3558 return dev_err_probe(dev, PTR_ERR(desc), "Cannot get rs485-term-gpios\n");
3565 desc = devm_gpiod_get_optional(dev, "rs485-rx-during-tx", dflags);
3567 return dev_err_probe(dev, PTR_ERR(desc), "Cannot get rs485-rx-during-tx-gpios\n");