mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Cc: linux-kernel@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-serial@vger.kernel.org, lm-sensors@lm-sensors.org
Subject: Re: [RFC 3/5] serial: add support for Technologic Systems TS-5500 RS-485 serial port
Date: Sat, 30 Apr 2011 11:17:53 +0100	[thread overview]
Message-ID: <20110430111753.69466ae5@lxorguk.ukuu.org.uk> (raw)
In-Reply-To: <1304115712-5299-4-git-send-email-vivien.didelot@savoirfairelinux.com>

> --- a/drivers/tty/serial/8250.c
> +++ b/drivers/tty/serial/8250.c
> @@ -109,6 +109,13 @@ static unsigned int skip_txen_test; /* force skip of txen test at init time */
>  #define CONFIG_HUB6 1
>  
>  #include <asm/serial.h>
> +
> +/* TS-5500 related stuff */
> +#ifdef CONFIG_SERIAL_8250_TS5500_485_TIMER
> +#define TS5500_TIMER2_SPEED_ADDR	0x42
> +#define TS5500_485_SERIAL_PORT		0x02
> +#endif
> +
>  /*
>   * SERIAL_PORT_DFNS tells us about built-in ports that have no
>   * standard enumeration mechanism.   Platforms that can find all
> @@ -437,6 +444,25 @@ static void au_serial_out(struct uart_port *p, int offset, int value)
>  	__raw_writel(value, p->membase + offset);
>  }
>  
> +#ifdef CONFIG_SERIAL_8250_TS5500_485_TIMER
> +void serial8250_ts5500_set_termios(struct uart_port *port,
> +				   struct ktermios *new,
> +				   struct ktermios *old)
> +{
> +	u16 speed;
> +
> +	if (new->c_ospeed >= 9600 && port->line == TS5500_485_SERIAL_PORT) {
> +		speed = ((115200 * 2) / new->c_ospeed);
> +
> +		/* This should be written by low byte followed by high byte */
> +		spin_lock_irq(&port->lock);
> +		outb((speed & 0x0F), TS5500_TIMER2_SPEED_ADDR);
> +		outb((speed >> 8), TS5500_TIMER2_SPEED_ADDR);
> +		spin_unlock_irq(&port->lock);
> +	}
> +}
> +#endif

Please don't put board specific magic in this file, we are desperately
trying to get rid of it.

> +
>  static unsigned int tsi_serial_in(struct uart_port *p, int offset)
>  {
>  	unsigned int tmp;
> @@ -2464,6 +2490,10 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios,
>  	/* Don't rewrite B0 */
>  	if (tty_termios_baud_rate(termios))
>  		tty_termios_encode_baud_rate(termios, baud, baud);
> +
> +#ifdef CONFIG_SERIAL_8250_TS5500_485_TIMER
> +	serial8250_ts5500_set_termios(port, termios, old);
> +#endif
>  }
>  EXPORT_SYMBOL(serial8250_do_set_termios);

Provide your own set_termios method and then call into this one (which is
why it is exported)


> diff --git a/drivers/tty/serial/ts5500-auto485.c b/drivers/tty/serial/ts5500-auto485.c
> new file mode 100644
> index 0000000..fd01aa0
> --- /dev/null
> +++ b/drivers/tty/serial/ts5500-auto485.c
> @@ -0,0 +1,45 @@
> +/*
> + * ts5500-auto485.c - support for the TS-5500 auto485 feature

This needs documentation and description. Also we have runtime 485
switching ioctls so any code should really be using those and extending
them as needed.

  reply	other threads:[~2011-04-30 10:17 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-29 22:21 [RFC 0/5] Support for Technologic Systems TS-5500 board Vivien Didelot
2011-04-29 22:21 ` [RFC 1/5] platform-drivers-x86: add support for Technologic Systems TS-5xxx detection Vivien Didelot
2011-04-29 23:32   ` Greg KH
2011-05-02 21:07     ` Vivien Didelot
2011-05-02 21:55       ` Greg KH
2011-05-03  9:39         ` Alan Cox
2011-05-03 14:13           ` Greg KH
2011-04-30 10:07   ` Alan Cox
2011-05-04 15:15     ` Vivien Didelot
2011-05-04 15:29       ` Alan Cox
2011-05-04 20:34         ` Vivien Didelot
2011-05-05 13:38           ` Alan Cox
2011-05-11 22:24             ` Vivien Didelot
2011-05-17 12:37   ` Sean Young
2011-05-18 15:03     ` Vivien Didelot
2011-04-29 22:21 ` [RFC 2/5] gpio: add support for Technologic Systems TS-5500 GPIOs Vivien Didelot
2011-04-30 10:15   ` Alan Cox
2011-05-13 21:33     ` Vivien Didelot
2011-05-13 22:03       ` Alan Cox
2011-05-04 16:29   ` Arnd Bergmann
2011-04-29 22:21 ` [RFC 3/5] serial: add support for Technologic Systems TS-5500 RS-485 serial port Vivien Didelot
2011-04-30 10:17   ` Alan Cox [this message]
2011-06-06 20:48     ` Vivien Didelot
2011-04-29 22:21 ` [RFC 4/5] leds: add support for Technologic Systems TS-5500 leds Vivien Didelot
2011-05-03  6:04   ` Govindraj
2011-04-29 22:21 ` [RFC 5/5] hwmon: add support for Technologic Systems TS-5500 A-D converter Vivien Didelot
2011-04-30  3:39   ` [lm-sensors] " Guenter Roeck
2011-04-30  9:56     ` Jonathan Cameron
2011-05-03 15:55     ` Vivien Didelot
2011-05-03 17:33       ` Guenter Roeck
2011-05-04  9:03       ` Jonathan Cameron
2011-04-30 10:20   ` Alan Cox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110430111753.69466ae5@lxorguk.ukuu.org.uk \
    --to=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=lm-sensors@lm-sensors.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=vivien.didelot@savoirfairelinux.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®