changeset 2134:f018213654da

* src/at91_serial.c (at91_serial_lookup): Enable the peripheral clock at lookup time to keep the power usage low.
author asl
date Sun, 19 Feb 2006 19:52:55 +0000
parents 6621a815b2a7
children a22f1b3135dd
files packages/devs/serial/arm/at91/current/ChangeLog packages/devs/serial/arm/at91/current/src/at91_serial.c
diffstat 2 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/packages/devs/serial/arm/at91/current/ChangeLog
+++ b/packages/devs/serial/arm/at91/current/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-19  Andrew Lunn  <andrew.lunn@ascom.ch>
+
+	* src/at91_serial.c (at91_serial_lookup): Enable the peripheral
+	clock at lookup time to keep the power usage low.
+
 2004-11-10  Sebastian Block <sebastianblock@gmx.net>
 
         * src/at91_serial.c: Added third port
--- a/packages/devs/serial/arm/at91/current/src/at91_serial.c
+++ b/packages/devs/serial/arm/at91/current/src/at91_serial.c
@@ -369,7 +369,13 @@ at91_serial_lookup(struct cyg_devtab_ent
                   const char *name)
 {
     serial_channel * const chan = (serial_channel *) (*tab)->priv;
-
+    
+#ifdef AT91_PMC_PCER
+    // Enable the peripheral clock to the device
+    at91_serial_info * const at91_chan = (at91_serial_info *)chan->dev_priv;
+    HAL_WRITE_UINT32(AT91_PMC+AT91_PMC_PCER, 
+                     (1 << at91_chan->int_num));
+#endif
     (chan->callbacks->serial_init)(chan);  // Really only required for interrupt driven devices
     return ENOERR;
 }