From owner-svn-src-projects@FreeBSD.ORG Fri May 15 01:54:32 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB6D0106566B; Fri, 15 May 2009 01:54:32 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C8C268FC17; Fri, 15 May 2009 01:54:32 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4F1sWMm008649; Fri, 15 May 2009 01:54:32 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4F1sWXl008648; Fri, 15 May 2009 01:54:32 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905150154.n4F1sWXl008648@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Fri, 15 May 2009 01:54:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192133 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 May 2009 01:54:33 -0000 Author: gonzo Date: Fri May 15 01:54:32 2009 New Revision: 192133 URL: http://svn.freebsd.org/changeset/base/192133 Log: - Calculate clock frequency using PLL registers - Remove stale comments Modified: projects/mips/sys/mips/atheros/uart_cpu_ar71xx.c Modified: projects/mips/sys/mips/atheros/uart_cpu_ar71xx.c ============================================================================== --- projects/mips/sys/mips/atheros/uart_cpu_ar71xx.c Fri May 15 01:53:09 2009 (r192132) +++ projects/mips/sys/mips/atheros/uart_cpu_ar71xx.c Fri May 15 01:54:32 2009 (r192133) @@ -53,27 +53,34 @@ uart_cpu_eqres(struct uart_bas *b1, stru int uart_cpu_getdev(int devtype, struct uart_devinfo *di) { + uint32_t pll_config, div; + uint64_t freq; + + /* PLL freq */ + pll_config = ATH_READ_REG(AR71XX_PLL_CPU_CONFIG); + div = ((pll_config >> PLL_FB_SHIFT) & PLL_FB_MASK) + 1; + freq = div * AR71XX_BASE_FREQ; + /* CPU freq */ + div = ((pll_config >> PLL_CPU_DIV_SEL_SHIFT) & PLL_CPU_DIV_SEL_MASK) + + 1; + freq = freq / div; + /* AHB freq */ + div = (((pll_config >> PLL_AHB_DIV_SHIFT) & PLL_AHB_DIV_MASK) + 1) * 2; + freq = freq / div; + di->ops = uart_getops(&uart_ns8250_class); di->bas.chan = 0; di->bas.bst = ar71xx_bus_space_reversed; di->bas.regshft = 2; - /* TODO: calculate proper AHB freq using PLL registers */ - di->bas.rclk = 85000000; + di->bas.rclk = freq; di->baudrate = 115200; di->databits = 8; di->stopbits = 1; + di->parity = UART_PARITY_NONE; - /* TODO: check if uart_bus_space_io mandatory to set */ uart_bus_space_io = NULL; uart_bus_space_mem = ar71xx_bus_space_reversed; - /* - * FIXME: - * 3 is to compensate big endian, uart operates - * with bus_space_read_1/bus_space_write_1 and hence gets - * highest byte instead of lowest one. Actual fix will involve - * MIPS bus_space fixing. - */ di->bas.bsh = MIPS_PHYS_TO_KSEG1(AR71XX_UART_ADDR); return (0); }