void serial_setbrg(void) { unsigned long divisor; unsigned long usart_hz; /* * Master Clock * Baud Rate = -------------- * 16 * CD */ usart_hz = get_usart_clk_rate(USART_ID); divisor = (usart_hz / 16 + gd->baudrate / 2) / gd->baudrate; usart3_writel(BRGR, USART3_BF(CD, divisor)); }
static void atmel_serial_setbrg_internal(atmel_usart3_t *usart, int id, int baudrate) { unsigned long divisor; unsigned long usart_hz; /* * Master Clock * Baud Rate = -------------- * 16 * CD */ usart_hz = get_usart_clk_rate(id); divisor = (usart_hz / 16 + baudrate / 2) / baudrate; writel(USART3_BF(CD, divisor), &usart->brgr); }