# HG changeset patch # User asl # Date 1140378775 0 # Node ID f018213654da9398775b8f13c9a5bf640af2c587 # Parent 6621a815b2a7a88bcf7d64879fe3b534d85c9a9b * src/at91_serial.c (at91_serial_lookup): Enable the peripheral clock at lookup time to keep the power usage low. diff --git a/packages/devs/serial/arm/at91/current/ChangeLog b/packages/devs/serial/arm/at91/current/ChangeLog --- 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 + + * 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 * src/at91_serial.c: Added third port diff --git a/packages/devs/serial/arm/at91/current/src/at91_serial.c b/packages/devs/serial/arm/at91/current/src/at91_serial.c --- 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; }