Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Feb 2012 22:45:50 +0000 (UTC)
From:      Damjan Marion <dmarion@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r232012 - projects/armv6/sys/arm/ti/am335x
Message-ID:  <201202222245.q1MMjoSh072463@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dmarion
Date: Wed Feb 22 22:45:49 2012
New Revision: 232012
URL: http://svn.freebsd.org/changeset/base/232012

Log:
  am335x reset function
  
  Approved by:  cognet (mentor)

Modified:
  projects/armv6/sys/arm/ti/am335x/am335x_prcm.c

Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c
==============================================================================
--- projects/armv6/sys/arm/ti/am335x/am335x_prcm.c	Wed Feb 22 22:40:20 2012	(r232011)
+++ projects/armv6/sys/arm/ti/am335x/am335x_prcm.c	Wed Feb 22 22:45:49 2012	(r232012)
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/frame.h>
 #include <machine/intr.h>
 
+#include <arm/ti/tivar.h>
 #include <arm/ti/ti_scm.h>
 #include <arm/ti/ti_prcm.h>
 
@@ -78,6 +79,8 @@ __FBSDID("$FreeBSD$");
 #define CLKSEL_TIMER5_CLK		(CM_DPLL + 0x018)
 #define CLKSEL_TIMER6_CLK		(CM_DPLL + 0x01C)
 
+#define PRM_DEVICE_OFFSET		0xF00
+#define PRM_RSTCTRL			(PRM_DEVICE_OFFSET + 0x00)
 
 struct am335x_prcm_softc {
 	struct resource *	res[2];
@@ -97,6 +100,7 @@ static int am335x_clk_generic_deactivate
 static int am335x_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc);
 static int am335x_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq);
 static int am335x_clk_get_arm_fclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq);
+static void am335x_prcm_reset(void);
 static int am335x_clk_cpsw_activate(struct ti_clock_dev *clkdev);
 
 #define AM335X_GENERIC_CLOCK_DEV(i) \
@@ -220,6 +224,7 @@ am335x_prcm_attach(device_t dev)
 	sc->bsh = rman_get_bushandle(sc->res[0]);
 
 	am335x_prcm_sc = sc;
+	ti_cpu_reset = am335x_prcm_reset;
 
 	am335x_clk_get_sysclk_freq(NULL, &sysclk);
 	am335x_clk_get_arm_fclk_freq(NULL, &fclk);
@@ -392,6 +397,12 @@ am335x_clk_get_arm_fclk_freq(struct ti_c
 	return(0);
 }
 
+static void
+am335x_prcm_reset(void)
+{
+	prcm_write_4(PRM_RSTCTRL, (1<<1));
+}
+
 static int
 am335x_clk_cpsw_activate(struct ti_clock_dev *clkdev)
 {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202222245.q1MMjoSh072463>