if (s->sampling_rate)
return DIV_ROUND_CLOSEST(freq, s->sampling_rate * bps) - 1;
- switch (s->cfg->scbrr_algo_id) {
- case SCBRR_ALGO_1:
- return freq / (16 * bps);
- case SCBRR_ALGO_2:
- return DIV_ROUND_CLOSEST(freq, 32 * bps) - 1;
- case SCBRR_ALGO_3:
- return freq / (8 * bps);
- case SCBRR_ALGO_4:
- return DIV_ROUND_CLOSEST(freq, 16 * bps) - 1;
- }
-
/* Warn, but use a safe default */
WARN_ON(1);
break;
}
- /* Set the sampling rate if the baud rate calculation algorithm isn't
- * specified.
+ /* SCIFA on sh7723 and sh7724 need a custom sampling rate that doesn't
+ * match the SoC datasheet, this should be investigated. Let platform
+ * data override the sampling rate for now.
*/
- if (p->scbrr_algo_id == SCBRR_ALGO_NONE) {
- /* SCIFA on sh7723 and sh7724 need a custom sampling rate that
- * doesn't match the SoC datasheet, this should be investigated.
- * Let platform data override the sampling rate for now.
- */
- sci_port->sampling_rate = p->sampling_rate ? p->sampling_rate
- : sampling_rate;
- }
+ sci_port->sampling_rate = p->sampling_rate ? p->sampling_rate
+ : sampling_rate;
if (!early) {
sci_port->iclk = clk_get(&dev->dev, "sci_ick");
#define SCIx_NOT_SUPPORTED (-1)
-enum {
- SCBRR_ALGO_NONE, /* Compute sampling rate in the driver */
- SCBRR_ALGO_1, /* clk / (16 * bps) */
- SCBRR_ALGO_2, /* DIV_ROUND_CLOSEST(clk, 32 * bps) - 1 */
- SCBRR_ALGO_3, /* clk / (8 * bps) */
- SCBRR_ALGO_4, /* DIV_ROUND_CLOSEST(clk, 16 * bps) - 1 */
- SCBRR_ALGO_6, /* HSCIF variable sample rate algorithm */
-};
-
#define SCSCR_TIE (1 << 7)
#define SCSCR_RIE (1 << 6)
#define SCSCR_TE (1 << 5)
unsigned long capabilities; /* Port features/capabilities */
unsigned int sampling_rate;
- unsigned int scbrr_algo_id; /* SCBRR calculation algo */
unsigned int scscr; /* SCSCR initialization */
/*