svn commit: r266648 - in head/sys/arm/ti: . am335x omap4

Andrew Turner andrew at FreeBSD.org
Sun May 25 10:49:08 UTC 2014


Author: andrew
Date: Sun May 25 10:49:07 2014
New Revision: 266648
URL: http://svnweb.freebsd.org/changeset/base/266648

Log:
  Allow the OMAP4 and AM335x prcm drivers to be compiled in the same kernel
  by renaming the structures used.

Modified:
  head/sys/arm/ti/am335x/am335x_prcm.c
  head/sys/arm/ti/omap4/omap4_prcm_clks.c
  head/sys/arm/ti/ti_prcm.c

Modified: head/sys/arm/ti/am335x/am335x_prcm.c
==============================================================================
--- head/sys/arm/ti/am335x/am335x_prcm.c	Sun May 25 10:17:26 2014	(r266647)
+++ head/sys/arm/ti/am335x/am335x_prcm.c	Sun May 25 10:49:07 2014	(r266648)
@@ -190,7 +190,7 @@ static int am335x_clk_pruss_activate(str
 		.clk_get_source_freq = am335x_clk_hsmmc_get_source_freq \
 	}
 
-struct ti_clock_dev ti_clk_devmap[] = {
+struct ti_clock_dev ti_am335x_clk_devmap[] = {
 	/* System clocks */
 	{	.id                  = SYS_CLK,
 		.clk_activate        = NULL,

Modified: head/sys/arm/ti/omap4/omap4_prcm_clks.c
==============================================================================
--- head/sys/arm/ti/omap4/omap4_prcm_clks.c	Sun May 25 10:17:26 2014	(r266647)
+++ head/sys/arm/ti/omap4/omap4_prcm_clks.c	Sun May 25 10:49:07 2014	(r266648)
@@ -256,7 +256,7 @@ static int omap4_clk_get_arm_fclk_freq(s
 	}
 
 
-struct ti_clock_dev ti_clk_devmap[] = {
+struct ti_clock_dev ti_omap4_clk_devmap[] = {
 
 	/* System clocks */
 	{	.id                  = SYS_CLK,

Modified: head/sys/arm/ti/ti_prcm.c
==============================================================================
--- head/sys/arm/ti/ti_prcm.c	Sun May 25 10:17:26 2014	(r266647)
+++ head/sys/arm/ti/ti_prcm.c	Sun May 25 10:49:07 2014	(r266648)
@@ -57,16 +57,18 @@ __FBSDID("$FreeBSD$");
 #include <machine/resource.h>
 #include <machine/intr.h>
 
+#include <arm/ti/ti_cpuid.h>
 #include <arm/ti/ti_prcm.h>
 
 /**
- *	ti_clk_devmap - Array of clock devices, should be defined one per SoC 
+ *	ti_*_clk_devmap - Array of clock devices, should be defined one per SoC 
  *
  *	This array is typically defined in one of the targeted *_prcm_clk.c
  *	files and is specific to the given SoC platform.  Each entry in the array
  *	corresponds to an individual clock device.
  */
-extern struct ti_clock_dev ti_clk_devmap[];
+extern struct ti_clock_dev ti_omap4_clk_devmap[];
+extern struct ti_clock_dev ti_am335x_clk_devmap[];
 
 /**
  *	ti_prcm_clk_dev - returns a pointer to the clock device with given id
@@ -90,7 +92,21 @@ ti_prcm_clk_dev(clk_ident_t clk)
 	 * loop for this, but this function should only called when a driver is 
 	 * being activated so IMHO not a big issue.
 	 */
-	clk_dev = &(ti_clk_devmap[0]);
+	clk_dev = NULL;
+	switch(ti_chip()) {
+#ifdef SOC_OMAP4
+	case CHIP_OMAP_4:
+		clk_dev = &(ti_omap4_clk_devmap[0]);
+		break;
+#endif
+#ifdef SOC_TI_AM335X
+	case CHIP_AM335X:
+		clk_dev = &(ti_am335x_clk_devmap[0]);
+		break;
+#endif
+	}
+	if (clk_dev == NULL)
+		panic("No clock devmap found");
 	while (clk_dev->id != INVALID_CLK_IDENT) {
 		if (clk_dev->id == clk) {
 			return (clk_dev);


More information about the svn-src-all mailing list