svn commit: r253508 - head/sys/mips/atheros

Adrian Chadd adrian at FreeBSD.org
Sun Jul 21 03:52:53 UTC 2013


Author: adrian
Date: Sun Jul 21 03:52:52 2013
New Revision: 253508
URL: http://svnweb.freebsd.org/changeset/base/253508

Log:
  Initialise the watchdog and UART frequencies.
  
  For all pre-AR933x chips, the frequency is just the APB frequency.
  For the AR933x, the UART frequency is different but we just hacked around
  it.
  
  For the AR934x, there's a different PLL setting for these, so they have
  to be broken out.

Modified:
  head/sys/mips/atheros/ar71xx_chip.c
  head/sys/mips/atheros/ar724x_chip.c
  head/sys/mips/atheros/ar91xx_chip.c
  head/sys/mips/atheros/ar933x_chip.c

Modified: head/sys/mips/atheros/ar71xx_chip.c
==============================================================================
--- head/sys/mips/atheros/ar71xx_chip.c	Sun Jul 21 03:51:24 2013	(r253507)
+++ head/sys/mips/atheros/ar71xx_chip.c	Sun Jul 21 03:52:52 2013	(r253508)
@@ -78,6 +78,8 @@ __FBSDID("$FreeBSD$");
 uint32_t u_ar71xx_cpu_freq;
 uint32_t u_ar71xx_ahb_freq;
 uint32_t u_ar71xx_ddr_freq;
+uint32_t u_ar71xx_uart_freq;
+uint32_t u_ar71xx_wdt_freq;
 uint32_t u_ar71xx_refclk;
 
 static void
@@ -107,6 +109,8 @@ ar71xx_chip_detect_sys_frequency(void)
 
 	div = (((pll >> AR71XX_AHB_DIV_SHIFT) & AR71XX_AHB_DIV_MASK) + 1) * 2;
 	u_ar71xx_ahb_freq = u_ar71xx_cpu_freq / div;
+	u_ar71xx_wdt_freq = u_ar71xx_cpu_freq / div;
+	u_ar71xx_uart_freq = u_ar71xx_cpu_freq / div;
 }
 
 /*

Modified: head/sys/mips/atheros/ar724x_chip.c
==============================================================================
--- head/sys/mips/atheros/ar724x_chip.c	Sun Jul 21 03:51:24 2013	(r253507)
+++ head/sys/mips/atheros/ar724x_chip.c	Sun Jul 21 03:52:52 2013	(r253508)
@@ -90,6 +90,8 @@ ar724x_chip_detect_sys_frequency(void)
 
 	div = (((pll >> AR724X_AHB_DIV_SHIFT) & AR724X_AHB_DIV_MASK) + 1) * 2;
 	u_ar71xx_ahb_freq = u_ar71xx_cpu_freq / div;
+	u_ar71xx_wdt_freq = u_ar71xx_cpu_freq / div;
+	u_ar71xx_uart_freq = u_ar71xx_cpu_freq / div;
 }
 
 static void

Modified: head/sys/mips/atheros/ar91xx_chip.c
==============================================================================
--- head/sys/mips/atheros/ar91xx_chip.c	Sun Jul 21 03:51:24 2013	(r253507)
+++ head/sys/mips/atheros/ar91xx_chip.c	Sun Jul 21 03:52:52 2013	(r253508)
@@ -84,6 +84,8 @@ ar91xx_chip_detect_sys_frequency(void)
 
 	div = (((pll >> AR91XX_AHB_DIV_SHIFT) & AR91XX_AHB_DIV_MASK) + 1) * 2;
 	u_ar71xx_ahb_freq = u_ar71xx_cpu_freq / div;
+	u_ar71xx_uart_freq = u_ar71xx_cpu_freq / div;
+	u_ar71xx_wdt_freq = u_ar71xx_cpu_freq / div;
 }
 
 static void

Modified: head/sys/mips/atheros/ar933x_chip.c
==============================================================================
--- head/sys/mips/atheros/ar933x_chip.c	Sun Jul 21 03:51:24 2013	(r253507)
+++ head/sys/mips/atheros/ar933x_chip.c	Sun Jul 21 03:52:52 2013	(r253508)
@@ -114,6 +114,10 @@ ar933x_chip_detect_sys_frequency(void)
 		     AR933X_PLL_CLOCK_CTRL_AHB_DIV_MASK) + 1;
 		u_ar71xx_ahb_freq = freq / t;
 	}
+
+	/* XXX uart should be the refclk, no? */
+	u_ar71xx_uart_freq = u_ar71xx_ahb_freq;
+	u_ar71xx_wdt_freq = u_ar71xx_ahb_freq;
 }
 
 static void


More information about the svn-src-all mailing list