diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-06-24 18:23:52 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-06-24 18:23:52 +0900 |
commit | 26c92f3728d738aaa7e4859d5581323cd68096dd (patch) | |
tree | b7cc2f49a6ffe6a6b88d19b33547a370ae314de6 /include/linux/serial_sci.h | |
parent | 00b9de9c249f51f09c19aa41cbbb3e3eb4eea807 (diff) | |
download | lwn-26c92f3728d738aaa7e4859d5581323cd68096dd.tar.gz lwn-26c92f3728d738aaa7e4859d5581323cd68096dd.zip |
serial: sh-sci: Move SCBRR calculation algo in to platform data.
This permits each port to select its own SCBRR calculation algorithm,
rather than having it all ifdef'ed in the header. There are presently
only 5 different variations that all parts fall under.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include/linux/serial_sci.h')
-rw-r--r-- | include/linux/serial_sci.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/serial_sci.h b/include/linux/serial_sci.h index f722a2275add..ff856b5bd276 100644 --- a/include/linux/serial_sci.h +++ b/include/linux/serial_sci.h @@ -7,6 +7,14 @@ * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) */ +enum { + SCBRR_ALGO_1, /* ((clk + 16 * bps) / (16 * bps) - 1) */ + SCBRR_ALGO_2, /* ((clk + 16 * bps) / (32 * bps) - 1) */ + SCBRR_ALGO_3, /* (((clk * 2) + 16 * bps) / (16 * bps) - 1) */ + SCBRR_ALGO_4, /* (((clk * 2) + 16 * bps) / (32 * bps) - 1) */ + SCBRR_ALGO_5, /* (((clk * 1000 / 32) / bps) - 1) */ +}; + #define SCSCR_TIE (1 << 7) #define SCSCR_RIE (1 << 6) #define SCSCR_TE (1 << 5) @@ -36,6 +44,7 @@ struct plat_sci_port { upf_t flags; /* UPF_* flags */ char *clk; /* clock string */ + unsigned int scbrr_algo_id; /* SCBRR calculation algo */ unsigned int scscr; /* SCSCR initialization */ }; |